Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/thirdpin/pastilda.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthirdpin <n_lazareva@mail.ru>2016-07-13 18:22:08 +0300
committerthirdpin <n_lazareva@mail.ru>2016-07-13 18:22:08 +0300
commit18668d026fa5c799f83ec369a929f8f04117d3ba (patch)
treed495fbcf2d56c3e7f8322da009788ea7f396c5d1
parent03fb98cead3b9b3bf07a786581a7e91817dfcd0e (diff)
schematic, usb host, usb composite
-rw-r--r--.gitmodules3
-rw-r--r--emb/pastilda/.cproject4
-rw-r--r--emb/pastilda/.gitignore1
-rw-r--r--emb/pastilda/app/app.cpp22
-rw-r--r--emb/pastilda/app/app.h1
-rw-r--r--emb/pastilda/app/flash_memory.cpp141
-rw-r--r--emb/pastilda/app/flash_memory.h31
-rw-r--r--emb/pastilda/app/leds.cpp6
-rw-r--r--emb/pastilda/app/leds.h9
-rw-r--r--emb/pastilda/hw/clock.h15
-rw-r--r--emb/pastilda/hw/usb_host/usbh_host.cpp21
-rw-r--r--emb/pastilda/hw/usb_host/usbh_host.h4
m---------emb/pastilda/lib/libopencm3_cpp_extensions0
-rw-r--r--emb/pastilda/lib/libusbhost/usbh_config.h2
-rw-r--r--emb/pastilda/lib/libusbhost/usbh_device_driver.h4
-rw-r--r--emb/pastilda/lib/libusbhost/usbh_driver_hid_kbd.c10
-rw-r--r--emb/pastilda/lib/libusbhost/usbh_hubbed.c38
-rw-r--r--emb/pastilda/lib/libusbhost/usbh_lld_stm32f4.c59
m---------lib/libopencm30
-rw-r--r--sch/__Previews/pastilda.PcbDocPreview14
-rw-r--r--sch/__Previews/pastilda.SchDocPreview14
-rw-r--r--sch/doc/Rev.0.1/pastilda-Rev.0.1-BOM.xlsxbin0 -> 12166 bytes
-rw-r--r--sch/doc/Rev.0.1/pastilda-Rev.0.1-assembly.PDFbin0 -> 71173 bytes
-rw-r--r--sch/doc/Rev.0.1/pastilda-Rev.0.1.PDFbin0 -> 192426 bytes
-rw-r--r--sch/pastilda.Dat22
-rw-r--r--sch/pastilda.OutJob515
-rw-r--r--sch/pastilda.PcbDocbin0 -> 3122176 bytes
-rw-r--r--sch/pastilda.PrjPcb1131
-rw-r--r--sch/pastilda.PrjPcbStructure1
-rw-r--r--sch/pastilda.SchDocbin0 -> 352768 bytes
30 files changed, 1740 insertions, 328 deletions
diff --git a/.gitmodules b/.gitmodules
index bc82d07..46f23b3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "lib/libopencm3"]
path = lib/libopencm3
url = https://github.com/thirdpin/libopencm3.git
+[submodule "emb/pastilda/lib/libopencm3_cpp_extensions"]
+ path = emb/pastilda/lib/libopencm3_cpp_extensions
+ url = https://github.com/thirdpin/libopencm3_cpp_extensions.git
diff --git a/emb/pastilda/.cproject b/emb/pastilda/.cproject
index 3087e7c..4047913 100644
--- a/emb/pastilda/.cproject
+++ b/emb/pastilda/.cproject
@@ -51,6 +51,7 @@
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.657593211" name="Cross ARM C Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs.789067878" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32F4"/>
+ <listOptionValue builtIn="false" value="USE_STM32F4_USBH_DRIVER_HS"/>
</option>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths.1095580488" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.c.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;../..\..\lib\libopencm3\include&quot;"/>
@@ -60,12 +61,14 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/hw/usb_device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/hw/usb_host}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/libusbhost}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/libopencm3_cpp_extensions}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input.338584563" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.c.compiler.input"/>
</tool>
<tool id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.268228352" name="Cross ARM C++ Compiler" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler">
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs.2136368030" name="Defined symbols (-D)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.defs" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32F4"/>
+ <listOptionValue builtIn="false" value="USE_STM32F4_USBH_DRIVER_HS"/>
</option>
<option id="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths.1410012800" name="Include paths (-I)" superClass="ilg.gnuarmeclipse.managedbuild.cross.option.cpp.compiler.include.paths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;../..\..\lib\libopencm3\include&quot;"/>
@@ -75,6 +78,7 @@
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/hw/usb_device}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/hw/usb_host}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/libusbhost}&quot;"/>
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/lib/libopencm3_cpp_extensions}&quot;"/>
</option>
<inputType id="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input.583307617" superClass="ilg.gnuarmeclipse.managedbuild.cross.tool.cpp.compiler.input"/>
</tool>
diff --git a/emb/pastilda/.gitignore b/emb/pastilda/.gitignore
new file mode 100644
index 0000000..3df573f
--- /dev/null
+++ b/emb/pastilda/.gitignore
@@ -0,0 +1 @@
+/Debug/
diff --git a/emb/pastilda/app/app.cpp b/emb/pastilda/app/app.cpp
index e969f64..851b564 100644
--- a/emb/pastilda/app/app.cpp
+++ b/emb/pastilda/app/app.cpp
@@ -17,28 +17,6 @@ App::App()
systick_init();
_leds_api = new LEDS_api();
-/////////////////////////////////////////////////////////////////////////////////////////
- //spi and cs pin for sst25_driver
-// SPI_Conf spi_conf;
-// spi_conf.spi_number = 1;
-// spi_conf.scl_pin = PA5;
-// spi_conf.miso_pin = PA6;
-// spi_conf.mosi_pin = PA7;
-// _spi_ext = new SPI_ext(spi_conf);
-// _spi_ext->disable();
-// _spi_ext->set_baudrate_prescaler(SPI_CPP_Extension::BaudRate::BAUDRATE_FPCLK_DIV_2);
-// _spi_ext->set_clock_polarity(SPI_CPP_Extension::Polarity::POLARITY_HIGH);
-// _spi_ext->set_clock_phase(Phase::PHASE_HIGH);
-// _spi_ext->set_data_drame_format(DataFrameFormat::DFF_8BIT);
-// _spi_ext->set_bit_position(BitPos::MSB_FIRST);
-// _spi_ext->set_software_slave_management(State::ENABLE);
-// _spi_ext->set_nss(NssState::HIGH);
-// _spi_ext->enable();
-//
-// GPIO_ext cs_pin(PA4);
-// cs_pin.mode_setup(Mode::OUTPUT, PullMode::NO_PULL);
-// cs_pin.set_output_options(OutputType::PUSH_PULL, Speed::FAST_50MHz);
-///////////////////////////////////////////////////////////////////////////////////////////
delay_ms(1000);
usb_dispatcher = new USB_dispatcher();
diff --git a/emb/pastilda/app/app.h b/emb/pastilda/app/app.h
index 80258e2..ef7f448 100644
--- a/emb/pastilda/app/app.h
+++ b/emb/pastilda/app/app.h
@@ -24,7 +24,6 @@ namespace Application
private:
LEDS_api *_leds_api;
USB_dispatcher *usb_dispatcher;
- SPI_ext *_spi_ext;
};
}
#endif
diff --git a/emb/pastilda/app/flash_memory.cpp b/emb/pastilda/app/flash_memory.cpp
deleted file mode 100644
index 23dde5b..0000000
--- a/emb/pastilda/app/flash_memory.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-#include "flash_memory.h"
-#include "systick_ext.h"
-
-#define WBVAL(x) ((x) & 0xFF), (((x) >> 8) & 0xFF)
-#define QBVAL(x) ((x) & 0xFF), (((x) >> 8) & 0xFF), (((x) >> 16) & 0xFF), (((x) >> 24) & 0xFF)
-#define BYTES_PER_SECTOR 512
-#define SECTORS_PER_CLUSTER 4
-#define RESERVED_SECTORS 1
-#define FAT_COPIES 2
-#define ROOT_ENTRIES 512
-
-FlashMemory *flash_pointer;
-
-FlashMemory::FlashMemory(struct block_device *dev)
-{
- flash_pointer = this;
-
- SPI_CPP_Extension::SPI_Conf sst25_conf = { 1, PB5, PB4, PB3 };
- _spi = new SPI_ext(sst25_conf);
-
- _spi->reset();
- _spi->disable();
- _spi->set_master_mode();
- _spi->set_baudrate_prescaler(BAUDRATE_FPCLK_DIV_2);
- _spi->set_standard_mode(MODE_0);
- _spi->set_data_drame_format(DFF_8BIT);
- _spi->set_bit_position(MSB_FIRST);
- _spi->enable_ss_output();
- _spi->set_software_slave_management(State::ENABLE);
- _spi->set_nss(HIGH);
- _spi->enable();
-
- _sst25 = new SST25(_spi, PA15);
- _sst25->disable_wtite_protection();
-
- dev->get_sector_size = get_sector_size;
- dev->read_sectors = read_sectors;
- dev->write_sectors = write_sectors;
-}
-
-uint16_t FlashMemory::get_sector_size(const struct block_device *dev)
-{
- (void)dev;
- return (FAKE_SECTOR_SIZE);
-}
-
-int FlashMemory::read_sectors(const struct block_device *dev, uint32_t sector, uint32_t count, void *buf)
-{
- (void)dev;
- uint32_t end_sector = sector + count - 1;
-
- uint32_t real_start_sector = sector / 8;
- uint32_t real_end_sector = end_sector / 8;
- uint32_t real_sector_count = real_end_sector - real_start_sector + 1;
-
- uint32_t data_size = real_sector_count * SECTOR_SIZE;
- uint8_t data[data_size];
-
- uint32_t ok_sectors = flash_pointer->_sst25->read_sectors(real_start_sector, real_sector_count, data);
-
- if (ok_sectors != real_sector_count) {
- return (0);
- }
-
- uint32_t start_address = (real_start_sector * SECTOR_SIZE) + ((sector % 8) * FAKE_SECTOR_SIZE);
- uint32_t end_address = start_address + (count * FAKE_SECTOR_SIZE);
-
- for (int i = start_address, j = 0; i < end_address; i++, j++) {
- ((uint8_t*)buf)[j] = data[i];
- }
-
- return (count);
-}
-
-int FlashMemory::write_sectors(const struct block_device *dev, uint32_t sector, uint32_t count, const void *buf)
-{
- (void)dev;
- uint32_t end_sector = sector + count - 1;
-
- uint32_t real_start_sector = sector / 8;
- uint32_t real_end_sector = end_sector / 8;
- uint32_t real_sector_count = real_end_sector - real_start_sector + 1;
-
-
- uint32_t copy_size = real_sector_count * SECTOR_SIZE;
- uint8_t sector_copy[copy_size];
-
- uint32_t ok_sectors = flash_pointer->_sst25->read_sectors(real_start_sector, real_sector_count, sector_copy);
-
- if (ok_sectors != real_sector_count) {
- return (0);
- }
-
- for (int i = 0; i < real_sector_count; i++) {
- flash_pointer->_sst25->erase_sector(real_start_sector + i);
- }
-
- uint32_t start_address = (real_start_sector * SECTOR_SIZE) + ((sector % 8) * FAKE_SECTOR_SIZE);
- uint32_t end_address = start_address + (count * FAKE_SECTOR_SIZE);
-
- for (int i = start_address, j = 0; i <= end_address; i++, j++) {
- sector_copy[i] = ((uint8_t*)buf)[j];
- }
-
- ok_sectors = flash_pointer->_sst25->write_sectors(real_start_sector, real_sector_count, sector_copy);
- if (ok_sectors != real_sector_count) {
- return (0);
- }
-
-
- return (count);
-}
-
-int FlashMemory::flash_read(uint32_t lba, uint8_t *copy_to)
-{
- memset(copy_to, 0, FAKE_SECTOR_SIZE);
- if (lba >= FAKE_SECTOR_COUNT) {
- return (1);
- }
- else {
- read_sectors(0, lba, 1, copy_to);
- return (0);
- }
-}
-int FlashMemory::flash_write(uint32_t lba, const uint8_t *copy_from)
-{
- ///TODO: check for lba > 3
- if (lba >= FAKE_SECTOR_COUNT) {
- return (1);
- }
- else {
- write_sectors(0, lba, 1, copy_from);
- return (1);
- }
- // ignore writes
- return (0);
-}
-int FlashMemory::flash_blocks(void)
-{
- return (FAKE_SECTOR_COUNT);
-}
diff --git a/emb/pastilda/app/flash_memory.h b/emb/pastilda/app/flash_memory.h
deleted file mode 100644
index 389f0da..0000000
--- a/emb/pastilda/app/flash_memory.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef FLASH_MEMORY_H
-#define FLASH_MEMORY_H
-
-#include <string.h>
-#include "blockdev.h"
-
-#include "spi_ext.h"
-#include "SST25.h"
-
-using namespace SPI_CPP_Extension;
-
-constexpr uint16_t FAKE_SECTOR_SIZE = 512;
-constexpr uint16_t FAKE_SECTOR_COUNT = (MEMORY_SIZE / FAKE_SECTOR_SIZE);
-
-class FlashMemory
-{
-public:
- FlashMemory(struct block_device *dev);
- static uint16_t get_sector_size(const struct block_device *dev);
- static int read_sectors(const struct block_device *dev, uint32_t sector, uint32_t count, void *buf);
- static int write_sectors(const struct block_device *dev, uint32_t sector, uint32_t count, const void *buf);
-
- int flash_read(uint32_t lba, uint8_t *copy_to);
- int flash_write(uint32_t lba, const uint8_t *copy_from);
- int flash_blocks(void);
-private:
- SST25 *_sst25;
- SPI_ext *_spi;
-};
-
-#endif
diff --git a/emb/pastilda/app/leds.cpp b/emb/pastilda/app/leds.cpp
index 5abec58..e000c80 100644
--- a/emb/pastilda/app/leds.cpp
+++ b/emb/pastilda/app/leds.cpp
@@ -4,10 +4,12 @@ using namespace LEDS_API;
LEDS_api::LEDS_api()
{
- _leds[0] = new GPIO_ext(LED_A);
- _leds[1] = new GPIO_ext(LED_B);
+ _leds[0] = new GPIO_ext(LED_R);
+ _leds[1] = new GPIO_ext(LED_G);
+ _leds[2] = new GPIO_ext(LED_B);
_leds[0]->mode_setup(Mode::OUTPUT, PullMode::NO_PULL);
_leds[1]->mode_setup(Mode::OUTPUT, PullMode::NO_PULL);
+ _leds[2]->mode_setup(Mode::OUTPUT, PullMode::NO_PULL);
_leds_state = LEDS_INI_STATE;
_timer_leds_toggle = new TimerMs(TimerMode::CYCLE, LEDS_TOGGLE_PERIOD_MS);
diff --git a/emb/pastilda/app/leds.h b/emb/pastilda/app/leds.h
index 691d0f0..a04600d 100644
--- a/emb/pastilda/app/leds.h
+++ b/emb/pastilda/app/leds.h
@@ -8,10 +8,11 @@ using namespace GPIO_CPP_Extension;
namespace LEDS_API
{
- constexpr Pinout LED_A = PD12;
- constexpr Pinout LED_B = PD13;
- constexpr uint8_t LEDS_COUNT = 0x02;
- constexpr uint8_t LEDS_MAX_STATE = 0x02;
+ constexpr Pinout LED_R = PB0;
+ constexpr Pinout LED_G = PB1;
+ constexpr Pinout LED_B = PB3;
+ constexpr uint8_t LEDS_COUNT = 0x03;
+ constexpr uint8_t LEDS_MAX_STATE = 0x07;
constexpr uint8_t LEDS_INI_STATE = 0x01;
constexpr uint32_t LEDS_TOGGLE_PERIOD_MS = 500;
diff --git a/emb/pastilda/hw/clock.h b/emb/pastilda/hw/clock.h
index 6ad3e43..7cebfd2 100644
--- a/emb/pastilda/hw/clock.h
+++ b/emb/pastilda/hw/clock.h
@@ -48,20 +48,15 @@ static constexpr struct rcc_clock_scale rcc_hse_8mhz_to_hclk_120mhz =
static void clock_setup()
{
- rcc_clock_setup_hse_3v3(&rcc_hse_8mhz_to_hclk_120mhz);
+ rcc_clock_setup_hse_3v3(&rcc_hse_25mhz_to_hclk_120mhz);
rcc_periph_clock_enable(rcc_periph_clken::RCC_GPIOA);
rcc_periph_clock_enable(rcc_periph_clken::RCC_GPIOB);
rcc_periph_clock_enable(rcc_periph_clken::RCC_GPIOC);
- rcc_periph_clock_enable(rcc_periph_clken::RCC_GPIOD);
- rcc_periph_clock_enable(rcc_periph_clken::RCC_USART6); //usb_host helper
- rcc_periph_clock_enable(rcc_periph_clken::RCC_TIM6); //usb_host
- rcc_periph_clock_enable(rcc_periph_clken::RCC_SPI1); //sst25
- //rcc_periph_clock_enable(rcc_periph_clken::RCC_TIM9);
- //rcc_periph_clock_enable(rcc_periph_clken::RCC_PWR);
- //rcc_periph_clock_enable(rcc_periph_clken::RCC_SYSCFG);
- rcc_periph_clock_enable(rcc_periph_clken::RCC_OTGFS); //device
- rcc_periph_clock_enable(rcc_periph_clken::RCC_OTGHS); //host
+ rcc_periph_clock_enable(rcc_periph_clken::RCC_TIM6);
+ rcc_periph_clock_enable(rcc_periph_clken::RCC_SPI1);
+ rcc_periph_clock_enable(rcc_periph_clken::RCC_OTGFS);
+ rcc_periph_clock_enable(rcc_periph_clken::RCC_OTGHS);
}
#endif
diff --git a/emb/pastilda/hw/usb_host/usbh_host.cpp b/emb/pastilda/hw/usb_host/usbh_host.cpp
index 3b92b81..91604cc 100644
--- a/emb/pastilda/hw/usb_host/usbh_host.cpp
+++ b/emb/pastilda/hw/usb_host/usbh_host.cpp
@@ -12,19 +12,14 @@ USB_host::USB_host(redirect _redirect_callback, control_interception _control_in
timer_setup();
oth_hs_setup();
- usart_setup();
hid_kbd_driver_init(&kbd_config);
usbh_init(usbh_lld_stm32f4_drivers, device_drivers);
-
- LOG_PRINTF("USB init complete\n");
- LOG_FLUSH();
}
void USB_host::poll()
{
usbh_poll(get_time_us());
- LOG_FLUSH();
delay_ms(1);
}
@@ -58,22 +53,6 @@ void USB_host::oth_hs_setup()
uf_m.set_af(AF_Number::AF12);
}
-void USB_host::usart_setup()
-{
- GPIO_ext uart_rx(PC6);
- GPIO_ext uart_tx(PC7);
-
- uart_rx.mode_setup(Mode::ALTERNATE_FUNCTION, PullMode::NO_PULL);
- uart_tx.mode_setup(Mode::ALTERNATE_FUNCTION, PullMode::NO_PULL);
-
- uart_rx.set_af(AF_Number::AF8);
- uart_tx.set_af(AF_Number::AF8);
-
-#ifdef USART_DEBUG
- usart_init(USART6, 921600);
-#endif
-}
-
//convert to 1MHz less precise timer value
//units: microseconds
uint32_t USB_host::get_time_us()
diff --git a/emb/pastilda/hw/usb_host/usbh_host.h b/emb/pastilda/hw/usb_host/usbh_host.h
index ff78a18..53efa89 100644
--- a/emb/pastilda/hw/usb_host/usbh_host.h
+++ b/emb/pastilda/hw/usb_host/usbh_host.h
@@ -2,13 +2,10 @@
#define USBH_HOST_H
#include <string.h>
-#include <libopencm3/cm3/common.h>
-#include <libopencm3/stm32/usart.h>
#include "timer_ext.h"
#include "gpio_ext.h"
#include "systick_ext.h"
BEGIN_DECLS
-#include "usart_helpers.h"
#include "usbh_hubbed.h"
#include "usbh_driver_hid_kbd.h"
#include "usbh_lld_stm32f4.h"
@@ -46,6 +43,5 @@ private:
void timer_setup();
uint32_t get_time_us();
void oth_hs_setup();
- void usart_setup();
};
#endif
diff --git a/emb/pastilda/lib/libopencm3_cpp_extensions b/emb/pastilda/lib/libopencm3_cpp_extensions
new file mode 160000
+Subproject 6f4a4be9040c2fa114a87cb025e3aab9e36cfe7
diff --git a/emb/pastilda/lib/libusbhost/usbh_config.h b/emb/pastilda/lib/libusbhost/usbh_config.h
index 4fa38cb..7a7f8df 100644
--- a/emb/pastilda/lib/libusbhost/usbh_config.h
+++ b/emb/pastilda/lib/libusbhost/usbh_config.h
@@ -23,8 +23,6 @@
#ifndef USBH_CONFIG_
#define USBH_CONFIG_
-
-
// Max devices per hub
#define USBH_HUB_MAX_DEVICES (8)
diff --git a/emb/pastilda/lib/libusbhost/usbh_device_driver.h b/emb/pastilda/lib/libusbhost/usbh_device_driver.h
index 137b39b..dbab889 100644
--- a/emb/pastilda/lib/libusbhost/usbh_device_driver.h
+++ b/emb/pastilda/lib/libusbhost/usbh_device_driver.h
@@ -106,10 +106,6 @@ struct _usbh_generic_data {
typedef struct _usbh_generic_data usbh_generic_data_t;
-#define ERROR(arg) LOG_PRINTF("UNHANDLED_ERROR %d: file: %s, line: %d",\
- arg, __FILE__, __LINE__)
-
-
/// Hub related functions
usbh_device_t *usbh_get_free_device(const usbh_device_t *dev);
diff --git a/emb/pastilda/lib/libusbhost/usbh_driver_hid_kbd.c b/emb/pastilda/lib/libusbhost/usbh_driver_hid_kbd.c
index 29d5008..010d3fa 100644
--- a/emb/pastilda/lib/libusbhost/usbh_driver_hid_kbd.c
+++ b/emb/pastilda/lib/libusbhost/usbh_driver_hid_kbd.c
@@ -1,7 +1,7 @@
#include "usbh_hubbed.h"
-#include "driver/usbh_device_driver.h"
+#include "usbh_device_driver.h"
#include "usbh_driver_hid_kbd.h"
-#include "usart_helpers.h"
+//#include "usart_helpers.h"
#include <libopencm3/usb/usbstd.h>
@@ -47,7 +47,6 @@ void hid_kbd_driver_init(const hid_kbd_config_t *config)
static void *init(void *usbh_dev)
{
if (!initialized) {
- LOG_PRINTF("\n%s/%d : driver not initialized\r\n", __FILE__, __LINE__);
return (0);
}
@@ -126,7 +125,6 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
- ERROR(cb_data.status);
kbd->state_next = STATE_INACTIVE;
break;
}
@@ -135,7 +133,6 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
case STATE_SET_CONFIGURATION_EMPTY_READ:
{
- LOG_PRINTF("|empty packet read|");
switch (cb_data.status) {
case USBH_PACKET_CALLBACK_STATUS_OK:
kbd->state_next = STATE_SET_CONFIGURATION_COMPLETE;
@@ -145,7 +142,6 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
- ERROR(cb_data.status);
kbd->state_next = STATE_INACTIVE;
break;
}
@@ -157,13 +153,11 @@ static void event(usbh_device_t *dev, usbh_packet_callback_data_t cb_data)
case USBH_PACKET_CALLBACK_STATUS_OK:
kbd->state_next = STATE_READING_REQUEST;
kbd->endpoint_in_toggle = 0;
- LOG_PRINTF("\nKEYBOARD CONFIGURED\n");
break;
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
- ERROR(cb_data.status);
kbd->state_next = STATE_INACTIVE;
break;
}
diff --git a/emb/pastilda/lib/libusbhost/usbh_hubbed.c b/emb/pastilda/lib/libusbhost/usbh_hubbed.c
index 1921842..0f51bf0 100644
--- a/emb/pastilda/lib/libusbhost/usbh_hubbed.c
+++ b/emb/pastilda/lib/libusbhost/usbh_hubbed.c
@@ -22,8 +22,8 @@
#include "usbh_config.h"
#include "usbh_lld_stm32f4.h"
-#include "driver/usbh_device_driver.h"
-#include "usart_helpers.h"
+#include "usbh_device_driver.h"
+//#include "usart_helpers.h"
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/usb/usbstd.h>
@@ -99,14 +99,12 @@ static void device_register(void *descriptors, uint16_t descriptors_len, usbh_de
usbh_dev_driver_info_t device_info;
if (desc_type == USB_DT_DEVICE) {
struct usb_device_descriptor *device_desc = (void*)&buf[i];
- LOG_PRINTF("DEVICE DESCRIPTOR");
device_info.deviceClass = device_desc->bDeviceClass;
device_info.deviceSubClass = device_desc->bDeviceSubClass;
device_info.deviceProtocol = device_desc->bDeviceProtocol;
device_info.idVendor = device_desc->idVendor;
device_info.idProduct = device_desc->idProduct;
- } else {
- LOG_PRINTF("INVALID descriptors pointer - fatal error");
+ } else {;
return;
}
@@ -117,7 +115,6 @@ static void device_register(void *descriptors, uint16_t descriptors_len, usbh_de
switch (desc_type) {
case USB_DT_INTERFACE:
{
- LOG_PRINTF("INTERFACE_DESCRIPTOR\n");
struct usb_interface_descriptor *iface = (void*)&buf[i];
device_info.ifaceClass = iface->bInterfaceClass;
device_info.ifaceSubClass = iface->bInterfaceSubClass;
@@ -127,7 +124,6 @@ static void device_register(void *descriptors, uint16_t descriptors_len, usbh_de
dev->drv = driver;
dev->drvdata = dev->drv->init(dev);
if (!dev->drvdata) {
- LOG_PRINTF("CANT TOUCH THIS");
}
break;
}
@@ -138,7 +134,6 @@ static void device_register(void *descriptors, uint16_t descriptors_len, usbh_de
}
if (desc_len == 0) {
- LOG_PRINTF("PROBLEM WITH PARSE %d\n",i);
return;
}
i += desc_len;
@@ -147,20 +142,16 @@ static void device_register(void *descriptors, uint16_t descriptors_len, usbh_de
if (dev->drv && dev->drvdata) {
// analyze descriptors
- LOG_PRINTF("ANALYZE");
i = 0;
while (i < descriptors_len) {
desc_len = buf[i];
void *drvdata = dev->drvdata;
- LOG_PRINTF("[%d]",buf[i+1]);
if (dev->drv->analyze_descriptor(drvdata, &buf[i])) {
- LOG_PRINTF("Device Initialized\n");
return;
}
i += desc_len;
}
}
- LOG_PRINTF("Device NOT Initialized\n");
}
void usbh_init(const void *drivers_lld[], const usbh_dev_driver_t * const device_drivers[])
@@ -175,7 +166,6 @@ void usbh_init(const void *drivers_lld[], const usbh_dev_driver_t * const device
// TODO: init structures
uint32_t k = 0;
while (usbh_data.lld_drivers[k]) {
- LOG_PRINTF("DRIVER %d\n", k);
usbh_device_t * usbh_device =
((usbh_generic_data_t *)(usbh_data.lld_drivers[k])->driver_data)->usbh_device;
@@ -185,7 +175,6 @@ void usbh_init(const void *drivers_lld[], const usbh_dev_driver_t * const device
usbh_device[i].drv = 0;
usbh_device[i].drvdata = 0;
}
- LOG_PRINTF("DRIVER %d", k);
usbh_data.lld_drivers[k]->init(usbh_data.lld_drivers[k]->driver_data);
k++;
@@ -208,7 +197,6 @@ void device_xfer_control_write(void *data, uint16_t datalen, usbh_packet_callbac
packet.toggle = &dev->toggle0;
usbh_write(dev, &packet);
- LOG_PRINTF("WR@device...%d | \n", dev->address);
}
void device_xfer_control_read(void *data, uint16_t datalen, usbh_packet_callback_t callback, usbh_device_t *dev)
@@ -227,7 +215,6 @@ void device_xfer_control_read(void *data, uint16_t datalen, usbh_packet_callback
packet.toggle = &dev->toggle0;
usbh_read(dev, &packet);
- LOG_PRINTF("RD@device...%d | \n", dev->address);
}
bool usbh_enum_available(void)
@@ -242,14 +229,11 @@ usbh_device_t *usbh_get_free_device(const usbh_device_t *dev)
usbh_device_t *usbh_device = lld_data->usbh_device;
uint8_t i;
- LOG_PRINTF("DEV ADDRESS%d\n", dev->address);
for (i = 0; i < USBH_MAX_DEVICES; i++) {
if (usbh_device[i].address < 0) {
- LOG_PRINTF("\t\t\t\t\tFOUND: %d", i);
usbh_device[i].address = i+1;
return &usbh_device[i];
} else {
- LOG_PRINTF("address: %d\n\n\n", usbh_device[i].address);
}
}
@@ -276,7 +260,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
switch (cb_data.status) {
case USBH_PACKET_CALLBACK_STATUS_OK:
dev->state++;
- LOG_PRINTF("::%d::", dev->address);
device_xfer_control_read(0, 0, device_enumerate, dev);
break;
@@ -284,7 +267,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -295,7 +277,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_OK:
if (dev->address == 0) {
dev->address = usbh_data.address_temporary;
- LOG_PRINTF("ADDR: %d\n", dev->address);
}
struct usb_setup_data setup_data;
@@ -315,7 +296,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
break;
@@ -341,7 +321,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -386,7 +365,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -405,7 +383,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -419,7 +396,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
struct usb_config_descriptor *cdt =
(struct usb_config_descriptor *)&usbh_buffer[USB_DT_DEVICE_SIZE];
struct usb_setup_data setup_data;
- LOG_PRINTF("WRITE: LEN: %d", cdt->wTotalLength);
setup_data.bmRequestType = 0b10000000;
setup_data.bRequest = USB_REQ_GET_DESCRIPTOR;
setup_data.wValue = USB_DT_CONFIGURATION << 8;
@@ -450,7 +426,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_EFATAL:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -473,7 +448,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
}
@@ -486,7 +460,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
{
struct usb_config_descriptor *cdt =
(struct usb_config_descriptor *)&usbh_buffer[USB_DT_DEVICE_SIZE];
- LOG_PRINTF("TOTAL_LENGTH: %d\n", cdt->wTotalLength);
device_register(usbh_buffer, cdt->wTotalLength + USB_DT_DEVICE_SIZE, dev);
dev->state++;
@@ -498,7 +471,6 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
case USBH_PACKET_CALLBACK_STATUS_EAGAIN:
case USBH_PACKET_CALLBACK_STATUS_ERRSIZ:
device_enumeration_terminate(dev);
- ERROR(cb_data.status);
break;
}
@@ -506,12 +478,10 @@ static void device_enumerate(usbh_device_t *dev, usbh_packet_callback_data_t cb_
break;
default:
- LOG_PRINTF("Error: Unknown state "__FILE__"/%d\n", __LINE__);
break;
}
if (state_start == dev->state) {
- LOG_PRINTF("\n !HANG %d\n", state_start);
}
}
@@ -532,7 +502,6 @@ void device_enumeration_start(usbh_device_t *dev)
usbh_data.address_temporary = address;
- LOG_PRINTF("\n\n\n ENUMERATION OF DEVICE@%d STARTED \n\n", address);
struct usb_setup_data setup_data;
@@ -559,7 +528,6 @@ void usbh_poll(uint32_t time_curr_us)
switch (poll_status) {
case USBH_POLL_STATUS_DEVICE_CONNECTED:
// New device found
- LOG_PRINTF("\nDEVICE FOUND\n");
usbh_device[0].lld = usbh_data.lld_drivers[k];
usbh_device[0].speed = usbh_data.lld_drivers[k]->root_speed(lld_data);
usbh_device[0].address = 1;
diff --git a/emb/pastilda/lib/libusbhost/usbh_lld_stm32f4.c b/emb/pastilda/lib/libusbhost/usbh_lld_stm32f4.c
index 606f059..ba7c7ce 100644
--- a/emb/pastilda/lib/libusbhost/usbh_lld_stm32f4.c
+++ b/emb/pastilda/lib/libusbhost/usbh_lld_stm32f4.c
@@ -20,9 +20,9 @@
*
*/
-#include "driver/usbh_device_driver.h"
+#include "usbh_device_driver.h"
#include "usbh_lld_stm32f4.h"
-#include "usart_helpers.h"
+//#include "usart_helpers.h"
#include <string.h>
#include <stdint.h>
@@ -166,7 +166,6 @@ static void stm32f4_usbh_port_channel_setup(
eptyp = OTG_HCCHAR_EPTYP_ISOCHRONOUS;
break;
default:
- LOG_PRINTF("\n\n\n\nWRONG EP TYPE\n\n\n\n\n");
return;
}
@@ -198,7 +197,6 @@ static void read(void *drvdata, usbh_packet_t *packet)
int8_t channel = get_free_channel(dev);
if (channel == -1) {
// BIG PROBLEM
- LOG_PRINTF("FATAL ERROR IN, NO CHANNEL LEFT \n");
usbh_packet_callback_data_t cb_data;
cb_data.status = USBH_PACKET_CALLBACK_STATUS_EFATAL;
cb_data.transferred_length = 0;
@@ -246,7 +244,6 @@ static void write(void *drvdata, const usbh_packet_t *packet)
if (channel == -1) {
// BIG PROBLEM
- LOG_PRINTF("FATAL ERROR OUT, NO CHANNEL LEFT \n");
usbh_packet_callback_data_t cb_data;
cb_data.status = USBH_PACKET_CALLBACK_STATUS_EFATAL;
cb_data.transferred_length = 0;
@@ -275,7 +272,6 @@ static void write(void *drvdata, const usbh_packet_t *packet)
}
} else {
dpid = OTG_HCTSIZ_DPID_DATA0; // ! TODO: BUG
- LOG_PRINTF("BUG, %d",__LINE__);
}
uint32_t num_packets;
@@ -299,10 +295,8 @@ static void write(void *drvdata, const usbh_packet_t *packet)
volatile uint32_t *fifo = &REBASE_CH(OTG_FIFO, channel) + RX_FIFO_SIZE;
const uint32_t * buf32 = packet->data;
int i;
- LOG_PRINTF("\nSending[%d]: ", packet->datalen);
for(i = packet->datalen; i >= 4; i-=4) {
const uint8_t *buf8 = (const uint8_t *)buf32;
- LOG_PRINTF("%02X %02X %02X %02X, ", buf8[0], buf8[1], buf8[2], buf8[3]);
*fifo++ = *buf32++;
}
@@ -311,10 +305,8 @@ static void write(void *drvdata, const usbh_packet_t *packet)
*fifo = *buf32&((1 << (8*i)) - 1);
uint8_t *buf8 = (uint8_t *)buf32;
while (i--) {
- LOG_PRINTF("%02X ", *buf8++);
}
}
- LOG_PRINTF("\n");
} else {
volatile uint32_t *fifo = &REBASE_CH(OTG_FIFO, channel) +
@@ -325,7 +317,6 @@ static void write(void *drvdata, const usbh_packet_t *packet)
*fifo++ = *buf32++;
}
}
- LOG_PRINTF("->WRITE %08X\n", REBASE_CH(OTG_HCCHAR, channel));
}
static void rxflvl_handle(void *drvdata)
@@ -358,7 +349,6 @@ static void rxflvl_handle(void *drvdata)
if ( channels[channel].data_index < channels[channel].packet.datalen) {
if (len == channels[channel].packet.endpoint_size_max) {
REBASE_CH(OTG_HCCHAR, channel) |= OTG_HCCHAR_CHENA;
- LOG_PRINTF("CHENA[%d/%d] ", channels[channel].data_index, channels[channel].packet.datalen);
}
}
@@ -410,7 +400,6 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
REBASE(OTG_HFIR) = (REBASE(OTG_HFIR) & ~OTG_HFIR_FRIVL_MASK) | 48000;
if ((REBASE(OTG_HCFG) & OTG_HCFG_FSLSPCS_MASK) != OTG_HCFG_FSLSPCS_48MHz) {
REBASE(OTG_HCFG) = (REBASE(OTG_HCFG) & ~OTG_HCFG_FSLSPCS_MASK) | OTG_HCFG_FSLSPCS_48MHz;
- LOG_PRINTF("\n Reset Full-Speed \n");
}
channels_init(dev);
dev->dpstate = DEVICE_POLL_STATE_DEVRST;
@@ -420,7 +409,6 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
REBASE(OTG_HFIR) = (REBASE(OTG_HFIR) & ~OTG_HFIR_FRIVL_MASK) | 6000;
if ((REBASE(OTG_HCFG) & OTG_HCFG_FSLSPCS_MASK) != OTG_HCFG_FSLSPCS_6MHz) {
REBASE(OTG_HCFG) = (REBASE(OTG_HCFG) & ~OTG_HCFG_FSLSPCS_MASK) | OTG_HCFG_FSLSPCS_6MHz;
- LOG_PRINTF("\n Reset Low-Speed \n");
}
channels_init(dev);
@@ -458,7 +446,6 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
// To clear interrupt write 0 to PENA
// To disable port write 1 to PENCHNG
REBASE(OTG_HPRT) &= ~OTG_HPRT_PENA;
- LOG_PRINTF("PENCHNG");
if ((hprt & OTG_HPRT_PENA)) {
return USBH_POLL_STATUS_DEVICE_CONNECTED;
}
@@ -468,13 +455,11 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (REBASE(OTG_HPRT) & OTG_HPRT_POCCHNG) {
// TODO: Check for functionality
REBASE(OTG_HPRT) |= OTG_HPRT_POCCHNG;
- LOG_PRINTF("POCCHNG");
}
}
if (REBASE(OTG_GINTSTS) & OTG_GINTSTS_DISCINT) {
REBASE(OTG_GINTSTS) = OTG_GINTSTS_DISCINT;
- LOG_PRINTF("DISCINT");
/*
* When the voltage drops, DISCINT interrupt is generated although
@@ -482,7 +467,6 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
* Often, DISCINT is bad interpreted upon insertion of device
*/
if (!(REBASE(OTG_HPRT) & OTG_HPRT_PCSTS)) {
- LOG_PRINTF("discint processsing...");
channels_init(dev);
}
reg = REBASE(OTG_GINTSTS);
@@ -508,7 +492,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_NAK) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_NAK;
- LOG_PRINTF("NAK");
+
REBASE_CH(OTG_HCCHAR, channel) |= OTG_HCCHAR_CHENA;
@@ -516,7 +500,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_ACK) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_ACK;
- LOG_PRINTF("ACK");
+
if (eptyp == USBH_EPTYP_CONTROL) {
channels[channel].packet.toggle[0] = 1;
} else {
@@ -526,7 +510,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_XFRC) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_XFRC;
- LOG_PRINTF("XFRC");
+
free_channel(dev, channel);
@@ -542,7 +526,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_FRMOR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_FRMOR;
- LOG_PRINTF("FRMOR");
+
usbh_packet_callback_data_t cb_data;
cb_data.status = USBH_PACKET_CALLBACK_STATUS_EFATAL;
@@ -556,7 +540,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_TXERR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_TXERR;
- LOG_PRINTF("TXERR");
+
free_channel(dev, channel);
@@ -573,7 +557,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_STALL) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_STALL;
- LOG_PRINTF("STALL");
+
free_channel(dev, channel);
@@ -589,7 +573,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_CHH) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_CHH;
- LOG_PRINTF("CHH");
+
free_channel(dev, channel);
}
@@ -598,7 +582,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_NAK) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_NAK;
if (eptyp == USBH_EPTYP_CONTROL) {
- LOG_PRINTF("NAK");
+
}
REBASE_CH(OTG_HCCHAR, channel) |= OTG_HCCHAR_CHENA;
@@ -607,12 +591,12 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_DTERR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_DTERR;
- LOG_PRINTF("DTERR");
+
}
if (hcint & OTG_HCINT_ACK) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_ACK;
- LOG_PRINTF("ACK");
+
channels[channel].packet.toggle[0] ^= 1;
@@ -622,7 +606,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_XFRC) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_XFRC;
- LOG_PRINTF("XFRC");
+
free_channel(dev, channel);
usbh_packet_callback_data_t cb_data;
@@ -642,7 +626,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_BBERR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_BBERR;
- LOG_PRINTF("BBERR");
+
free_channel(dev, channel);
usbh_packet_callback_data_t cb_data;
@@ -656,13 +640,12 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_FRMOR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_FRMOR;
- LOG_PRINTF("FRMOR");
}
if (hcint & OTG_HCINT_TXERR) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_TXERR;
- LOG_PRINTF("TXERR");
+
free_channel(dev, channel);
@@ -678,7 +661,7 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (hcint & OTG_HCINT_STALL) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_STALL;
- LOG_PRINTF("STALL");
+
free_channel(dev, channel);
@@ -693,7 +676,6 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
}
if (hcint & OTG_HCINT_CHH) {
REBASE_CH(OTG_HCINT, channel) = OTG_HCINT_CHH;
- LOG_PRINTF("CHH");
free_channel(dev, channel);
}
@@ -703,12 +685,10 @@ static enum USBH_POLL_STATUS poll_run(usbh_lld_stm32f4_driver_data_t *dev)
if (REBASE(OTG_GINTSTS) & OTG_GINTSTS_MMIS) {
REBASE(OTG_GINTSTS) = OTG_GINTSTS_MMIS;
- LOG_PRINTF("Mode mismatch");
}
if (REBASE(OTG_GINTSTS) & OTG_GINTSTS_IPXFR) {
REBASE(OTG_GINTSTS) = OTG_GINTSTS_IPXFR;
- LOG_PRINTF("IPXFR");
}
return USBH_POLL_STATUS_NONE;
@@ -843,8 +823,6 @@ static void poll_init(usbh_lld_stm32f4_driver_data_t *dev)
// Uncomment to enable Interrupt generation
REBASE(OTG_GAHBCFG) |= OTG_GAHBCFG_GINT;
- LOG_PRINTF("INIT COMPLETE\n");
-
// Finish
dev->state = DEVICE_STATE_RUN;
dev->dpstate = DEVICE_POLL_STATE_DISCONN;
@@ -856,7 +834,6 @@ static void poll_init(usbh_lld_stm32f4_driver_data_t *dev)
if (done) {
dev->poll_sequence++;
dev->timestamp_us = dev->time_curr_us;
- LOG_PRINTF("\t\t POLL SEQUENCE %d\n", dev->poll_sequence);
}
}
@@ -867,10 +844,7 @@ static void poll_reset(usbh_lld_stm32f4_driver_data_t *dev)
REBASE(OTG_HPRT) &= ~OTG_HPRT_PRST;
dev->state = dev->state_prev;
dev->state_prev = DEVICE_STATE_RESET;
-
- LOG_PRINTF("RESET");
} else {
- LOG_PRINTF("waiting %d < %d\n",dev->time_curr_us, dev->timestamp_us);
}
}
@@ -946,7 +920,6 @@ static void free_channel(void *drvdata, uint8_t channel)
if (REBASE_CH(OTG_HCCHAR, channel) & OTG_HCCHAR_CHENA) {
REBASE_CH(OTG_HCCHAR, channel) |= OTG_HCCHAR_CHDIS;
REBASE_CH(OTG_HCINT, channel) = ~0;
- LOG_PRINTF("\nDisabling channel %d\n", channel);
} else {
channels[channel].state = CHANNEL_STATE_FREE;
}
diff --git a/lib/libopencm3 b/lib/libopencm3
-Subproject 3da3a4d157333f5ff638cfa933531f1a6a49aec
+Subproject 4864e9635d5ab4d20ac970f2d811de35d790ee9
diff --git a/sch/__Previews/pastilda.PcbDocPreview b/sch/__Previews/pastilda.PcbDocPreview
new file mode 100644
index 0000000..5b24c2d
--- /dev/null
+++ b/sch/__Previews/pastilda.PcbDocPreview
@@ -0,0 +1,14 @@
+[Preview]
+LargeImageOriginalSize=426000
+LargeImageWidth=500
+LargeImageHeight=213
+LargeImage=78DAEDDD4F8B5CC77A07E0FA285ACE57483EC16CB3F67E7617EE32A08D0613308EF1C81785D9F44561C8C290384AC0A385B90BC582305C08013B92208384155D8825610C8E1C88099C9CEAEED35DA74ED5E9D33DADEB78F48C783C33FD7F7A2CFD4E55BDF59EA66942030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FC52FD313E8ACFDBFE2774BAEFB3FB3485D71A363C5148BFAE3D7ED8F167AF3D46C87EA6E6FA7CF83B0220CF9B52B68ED9C7F38C65FB3EF37C2CD3E53900D731CFAFD371C31FE3B8449E03F02EE7B90F790E20CF27FDBBEE439E03F0CBCF73992ECF01B846791EDA8F5B6FF9CFA675EA5BFE8CBF7F2104790E20CF6BF3EDABBCF8F87755F1FA070F1E6CBC5D55CCECEEEB984B4BC5EB6BF7DBF5F9F6A93BFE489F237DAEFC3865C36BE9DEFBF8DE76EF6FEDF7112F6BC295E654FC1D01B8A6F5706976DC689D3C7A164E5F34E1578FDEB45FBF9C7FFDC1F3D6C31FC2E957BF0F47EDF7F7FF7BF8DCDBE679EFF3AE79BEEB7563395D537BEC5A668F3DC6F2EB34C773F1BAF4F771D4FE3EC2C75FAFB25E9E03C8F3E45FF7E23830E649FE75973DE7B32FE7CF75346BC2ECA809C7E72FF79AE74D36EF5F9A1398E7DCC3669E73779FFE38CFB9BDE4F9F2EBA6327FB07A1DB5F1F8949F3D595BE8B2FBF6276125CFF4FCF771C571BABF2300D730CF37CD9D77E3C39B8FE2F8FC756F7CBE4ABC987F53F3BCDBCF9DE66572797CBEBF3CFB32DC7DF22A7CDA3A79F13C9C3E6DC2872F5E87A3BF4D323B5C7D2E3D1DFBCE8F092AC71BF1764717CF56AFE95638DD7DCDA1B07E1133FCE4F1EDF6676DDACF97EDF747833CAFDD5F9E03C8F334CF8BB5572397F73F26CEB74FD53EDE4F97BF9E2B6677721CB1F775F1E5B149B3A83B4B8E3A163FE377ADCF9F7F31CFF67F7EFE557BFB8BF57D9AF21AC4D8EF2B1F9BE763F4F87C27DFAEE721BACFFE3F072097AFE18EE5CB3ACF9B5EBE6E9BE7BDCCEB8FD6CBB99854D06D5AB3AF3D76ED7E07ADF37BCFD25E70A1E91DAE34ABCFE7B3750EFFD379138EEFBD29CFF5277316B5D7998ECF37BEDFB5F1F9F673EEFE9F07B86EE3F3D00C6AAB1773BFF71792F9DF3463E6D997E4EFE43C4F6E335F0F4E1F239DE74EF277709BFCFA5A8E6EBADFC8F87E7DFF91D79565767A1C3135CF0799DEBEE7B73FF9D3619657EAEAE439803C1FCBF3B1F1629733BDCC9CB87E7E23CE1DC7B5F86EBDBABDEFF1E13A370F2AB99BDE267E1C1E6DCEF383F6FAC5EDD6F75B3CCE62CE7CAC96AEE932B3B7ABAE19E479FEFCAB3C2FCCB7D7DE93B8A650AA714F7F2FB5DA7A790E20CFBB7FDBF33AF24DBA3163BC6F978F5BD5C315E7C443755E7C9B79F34D8FDDBBBCA9ACC987F2F3D6D70786B7E97D3DF1BD497F0FEFB74E9E7FB13EEE91E700F27C429E9732A5560F57CACCC96BE795F16C3ABF3DF6989BF27D635D5DE9F584C5583EAE8B1FDF6B3FDF5BECBD9BCDD68F7DFEF9FFCE5FDBA79FADD7CFCFEFBD09B3F3EE792F8A73EC69B66F53731FEBEDBA3AFA74EF5C48F703C87300795EC9F34DF56BA52CDCAACE7CF918719CDF2C6BCB6226AE326F399E3E3A5E5FD665F1EA3EEDEDFFE61FD7D91F3FBAC799E7F0B246EDC6C75FCF73F1B771CFDB7FBC2CCFAD773F5368765A3FAFCEB717F2BCBA4F205D134FF23A9D674F335C9E03C8F3D2BFEDF3B9DD740F769B77837DD9ED658B31E9B3F9B8F5F078913FC7E7CB39F7642D381D0BA75FCF1FF3DB6635873C98B74E72F346FBFDD159B3DE83FEF05FE6AFE5FEB79BEBDCD2AC8CCF1F73B1383E0F4D751F7B7C9CDEDAFBD87CFC863C8F3F4BFCB93F7AD8B43FCB8FE1EE57DF848F5E3C0E776EBDCE8E29B2CCEE1D37A53B03E539803CDFC3F8BCCBB56C7C1EF3FAEE936FE6F9FBF2F2C3D59CF14FEDD7B5F5F3723D5C3F37D32CEEADD927FEFC5F17F56D676DE69FB6C70A27AD8F626DFEA337F3E387AE4F6A9EE5B535835DF7C995EADDBBFB956A1106799EF4A62BF68AB77E0E20CFDF729E77B7E9C6E8C5B17125336B7567CDC87A7B55A5263D77B07CAEE3E3A637BF7F95F3B814F7AB25797EF2F7A19AE7E9B83BC87300F694E7F93AEF20CFC38EEBE73B66E5C1F235ACD7CFD7664FDAB1F8657D7CFE67176F7A356BDD3146A9AE6E9FE765CBD7CFF3BD68B51EB8C5FDE6CDB047BC3C0790E7BD3C2FF42909A9A9FBD1DE82742D7FDBF5F3FC71620FF6CF9F7F355F0708FD0E706F25CF435A37579B2B28BCCE6EDDA2B756A13F1C803C9F3A3E5FE6CF5FB49775BDCAC2FADC9C3F4B9EA7FDE4FAEBE7EBFAF6527F99E21EF6BC46AED6B3F6E7CAF3E4358EEEB393E700F27CC27C7BBC2CF6840BA5F9F63DCC41EFFA589BF69F7FB7EC3F371CCB0F9FB35F7BB7BFF1796D6F40DADBB5D7033F343B9FDF559E03C8F35DEAE1BAFD6A719F5A3CEF795CCB8EE7408F6BD3DD394D66F7E2F56FC2ECECEBF6FA9783D7975E7F9C5DBF694FD8D4DB7663F975FD7C3FEBBB5EB36F7BFD3C3E4EB74FEFA3797FD9B85FADF5E255F8E4BDCFCA795E592B2F793CFBBBF6DEFF29CF01E4F9D5EADBC754C6C54DD6932D7EFF617B5C70FE69D623E67CDD23E6B3F3458FB6AE1EFD7CD6BF6DBCDDFBB3F57945E3FEB426ED09D3ADB167FBCFF3FD6F6F73BE3DED8DBFAA6FAF8CCF4B6B20C6E700F27CDF797E90ED57EB55A9B5B7394CAECFC7C5C50C9D50E3968EB9C76EDBED035BDD36EF1F3371FF5BAD3FCC566B05C97D63DF9E7FF8EA9B5596C7EF6F5E2CCE4D13F7CE1F3D5AF69DE96AF41F5E2EAE5BF6E019ECA197E700EF4AA687ADF37C629F94C16D936C8DF3EEC79F2ECF25FEF1457FCCDBCDB927E70DCFE7C54B3D6262AFB893A7AFE65FC7CBDE7FD1EFF3D2DDB7B4F7BBF791EC599BB2BE5FCBF5ABAC9FA7F5F7AB3DE8D99EFEC1B952A78DCF4321B3E539803CAFE6D3A0374C3A56EEF2A9199F6FAFF68F295C7E2BA9B1DF66AD3DCDCA6DC6D5B53CBFCAF83CCDF3F43D5D8DBBAF9EE7CDC4DFBFBF1F00BFAC2CDF2ECF37D46015C7E7791F94BC174A3A3E4F7BA39F3D5BD5CFF5D7CF17F3F3F335F1CB758F98BB4F7E5C8FCFFFAD097FF562B87E7E3C1BE6797C8E742FDBA0BE7CE279E0F65D0F77FAE255F8CDD9EB70F3E20FE1E68B37F3BE37DD7CFB5F77F3ED4FBEEFCDB7E73D71A22F8F633DDC7F854A569B6F077817D7CF27E4795ADF5ECAF3BCB7D9F9F97A2CFDFDE5AF57F9DDD5C7CFCEA7AF9FAFF6C06FB86D69EE3C1E239CCD33F5F53C2B2FCE2EC7E7DE9BF2B957AB7BC76BD725E3F3FCFCF2BD1EEDC9F30EFAE1145E4B374F3F32DF6E7C0EF0AEE7F92EFDDBE31879793EB2A3D9FAFA786EB1FBDF35F35E670F1EFCBE90C94DB67EBEB9474CACC5EBCE7DD6DDB6B67E3E5B1E7FCC66EBE79954FFF716F23CD6BFDDBEB83DEFD13396E7B5CBBA39FA9BC9BA877A3800793E65FD3CBD6EACBE3D64EBE787ABC7BA988F8D2F7E58E47A3767FEC1BFFF4F08BFFDC3567BCA77B9EDA6F5F3B19AF67DA98DCF37F6B89FB0075D9E03C8F3B1FD6A69FFF66A7FB8CAFA79B56E2CAFF34AE7F097F5EE5BD59A8DD5EA15EBDBFBFBE60E9675E7DDDA7B7A5C1096F300715C1FF7BA1F1C363B8FCFF3F762EAFEC0DACF6A7C0E20CFA7E679D7BF3D84D35EFFF6625D76D65F7DB42E7CA9EBA5D234E33D59F7716EB3EAFEF3501FE797C6C4EB79FE729EC73DF7ABB586913CDF572F7BE37300795E5D3FCFFAB7773DDCF3F1799727F99831CDF1EEFCA65D3FB7380E9EF79679FC7DD6C3AD5CCFB6F31EB1E49C2BA3FDE156E3EA50CEF33CD7B71D9F27FBED6BFBCFABF3EBCDB47EAFF21C409E8F8DCFD3ECA9D6C355CE11D6147BBA54C6DF8531F37C1FDBECCBD55CF8EC78510F3F25D3CBE744ED3F77EFBC6585F3AB35B52CDD65BEBD353F8659EE578BFBEE4E9FBE9AEF5BBB73EB75FF382A7B04F57000F27C1F793EB65FEDE8789DB3F3DAF252BD5A6FFC3BDE43BDCBBDF871B6DCA77DDA66DF511CC7BFB7DB5C7CBEFF3C3EFEE7CFBF6833F5D53CEB0FC2B07F5CAFD66E1FF5EDC97B92D6C2F5EADB933C1FF4DBDB6EBF9A3C0790E7E335D7D9F8FCB0723E9626FD9C8D7F4B3999D7ACC5EFE3D879518F97CD9587CD791E6F35CFCA8383E27B33FF1993B17775FDBC52EF97EEAFEF9DA33C9FBB28D4D0A7E794BF6A9E9B6F0790E7F9BFED715F745EE336D6837CB8F7BC29F7496D9A8DE3F3344FBBBDEADDF87938765F9F3BED46FB7ABAD7F7ABF6FB9B8F5ECE7BACBDFFDEE370FAF49BF0C1ADD7EDED9ECD6F77B3FD1CAFFBEEBDFBE1A4BD2ECE57879FD6AF33AD711BE479A13FFD6A5E3F79AD379A66B4CEBE49FAC40CFAD34DE8CB53ABE597E700F27C97F9F6C19831C9F3C1F8BED95CBFBE9A133F7BD6CBF738E66D0AC703F97394E6145663FB0D7BBBBB73B5D6F68C8FE5F9EAFAE56B9D7A7E977D93E700F23CCFF35B853FA5CBF37D585DBDD7600FDBF2FA749F5733B1A74BB5962E3493CE75DADD76E36D0AB56FA53CAFD6A98566637FB7A979DEBDBFAF8F3E0C8FCFCFED570360EB3C4FE78237F93066FAF2B9D675716F8AFD66AA63DFBCBEBDB4663D722CD0247D68B2AAF045BD5E32F64EFBC5ACC6FBE93A7FA8CC676FDA473652E3BF6D9EE7EFFF22A7837E3200F27CEB3CEFB2A4DB779EEBF52A2D8C6F9B42E6C5CC0D5BBCF678DBC3B337D5F17779EF5C564796AF856F387FCBE19DDFCDFBBF1DDCF97A383EEF6E37363EBF629E8F1D47E5E756CDD7E6E53900A93CCF4F1EDF5F88E7EB7C7CD95E7634EC3D5ED8EB555BB3EED5C755FAA834137BA80CF7A285E2BEB1EE673B3E5CE7F941E57C6C0777D67305A53C5FDF67BF799E1E4B958E9D06BD67AC9F03189F97FF652FCEB58F8DCD57F952E8C592F768EBF6724DCEF3D094FBCC6C5A732F8CCB4BEBE963E76FE9C6E9F339FAD9B287FBE1F2DC6CF11C6EB3759E1F2C5F7FEC7D17D71CAE92E7EB63A8DBC5E3A7529E5B3F0790E7F9C7B6F570F1CFC1607CBECEECB8772BDDCBD5CBF3D298BD365FBF63BD77B517CC94FAF77C7CDE0CCF37535D431F999B18535BE358F59DC9EA0ECF92DEBA00C8F33CCFB73D975933617D79303E2FED79CB7BD03459FDDB600CDFDF9F1D8F1FCEBE5D645D1CDF9E3E6DC2C5C3CBF6F55EF4EAC7E25EF4D80BB63BCE682ABD637A7D57F7F0FBD874FCB129CF37CEB76FFFE1EF08C035CCF36ECEBD36A75BDCE7DDD5921DAD47AE5DD6763DD44BE3F3586BFE9BA3D7BD3E6D71CE3ACFFCD5CF329BF57BD42C8F179AE59839ED5DD314FAB6D4CEFDD6DDAE497BC6657BCD7BC95EDA9B36B1BE7DACF7DE60FD3CE91F976779FE188B798620CF01E4796F8CDE65473A0E8FBDD74E1EBD1C7C9DCFF7A6799E5EDE8DCFBBB9E29B511C433FF9317CF4E275F8931FD679D92CC7DAF1B9E7E3EDD8C3FDE9627EF9F287E49C25DDE357F23CDF0F5F7A8FF2B9EB901D33E46BF2BBE6797E7ED9B4AF5DBAE7AC54E3DE5D5E3A47ED8EEBE6F21CE09AE7F9D838BDAAA9F729EDAD976F33379DAD73DF5AEE752FF675D9D4E37C9B35F8665ACFD5498FB3E3BA7FAD7E614F35EDF21CE05DC9F342CDFBFF973F9B7ABBDC7A47FE5C31C7E539C0BB94E73EAEFB87BF2300F2DC873C07409E5F872CCC73519E0320CF65BA3C07409EFFBC79D8C8730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060AAFF03B0C35805
+MediumImageOriginalSize=107000
+MediumImageWidth=250
+MediumImageHeight=107
+MediumImage=78DAED9D4D6B1CCB1586EBA768397F21F905DA66EDFDEC027719F0C6830918C75CC917076DFAA2306461481C27E0F1E2E2856341182E84801DC910616145176259188323076202953ADD5DDDA7AACFE9AEEEE99113CF3BE6F18CE6A37B3EFAADF359D5D65A63010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006C0A577111F7EBFE331EFF77F41A2BBC57D3B123C36F6BDB37033FBBB60D137D26FBE55CA011E8BC973E5218633F6D9A1F53E76D5A87CEC126EAFC4B1A4FAE62BC82CE01748E0B740ED6A4738C0BD039D81C9D43EBD039D8209D1B77B9B1E67F5D71F00DFC6BFFFE8C31D03918EAB757C7D1D74F54E8F1A74F9F763E4F85B4EC6FD3F15A223EAEBD6EE8FEC6C48F4B7C1F7C5FF1F8D5F15EFC774FDFADFF7EB5DF83EEB366251F0C1AD9D03C1C3FA6B61C3B872766EFCC9A9F1E5EBADBE7F9ED5BA78E830F66EFF9F766EAFE7EFCAFE6BEFBEA3CB81EAAF3A18FB5E95743DBB6A6E5B66D94B7B9BE63E831FE7B4CDDEF61BE7E518D01D03974DEE35717ED061D67F16D7F4C2EB267F9BEA69935D9D49AD9E27C549DDB287E907C88FCF83FB0F9F1BFFFEA637EFC8FA2F3F2B655FC8DEA7D68F63BE5B3B318C56B7AF7AEA988B51EFF1E2BDA7568640375DEE5837B7B72FD90ECF94560CF2B25902E5275EEEBD15C47EC7EDADF2FE6CFCCFECBB7E6BE63E7ECD4ECBDB2E6F6D98599FE8669D9ACEE93735B998F15CA3844CF9B2E4FAAF774C3EC0D8F5D843888B4BD73B4EB3EAB75D7C7EEEF6943E7DAEBA173E8BC8FCEC59C4FCBFDE125D16F4FC56DEFD3F15739A2A6D9F8327ADC5D8E59B6C877B1D1A8F88CEF1C8F4EBFCB35FFA7D3E7EEF9CBFA35568E65DA7EAFD896C7369DF6B7F3A6F65BFC358E73D09738466C3BEE6A9DDB40777D751E6821B4EEB25E58E6AE2B27A06D5B7BDDC4B17878C27BDF8C0D86315B5D2FB25A9F7F5CB898E5E1A51C33301F477B9FDC9E777EDF9A3DEFEFBBE398DF347B6E6C23D75BF8908F0B981FC98FBD5C134C97C93A67CFC9E34DBE0DEE2F335D369E133FAEE9ABEB752DFE40FDFA96F71569998F2FA93A6F68DD7DE7BB777FDCD4B892CF83CEA1F35574DE665FFCF1176829313EDF221F94627D1F0FBBD7CEB66B3D4D143DF2E7D0657BDAADF3897BBC785EFDBA623B85EFDD96C3B35E4B41F5CF36741EEFBFD2B9E0B76BDF09C52652CE9DFF2E5AAE1F3A87CE537FF338AFDD85B731F45AAF9B5E7938D1B736AA7FDDC7FFEEDA7670BF55627E23EF578F339ACF096E277E37FC77B8E9D839FDAE1E0FA1733082CEA5634DCBC3495A4A8ECD15FBC7FDE4B66D76E9BE339F27BD1F53D87E8ABB670FDDF5C3A2469865F5B6178FFE93BFB7FB0FEAF87CE1E2F26CE1F7BB147D75AEF93E3500CAF3F9BC3EAFF1195E9F80CEA1F3813AEFCA9B491AE995F72EB7417E812D735AA4954A0BA5FD9DCEEAFBBC46ABD7B8E7FFFA0FF5984017BF9D5C9F656E6CCBF9E2A4976FA936F7F773D947F79FC9D841F1B9EAB70B3A57EB163CE6663AE6FE3AD736740E86E83CF711790DD9E9A0515776F71536EC24B773DBB3E2B89C2D4ADF9DC59ADC76F2DBF936DFD8CA176DF8BF4C4F5BEEEFE9DCD635F4833FE7EFE5F19BEEFC1AD710ED9FF422DA7363D53A3C6D2788EDDBFCFA0E9DD367A1CF7DE7C0BACFF2D1EC3F7F6DEE9C1D997B372EA2B126D272309EF20A26740EAEC09EFBE33DB2E7A4E3FD97AF735D9E1FDFAE7CCF4FEEB6169FCB79B8504F5CA3414E80F1B3BF1479B5B91B0BF6DC18B2E3B843B582C3CB7C5CF1FDA2B1C6B5D863683D4FCABFFBD749B98E86CE592F9ED84B8FF81C7C669DFBE7789B2EDA52454B5ABECBB6C4F32A4A8E3C6652EE6BE67C131E27AC32FF45ACAB319DEFFCCEA83AE776DA40E7E08A741EC7910D9D9B81F1F9400D4DCAF750C7E735D94B67BB8F757BFE93E565902BF3638F94CF1B739E5B1C9FC73533AD1738753E0D740E9DF7D2B9D07F6138A975B335C073057DE3F3783BD4A3FEE8F4791E4F98B0E36D2D3AE77DB4AA6F21BC4F1FFF04310FFAE1C058F6BC3C2E7FEEEEF3BD59A69E03F95974CEFBE7C2F8BCCEB74B7D335AAF79104F68BDBB9F4BE7EC3DB6D603A1733082DF4EF7510F9C91FCF6117C59BB62FCABD5CFDF95FD764DDB2FF7B4ABBDBB2B7C56AD5621AED3116BBDE77EA173E87C1D79385F57A37A1ACD3BA75899E6A053ECEBE782640FE9F14B93CD5FB8C7CF1BEF8F3F3E8B1EEFAA5DA53ED7DBFE3A9F1F8E01BEE776DDF1B99F67EBEB6A7B675457739CBD3577AF3D9075DEB6B645C451F65BF7EA7F40E7D0F97AF3ED6D2876D4463D68F4F76D375E2CEE47BD2F8BBAF7E5C1A2E849F3F9F145163E979E7733ABE76F521D2DE875F1317C543F8FEB74EBF4DBF9DC812ADFAED8732996823D0757ADF34954578BD75ED9668FC77654D456426E8DDBE8B6E7FA7A55634E9A69EFA36D9B37DEF02506E89CFA917EFFFC75A571FAFBFAB298D343B5FFE961D94FE36B0607C7C563656F51A307003A07F5EF39280F97DCF72AACBD42FEFBEC7E3997DBF9F3818DB4616F6A15BB9A66FF0BEF7DA1DEB89D576FF3DB74DFCDB3B07FC5BF56AA5D0717565B4BC91F687A5F253EE7F580AA861EF52434E6A4A6D9732368193A87CE93742E1DB7D25A6AA1DEEB6356F3DBD5BE18E17EB6EE61AF589E6BA88F1DD674BE8A3DE73A97D6761C41E736F1F7873EBE2C8DF7D37947EEC7B6AC651A58CE603B4B51E7DBF3932A6F17C6E7859F9FC7DCC775EFCBFECB8FB53DFFAB35BF3C6BC6E7B3ACA973DA07AFB925AF4BBDE63CDCDED95BF3CDFCC2F9ED3F389FFC32EFE7F17EFBAFBCDFFEF27DE0B7C7BD3EC4B319E5E1FE69140DC36F477C3E48E73CDF9EB2A6E36251DBDEF7C75F55BAF6F9FA6C911E9F37D6B648585F86D7DBE6B9D62E720D2DE7C7ED3EBC32C755AD7D6B8F317B1ECFEF0F7AD8A3F564BB7C2CBEFEAEE2B7C39E43E7ED3A1FD2DF4E36B59CDF35CDEAC769AED6E37736EFED7AFAF47B41ABCD3563BA7A5FF83A31FEB95A7C9E95E35296D5FB49CA3BAE41E79477DB5DEE56EB42693AD7EEABD6DD65F113F270D0F92AFD703CFE4BC9B7C76BB16F57DB5AE6B674F9A1D0BBF7BD6FFDEDDFC67CFB43EF351BC78ECF6DCFB55987A0D9F35EE78A405D0DACA91FCEF7B6ABFD704A7CAEE6ABE2FC128F05CAFC7BDF3E39354728E6DBC3FADEA4CC83FBD83E5897A6F41BC80FA05AFD64DB0EB6E7F1773174DD77D87330B6CE7D7FBBA1758B586C2CE689A3FEF3D63C7589EF1151FBD1469C2BA6D6CF4DCBFA53C2FBA8E30559E7D43350C52C2D3A1FABD71FF61C3A1F1C9F47FDEDBEC73DB6E7FE388B6D0CD7B79F47EAFBD7C86EE63D3347EFA39E357DBD643B50277EAE4A6B3F5C65878DACF358EF7DEDB9B0EEAB787EC43EE77483DF0ED634FF5CCDC32973AEE45E15C55E0B3636AFB795E76FA3B1219B15F9F914ADCB734FC37DABE7799174BE6A1ECEE1CFA7427535AA0FEEBD7A9BD7D7A475A36CCB3964E1B783AB9EC742EBAF78FDF1F5E11AF65798E32DFACEA51EE8322FEBCC7B4E13741EB7E9353BF87C2FBC7ECECF974463C0C434FBE5821CDF18F976F69DC46B46555A96D690E938872CFC763054E7AD39E0C89E6F2BF3582CBF8EECA5A49F3857E6D79D2AF28091CF9DB06E0D3D2BD7D064A29ECB8CDB6ADBB63E74477F4030473CF675849C3E9FD3BFAACEE1B783BEBF395FEFD5E7D6DA7AB49BB573E53C43527FB9D17B607DADDDDBDBA6ADAFE7A2D19ACDFC1CEDD70FCFF39EB29BD78E9C5FFCDADC723EF1D43D4ECFBBEEAEE9B177D71E9B1DF718F9BDE6938DD6755574AE9CC3398F0FD87BDD8AE7BC46797FDEEBD3E8C74BE837D26A0BD03974BEB6F96AF1BAE7C6CAFE80EDCEA757BEF5FC24D03DD948691E4ABC0FC907A97C818EDAB49F13ABD5BCDB74CED7AFEF5AF3651DF976D8733054E7A9E7458EEB45FCBCBD41ADAD7C9CD7A3527B55D41C9EB1C96BBF6AE76F92EA7C46EAAF89E6E988F931633BFBD95275EEBFDF8BE96D73B458A0AE063EEBF9D56E97EB46D26BEB7CDCA5D847A3DACA38DF2EC5C42D6304EFAF89CFA99CE70999ADE67D30957FC0F30846F18B13D7D1E8CA1DA4E83CFEFE0BFD1AF4C980D175DEE77CA946B08756D0823FA778728F683E97EDB2751DC7668D4F3F3752CABC97ED7B4FF27EB7C9BD174D7BAEACA3D138EFD40A3A6F1B5FE339AC71EC0F9D833EA49CFFBCD19B2DD4A4B49838C8CB29FD2136B137A459336B3F37125F1F76A2CC6F9BDC7BD23CEF6B3C46C463CA083AE763AC34A66A6B5443E7A0E72F2EFAEC5DE73ED77A4CE29E345F734AD679CB39CF5A637AE5DC487DE6BD78BB9EFBFA59D9E3BE5DCE75A3397159747EA8E85C2E43755E8FADBBE2B82AE91CF139E8F99BDBBE7938FA3769D8F35ACB5463E2352723F58CA7F8FD03F3CF6A8F4B4A3E3EB6E75DEB6874D9F384DF4B8B95AA7E9A28DF39673DC6003AEFABF3BE73C36C42FCDAB0E7526D2EEEADB1C2DAAB81CD0FEBCB5BE51A12A4819D7C2D166B9607C7EEFD2E83BC15D5D2A927D68F3F5A4F4CD07F3AD2BCD4AED8BC4DE79D7E7BFF0B34B2813AB7CADA0BBC36DDA853FB1CD6B4796E14DF632ED973CA7D7F33BD08FAD266B3A63DAF3E4B9685BD37E53862FDF912594F8ED48FA2CDA5F3CF0B7AE4A25A79A078A986D6E31C735AAF61233E67FD72B1C6E36D147E8981CEA1F35E36DD1F53DC6E53AFD9CEE179E376EC37729DF3FBBD3DF73EE7F572AD33EA5DBF7376617EF4A1D6912D6D33ED3BB7CFD4E3FEAAF0538F3FB0B91ED6B6EA3CAEE74BDF51EC039B682C8963FEA13A8FE7F1F23E3E5E1B9372EE6D6B460E8CCBA1F30DD7799B5D4F59F724EED70CE2F13E3E6E144757E77894FA55BA7AC0AD1DE5B3F4CA17AC9057D0F22323E5D8A173E85CCDC1FFAFFCEBEA59B9B121FF56D437740E9DE3B2391768043AC7053A07D03934D2D40B740EA073681D3A07D0F9FFB73DB4D039000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F85CFC174F29360A
+SmallImageOriginalSize=38400
+SmallImageWidth=150
+SmallImageHeight=64
+SmallImage=78DAED5DCF6B1CC915AE3F45C7F91792BF40D79C7D9F5B608F015D3C988051CC8EBC38E8D28BC2908360E328018F0EC107C582302C84801C49B083859559D89585313872202650A957DDD5FDEAD57BD5D53D339266B6DB94A735FDBBEAEBF7BEF7D5AB1AADB5D25DE94A57BAD295AE74852BB7B1B0D735FF2957DCDFE418CDDCABAAB990C2EBD2F955CB6797CEA1C833E9F559EE33AEBC368E95455C2786B145E22A86AD0E57EBB5DC067E6FE3FDE870D52D6BBE2C1B571D0E3B5C2D13571DB63A5C2D1557CA2C0F97FCAF8EC73CECFEC5EB4F29B522B8B24B79DF5FBE140B6C3F3A3AAADD4F2C801DB70EF5531476BB745CDBEB2DB2B8F7005F035F8BBE2F35F7E2EA1EEAD6D5AFD41EF09D5673F9985BE3EDF819364C199E5EA8DD9956BF3CBD31EB5776FDF1A529C71FD5EEC9B7AA6FFE3EFC4F78EDA6B8F23EDBE2AAEDB6185EA4229D5BC24EEC1CC53AC6132DB00DB747DFB487FAF27589B97B8D2BA5D9F7029E8BAEBB3A1867AFECB5FA9956595FABC1F86AA1B8D2C41F7336D2D6F7B1B6F5BDF7E693ADEF85E0AA58D7823D2DEF43B24F29CF8E7CBEC3D0CE5355168A2DDA1E73DAAD5BC1559D4F73EFCBD629D8AB6BCF5E95350FED908A2BA707E17643DFC3F57E337AA5F6CEDFA97D5386B34BB5FB46ABEDD9B5EA7F83B0A3E6F771D816586C0AB887FDFA938BF29E1EAADDF65C80E11580A5E1D98E79566D3EA7E6EF7E802BE9F8FB8E2B962346BEF797443F985ACCF93E4FBFB085C510C2F3C27953F18EE89C1F23F4E7CFF8DE9417977FB118FBDBE589D97F521DA3796E106B2F6AABA8CD82EB0D7FACECB2FB5C853E45EAE363CF59E14A7BEDDC14575EDDFBD68B6F1FC4F4EB389D746EE9B89E29E3830BACAD2BEDBD36BAFC1C67151EFE3A361CE0E086F7C1C8864BF789ED556D7D4BF6AAB92F5CBEBD523A8845729B7C98176497F1B3DA36403848C615DAC7F2057C0EEC7F100E827DE876A93DEB8E8BD8BBEAF8C87D11EC603CA7E22AC096A9F39DA73F0F3125F0FF55C355ECFD71CFEBB55D22BFDA009B0E5CCDF11973EC60B36ABF9ED0FE781F5836FBF5B8EA99EDF97ED571F979725F16E3FCDAB59DA786E80057F4FA25AE183F28D509F87A2E26C4ED22C5A2F71657448794E25D2E3E81635D3B35E2EDACAF52A2BF6AE2CFEACEED7DAF05CEA6F8EBCA7E3BDCC75B4FAC1BDC0E8F4C191A0EB7C5C5132B842BEED924DECEB55D32B712DE6FEC7762E7ACC3592DFFE7EE47E5B60D78D3E0C07C1EE49A499655E71EBFF89FBDB7FDE715BF1A1B5E958DDD7527ACEFC3186B12A3425CE0E24EAC79281C3FAF10AEEA7836D7268DE2B2E21C60F774C181A16DCABA2FEC4B7F507DE730511E63F6FFFD9F2B0CC2E2CE63F15070E90DE3DBA07DBE06ADE25F57BCCF73CFA4742B7E25FA410657625C8D3913C20DF67F184BAB822B6B73B18663EA3DD075CC77F93B7A61DFE3CD415E0F8371E10B1157C0B601AFDB739A78790BC5C99E1F41EDB761FEEE8F74A5611DFFDDDECBE18FF57C1CB7195C1FDA87B5574A8B3A189CC7E366313F59832B781678EE2786CFED9F7F527B276FD593D9997AF6F09A609B60C77B7FB1A2B3A6F6CAD52FB157809BBDF3B7160757D3EDD2967F36EB12BFE279BBDF7E18131EA743E557FFC879F8C8606FD7607668CA1388654F6F2C8E5DFF07C594E4CBDBEA1B5C7CE88EE3B86A802BA4F5B37D912BCAAFE6C195DBC7D92CD656086D27F1631DE163621162385A7AC5B506C6F662BF3B4F7F35AB33205C0DFFA8445C613BA4D61857940704B8522DF955CB36EB15F750F1ABAA64E7C6364D657BF58BC98DC7AD1DD639FEBFC83C08CAAFA88620F56DA5F67FDF7B5C317A9BC22555475842C15CAF29BFA2E7813EBE179727D63F2B5F515F0AAE70BF90683B99FB747CC2E310ABA4B7537B55D4C3AFCD774EFB55554EC69DE00AEBF33EBFAAE2414E2795FAEA3CFF2CF545DD15AED03D46F59155C315BA5FD0D815E70717E01BF49CFC45D2AFDE177A7E68DBF83E41B12F6A8E67956269362F9262ABE175D785B73B9D01F405C8BB02AE033958C05D5CDF6D7600DB6F54367A6DB65F05F787B70FC8F6BA583E755F67DBAA78D3C79CEB435A36BF72793F4E67D89D81CE60CAEC9D7AFAE0398FAB582E212967D91FCCD13FAC5F3C182B829DD044E386BFB70D3EC7FB44EB1C575AE7F371AE79BBF86D9CF9FBC27E8FB22A9F0474054FDB741C8CE85754B758A61FC47DAF653C28D82B8E9BACB3BD72EDD1233A03CDADDC44DBA99D60DB32818B631B14DBD7C5EF41CE828AF70BC5F2A6025BD90257A03FFFE9E46D8929F87B6B92F7C183F6D63F2DF45317D31E4FF36D85961C6870B78FABA4790F62BC3DB91F87C9AD047F38D82F72998C7FF46C80F6FB5A4AEEA142BD136B9DA0BD0FDFBCB3EBF0DDA399AF57BA6339EDC85B90D690C2FF247CCDC3AF70BC5A6A5844130C7264D2EC954A1C1B7A2F70C5D513970BEEE3ABAA23C90F8A3A28F33D1A27D0888BE1366B6267245CCD63AF30AEB8B1100BC0954E6CFF7931D50C57355C5147C69A7896C13BCF84C5D5E6E8A2E4F93EBFCAFDA6E54CD34AEBDC3BFF54D9AB7F6AF5DB59C8AF0659882BB806D62092C7A92D99B7EF1ADEFED5E8DAF8C1EF8D8FBBB1FAADF383BF737EF0FC83E707A9B60BE5D50078FBBF55C3B1C6B7CBAF127085E3C1943110E371655B3E4CBF2871E4E2C96C9CCEAF825CC284FC51AC3F8C6CDB5EDB369B8CA6719F28E4DC88DA93B40DD92B9ADFE6F50192F13E753E048F8F12FCE0B2EC557B5CB5E91F049B51F4FFF7B36A3BF4E51FBED7563B3E3AFA96C14698135AA775E23C50B7AFC4AFB2E23DC8B2EA3A4971CA1270053C7D67B253E6194BB892BE2BC745213EB26A7A3BF6DF29F1201D0BB8599E6B626DC5E4638E2FE7CB1E7FF75FA5BEFEBEF1188745F3ABA66367DA14C95E351A1BBB467ABBEB1B14F576815F89FC96F251EC5B8BF8B0A90E2FC6146C3CE8EB1DBD224E73DCCCCB3B2DEC22D839D0CA7A9BBAB5BDA275D176DCE14ADBABA2B8FE410579B088DBB0710CE9BF8BC65145719AA0A8772F309740D4AF54249F99B98FCAFFF2B802CDAEE400115C2DAAAF7465EC1579A79C36CCE533B8E7A2EF10C693CB6B71FA38D805AB919E7D209AB83C7E4AB76C17D7B71CD5DB4B3BA3785C517C35B557CCB81C763E8F267342AC81DECE8D9348C9BFE2B549C11E3136C4EA0FC5FC0F80C56C90C78F49E3C8D85C18FFDAE2386A0E57F3F27653DC7865D019402FD9351C13F4062E0F5947E6D859073F58A733407EA56B6F9CDF1ED81726C789F54545FDC3322A749E5DD306300F44FF816E3D9E1AEB5778FC3B60AEA7423DDE8B0916110FA23AA139C82576B81CD19A397656C90F46631462AF369538B76BF549EC01D75E945BBB3CE63C6E203E2C212F15F6B26DD6EB897321605B141D2F56A3CF793952D496333127CE699B1757ABE007F1781CC7C5637D5CA176258C1BE7FAE794DCA7E3B42E674F425B56E52AC0182E3C47D7D6E995D5AC1F3D38337EE6AD7A6C7C4CDF6C87FDB6CC276C7BFFE0500DCD36F023EAB326E36E045C09732A597F8BEE7583E6E090B8146BBB81DE9FA02F4BB1EFDA8D1F64DECFC0DEE9FA78AFF455A30B0F676003B87E637A0DCEC696B6AE461B72393A92E694345797D2B5399DCB88075789B7A7CE5344E3673C8F8EA73D14DB717C9EAA4D8A9C5FE9E4B139D2787C4EF7509C9E9A30C79A9447DC0657AE7EAFFBDBEA6C3C5E0B9DA1C9FC0CDBC5380B3B5F5FC9DF6F58DD54B405341EE4384D0493584FA5731CD9B802D922AC7B96F60FF340A5E539D612F216EBB85F0AAEB8F945693FCF2AC6834DE79351CCFBAE99BA77734A25F779D85C879BE8B88750F390C7BAA7F4536F3E7B69F5F4DEB3D7A1BD12F216837904E6C05593F9452977BB83BCBED6F3AA49F35F057D5B4C8C2E711A8FC70B7AA04ED402430D213ED61D8FDFE909F90FBD672FC379712826298617802BFC4E4B73AAADCBBC6A9CCDE2E629AA9BAF0FC7E0C9B88ACC9910E564C258F726FDD4CE6E9573C9E8BC5FD0E64240CE4446C6FB93B1D26D71D5667ED115E057ADE617ED05F6AAC20EC4DC3806575C9F5B8A1F6D191F899A664ABC48ED555DDE629DBD4A68AFBA7920697C34BABBF9455BE1AA69EE804EE01F81BD92E63CA7F1BD12F44932978FC331E4EC419D0F6DAEA55693E3A9B9DF89C77341CBC2731A4B1AA8D79FB2A03C99A43920DBCE2FDA7CB977F3B753BF57698A558E1D9D931AE30A62B3AFFAD79EEE3D1884F6AA7C962CF3B5D602B7E5FC1E4883E5F44729D7C2EDA7C93C5358A3F210C6690A0DE6A890FA32027E25CD2F2ACCDFDEF2374DEED5EF4DE0756A8731AEF0F7CE5E391BBE55E46A43DFDF93D9B5FAD9C7AADD74617BE0DAD6FE401FE19BDCEE4F3FA2BE593C6F0C832BAAA77175447D8A22D80DE6A66C892B9A5784FB09B056109B5F54FABD89397ECBE4767F7F50E966396791FE074D7E1726D967101E54CE49C2E993757D685A2FE4591AF1BD3978A1389FDF0AFF3E8E1423DE9BDFB0EA7E036C1178BA5B5C75CBBA2F1DAEBAA5C3D54FA74D68FB74B8EA960E5B1DAE56A15DF44F08575DE94A57BAD295AEAC75F93F88DFF93D
+
diff --git a/sch/__Previews/pastilda.SchDocPreview b/sch/__Previews/pastilda.SchDocPreview
new file mode 100644
index 0000000..4f67b5b
--- /dev/null
+++ b/sch/__Previews/pastilda.SchDocPreview
@@ -0,0 +1,14 @@
+[Preview]
+LargeImageOriginalSize=708000
+LargeImageWidth=500
+LargeImageHeight=354
+LargeImage=78DAED9DF7531CD7B6EFD75FF1DE0FC7BFBE572F56DD775FBDB2EA9C5BF7C41B6C1FFBF8C8F671CE926C454B560E08E508CA0109211042398390909010A0441219091008112410889C14EC735FAF8D767BD3F4CCF4C084EE992F559FEA999E3D814EDF5EDFBDF6DAAF8F1B47878E1E1FC1EBDAFA19336799BEC6F06BAFBB782F00203408D679EEE9FAE32FF82FD0EFC5B5D49EFBD389E7EAF8F73FA0673FFDC708783DB7317B8DE1D7649B7BD5B5742BB7804ACAEF515DE3234ACFC8A2CC1BB7C4BA9A870D74E3762E1597DDA5BB5535E239BFA7B4A292DABBFBA8BBFF99CBEF00000417799ECBE77C5EF392CF63B934E28BEFF574FDF117FC17E8F71AB731B0C7FE74FAB92ACF4F3E67BDD1F3E8CD5BE9AFE3DFA7F3172FD17B1FFC8DFED37FFACF346FC122B18EDB5EB874457BBE90267EF73D25A75EA484C424FAF56FFE892297AFA4AADA8738EE0070D03582D7F13542DE9BABF8EA7BA1E7007A3EFAE3488DD9F93CB5AAE7C6F57C9ECBF35DAE4B3A7C548BDB1FEBEB56AD5927627A1C6F00384FCFE535627D54B480DBC8C7D073E839F43CF8E7AABCD7F6363EC7310340F8E8B9BC26C87B7679FFAEBE063D879E43CF837BAECAFB6C799E42CF010032374D5E1BD4781CF970BECB87C3B5147AEE8F7B6FE99979A3E76BD66DA039F316D0854BE9B469EB36DAB52756F4911BEFD963E3E2E9DFDF7893E20F1CA41FE7CCA33FBFFD0EBD3BFE3D4A3A724C7B3E573CE7765F7DF32DEDDCBD87366FDD4EDF4E9844AFBF3E4EF4D1CBD70100C1F3DB0301E27360373DE71C3027EAB9B7F1F9EF7EFF07BA9A992DFAC81B1F3F117ACE39EE6D9DDD74EA6CF288CF2F2C29D7DAEC15B9719CE7FEB0A9996EE6E489E7DCEE765E81E85F2F2EABA098D8383A937C5E3C97AF030082738D7097D72E73E48C79F06A5F9ED5FC77E839B08B9EE717958825C79C8DCDAD621C173F6F6EEB10BA35A45977F465534B1B553FA8177A585BDF28D6F50C3CA7BC3BC5945B5048032F7E166D653BF5714151A9780F3F563F73B47A2E3D2EF8ED000077FDE76A1EADD46BBE5FE7A5CC9933FAF488CF712D759A9ECF5FB8582CA3B76CA588C8653477FE022A282EA5EFBE9F4C9BB66CA3034987F5D87DE68F73B4F8F4B1683B61D27774F4C429FAE6DB09B4372E9ED66F8CA6AFB5C7F58F5A445B6EB765DB0EFD31E789F3F8B0DD5A3CCCDEB4FC5EB9F4F638E27350E6B840CF0100C6F35CED3F37EAB91A13C87C77637F3BF41CD752A7E9391FCF5C2785FDE1444DBB9F76F5D28FB3E7D21FFEF827FDD8FF6EF214D1E6FB295345FCFDC3AC1F69EAF419D4F7EC257DFEE557C26366AFFAD09163BA67DDFFFC279A3C759AFEF8FBC953C5F3CEDE01FA76C244F19C8F8BFFF25FFFAB787D2CC7912FEBC9482F8EBD73F61D2E5FCDC478350042203E57FD76E33A35FF5D3E879E43CF9DA6E79CF7C5DAD6DCD64E5F7DFD0D3D7AF254E475B1F6722ED86F7FF77BDAB13B8662F727D08E5D31C22FE7789DD7DDAF6B10317C6E419188CFEB9B9A69EDFA8D23627F66EEFC85B460D1123DCE8FDABC45C4F21CAB73FC1E283DF7544F86EFCDA74DFF41B49F3C659AB64DBE15EFC1F10600F2DB91DF8EFC763BEB7945D57D8AD9BB4F3CDE18BD59ECAFB2BB559AD636D3F41933E9E4E97322278CE3557E7EECC469A1C1BC2E23EB3A15149588E58EDD7BC4676CDBB94BFFEC993FCEA6AEBE41FD31BF8F6371CE07BF722D6BD8678CA69ECC58C7AB99D593E1E79CFBCE4BBED7F1E63E1D0080FC76C4E720187ABE6E4314FDE5DDBFD2FFF89FFF53ECA3CAFB0F46FD590D8F9F081F9EF3C4D5D8FFAD3FBF2D3EFB1FFEE1FF881C705FD693915A8BFE730000F41C7A8EF16ABE813596FBD63997DDDFE7AAEAA731D0730000F41C7A0E3D77DEB92A7D7209F41C00003D879E43CF9D9BBB2AEB3D40CF0100D073E839F4DCB9E72AE6630100B8CA6F0F14E196DFFEABD75E13D753E05BF82F5CFE573E67CCEAC9203E0700F8EA3C1F4D9C1D6EF17930EE99C281B1DC9FD9E1F3C732EE518E29457C0E0070574F46ADC9AE5E37DC5D6F504F06D7D260ED4F633D4319BB1A6B177A7BCCA9FB5CCE5F20EB28C9DAC7EADCC2C631DDEA7A4F786A6776AE221F0E00E0EE3C57AF0BEA75425E1B559FDC782D859EDBEB5A6A751B3BB56688DC27526BD5E3529D2B5CD5BFB1EC73E37C067C2EC8EF905AAFB691E3C97CB1AF5CD566467C0E00B0A2E7EAF5498D37D4B847ADF90A3D0FFEB5D46C2E1D779E8A3A4F97ABD7D57A81C6D857DEE319BF53CEE5E9CFFDACEE13A34F64A6ADBED4735553E5F693731BA8FFBFDC369EC6AE7BA3E7EABD0BE2730080D9792E7D447FC76BD0F3C0E9B9316E55B5CD384F9E318E553559B633AB052C754BFD3CA3D6FB7B7F7A130B8F769FFBF3FFF1F4B9EA71A4FA6488CF0100C86F0FCDFAEDC6BE62356634EAB5F1B71AF55E8D71D5BE62554F8CB1AB593B7FEA79B8E4CF1BF3DB119F0300AC9EE756E2E7D1C6D888CFFDBB4F8D1AED2BBCE95309D4FE74750FE5CD7A5FE7B1F3F7F8FA3ED9785FE88BF9580000A19FDF6EE6ABAA5EBCD93C6C320EB4A2F3D073DFED3F397FADD45B9997655C6FCCB5F6F45E759D718E5C35D75B6DABEE7BB3DFA07EA72FEE0D5CED1357C796ABF5BEAE4BE38F7DEE6E2C0AF41C00E04ECF8D79C2AEF27E8CDEAE95DC1EE8B96F7D75E3F829577DDDF27E4BEABA99F76E1C83A5DECFC9F18BC63E75F51ECF3866CBECFDEA73E8F9D83F137A0E0070A7E766D76CE375DA387FB2F1BA0E3DF7BF9EABB95A720C95DAAF6AF4555CED2BA31FED2A57CEE8C198E590CBA5D9FB8D9E37F41C7A0E00F04F7EBB7ACD467EBB33F4DCE8831B7D13555BCDDE638CCD8DE3BDCCF2E3D4FB02D5CB979F63BCD7331BF338D67114E1A6E7AEEA06F37A992F6725970E0080FC76E4B7DB2BBFDD1F396F4EAC2783F81CF13900D0F3E1E7B9DA9F6916F399C560C6FC2B35D749ED27553F9BBF538E6332B65573A6D4EF33E667A9F121F2DB87B36DC72EEA7FFE13F41C7A0E3D0720CCFBCFD5FA1C6A6E959ACF64A5EE98ABB153F2FA63D6DE550E97F1B3D4BE62E8F97036446DA2FA472DD073E839F41C8030D57363EEB19ACBACF6AFCAD7CCB4D7AC9D273D97B1B7F1338D39F3C63A2632CFDE6A8C1E2E7A7EFCD4193A753699F2EE1451556D9DBEBEA3A79F2EA4A5D3D3AE5ECA2F2AD1D7179694D3F98B97A867E0B9BE2F8ACB2AA8A4FC9E58D7D4D246D50FEAC56B2D4F3BC467E41614D2C08B9FC5BAFBDA6BD7B26F5267EF0095DEAD849E43CF010036CA6F37F3D3558F5BD57BB58D7A3FA02E5DE9B999676F1CD76CF4F3CDC63943CF7FA1F66123FDFA37BFA18DD19B69F5BAF574ECC469B17ED2F793E9C0C143B47CE52AFAEB7BEF8B75274E9FA5F90B1751426212CDFA718E58F7D9175F0ABDDEBD771F95DFAB169FB775FB4EEAEA1BA48F3EFE8412B4CFF8E7DFFE8E9A9A5BE9417D137DFDCDB7E273BF993091B66CDB013D879E0330BA6B575333553B14FEED76EB3FF7666E152B63CDDD5D7F4633970BF2DB3DD3F7EC25FDFE0F7FD49F4F9F31937A075FD0C79F7EA6AFFBDB871F8DE86BFF5CD3715E7EF1D5D722F6BE7E2B87E2E20F88CFFB7ECA54BA722D9BF61F3828DA2C8E88A4E4D48B22568FDD9F30743CD435D08FB3E742CFA1E70078CD5EED385D907080961C3EE248CAB4D8A63A889A2EF3B6F1E7DFBF605C4B67CD9EA33F8E8D8BA75BB90562C9BA3C65EA747AEBCF6F53FDAB63AFBCF23EFD30F347BA999B2F9EAFDB10458F5B9F526B47B716CBAF16EBE62D58243CF9C4A4C3E27945D57D11B3B3D673BFC7D7DF4EA0C8E52BF5FB04E839F41C006F5875EC38EDFA8FFF702C57AFDFA2F2C64741D37457F9ED6675438D39EAEA7BA50F6F967B6EACF9E9EEFAA37EBEF1B1AB5C77630D5177B1BE7ADD36FB5F5DE5D2ABEF556BE4A9F9FFC6BE00F57130AEA5DF4E98484F3B7B4CC7B5B106B33F7EF4C4A9A158FDA38FA9BBFF99FE7A7C6292E80FE7C7DF4F9EAA7BF5CD6D1DB46469A478DEF0F8097DF5F537C3BE93FBCF3FFDFC0BE10540CFFD5FEF15F5DB01F4DC3E64DCBC4D99B7F382A6E966F970C6BA70C6DAEC66EF75552BCCD8C7AED69035BBFEA8ED8CF5E0653D33B35C77756E4EAB7A6E56E7D46C1E6FE37B8DB5D2D4FC3D635E7F30AFA59CE33E5F8BA9595BE7CC5B20F49759ACE931FBEBACD96792CF0FF9EB5F7E25347ECDFA0DA2DFFC6E550DEDDA132B5E9B3D77BEFE79DC5FBE68C9522A2EBB2B62FDB7FFF2AE788D3DF98CEC1BE233BEFCEA1BE8B99FF5DC38671DF41C40CF83CF998A7B74F65EA558A66666DB221F4EAD05AE6A95F17AA0AE5373DE8C79E972A9D6167577FD319B0352D55B35D75DFD4E35C76E347AAEFE6655A78DEF55FF57635B635E7F30AFA55733AFD3C9D3E7B4387D9258CAF53773F2455CBD7D578CDE6F7E3BAF803ED7343DE9F051F17CE5EA35A2E6187FC66E4DD759A739679EFBCB39DF7DADA6FB878E1CA78F3EFE54F4B333ACE9FC195703781C87AB9E1BC77A42CF01F4DC5EACDBB22DE87A2EE36355375DF9D8AEFC3FB3BC74634D5077D71F197B18F554AD116AD61FA07AFEDEEAB9315FDEAC3EAAF1BDC6310066B9FA4EBE96CE5FB8582CAB6B1F0A9F5DE6B8AB6D56AF5D2762768C3F0FBC9EABE727F41C40CFA1E766E7B9B1AFDBDBFE3C6FF2DB5DE5CC9B7DBF2FEA9A1AFBCFCD7EB3ABF16FEA7B8DE3EFEC96DFEE0B2AEF3FD0C7A6739CCE317A4C6CDC080F80C7A943CF83D37FAEAE879E03E839F41C7FA199DF1E0E84F371A47A44D073003D879E8FE53C1FCB7B31BF1AF0C7FE34F60DB91B9FE169DFBA1AB3609C37C0AC7E82DCE7C63114C6F9EBCCE6A1336B6BCC6151BD25C4E7007A0E3D879E43CF434DCFD59C4E356FD2588BD0EAE718EB1EA9B98E464D75A5E7C67904D57911D4CF31CE37AFB695E78C3C8ED4BAC7C88703D073E839F41C7A1EAA7A6E3676D22CC7D1D3E7186362A30EAB758F5DED7375DC858CBB55ED36CE45A4FE56E9A5CBA5ABB916A0E7007A0E3D879E43CF4359CF8DDEB5B7F1B9715C9899DF6EF699463D5797AADF6EF4D7E51810E3FF20755E3D8E109F8350D5F3F7A2A3C572CEAD5B34E1F8715ADDD020969B7A7A68655D1D457574D0FCFC7CD166EAC58BB4A2B6963E8B8BA3888A0AFAE1CA159A7EE992FE5E7E8DDBF06BFC9CDFCFEFFB64EF5EFD33A0E7D073E8B93DF55CD5EEB17E8E959A839EF6B951FF4703BF97F5DBEC38423E1C08353D7F77DD3AA1B75293791D2FB7BF78410B0B0B850E2F2A2911EBC6474589A56CF7BBE9D3453BF95EE68B8404FD3358DF676565D1BF2D5C28DA849A9EBF3E6E9CC7F9CCCDE0EBCB68DFCBEF33F62B0602FE0BF47BF9FFC41FFEFC394E027A0E4249CFA5EE4A6DE4F85CC2AFCDBC768D96DFBF4F1B5A5B45BB6DCF9FEBDABCF6F1E361BACAAF711BF5FD1CBFCFCBCD15F70688CF119F233E0776A8E508BF1D84AADFFE797CBCAED1FC7CBDA6DD8B4B4B8577CECFFF306B164D387182269D3E2D749A9F3393939369E2C993B4AABE1EFDE7D073E83970849EAB397AD073106AF1F957494934EEABAF86C5EB1FEDDA25BCF32F34ADFFFAD021A1F9737372849EFF6DFB76FAF1FA75F1BE0FB66E15EBA0E7D073E839704A7C6EA57E328E41E0443DE73E6ECE7B937971D15D5D42D3551FDEE8AD23BF1D7A0E3D074ED473D46F07A1AAE7DCB7CDCBE53535A28F9BFBC0B73D7B469BFBFA849ECB3C37EE4767B8ED86B636F15A6465E5B05CB825E5E57ABFB984FBCF79C96D550DE61CF8AD8383C3BE83DF3F9ABC39E839F41C00AB39F3A8DF0E4255CF27A7A4D0A6EE6EFAE1EA555A565D4DF3F3F2684A6A2AFD76EA54E1B7BFBD7225FD6EDA34FAEECC19D186FBCD5973F97DFFEBADB744FF3AB7FB70E74EFA64CF1E3DE6E7B16AFFF8C107E231DF23FCC35FFFAAC7FFBCFEAD65CBE89F264D12EFFD7F9F7C42DF2727D39B9191B4F1954F80FC76E4B7BB1A6704C068F5DC5823077A0E42813951DB35AD4DA72F0F1CA1EFCE9E151E3B6BEBFA274F68736FAFD05DCE87939AF96376B69EDBBE7560402C3FD2345CBECEE3D565ACCF1A2FF3E6F831F7B3ABDE3D33233D5D8C9353BF83EF17E0B7233EC7B514F8F35C55EBCA41CF41A8C4E7FF3A3F2924EAC3AD5CBF117A0E3D07C0D271A4D670879E8350E082768FCA9A1E0A8CA57E14F41C7A0EC24FCF31FE1C00003D879E03679FABA8DF0E00809E43CF41688C3F9773B840CF0100C86F477E3B70AE9E23BF1D0080F81CF139080D3D473E1C00007A0E3D07CED673CE8983DF0E00809E43CF41689CABD0730000F41C7A0EA0E70000E4C3211FCEBFDB09002B7995D0730080EC7B0300D81BBE27849E03000000F0DBB11D01000000E83900000000A0E700000000F4DC75EEAAA7FC52D42804000000ECA3E7BF7AED35D35C395E2FF3E5BCCDA50300000000FC76000000008C5ECF51BF1D00000070B69ECBBE72753DF41C00000070969EABB139E64B050000009CEBB7736D47D672C4E70000008073F59CE74AE575982F1500000070AE9E736CCE5A0E3D070000009C9DDFCE313A033D070000009CA9E79CE3CE203E070000009C1F9F231F0E000000407C0E00000080E0E9B99A17073D070000009CADE70CF41C000000706EFF39C69F03000000CE8FCFD96BC7783500000000F13900000000823F5E0DFDE70000008073F59CB59CC7AB21BF1D00000070B69EA39E0C000000E07CBF1DE3CF010000008C3F07000000803DC6AB21BF1D00000070A69ECBBE73D672C4E70000008073E373D6725E87FE73000000C0997A2E1FCB381D7A0E000000384FCF656C8EFA7000000000F2DB01000000003D0700000080F77AFEABD75E13BA6C84D7BF3E6E9CE96B8C7C0DDB1100000008BE9EB32ECB7E73155ECFB5DCCD5E63F835E83900000000BF1D00000000FED173D48703C03EC4C615516A5A2DAD8FBA45B7F31E8925AFC3B60100B81B7F2E7D74D49301C01E242496D2AA35D7296A530E6DDE96AB9D77E5621DB60D00C09526B386CBDA7088CF01B007E9190FE95E75075DBC5CABDD6BA7093DE775D8360000579A2CE73D47FD7600EC45E68D06A1E3126C130080274DE6E7724E16E83900F6D37249CDC32E6C1F00805B3DE7FE73E83900763C5F119B0300BCD373B91E7A8E7C68003D0700384FCF656C8EFC76E44303E83900C0D9E3CF65AE3BF4DCD9F9D0B1FB8B900F0D3D070084B99E23BF1DF9D0C07EC4CC8CA662EDBC03E6E01801D0F3E1F56430FFB9F36338E4438726DE6A969DDADBEDB70310CA7A2EEBC960FC79E0E86CEB10CB5A6D9BB754D752754696A0BEA090BADBBBC4EB4F9B9A459B566DFFC09F859ECB63811FA7CE9C45D951D194B57E0375B4B4B96CCFC7D6DDD48BD45456E1F67DFE6CAFEA2DB7E5F7E4C5C68963FFA8761DE1F6A5A7CE98EAB33FDA03100EF1398F3F67A0E7FEA7A9B442E8375F8B1E555452E1A1235478F010D5E71752CBFD5AAABF534C6DF58DE29A74257299D79A0E3D0F2D6A5FDD6B4BFD92BA99B976BDDBF6DC367F7F82C7F7F9B3BDFADBB9ADF4C8F998967A7BFF5AF6A8DBAB7A6EA53D00A1ACE71C97AB9E3BF4DCFF141C38488D25E5E2BAC3F14441FC01CAD9BD87EEA55DA6CA4BE9745B7B5C762659B47D987F07F139CE573D3EB7726F27DBF70F3C17C797A7F7F9B3BD7A2DE1B6FC1E55B303DD1E8070187F5EF3EA7C849E0766FB7B83ACC96B24D3C5750B7A1E9A7ACE7A55763659F795ADB66F2C29F3AA3D3FBE939824BEC76A7BD650331D55AF257CAFCABF85DBDDCFCC36BD0770D7DEEC7F70D59E41DF3A08473D57E764819E0766FBA7676451E4F2953479CA345AB2345268766C5CBCDBEB67A116D34F9BF1C3B0BA01E6F700D073A723CF49F57E2E46DBDF4F1B1FD3A5058BA8F2F215EAEDE9A7DEDE011A78F6D26DFB1B9BB70A6D13ED353CB5E736EC55B37FDDD73728DA5755D750D2A123C3DA9FD796B2BDF4DE65FBEADA3AD15EBD17E57B848E276DA25D5369B9C81791BFE7EA956B23EE5DD5F6ACD375B9F9BFB4BF9AE9B63DFB5AF27FE6F6DD9D3D38AE40D8F8EDEA7AE87960F4FCC8F193B46DE72ECB7ADEA55D2B97AF5C6D1A9B581DCF86EDEF3C3D97F76D19DA31539793A7FBCA7DFDCFA897F5F3F94F96DB339EDAB3FEB14E8BF70DBE1054698F938E1C1BD6BE5A5B27DB73FE5BFBA366BD7D75CD03D15EBDE7E4CFE33C4F6ED75C55A3FF266E9FA1C5DFEA671BDB3F2ABF37ACFDB5CCEB6EDBF774F58AF85FB6E7FB0C1C57201CF2E1E43D2EE2F3C0C0D720DE8656797DDC38D3F5DEEA39E27667FBED4E6C6FB7DF0E4038F49F4B583BA0E781B93E476DDA428B23220556DA3F68784471F1072CF9ED666CDB9147FB138AA9B2A6932E5CAAA58DD1B7B13F1C5127E89663DBFBFBB7A440CF01F4C454CF910F17B8ED5F53D740A5772BE9DCF90B5450546A49CFDBBB7A69FBCEDDA38E4DE2E28BE96C4A35EDDE7387D2D21FD08124D477473D19D493012094FC7635CE839EC36F07D073E83900CEEE3F47BDD7C06DFFBAC6C7B4317A337DF4F127149F98A4E7C3FDFB1B6F8ABC77B3F8BCB6BE918E2BB5AE5CF9ED72AC8E91F351B11E6B618FA61E1DF02F5CA7C59B7AE6766AEFEFDFC2F562708C00E8F90723F268119F076EFBDF292EA55D317BE9E34F3FA3C3AFEEA93CE939F79F1F3C7C74D47EFB8DDB4D5458F2846EE63489BAEE724E368EDB7B067EC2BEB1EDF1025F0500E05DFF39E2F3D0F6DB39076ED9CA6C7AFB9D23FAFCE8E3DF3F4EEDDDCFA119D073004088E8B98CD5A1E7C1F1DB57AF5D4F8DCDAD42EBD7AEDF480D8F5A4CE370F5B1B77EFB92F191B4EAD395F4C3BF2CA0ED5336D0EC3716D1827722C4F2CC9A3DF0DBA1E7000087EBB90AF43C387EBBD4F343AF1EB73CED30D5F08483877CE2B7B3CFFEB0A957D498619ADB06B06FA0E70000E83918A5DFEECA4BF7B7DFCE5EFBA327FDFAD874D67AEC1BE83900C0797AFEABD75E33D5085EEF4E63E46BD88E63DBFE729CE084899368E9B215E2F9CA356B5DDE639DBF7889DE1DFFDE88B959BCF9DEA4C3E574F24CA5187F7E2EA59AEE68B1BA8CCFB9C60CF68D7DE07C4579AF3563669A58A25E2F00C04C4F641D3823BCDE75DDB1E37A6C89ED38763D67EE55D70A3817B1C645DF356FEFD4B4CB545A5129DAA86312B03D4393A6967ED127D2F7EC67AAD2EEB5E09F0000E0B7DB0FE39CF3A3A506B96B21CDE973555454DA4A39F98FC5636C130000F4DC5EF03C50B5D76F52D5950C6C0F604A67EF0BE1AF731F09E72F26A7DEC776010040CF6D46F1B113F4B4F19198A7999FF35C8E7DBD034373593E7B896D040000007AEE00BA9E768A799AABD2AF8AE7627EE657F3340FBEFC3BB611000000E83900C096707E5F6C5C115DBE5A47FB134A441FC2FAA85B621C25B60F00D073008073C6D19756B489E5FC0557F4F1785C0B01DB0700DFE939E74AA37E3B00C05FF09C3F3C0710E7F92D5B91256273D6738EDBB17D0018BB9EAB73A5223E070004224E97A0460E00BED373752E16C4E70084C9180BED3C2E883F40F7D22E53EDCDDB549D91E5F7EF546BDE41D301407C0E00F08D9EDF494C126326EB0B0AE96E6A1AF5F6F48BB193BD3C76525BFA3B46C77E00C0F7FDE76ACD31E83900A1CF8699B368CBE208DAB9661D251E3838B4D4F45DE7E0A131D52E849E03101C3D576374E83900E1710D08E66743CF01F08F9ECB7AE2D07300A0E7D073009C9B0F27E7F680DF0E4068F48D9B619C0788DB9E493E4F93A74EA7C953A6D1BC058BE8ADB7DFB6FC3DFCDE6D3B7789797EA7CDF841FF4CF53B525CFC969899D1D85700F858CF654CCEF3A0223E072034F45C7DCEE7F5D5CC6C312FAF3186CE2D28A2E3274F53426292E8772B28B25EDB85DF9B74E4185DBF954B3773F2A867E0F988F85C7EB7712EC062CCF50B80DFF2E1305E0D80D0D4F3D8FD0974A7A48C6EE5E607DC6FE7EF2E2C2DA79C8242E8390001D0F35FC6873640CF8147B83EE7AA35D769EB8E3C5AB7E1A6A36A76AA3547E7CE4B0FC99AA3C596FAAF83DB7F0E3D07C0BF7A8EF1E7C00A3CA706CFA121E7D360789D137E3BD7163D77BE5A68B8FAFB43694E10E83900E1ADE71C9B233E07DEC075BD9C5CDB8B359D6B9685BADFEE4E73B94F3D3D238B1EB7B653E9DD4A2A282AF1F2FEA856F4B9E716145267EF806DF49C6BC5F3FEBD5BD52E8ED1C29227A8150FC2A6FF5CE6BE42CF81552D576B763AE9B71BEB8E869AA6A7CE9C6539BF3DFBE66D7AFB9DBFD086A84DB472F51A9117EBCD77F1FB37466FA6A5CB965396F6D86A7E7BAA97DF837E1500ACEB39C69F036FAE95123947D658353D79CA344A9BB780B2A3A269F0C5CF629D5CFA4BCBD5DF1E4A35C45DC5BEEA79ADC7E7F76BE9D2958C61F9E85EC5E7DAFB1957DFF3EEF8F7E8E2E5AB74E3766E40E3F370E8570100FDE7C0D7DAEE8BCF613DBFB96D87B8CE77B57751C793A734F0ECA5237EBB13F4BCADB39B4E9D4D36F5DB4B2B2AC5D25B2DB7E2B72F5FB99A4E9E3947E5F7AA83D67F1EAAFD2A00183559D69141FD76102C4D34FAC007930E53D2E1A3626CB3AFEB8687839E7BEBB77FF3ED04BD9E8CB7DF355ABF3D107A1EEAFD2A001835996B48709F19FC76102C3DF755AEF558F4BC563BF619A93555E91921139FB3E77D2EE58238D7CDFC7686CFFD51C5E71EFC767E1CBD79ABC8B90B567E47A8F6AB0060A6C9EA7D3BF41C044BCFB9BE183F660FB7AAA64E1C976A4D33E3780C6EC3FDB2BD832F867D4EE60D7E7D6869F5B7B306B66A9FB98C48C4B7E5E7524246CFD9F32E282E35EF3F1FA3DFEEE9BE2AE1E0215A1CB154D4B3717A9F10004ED0733546879E036F889919E9D24F754796E2C9CA9C6A7ECCDAC2CFA74C9D2E9E731D5257C721B7894B48A4E6B60EFD38FEE5BEB44168BAFBF3202D24C74307D26F0FF4D876E839009EF51C7E3B905A90B32796EE683A2A63D55CEDB9AFAFDD5BB6ED308D158F1C3F49A7B5D89873B778FD854BE92EFBDCB9CD012DFE6B6C6E1D119F7FF1E5D71EBD55F5B7B768DFFDB4A959C4E8A1960FC7DB62D6EC39C33C6F5FF9EDC1D6732B7913D073104E7A8EFE73A0E73769F77652CF655CD7545631C2EB56636B59FFDF9BEFE1F1CEAEFA5BF938642F7D2C3AB2684984C7FC3BF9DB19FE7F3B9EB4514361B1C8ABEF1F7CAEF12224F49CB785D1F3F685DFCEEF2B29BF47B7720B444C60361F0BF41C80C08F3FC77C2CC07ADE70C388BC722B7AAEE69B99F9EDF2DE72CEBCF914B97CA5DFE242B3BCF8CA4BE9D4A8E95DEEDE7D42CFFBFA06A9A7BB0F7EBB0BFAB46DB46F7F82B6AF16D05FC7BF2FDE2BE37FABF9EDA325CBB0EFE47D99ABEF3A1F158BF316845D3D19D47B05996BD753C9F1937463F3564B755DBC89C5D4B871D59AB5A69FC171DED61D3B47E5FD7A9FDF1E9A35C48DF1396F6BEEC3503D8FB1FAED758D8FA8E569A758BADBAEECF5F3D8C33E8BB504BC1D7768A53D6AC58370D473E4C301D6F3AACB57A9ECCC39EAEDE91FE2559D105FEAF9BA0D51A69FE1C96B9739F0ED5AECCCF1A0EA0B40CFCDF58BB7757A4626DDCE2B08B8DFCE5EFFC5CB5728BFB0047A0E4080F49CCF47F8ED4085E372F69E079EFFE493FC76EE9BF7E4B7F3B1C579EBEE8E3FD6726E171B173F22B6F7C6E73D1CA23EEC1117FBC4AE7EBBB7FEF968C0F90CC245CF55A0E720106381CCC6424B4D56EB928EA85FA2C591ACE33C8E8DF549DE871A3F67714464D88E6332FE5FBC5DB8E6AA2FF3DBADFAEDB25FC5DBDC069C5B0040CF8133F49CEB8CF8DAF7563FE7830F3F829E2BDBDA58A32D50F39FB3D76FAC1DEFB6BFE7958780730B00E839705EAD0EB37CF9D1E06DFF6FB8E8B9D51C7F5F82730300E839083F3DC76F0FEFFFABBBBD8BEEA5A5535B7DA358EE1D374E8CB93BFEF127D4D1D236E6F60040CFA1E7007A8EFFCBFFF474F552D1E163FA52E6B0DDBB78C927ED01809E43CF812B7FBC6BC4DC554E9A8BD26CDEAD50DC27984B0C00E839F41C78A2B1B98FDABB9FD3CD1CCE731E74D46F3F7878A8EEE9854BB574E37613DDABEE70FCFE686AE917FF0FEF0BDE27F27F7402D51959547636992A522E88318D9EEA18C9F69597AF8AC756EA1E01003D879E0317E3C6EE7750C3E33ECAC97F4C39058F1DF5DBD3D21F5045553B55D6748A18B6B8AC3524F609FF5F37731F517E618BD076A7E9796371A9F0CDD947EF7ADA296A1FB86B7F69C142318F0EB767062CD6A00320D4F47C2C7FD073F0A47D5068614565BBE3F4BCA8B455FC76FE1FCE5FACA19E819F1CBF3F3A7B5F089FE1D2953AB14FF20A9B1DFBBFB02E73AC3DF8F2EF96DBF7F37B2CB60720D4F4DC1FB13D00000000A0E700000000809E03000000D073E839000000003D0700000000F41C00000000D073000000007A0E3D070000E02FB8CE03D721BE5BD52EEA3F14963C11CF43A13E23F41C000040F8E84E399556B489E5DC79E9FA7C030989A5D83ED0730000000E81E3F073E7AB85867FF9F5599A31334DCC1DE4A4DAC4D0730000000040CF0100008402EABCBE4E9B67197A0E0000000CD772F6D9E563CE8DC3F6819E03000070666E1CB603F41C000000F41C40CF010000D847CF5BAA6BA97FE039DDBB78896A6FDCA2624D6398AAF40C6C2BE83900000087E879FEFE045DC35B1F36D032224A9D398BCACFA5605B41CF010000D85A83D2F4C777532F8A18BD780CBA043D879E036057B2A3A22963E56A2A883F206216BED60DBEF8597F5D7D0C80933588B5FC695333959F4D16CFF978C736829E3B85BBA969E2FA5C79295DF417619B00333DBFB96D07DDDEB95B5CDFEE1C3C443D9D3DD4D3DD47BD3DFDD4D7FF0CDB09388ECC1BB78486CC98394B2C993B8949D4F1A48DEAF30B451BBE36F2F1CD0C3C7B89ED063DB72D3D5DBD549E7C9EF2F6ED17C731F71DF50FBE10F9207CADE625B61390D73A95A4C347E960D2614A3A724C3C366B6307D66BF722D887C09D9EAB705CD3585226AE85DD9DDD545F5048BDBDFDD4DB37487D1AD86ED073BBD2D5D621EE392B525285CFD4FEA899069EFF24349D8F5DE83918EB398ADFEE3DF971F14253AEAD593BAC3F43EDD778702B47BB073F44397B62718C86F1F10D3D07AEE05866B4318D7CAF19D8B6A1718E66BEEA8F895CBE523CBE9A994DF7AA6B71ADF6939E676F88D27D3446F57BF9F5ACF51BA0E7D073E83930D561EE47625E1F376E981E67BD1ABF6124C582AFA9F64D15BB216666B4405DE7B46D2973C5DCFD5FE7A36229E2FDC8118F470BBF9F3FC7DD761CFAAEE394303F5E3CBE159744C9EBF78A65B117FB961F2F5AB2947EFD9B7FA2D8FD0974F4C429E87900601D67DF6CF0E5DFBDF09291C765FD1841DE10F43C74B67FC29FFE457F5CA36952E628F2E2CCFAA2E4E799DF47DCD2EB264F9E924AE9190FC5FA3FFE29D1B1DB92FF87D8B822B1E4FF29727996FE7FF1FF39676E3A251D29D7FF7F6E2B1FF3FC8D9E3E9FDBF367F267F1E3091353F4CF66F6C4168A399D791D7FBFBA5D990B979ED3DAF59D5ADBFF106CDDDE4727CFF40DFB8E8B97AFD2DA0D1B297AF3D611E728EFCBF48C2C41FDA366B1CF6B6C9EFF1B4AB197377E176A918F6EFC39809E3B7DFBEFD3E22D337DF6F45ECE87AFD2AEFF3C6673985FA8C56EBCE41C3BE36BEA39C48C7FFFF830DDF9F56FE21CAFE7ABD65CA7D7C7EDA323C72BE8D193FE573E451A8D7FEF38E5E43F36D5F35D310596F59C3F8BB7596A5A8DBE2D795DF4961CAA6BEC19A6E78B960CAF6BC57A9E91D549D5B59DDAE73DA7C4439DC35E3F79E69C88BB79E9C96F97F77081CA5D6212B463EAF4D914BA742543FBFDF174ECE469DABD27964E9D4DD6DBB09F70EAD578A370D6733967181F9777ABDAC5F327ED8362A9DEE7F9EAD8F7F77740CFA1E7C0FBED2FAF8B9EB6EDB5D56BE97AF466AA483E2FC62D711E28E7D16569F11D3F3FAABD5F6A7B38106E7EFBEDFC3B01D3CB091327D1DBEFFC45F405F177CF99379FDABBFB68D6ECB9E2373D6C7CACB7E5E376CAD4E92372F353C6B09DC742CCCC59A37E6F96C1EF92FD57EAFF726466E4B0793F8D73862524968A7BCCAD3BF268DD869BFA3A5FEE9F407C07F41C7A0E1FC9FBEDCF1EAA95EDCAF1F9A38A4A6A2AAB10B9F03C469373E3F91AC37D7E4FB56B6C8BCDFB57EDE0B7F3756FF9CA6CBFF8ED9BB6E6EAC78155BFFDF8A933B473F71E8F7E7B7B576FC0FC76FE0DDC572F79D2DE359493517697AA1F3CA49B3979C3EE47AB6AEA461CDF8B2322837E8DBB7BFE027534B78AF1A07C9EF03D318FEF676E6CD94679B1715EC7E766B926F29890C7CD854BB5949C7A5FEFE792C79EAF90DFB16BCF1DE1B9F9E33BA0E7CE1CDB6A15BE57859E0F71F070D9AB6B762DDDB8DD24FA63BDD573E4B707C76F672DB712CB8CC66FBF74E5C1B0E3C08ADFBE7CE56AE1B9875A7EFB071F7E14F4DFC0E39B5BEED752474B9BD0E1EBD19BC4926B843355E9573DF63958D5735C17A1E7C138D67FF5DA6B429755D857335B6F6C033D1F222DFD015554B553654DA7C883292E6B1DE6B90DE7D608FFCE5D7EBB3ACFD058F2DB5D7D8E2B9F18B516FDD5173D149F5BCD6F74E5B7DF2929A35BB9F9C88773C1736D1BBED48EFF9FB46B14F342FB2D4D6577A9BBBD4B1CDBC2DF2ABFA71FEFA3ADCF586CEAB17505E1B86AD0AF3176C8C5E33101567EAF7A9D0CC6760B353D37D3642B5E3AFCF65F282A6D15C727E7A29CBF58433D033F59BAEF5C37651A5DD5E2ADEA8C2C3D1F7D341EAA2FF2DB19D5A3068187FDF6BDFBF6D3B4193F78F4DB4B342DEAB179CDA160EAF90BC377F3731E2F2EB5DC57DF6387B19DAEFAEE557D2C3F779E8A8E1CA3B2D367E97165F5502EC7CE5DF4E076AE78CC7D776567CE89C7BC2E7B6334DDBD9046555732E8F2E225620E537E5E5F5044B97BF751C98953547CECC410DA7BB80D6F5BF639B82671CEEE3DE2F36BAFDFA29C98BDD45A37FC5A742DBB5E7899EC69DECC7944FB138A710D809E3BDA47623D2F397E52D42C1E4D7E7B4DF60DBA9776D927F9ED8CEA5183C0C37E7B4151A9F0DCADF8EDA1365E8D7D70CEF9606D9173618F45CF555E46455373E57DDD6BEFEEECF149ED7BBBD56A7075DDE1FC80A2C347C575A1F4D419A1BB15E72F8A7CDA4B0B16D1835BB9025E7F63CB56BABE698B98A794359CB599BD0CD674BE56F1BE4999365D5CBB4A4E9C169F9FF32AE783B7C7FD6B595470E0A0F8FC86C26291A36BFC3D59371A29F37A83E8B73A76F22E9D4DA9C635007A1ED6F9ED7CDFCB9A2EE6E57855E3385CF3DB43CB93F7ECB7179696534E4161C8C5E7AC2107DF7C4B9F0B7B4CBF41BBDFB9AEE9938CD5F9F39ED4D4094D17F37CF8C0DF708A9EBBCBB1F127389FA1E7E1ACE7DEE4B7B34FCF4B3DBF5D5B866B7E7BA8F8ED9CDF1E177FC0A3DF7EB7AA26E4FCF6BEDE01713CDFDABE539F0BDB2E9EBF37F9ED76D4F360682BF41C7A1E4E18F3E164AEA13FF2E1BC1D7B8BFD137872F2EF08BF7D71C452D3F89CB5FC8F7FFA17FD3AE9CFEBA5FC3EF93B162E8EA05D317B85DFBF27368EE6CE5F2072F28672FFE3C57A5E32EAEFF334FE3CCB3066C6536C9962B3F1E7D9369B434ECD6B35E6D5F0EB6792CFD3B69DBB68E59AB574D3CFF994D073E879B8D172FF8198EF415EB35C5DD37C395E8D73F7D47C58EE3BE7E795F73BA8BD0BF3BA050B8EB9B94E8B3A0E4DD546E9B7271C3C446D9DDD7A1D367F5D1BF8FBF8788C89DD276AC1CD9E3B4FE876F496ADB462D59A117A2EEF3FF83DEC27A8C75F6945E5A8C7CFDA61DE55A7F8C7F25EBCB8AC62987F237F7B6E41919867F7FAAD5CED18EA819E43CFA1E73EE4DCF793C55C8C81CC6D52F36179ECB5F4E8267D7F9E065EFC1DFB254864645D179A19ABE43D84CA7CA97FF8E39FBCBABFB5DB7849A7E939C7E1EAEF85DF0E3D879E07E01ABE62A5E8EBB652BBC257F9ED6A7CCEF557E47C24CB5664E935514070FCF60B97D22DF9EDBBF6C48AE74ED1F354C371EAEEFE96C73BB18F2DF3423C8D650E04A31D4B1A68525FF52F6CF8FA1BDAB6669DDFFC76EE73614F2639358D36466FA6C953A6099FE6934F3FD78FCBB1F493B8C297630DA1E7D0737FC3E780C4537E7B637199D06F3DBFBD7700F9ED0E26B7A050F8A456FC76A7E9B937F7B70F6EE688EB767747377569A8738FFBBDFF4BDBF64F9B9AA9DC4D5F466349B93EB6CECEDB5FBDFFF0B5DFCE7D2E3C0FE001ED58E4E3D14CCFD5FDCFF512CC3E876B7564DF6C1463E52532DEE07E40AEA1CC7147F5834EAAA86C47CD19E8B92335DD4A7E7B4351A93E4E5782FC76E75253D720AEB31191CB43CE6F770AEC6BF118EBFAFCA1B180625C9BC123E0FE80CCB5EB6C7DBF9C78E8C8B0EB48B0FD76577941ACCF2917866ADBF39C086A7EFED4E917E9BFFDF71DD4DEFD9CE62FBC2AEACEA03E2CF41C0027C03562ACF8ED337F9C033DF7135CE3BDB1A44CD76A9EB7B0B76F709847C0AF733F97ABFEAC60F79F8BF12F1BA246E4C9F2EB1F7DFC09C56BF72CFC9AAFEAFFDFCA2DA0EFA74C15F999FC3D376EE78EF0DBFF65DC3853FFFCD4AA185AF3F92A3157E187FF7B1AED98BA517F6DFD57AB69F26FE7D2EC3716D1AC7F5B48890BB7D1E128F4C943CF01B03F7C7DAD6B7C3C2C77C2CC6F7F77FC7BD073E0361FCE589F80F745EFE00BFAF8D3CFE8F0ABFB441E7FE893FD7CE418456DDAA2EB79CE2B6FC3CAF806577E3B7BEDBC9E6BC2F60EFE44F9452DD8BFD073001C43E4F21574FEE2252A2AAD80DF0EC6A4E73C56429DAF47AD1BEC697E87408E6F70E5B7CBF57109C5D4DC3640B3665FC6FE859E03E018B26EDC1671CCD2652BDCFAED88CF435F93478BCC6F4F98BF8012129346F8EDB21690596EBAAC1FE4EA77AD59B741B4E17C3ACE83CB2F2C11EDFFFD8D37C5E7C93C5E7E6CF4DB674E98E8D26F3F7DAE4AE838CF0775E5DAD07C509CFBC6EB0F1C2CA5C6E63E3A90548A63037A0E80A3FC76F648CDF292E1B7870FEC31B39EC938558E2DE571A5EC43F392BD68F9D82C3EE7B11266C791AC05C49A6BCC4D3F73EEBCDB1A45BFFBFD1F84FEF3BC419CDF76E2F459B1947A2EB55BEAB9BAFF5D7901A845093D072054FD76638C04BF3DFCE03944D7ACBBA1696C915EF789D72F8EB82672BED99B662F9A6B413166FAC863259A5A5A7DBE2F5CCDCD6C569752FDCEBCC262E839F41C80B0F2DB794CF0EAB5EBDDFAED57AE65859D9E73BD38AE3173E2D3CFC532774F6CC81E074BC647D2B20F978BBCEEA86FD7D28105DBF47CEF0D5FAFA1797F5E2272C2F9F54D13D799FAED3BA74D37F5DBF9D86A6C6ED56BF2FAEA37739D9AC953A78B587FDE824523FCF6AFBEF9D665FF00CE7DE83900A106E7243F6E6DF7584F6643F4A6B0D473BEFEB39E73ED85A6B20A1FFD46FB8D6776E5B7F3E3F27B4FF5BCEFAEBE976EE35D33BF5DEAF9EBE3C679AC41E90D5CA7E6F8C9D3E21E42BD07F594DF8EF1E4D0730042119E2B95FB31514FC69803DD60EAE9FA428F543FDBEE7EFBE66DB922079CBD766E5355D3E956CFCDFA6D54BF3C90FB9FFBD8A1E7D07300C2E97C644FDD533D193BE4C3F1EFE1B1CC7CFFF1C5575FEBF9506A1D5A2BF3A5BAABD3EDEB7954B38EA60D9B8B88E1BE685E720CCCFAF9ED8464EDFBD268E1E20CF11AF74F73DE5920B76DD2E1723A7AE2AEF83DE72FD668B16FB3587FEA6C25ED4F281179DFDCC66CAE05A9E73CFF1EE7C4C9F5EADCC98142AD4F2773E4A0E7D07300C2C56FB7325FEAF295AB6D71EDE0FB0A55CF5933264CFACEB47E37FBAD327F9F9FB346AAF5B9B9AE08E76A1BF3B58DF705DECEA3EA29DF4AEABAD473C1FE2231DE99753D187AEE8FFE03BE3FE2FACF5C23BA7FE0B9ED7F2F809E03E074BF9D63F3751BA342CE6FE77A223C0FAC5CF7CFBF4D105AF9F63B47447D6EBEAE8F7FFFB8D0527FD45771A727ACE5A1734D2F77B91DB8367D454AEA90A60F3ED7782108E6FC75D073E83900A1ECB7738EB03BBF7D7144A4E3F49CE74B4D4EBDA87B0F3CF68A63E15D310562C9DACEF17072EA7D979F7776C2242A3C7484EEA5A58BE7832F7E1E5ABEFCFB98F43CB48E21D77ACEB5E92B9253456EA1988FB1FF19F574F705255E97397EBCCFED98C3E0743D57734CA0E70004C76FB7524FE6830F3F0ACBF1E707DF7C8B1E555452D1E163E27977678F98EB8C3569B47A1E7AD77467E822E704701F0BE7F4D53FEA35ED6701A3D373631E24F41C80E0F8ED1C83ABB53790DFEE1A8ECF25D07367E9396BF8CD9C26CAC97F4C45A5AD22C70FD700DFE939C704EAB810E83900813F1FD91F5BB274995BBFFD8B2FBFF6FB5C1A4ED0735FF49F87023C2E5D7AD6D2BFB67B4E4061C91331869EC7D2F3D8BB50CA61B093DF0E3D07C0DEF9ED8B9644846D7CCEF73B0CCF3DCEF9DA79B1712277FBA8762DE2BA71A5A7CE849D9E37B5F40BBFBAEFD9CFC2BF669DC4F914DE7AAE8EE5849E03101CBF7DD6EC3914BD792BFC76379FC9E4EF4FD0C795737E97D4F3FBD7B2C3D26F67BF9A7D6BF6AFE15D43CF651E1CEB3A8F230DB69EF3FD26E7BD5EBE5A276A2870DE2BD777606F06FB0E1891F5409D4C84763EEDD3F47CD79EBD6EFDF6556BD6DA66BB2F591A29AE038525E5622E4E1E67AE7A0AA3AD27E3AAB68CAC2FB373CD3ACAD0B687AC57EE6EFED0503FF63B7B5F08BF9A6BCC709FB4BB3102C07FB036EDDD572874EA76DE23B1640D0B96DF6EA77C38EE0392B526E62FB8A2F70F19E71302C0389698975C03443E774AEE2CFBED4FBB7A3DFAEDEB3644D94ECF172E8E1073711E3D714AAFE7E66ABE4CEEEF95F0DCD6DC87CA8FADC4D581AA550A80B7C8F9EEA236E588DABC81D62B55938D359283ADE73C9681AFC97C3D5EB6224BD7738C6B00EEF49CEF89655D2FB96EEBF63CC7F8EDECB5C7C51F0839BF7D78CEFED03E59B9FA3A6564D58B7AE4C6BC6CE839701A727E7AAE8924F31203595BD009F9706AAD65E33D3C0066352A549F8BD739C57F543D76777EFB966D3B1CA7E7317BF7999EDBBBF7DE11FDBDBCCFD41C67CC8B0D9C3ED620D063078DFDE73C879EACDB1F6C3D376E17B5CE328E1B108AF0FC19ECB57B9C2F352AF4E74B357BEF83DBB9F4A4F6A1E84FC7F102EC1A4F1809541C6A8CCF391690B1819DF2DB510B1084C5BD7D5D031D3C7C3424EBB7FBE2BD05F107A8BBBD4B8FDD65ED713BCD2F0240B034CB189FAB3565A0E700F9ED8165E7B4E9B469E2248FF5DB9DA2F1A3FD9D7C0D923EA1BABEECCC393DDF9D9FF7F60E083DEFEDE9C73900A0E70E998F057A0E469BDF2EE7E5748ADF2EEFA9DDF9ED09070F85B49EABFF33EBF7ADED3BC5D2582B0600E8B97B4DB6633D1975DBC8BA507C7E576BF18A1C63CAB524B2D66FA08E96361C4FC86FD7F3DBE51812A7F8ED4D2DAD615FBFDDA8E73C0F0B2F8DB56200B0BB9EB356B1663568E7342F59A7A4665D5BB5861A8BCB7CAEE7ECB5ABFE969DF55CD68552EB43493DCF5CBB1EC75218FBED3133A329E2FD48FA7ADC2C9AFDC622716C6C9AB88EA227AC758CDFBE7DCA348FF5DB3FF9F473DB6D7FBE7EAC5AB38E96AD5825C6DD19C7CC647A91C3A65E8778BFF29C6A76AF21C2D7A813A7EFE9638ED571B53CD62235AD3668754640F0F45CD52AA3665D5AB0907A3A7BFC3AFEDC8EF3A5AAF7F97CBFC3F92FBC645A1F22DF1DB8AF27F3E4E96048E5B7DB51CF274C9C446FBFF3175ABE72B5C8E9339EB725E5F746D495F174BEA7BC8AC9654D573BD710618D9675AFB876861A83F0EBABD65C0F5A9D11103C6F4A6A955CFA736C86313E97D859CF2B2FA553634999D82EBC6CA946FD57E0BE9E4CDAE5078EF1DBF7EEDB1F92F5DBF9BA9278E888EE37588DCFCF4EFA8E0AB5F7F173CE7D1B78F652CF6BB7530D918B976BF51A2252D3651B7E5DD4AF0E529D1110BC639FF5A9EC6C32DDCFCC16FDC3ECB907A2FF5C8E55B3537CAED69497BEDD9DC424EA78D226BC8B1BDA758FEFDD39BF95CFF39EAE5E1C4B3EC25B8FD00E9EA2AB7A32F1074A1CB1CDAF6AE7FCB5EC1B74A7A42CE4F49CCFE1FB0FEA2DF9EEDC86DBC7685C5BBD561F9FC6E738E7B433ACE976AD216236DED8383619D798501D833E5CB362B4FBD8A78D8FA9A9B45CF8EBAC5B7D7D83D4DFFF8C7ABAFBC4311D2EF9ED72DB48CF80E1FB9DA74DCDD4FEA859F731FAB46DC3E7372F714CF9CE47F4C62384A768BF31DCA136FEDC493544D4BA5766AFA3DE65E89EAFAA66F19C41753979D45C5543BD9A7E0BCDD2B44AE896A6EBBEF4999C335E0DB51F038DB71E213CC5F03CF6E57CE4E1AAE7DE8E51426C8EF316E3CFD3708CD820F6F0757BE0DE9732E6B71F3C7484A2366D11F3AB5DBC7C55E4BBFB3A477DF5DAF5D4D8DC2ABE6F714424DDCE2BA0C8E52B69C5AA35B4317AB3783DEF4EB1983346D691E7DF111B172FDA71CE9ED97CA9995EE60139F19C879E83601EBFA82703DC6D73337CD51E8C84E74B6DEFEE739BDFBE70F112514F66DE8285C3DAF92A475DEA397FC7071F7E440545A542A767CE9A2DD6F1EB95350F68FBCEDD7A1D79A9E7B2AE1DDF17C87B925FFA981B42FE9C879E03BBD593819E83B16E7FECAFD1C1E3B6591363F72738CE7796E35D5D798EEFFE75BC579AEE743DBF7BFE82692EB36CC375E86BAEDF14B5EF70ECE39A093DB747AD081C9BF6D85FA150BF3D423B9FB89ECCE288A51EFDF67329172C8DFD1A0DFCB91C93739E3D7F2F7FD7175F7E45BB62F68AF57B62E368EEFC05E2F5556BD6D2E97329545553A7FFCE254B2347CCBF3C7DC6CCB08ACF795C6DBE725F666CC3F9503C7E896BDF41FFCCC701F21895CB57EB687F428998F398C7ADF035D99B36D073E8B937B522A0E7F6D85FBC5FB26F36D2CD9C26AAA86CA71BB79BA87770685F55D776D2937667D494292EABB0E4B7171497FA2D76673D977A2DBFEB80B69C3D779ED0F3E82D5B457F3ABFCEF716E91999A29FDD4CCF8DF564425BCF7FF97F9BCAEE9AD6C6D0EB8CF43F1339CF76AE7D17EC6B4E69459B58CA6BAF71CC8C9536D073E8B9B15644E9DDA72E6B4584939E5BF50883E129F2D89F940BF7E9ED778E507C6209C525145373DB80F82D0B17675057DF4BDB6F67AEB7C27E7B44E47247F9EDFC1BCDBC74F5B7B3AF104E7A7E47BBFFE9686E1575AF1A8A4A5CD619116D1393FC5A67C489F03596AFBD9C63BB6C459688A9F89850BD512B6DA0E7F6D173A99FAA96DAB15684D36ABF8CF6D8B4EA1106C353CCB9524C4BC647D20FFFBA8012166CA5857F89A0F4EDF1A2A6FBFAAF5653664CA2EDFDF6142DD65DF0CE5F2CF9ED9CDF7EE376AEDFB6A7D173E7EF8BD9BB4F8B7D92A8B0A45CACE31C3859FB26E5421AEDDE1B3B2C2E57FDF6993FCE76CC393F96F10892828444EA6AEB10FB95EB589E3D75860E261DA6446DFB259F4BD1EB8C702D2CAE817769C1A2A1F1C8A2664EBF4FEB8C844A5EAE3AA6DF559B605F9F8DC7AFABDF1CAEF1797D53EFABDCDFF6A06BB9A7E3CA29B55F461B7758F50883E1291AFD76DE47D25F71D238784FF5DBA5DF7EF2CC392ABF57ED573D573D77FE3EEE0B58B06889F61B22440E3B7B0952CFF30B4BC46F7C7DDC387D3E57355E3DF52A16F5446E41B3D89755359D54FFA8D711B92A6675AF1E68F75A03832FA8BEA050C4E8D733B3E9AA764FB473D3664A4949D5EB8CB06EB3AEEB754634E4BCEE4ED2DD64ED58B838672E3DA9A9A3C1173F07E4DAEBEDF599736C785FF8732E808E1E6D1F3EFF591CBF7DCF7E467C6EA0B6BE9BDA3A9F515AFA03B10C27FFC4DBDA2F6A0D695F6A9899475872FC24DD4BBB6CB9BDBF3D45A3DF2EEF69F8B953EAD4B1DFFEDBDFFD3E24EBB7E7E4175ABB7FD7349CEFC972F21F5351692B9D3E571552354442B53616EBF9D5E52BE8615E0175B57709EC360E90BD9287F977E8ECC4EFC47D13D75B657FC4CA6FE87ADA41CD95F72DCDA752D7D0A31FBFD0F3E19C3A532972CB399FE96A663DF43C40B55CE4F823B35AC47C0EF07C7F35D937748FB0AABA8692343D52DB9FD796BAA738611255249FD7DBF774FBB6D6BED16FE7795379AED40FFFF7347DEE5427F8EDCB3EFC8876EDD9EBD16F5773CA83AD613C4FAA8CBF37466F329D2F75E2A4EF2D7D5E61C91391CBC85E0BE729DBCD0BF314A7FBA28D53EFDD24DCAFC018FB20ACE04F3D672D66EF80CF35F63FBCA911DE545641F5DA3D69536985B87E0D3C7B21AE65C6761C935FB9F6503F7EA1E701CC25D6FE874716F36E7DA5E73C4F7B7E5CBCF86EE94B8DD59FF2472D1755CFA58F58ADC5DBD223943EA2F4082BB57BD7A423C75CB617731268E7846C6F762E8CD56F97B98AEC55488F82F5806377D6884B57EA86CDA72A5FF3263792DBCBC7D2DB935EBF7C2EDBFDB22D39F6EE7C3506F239AD5DDF494DCD7D2E6BCA58F1DBD59CF2605FC7F977B19EB77576D38E5D312EE74BE5FFAD67E079C8F6F5165B88BD8B1D189F5BB9A7F285EFE06F3D1F0B2D350F44FCC29EA4C871D06214ABB17D38E879474B9B4FE7721FEDF9775D8B77449F95B66FFA7A0702A6E7E5DAF58FFF7FEE2BF3E53C32FE38AEBD3D578353BBB89CDABB9F8BE5F8F78F8B712CF23AC47D107CAFCC7D5A32DF406EA7C953522DF5D1CAB18BD2C757E76365D8EB97CFE51847F5FE9C359D753C277F48C7B76EEFA398D8D6117EFBA79F7D2E6AA9869ADFCEF7781959D7E9566E3EF43C04C7AB86BA9E9BE53C1AE7FE1C0BBEF06D82A9E7A5A7CEE8399C9C072DE6360E700E08C797C5C74FEADE4BBF9BD821E5E82D9F1F17495A1CC31E352FBDDDFFAE6A6DF9E3B8F6F6580B86A7989751227CF505EF44D0BFBEF62D45FE6D195DDD9920AE9F5F8F9B25BCF88B9BE3C4F3CFFE71069D59B367C46377B077CF9FCF9FC5EF899E30348F27E7CFCFFBF3125AF3F92AFD39B7937EFFF07A31FC394994303F5E3C8E9939D26FFF7ADCB861D708577EBB5DB4DEE8B7BBCA6FE76B454EFE1D9FD7A8859EFB9E12ED5E987DE3B8F862B154C71A0C276D84577E26F93CBDA7ED6BAE47BC6DC72EDABD27D690EB9325C64D702E25D729E0E39BC749188F9714E5BC381CE5799BF1F5D9ECBCCD3268A6BC6E1A1F7BBADEF2FDE8507F50394D9BF183E93D08FF1F5C3399FF2F3EDEF9FF0C640C144C3D67BFB6B56EA83FBCBBAB47E8A99DC76858390F03E54B8DF55ED61FFF7BB0AF59B256142F393EE6C7BCE47DC29C3C53296A48F1631E0B205F3B75B6D2D27EE3589B3F93DBCAC7F2BA56D7D8A3C5D665FA737E8D6B556D88BA35CC6FE7BA3627CFF489389D1F33C6FB20BEBEA975DF5CF9EDEC6D5BCD190FA4DFCE4BB3FCF67DFB13C4FCEE350F1BA0E736FF3F0E24950A1A1FF751CA851AD36B0AEF4BB37EA1DC82229ABF7091788DC74330463D3FA2C550DB76EE32D5F35F7EC361BFC6D8EA3DB3956352FEB6AEBE415ABE72B54B3D4F4DBB1C967AEE0B9FC2DD6704E35C0D942F053DF7ECB797DD7D4A05452DBADF7E36A55AE44E1BFDF629532F58DA6646BF9DEF0FE4F7721C237335E5EB8B23AE69D7B5AB6EFD76D9A72EB9ADC5AF9BB76E17F398859ADFBE76C3462A2C2DA79C8242E8B9177EAE1DEE7FCCCE8FA3274E99EAB9AF8E97F8C4245BF64D1BE1F19966EBBDC5E97A2E7FBF3BFFC59BFDAFD6B3B67AAF20CF155E9A792FAAE7936D522BBBB1B98F1E3FE917F15A654DA75E9F682423E7BF2CAFACA6CFBFF8528C4DFAE7DFFE8E2EA4A5D34D43DF226F17C6EC7E4F1DEB2AFA0DA4677BF45658EAB9CC8793796AACDF3C0E545E8F385F4DD6F5536BFC719FBA959C3835078EC9BDD3AC8F93E33C3BCEB793CFB91DD74B30F6CB1F3ACAF7F0CFC592C9BC31FC3BDABB7AC571B877DF7E8F7EFBAE3DB13E9F2FD5177E3B9FC7BB5E79AC46BFD2AEF970BEAAFDCF633EBC699362884DCC7E9BABF35CE5A676FDF1E7B88BF351B123D6F15817E375967F2FD736DCBA7DA788AFDD8DBFE03A069F7CFAF988DAFF92A8652B8232C624CB83DFFEA0E191CBFC167ECCD768DE2EDECF27183A7AEECA7FF1661BA8F5AC0F59F2C6CDBD176FFA7EB9F605FBAAA9693574ECE45DD3FB58DEFFA9CA386DD597E2FF99EF71F93BD9976A33E407F2B1515C7ED754CFE5E704C2C374829E87027C1CB05E9B1D2F46BFDD4E7AAEFAEDB366CF19A6E7AADF6ED7F15AEEFA52DCF5D518FB69AC1CF7ACC99C2BCD4BB50EB215AF916B279BD542E13113195943FD37FC98EF198DFD39F2F7CABE2857FD52DB76E6D3BEF8E2617D4766355A8CF3E1CAC75CE7FF87993F8ADC4E77E32FB82611EBB9B1F6BFF178B19BD7C4F7DC3C57B03B3D1FCDF5D8E97AEE0B9FC2D567C87B293BF8527CDC5FCBBEE137BF7D341EA6B77D14D0F3C0C07EBBA8A3EAC0F952ADF8ED1D3DFDB6FC7FDCF5A5B8EBAB9930316558DD262BC7FDB5D56BA9B1B84CCCBDC67590655D93AABB557445BB8F73E7B7371495D295C865A69ACE5E8FBBFE1CF60E653D3577FD52B3665FA63BC54F86F51DC9F7EF8A291871ACFACB6F8FB5A19EC36FB7B6EFD8A363CFCEDBF91FD5CF50EB59BBBAD74DF1B35763E64B714D950D8A67A6FAA7DC57CAB1CC966D3BDCFE8F66EDA40FB752BB3EE4252679FC6DC6FE394F1AEFAD8F3896F666D48668DD0D77F0BD3F8FD3E61AE9EEFCF68F3FF9D476BF9D8FC7D56BD7536945A5987BCDCC6FEF7BF6929A5ADA6CF7DB796CC4F6291BC59804E6C0C26DFAF9CCEC9DB5493BC78EBC1AA31069FAD81BBF3D53BBD6DDDCBA8D4EC7C58BF12D071212E980A65FACEDEEFCF6139F7E4669F31798FAEDE7A386C64FCC7E2389BEFC7F7B478C9FE07117FCBFF0EFE5DF2DFFDF755FAEA63B878EEAFFEFD6EF37E8E340F83D72EC87FA587CA7D22764E6B7B377E44EA3A4DF6EF4A024EBB4F8DD8E7E7B6D7DA35E2F09F1B96B3DE7FD3F963E07B59EB59D6200FE9F5CE52BB33EB34E6F88DAE4F67F346BA7FAED6A5E0AEB6095766FE3AEB6AA7A8D301EAF9EBCBDB1C4E7ECDDB19FE94DFEB993EA83F9C26FE7FA6AAA8F6EE6B7BF3BFE3DDBFD761EA7C37ACE7D67B25EAD7A1EF239C0C7B01DC7AB8DD66FB73A36C2E8B7739C5D7525C3727EB0377EBBABF113BEF0DBF9FFD5EBBB6AD717B37C38E9B7F331EC6EFC85F4DBD5711AEAFF6AB77E19F9DBB8FF54D64B72A5E781A8F161373D5735853F478D49ACA27E068F7794E784B771BE3F7135BE8175BEA5AD439C13EEEE635CB5939F639C9783EFFFB3D66DA0F488A5A25E4D7747F7883A4666D70EE336ABBC944E9735ED188DA6BBD2F3C8E55982D7C7EDD3AEFB15F4E849FFABBE977D14BD25478CFB92355EA48F69F4344319CE01E1F8DBEC7AC1FBBE593B0E38C6B5435D38B3E394FD31F6D4E5755EBD462D5A12619B3E7FB3FB4C3E2ED96FE6638FF36154BFDDD5B1B964E935AFC793F0F999366F3EDDD0EE79381EEF7ADA29CE512BEF75774ECAF113ACEB667E3BFF1FB27621FFBF7C5F623C0FB9CDF8F78E8BDAE3D26397F3342E5F993D6C1E846D3B77D3E3D676BFF9ED72CCA31DEBD9AAD74F558358C33836E571F7BC9E3569ACB56E9D189FF376184D9FF7B07BD7BA066A6A690DAADF6EC5C351FDD339DA79CDFD44EEF6A5AB76EA71E4EA7B8B345D283C74442CBDF5DBAF442EA79CDD7B46F5FFF258002BEDD8C363CC9E730D89708ACDDDE56ACAFDC3D7D0BF7DF431FDFB1B6FDAEE37F3752C2E21918E1C3B41EB36468D38A632C3B0FFC413832FFF3E540BDC621DADA6B2BB620E56F7C7CED0D88940FF2FBEAA9336DAEF2FBA516EC93F977564F8F7CAC75663475731B97CCC730CFE38679E3817E20F1CA4A5CB9687657CFE8FFFF87F45FFF958E2F329D3A6EB9F61A7F89CE311B3F9B2F858BA7CF59AF0ADAE5CCB727B6D376BE7EA98BAA31D478FB578FDBED6D6557D782BF139CF9FC6BAECCBB9053906E2FB7D8E71F8B18C7338C6D9135B286AB4FA2206722A72CCA5D9BEE5E380C77D9C3B7F71D49E9E3FE1738FBDD6EC5B39E2FEDC785CAE5AB3567849768CCF4128CC07536EF95E59DE5BAA8FBD89CF274F9D66AA41ABD7AEA349DF4F0EF8BD8CDDF45C8E3F5F1C11A9DDD3AC10FEB4B77AAEFA20FED67377F5014778A845A5E23AE6AFFC76639D30F6F3445CADC549A23E3CD7A51F457DF8BCD83831C7A92FB7DB68FCF670D27339E652F51ACDFCF682A212DBFAEDBD832FF47E21F558E731F37C5F0B3D07C1D27311B36BD745AE35EEED5C58AE74C74C8338E77D71C452FD75C64A7FB22F34612C7FBEF0DBF9FAC4630D7FFD9B7F121EC596ED3B868DEFF3C6A390CFAD783F46BFC5CC7B4971E1DB98E5938D5C9FE6F5BD80AFEBF7F3B1EA8D9FE764CC6A8218FD7CA790E2A27F46FAED3CAF895DFD76BEE7C82B2C86DF0E6CA9E76D0D8F44FF23E72E98E51679D29AD795F9155C6910F3C3ACD9E2396BE4B2152B3DE681864A7C1EB5790BED8AD9EB5223ADC6E731B1FBF4FC03ABF1F968BD172BF179B8C494768163FB8DD1B7450E0FE7FAA8DBFFD3CF4ED39B6F1D125E3FD7544F3A526ECBFDC3B5B2AE65DF34AD3FA5FAED317BF7D9D66FE73957522EA499FAED88CF41B0FDF661B90B1CEF588C75AC7AC4321E67CF593EB79A5B102A7EBBD936B2E259CC308CEBF6D66F97E3457D350FB9BFEBA803D7700D8C848343F394FEF14F89E2B17C6DF5DA1BBA9E7F3F2555E4EFDA71FF70AD2CCE9130AB3FE5F4FC76F6DBF97CBE535286E315045DCF47737CE717958863DBAEF7A476C96F77752FE4C9B35063177ECCF700D233B73AAEEA8E1653881A4D5DBDB69F871CC06F67BFFD0F7FFC936DFD76F616D4F1E7F0DB81BF759C51E7CEF09756CE9A3D571CDBDC370C3DF72E3EB7E259B8FA0C6FF3E1D87B11B889CFE5986AABF13CF4DC5E7EFB9A753768CEDC74119F739C6EC731EDECB76764DD30AD3FA5FAED6A7D77BBF9ED3C6647C6E046BF9DFB12FA6C3C273270263C1796AC0BE4CF1C683987AB5DEF4D83A9E71C4773BCDD6B52E3D08EC871D57A3CDFDDE7369E879EDBCB6F673DE75A19519B6EDB56CFD96FE7B10A9EEAC9D8D1EF937E7BBB765EB8F2DB2F5EBE22F41EC72BF0253CB7614555BBD0F5CA9A8E30F62A823BFF39C7DFCD6DCEDBFE2297E2F94FA6F179A0FC1F10BE7E3BD75AB0ABDF9E969EA1E7F3C16F0781A0B0E489A83DF5A47D908ACB5AA1E741EA3FE7BCF6C6E6D0DAFE1D3D2FA8E1711FB53C1DA49B398F70BE05D96F97EB3946E7F9EA79FE28BBFE0F722E684FF564EC542FC9E8B773AD05A9DDEAFFC17310F09C49C86F0720F4F43C54E97BF633DDCE7F4C37731F517E610BF53FFF19DB25887EBB5C2FF57CEEFC2BB6FD1FE45CD0A1584F86E712E2F1A4769C8F0500E839F4DC9DFF73E94A1D5554B6535BE7336C13F8ED3EF5DBDFFDEBF851CDC91808BF9D63F00913BF83DF0E00F41C009FE7B72F597A4DE4B6732E1CB7B1B3DFCE7DCF3C0F993BBF3D49C997B39BDFDEF0A8C5B47616FBEDB23E3D8E5700A0E7008C26BF9DF59C73DBE3E28B87ADB7A3DFBE217A93A99E3B3DBF9DFD76599F1EC72B00D07300C2014FF3A5AE5DBFD1B6F9EDE5F7AAC53C0CF0DB01809E0310EEE7A4D9BCB8AADF7EE4F849DBFAED95350FC4DCBEC6F8DCD5FC150000E83900A106CF7DBB6DC72E3A7CEC845BBFDD8E9A28FDF6874DCDA6E3D53867DF38B72F00007A0E4038FBED6792CFDBD66F7FD8F4988A4A2BE0B703003D0720AC615D94F399B8F2DBF7ED4FB0ADDF9E77A758AF2F6FF4DB39CF0FF56400809E03100E7EFB8A55AB458D35777EBB13EBC9B0DF0E3D07007A0E00FCF65FFCF698D838DBFAED7CCFA1E6BEC16F07007A0E403812B5690BEDDCBDC7ADDFAEE6BFDBCD6FE7F918E4EF53E3F3993FCEC1FE05007A0E40D8F8ED9F7EF6391D3D71CAADDFCE35DE9F3CEDA49B39795451799FAA6B1F52534B9BF0B283550756FAED1D3DFDA6F564DE1DFF1EF63100D07300E0B72B7EFB1B6FBE2534FDED77FE42F18949B470F112E17573FCCEED2F5C4A0F9ADFCEDE42ECAB7C3DF8ED0040CF010857164744D2B4193FB8F5DBB76EDF49C56515B46E6314E514146AEB2E08E47D4030F45CFAEDD9B7724CEBC9203E07007A0E4038F9ED87B5F36AF9CAD523F4DCA9D717E83900D07300C070EFDD89601F02003D0700000080F77A6E8C03A0E700000080B3F49C7362D5712ED073000000C0797A2EC793203E070000009CABE7ACE50CC7E9D073000000C0B9FDE7C6BC54E839000000E03C3DE7FE73598F6AC6CC59D073000000C0817ACE3AAEF6A143CF01000000E78E57934BE839000000E04C3D679F5DE6C441CF01000000E4C30100000020F07AEEAD5643CF01000000E83900000000E0B703000000C07CBC1AF41C000000088DF16AA8270300000038DB6F577D77E839000000E03C3D97F55EA1E700000080F3FD76E839000000E0EC7C387E2CE743879E03000000CE8DCF39170E7A0E00000038371F4EC6E646ADE6BE75E839000000607F3D97CFCDE65793F3B440CF01000000FBC7E7AEF2E1109F03000000E83F0700000040E0F49CB5DCAA5643CF010000007BEA39F791CB3AEED073000000C099F970DE6835F41C000000809E03000000007A0E00000000E839000000003D879E03000000D0730000000040CF01000000003D07000000A0E7D073000000007A0E00000000E83900000000A0E700000000F41C7A0E00000040CF0100000060273DC79FEFFE706F04000000F17968EE07000000007A0E3D070000003D879E43CF01000040CF01F41C000000F41CFB01000000809E43CF01000040CFA1E7D073000000D073003D070000003DC77E00000000A0E7D073000000D011E839F41C000000F41C40CF01000040CFB11F00000000E839F41C00000074047A0E3D070000003D07D07300000081D6915FBDF69AD01295D7C78D335DEF6D1B600D6C4B00000063D591FF0F9F2750CD
+MediumImageOriginalSize=177000
+MediumImageWidth=250
+MediumImageHeight=177
+MediumImage=78DAED7DF9571B57B6EEFECBEEFDF1AD77DFEDF743AFCE5DEFDED76BBDFBFA76773A49B75FD29DC449DA8EE738B6C1F18C6D0C188C99E7791E04020102C43C0910F33C19301E92CE3BDF41A752122590D084C4FEE15B2A954AA5D2A9FACEF9F63E7BEF73232696BA7AFB253EFCE8636D5BBD2F2C29A38AEA5AAAACA9A392F24AAAAA6DA09AFA462A2EAB2093D9429DB65E97EF30221BEA1968686EA1D68E4EF9AAB6BDFDAE3FBFEBEB6739F9857443F70C474AFB861268A397195972BBAAB69ECE7D7B81DEFCF8B306BCB77474516D83893EFFE22C3D4F49A5DEC1614A4A7E21785E4929A969B4B9B3E7F21D4664433D038ADF89C92914F734DEA7EFFAF3BBBE7E866717CF70A4B56F28A1DA087CC73D35E2393FFBA70B5F9CFD4A3E17D06BEAD9C01810ECB1CA9FF19C79EE1DCFD57D35E2796E4111159594537A560E75F70D90AD7F90ACDD3DF4C3BD0774F9EA35CACAC9A7D83B77C9DCD64145A515F4D537E7E8717C027326C2C7F3ADDD3D5A5EDF9498595872796F774CCBF73C9E079EE7AB9BDB5456594D4B6B1BB4BDF78E5636B6045E492CAF6FD1DCD28AB60F9F434F637B7E798D661757E4B6A736C2588E571ECF19EA9EA3DF874D8EE702AF4ABF1FA6E399E7FEF3BCB4A28ADA3B6DD246FEE6DC79D1DE2FA48F2CBFA884FEF6C59714F7245E7E86FFBCB5FB466AAD82E252BA7BFF217DFEE559FAFAEFE769EFFD3F0E6D23239E67E715C8B1FCD295AB74FFD163F99DEFBEBF4109CF536860788CB911C5BA1DC018A0388F67EA301DCFBADD7F9E0F8F4D50EFC0B0D4CBE0F3F90B97E4FF7BFCF4193D7D96287D6599397954536F92C7C3378EBE01FBEF3F8AA37A53332D88B1DD88E7EA3E1E369E0F8C8C691AAE6F7058827911BDE3F949FAEE691ACF3176C72724D1E6F66B8FC7409B77DAFAB4F1FF595232AD6FED78E587831663DDCE609E47AF1F0E63347C2BCC7386D2EDA19E1BF647B79FF9F433F91C47027EFD9B0F42FE9B882FC02BECADA3743BE3748DE7AAEF87BD06285EE159C1FB93349E475A9C8C9AB3844F13409B1EE6F3808F049F2B1B5BF94DD0C761DBFD3BF8CCC887018E639B79CE50F71CCF075E61CFA97819F54CE2798974DD8E7E0C70E717FA303D77F05EC505625BBDE233ECF7D4E71DF65F14F7948F53FDDE61FF5DF154F50F6AEEE3CEFD0707BEE37E7F541BE178E63943AFDBD57C6B24E8F6E3F05CAF4FF0FCEB6383F431258A8F6A3F8E57DC349A8B3E0AD0EDD01F4A4B7BABF37DB14D2E5FFBCE50B7ABF6629E33F4BA5D8D33FAF14B6946687A1C1369E3B98AF1C17F0267D5FF50734978C5E7EEB141FAF926F5B9FA0CEF711E6C1FF5FBFA3E0B9C33DAF6B6BFF4F638D517AA6B679E33F4BA5DD97FFA3877A55BD5F810493CC7B1AAFF5280EE55762FB8AAC676A573D117A8F15CD92CEA78B54FB50FDA0BE7F0F67FEADB4FBFED6D3B7A7B1CCEADD703EEBEC0FFFCDD7FF1B37F4A75BB271F4F24EB76701CDF5163B8827E4CC7B63A06EFF576B8DAA7FF3EF6EB7D96478DE9E1E2F951F170FCEC9FCEF15C3DEF2A064E6976E51B56B6BBB25FF11D8C19CA67A5EC7BE5E752B9AD38C749993F470C5938E7CF99E78C9312DFAE9FF351FA54CF7D35BFA3BEABB4ABEA13D478A8EC4FBCBADBF5E1E2797CE27399A735BBB04CD9B9F994F2325DE682A46566CB986EC4942267ABA3AB87DA3BBB65FCF7EAC62B4ACFCCA1DCFC22E639C323AADAAD946D6E0D1A1C4BAB7E5D1F3432EE3B6C3668786CEB81FDEEFB14FEE99FFF99FEFD7FFFD6F07B4701DF3DCE67B8DEE3F23C43F016AFC8037918F7842E5EB94AC3F609C1ED5E6A6E6D97FB8B4B2B641E26FAA7B5AD1DAAAE6B94F998DFDF8A89389E2B3B83791E7CC4F6F7D3A39F7F0E1A9AADDD7E715DDD73553F468DDDF0D3AAE745CD232BFD8EF1DB3D9E12EF953F5B6976A5DB956FCFFD77D579944E5076313E53BA413FDFA7FC07C7E57979550DF50D8E5046762EF50D8D507B974DE690603CB7F50DEC5FABE038EA2981F30B2B6B724CEF15DFC1EBEEDB1F238AE7683FE67974F03C6579859EB7B507A49E0C9E0B05A37A05AA1F503172FAE745697CBDBF4CEFBB768FE550F123FA982EF55BF80CFD8CF205E86D067F78BEB4B649F52633CD39F3B62BAAEB644EA7D9D24E33F34B74E5DA756A13FDE6887D923A847EAFAE6BA03CA1F31DB30BB2665AA48DE7AAAF659E473ECF811F5A2D7EEB76686F77FD8DCF30278357759C277DADFFBED1B146DFC5F1383FDEC3A7A7BEAFCE0B9B2090BAFD2820670C5A7D7175831C33F372DFE4CC9C5FE7D4B791BE5DF4DB87D929DEDA33466DA4F414F39C79EE8FCF8BF3D5BCFF9F6A9E4E1F776434E7A1348C9ABB57B6903A4EEF0B55DBD051CAB652B68E8A07609E33CF99E7A18D4352F689E2A8D13188E351F691F257A8987A1CA738AC78ADB779D43C878A0552718DCCF3D0F0FC0FD9D9F4E78A0AFAAAB393AECFCFD3F981013A535D4D1F1517D3A7F5F5F48DCD469F9495D1D98E0EFA5B73337D5C5A4ADFCDCC8484E787E5A51E5543395C71324AEB470294D6463B1BD921EEC7E8ED17A3E3F03970D86FFE8F5FFD8AFDEDE1E0796E2EC56E6ED2D7DDDDF4B9D94CFF372D8DBEB058E86F62FBAF26135D9B9EA6873FFD44311B1B72FB8AC341B75FBDE2F13C0AC6F370403FAFC67EB8D0F1FC8F797974AEAF8FBE113C3F535323C76FBCBF64B7D3859111F9CABA9D791E689EAB9825E67968787E696C4C721B7CFEA4BC9C3EB87B97FE525525C7748CF5BF4B4FA7DF0B6D0F5DFF7F5252E8AF8D8DF4657B3B7DDED2223FFF7D5696D4FEB7565759B747581DC870F25CE5D432CF838F3F3D4C1763F7005D13F6F6DDD7AFE9CAC484E466CCFABAC4B78383DA7B68F6F3A25FF8CA6A95C7623F6CF95B6B6BF2734FE379ACB985C773C6813652BE78E679F0D13E324675A2DD8389CE9131E639C390E7BCEE1283757BF4DBE7ACDB193C9E47BFBF9DE7CF19CCF3E8E639E7A532F4F7DC13108F71585EAA3FF12A877DF7B0CF8EBA26C6C11C00E63983C1E33983C1884C9EEB35917B9E1B3EE3766230D80FC760302283E7A8CBCD71AF0C46F4CF9F23F69579CE60442FCF519FC268AD28E63983115D71AFD0EECC7306237A79AE6ACE30CF198CE8F6B7733D190623FA79CE792C0C06E7AB31188CC8E6B9AAFBCC3C6730A23BBE1DDA9D79CE60442FCFD55A59CC730623BAE35EB93E1C83C179A90C0683F352190C06FBE118A181AD6F59C26C99E5F6601CF0C371BE5A7420AF6084EEDC6BA3CC9C416E0FC6019EF3FC7974A0B5635EDC53E4194FD2D6EE7B6E13864B3C1CD6488E669E9F263DDBD5BBC4CF37C3305F0D39E8D1CC73E8D91BB75A4E859E659E333C8DE7D19EAFD6D03C7D6AF4EC607327CD8A7BEA8ED1DAFAB0EC07986F27C33E8FC43C96ADB54D72B45969DCDC4AA3750DB4EC98A195A9599AEEEA39D5E3DC82E8B37776F7C814134B8D376FD1EEDE3B6DFFF2C4144D5A3A5C3E3BCEFED9DE01EA2F2CA61661EF59935F68E737DABFCFF583FB19A1E5397C7091580772D8D64BF545251255E9595425FE8BB9AE911A05D43A7B03BAB5434F0BCFF1BF3757376846B4CFCEF66B97FDDBAF76653F88CFDDF72F8CD869CADA6DB87FC1A51DFB6975668E66FB07696D7ED170FFEAEC82E1FE053FD67265F8AFDB2391E7B8EEF4AC1C3A7FE122DD7BF0C865FFCAC62B2AAFAA917DD82FEB6B4E6AC72CAFEF45E53DC5FF854F35232999C6EA4D82874BB4FBFAADCBFE09A17FA07BDCF7AFCD2D524F4E9E18B3DF527D8349EE2FCBCD97FBC79B5BF7F73736C9FD0DC5A5342778BB383621B4C31B2A14EFF5FBD13718ED9FB1F5C9FD4A633042AFDBB1266E24F11CCFE8CD98DBF4E19FF6D78F52C0DABD49421BDEBE734FC6EEEB798E311D28ADB0D3C8F80659BB17A3EEBE0E781833C3B5BF97EDF313C173AC211D897132E0F9C3B827F4FDAD98033C4F79994E31B7EF785C4B13FCEEEC59A2DE8195A8BBAF9EFC5E276D3F23F43C072251B743879CBF7849EAF6DFFFE18FBFE8F6F52DEAEE1D70D1ED76E927DAF7FFDA6ADBC95A65A1AEEA366A2D31D3B4D493D1A1E57B9B7B0C7DDEE3A22DC2B17FD931CD7C3B21F67924E69F83C357BFBB2ED77DBD72ED3AFDF14F1F51524AAA1CCFF1BF6017EA75BB9EE775398DF4E96F9FD0BD0B5974F36C9AE47AB4F09CE7CF19D194970A9E5FBE7A8D7EF7FB3F489E7FFEC5594A4E7DA9F1FC87BBF73DEAF6D1890D7AFCB4538CF9CB42138CD1FCF26B8E9361705EEA09BD7E8CD7A9E999545852A6ED07B75FBCCC903E074F3C9F99DF21AB6D91C62637C9EED8A4CD9DE8889D41BF55513D41968E797EC61951319ECFCF2D52437199CE9F7E10F653661B0E8CAC5143D334F50FADF233CE880A9EAFCECCD3A4A59D5EBF792FE764F7DEFDC4F795C188329E33C287B1894DE9D7884FE8A6E4D45E6E9308E03962E178DD25862F78FDEE1FD4D236470FE3ACD46963BF5FA4C4C331CF4FE933909A46C35535B4303C26ED1F6F6D1FE4FCC1AF8FFC3FF804B82D23633C8FC438194600F2F25FBCA4364B3BB50B7476F75097ADCFA34F13F3173C8717D9F96A5C1F2EFAB1BEB0A4C50939847E53FC35995B85A6AB24ABEDA09D3DB7B44A8DCDADD4D064FE650E4317EBD6D13CCC6D1B4171AFBC8E62F443C599F70D8E507B67B7F60C0CDB2785AD6DA5B5CDED83731A62DFE0889D96D736E5B1D88731616E698563D723D0DFBEB5BBC73C77437BD70225A5F4C8FAA9D80E783C5FD3343D4BB251DCD34EEA09413E8D1127BB7CE0A9D1B1CCF3C8E1396AB74762FE792880FAA9A83915947A38BBEF43EAC7D2E799E8757B4676AE8C276CEFB4197EAFA6BE91EA1A9B0C753BCEE9CB3534B5CE0AFD384CF94523322F9879185A9EB3BFDD2036766147FA99304F8CEDC38EAD3CFB354DB4B6C9DA0DDE9E1FF1B638377E2314752FF4636FA7AD4F7B06BA7AFA697A6E515CC3A6E1F7FA8747E5676A3C8FFDE1AE3CFE38E3F9C4D416D5363864FFB6B0F29A7918429E630D45F6B71F3F2F64408D8D3D7DFBF0D257AD3F377237C199CD95F5A08FE755E999549495AB5D5B4979153D7EFACCE3F7EA4DCD64852FDE797C6EF20BEA3799E5B9E0DBF3B52D13937B64FF16AD357D4E725E2AF24198E7C668CCF75CC77440007D24C6B7FCA212CACACD177AD4A17D177A1879F0B08B1A9A912FBFE7760FF66D0287F8BC4DDC838DA5D5A0F3BCA5B88C1A2AAB35DEC2079BF83CC56BFBBCA9C5426B5B3B9C4F17613CC758C3FEF69FC9742B96AAFE7E4EAB470ADF649793C75B1E72D34D668B3C6663FB35E5151693C5DA25F4E82F63F2D0D8388D3B66E431CBEB3F536A5A81F619B430CEDDE5AC87BABEB842AFDFFE1874DD5E54524E094E5EE3B7E14F87BFDD702EEED52E4D893E6C6C62CA279F9D1EEE3983CCF3F08DE7EC8713636ABB55D686DE7BFF0F179EA31F34E239785321C66B7015EF2F5CBA22F5ADB7BE6AF845706E59FF0635A9A7E7825A1F518DE7ADE29A5BEA1ABCD2EDE803506BD3D2D1A51D9FFC308E66847DE2AE6D506F57FFDEE13C1E5AB157B7BFAFAC9AF917269EE3F5B4F31CF58E51A7D8DD97D6985FE251B75796966B3C7FF8F889DBBC9C4DB62B7263D18FBAFBAA81E6103EF323CD6DF2372DE29A9B9DFDCB51BA7D70D44E714FE2293BAFC0C53E1F6E693B92CF9EF83FEAC157C1E07CB593EA87EB74C68962BBADB3DBE5B361FB04F50F8D6AFCC0BE82E2D2B06958F55BB866D537E1BA606778CAD35F1776F8D6EE1B174D525DD748B6FE83EB57A9733298E7D1E86F57FAFE3078AA791C0E9EBB3F03BEC03077EDCD7BB92E03F261FA0A8A34DBC3D37E06F3FC2441E564610E28186BB2614E5ECD9F07FBBFA8B9FA60C4E4C077889A1F333DFD3437307CE47E06F3FCC4D9ECF33BD4DDB71C9473F70DAED2D0E83A7574057FAD08FC16FE4730EAD52F8D3B68B8A29A265BDB5D7C1BD88FBCD795A9191ECBC3CC737DDD47779CF43A90A100EAC01E150B775CAC6DBD95E79F5BDA0DFAFFC06F4DCEBCA2D5CDB741FB0DCC53A8B98A03FBB9A65758797ED8E73C9E3318CC730683C13C673018CC73062362FDB373DB5453EFA0ACDC212A281E659E331851888DED77B23608F2E84FFADADACC7306E3F8B1158847408EED49CFCB619E3318C18D95649E3318D1C1F345FB048DD53752CBFD075A4E33F39C11D4F8D6C6661987B636BFA4C5A870BB049343C3B432354B13660BEDECEEF1781E04CC0D0C912D234BC64EBFDE7BC731570225F109545F584CA68A2AEAB076516777AFCFB92A9E80DC5AE6F62F403E2F72716BB27369B2AD83E687466967672FA8B5424E23CF77F7DECABEB4B9B99546ED93863C47BEE551F956D136578A3A35A8773135BB10D2E7C51F0C955792DDD44CBBCE756F91FF62897B12F1B62FF3DC7F607CA9484D937DAAAA97E1D0D533E875D682D1D762EC727E66296BA1E2E46A7A71A798321F9505B50E79736537152656C9DF69CC3751FA8352F9DBD8D7906B3A5097212FBE922A5ED651565C993CAE34A5868A92F68F1FEFE8A7ECC7562A48E816FB3BF7EBB308AD9EF6F49936E6E61514D1B3A4646A6DB746DC330D8EA3FEACFB7EE4D99DC4BA915DBDF3CCF3105CFF5447974B1EB5CBE7A20F80A647AE14EC27F3BD072E39A155B59364B6CC92A523B8F70A3C7F7425976AB31A246FF53CCF4FA834E479C2CD02AACB69A4B4FB251ACF9FC716499ED76577537361ABC6F39EBA462ACBCAD1785E56594DD7AEDFA0123146FA7AAD664B3B7DFDF773B27E5CA6D0A3A819054D74EEC245C3FAEDBE62505743DE1D467569BA9BFBB5DC6020B76058C6A664E60C7A9DA7979ADE2FE7B9B17D5AFDED87E1CCA79F9D88BC50D4F9C6AB7B9B2A5EAB7520DDBF8B1A0783FD83727DC0E69A3A6A6D3287E53F64E70DD157DFD45261C9985CF321E6078B7C6DB32ED09DFBED078E8F159F5FFBBE994CE619B9564B59E5B88CB9FA4EEC431B1496EC5145F51E2525EFE7D10D0C8FD1D367895A9BA0864D79550D0D8D8E1F23277E49D69759DD784523C2169A595876DE87458F35717C7DE61646ECB4267EC7F2F829996262A9F561DC01BB576D2B9D85FF8DBED9D6B74C1D5D0BB27FF6E6F71CB3DBD4DDBB2CFB086C9F569E83CBD0BC37447BAB6D85FFFCDD7F85FD1AC7A7B6685068B6AE9E25AD26C33EC628556853A5DB55DDD48591B123753B8E71D7EDFD26EB89F5971A6160E4976DF01235A5DD753B6A389E24DDFE56F0F79D78AE16C5BD5A147DC8EAECBCBC4F5B1ED687D0F3FCB8753ED03760FD979719FDB2D686F4DF8ABE7F79729AA63ABB659FB33C39255F511F10FA10DBF0A9CDF60DC8DF9FEB1F22BBB35E3DB6E16BC379A007A12DB00E7CA4D49970AF39711275BB7B1E78AB687BD448F5A4DB6D99D9B4306A97F58B0ED3EDFDC3ABB4BDF763C4FADEE61657E49AA6EEBADDDADD1B129EC32EEAC9CA956D7C28CFC5B5AD8A3E79D9D42CED29C597C31028BF897EDC2D78FA4CD6A62C4D48A2B2C4E7D428EC9BC2070FA9E2C54BB98605DE5B447B163F8927736D03992AAAA936379FCA51CF5257170FFD46DFD02ACD87A07EC069E2B9A7E7CE936E5F9E98A2015B5FD8757BD0C776A1DB33B3F30EE876C7AC6F7E07F8E9618BF788310BEBCAE03CF0DBDBFA06E5DA139E783E2DECA3EACC1C3295571D39F7E68D26D03F87C1E039AE0135F53DD5BE8C64DF7A34F21C80CEC2FAED9EEA2C7A9A5783FF167A0EFE9CBAC629DA7913B973EF983F2B151C53F7B1A9B58D8A4ACBB535D0BC05BE57DBD024D75BC15A4BE0B7637641FAE660F3280E37BAAD9D089BBE4D7CB7437C1E883976F7E7301090EBD0B475686D84F533167C5CE38A791EC6BA4E43239AEFC6FD3E604E16EB0918E976CCD180EBF0C18E8E6F04A5CE63A8E09899975A5DE9F6E729A9F4D95F3FD7C6F840EBA7859583B5245B1E3E92F6EE8EB306B4CF79216B9BB4E15C531DBAE215EA49AF6F05CECF23FAA69A8262ADBFCFC92B946BC01EF69D981FEEC8B6BC7CF51ADD8AFD41FB6E9FE8F7B475B79AAC34D8DC49DDB56DD45A622673B199FA1AADB4BCB0C63C0F46BCA781065B15B6FBF6AB5D199F84F517F02C45672EF4A2F4BB299E436F634E2C926242D00F2F08FB03363BE6D0C171CC8B06723C7F7AF7BEC6D54AA14FD04E477D6F65E395D42FF069AAEF26DE7FA0F1BC20B18A3EFDED13190791FFAC92CE7D94440F2E665357C724F39C1150C09E6EB376B9E8F6C420E45344723CA18C271ADCD77E58A7E2C9B304B9EEFB91BEDFF925B92E3CE628D5FFD7DB2D3DFD2BD2F683FDDFD4322BE7F04251BF97797E1A6B9B2C92C5B9AE93D2EDFFEDBFFFCBA9E2F9D4C80C8DB5D934FD6CADB2506BA959EE931CCF2FA4CAC25F74FBF51BB7E841DC13B9265E4656AECBFA32B905459426B8902CF4C4471FFF596A76BD6E3757D568E339E6673167B3B4BA2734E5168D0B4CCF6F33CF1901077CE2887DD3EB76AC8D142E9E233E61A8BC4AC6A887AA0D2C8D8374EDB3179478B3808A9F57D379A19FEF0BFD5C9BDDA0F1BCB6B45CE3AAD2E19EE313C6B4639FC427D0CD98DBDAFB1A711EC5F371379F24FBE11841F34D4C4E536985ABBF1D635238788E35A81ACB2A64DE9CADABE7C8E311C310886B1B9DD8107D9B439E0F7184884184A6D6EB76E5C3516B477AEBD71FB64FCA75A3D5FF37E9E20422251E8E791EF9189D9892F3607ADDFE9B0FFECDEFF39EBF7091CE7F7B91AE7EF7BDE6E7033A1A4C342D6C5CF89681514BB7D4C7763106AAB844B56EBC7B3C3CD64A75F40E6B718DA8BB9457304297AF9A646C30B68F154335BF43561BD669DF94EB5EC04E868E569F8FF44E0A6DBD21B7CB72F3C9E25CB7DE173438C76EC41230CF19A186AD6F40D3954AB7631DE3608DE777EF3F147C9A12FD4003C52774D3A52B26C92B6DAE737058C6BB19ADCFE21EF78238FF50D777EAC946EC5E2BEDBC7E7B600D6CDF628FF7633082B55E4F20EFDB9DFB0FB4BE97791EB9BA1D31717ADD8E313D5CF6F974772F2D8D4FCAB805F7F9F4D930F9F28231EE0EDBD7459FBA2A73302281E7D0232A7785791E99BABDA1A9C545B77FF06FFF4BDACAE1F2B7C316460D108CEB83C2165E5F5C090BCFB19E9CD932473979C301CF5F47FE1B62AC4E625EBC916E07C0777F798EFE0DEB7162FE10B9A4CC4167EC9D78E667FDC8D93E0A3599D91473E59A8B6E0F941F0E79700323762DBEFDA8FCF305A79F1A3984D5A2BF415D2FE49EAA7CAF50FBA777DFFE4415D513545D3719B1CF0FB8D4D1BD2873728F935BAB788E672310E339F2A9E39E74CA1CC091F10DE6B84E33228F1C71F4C565F6A0E8F6EABA0617DD6E94D7735C9E23E65DE5C3C9FCB8A5556D3D7573DB9C96EFA91FAB8311A37E5A012EA5670ED0BD07EDC7AA95A1788EB15CD55EF287E7B8DFE038EEFF49D732211DCF455BB476CCCBBE78D81EF8FE0F3919C84FD3EBF63F7EF851D0EC7387735E1CFEA74EDB9266FB8EA85CF1F52DADDE2C2330CF0F38A5CFA13F0ECF319718283F5C24CC33449B6EEFAAAEA31B172FBBE876E4B584D20F075F80D210333DFD34D660927E38E4A6F333105E5FA27E2E0D798781E4397C30A8C9017BCCDE643ED5F75BAFDB8F3B3F7C549D8951E79CAE3E2F35943C57B6BBE956AC8C3D635E06E73902AF5057C121FAF391EA5A99D7E7CD7D537A5DF9DCFDE7F9A4967F345AD728E322E08339CDF7C752DB4377BFCD92F5A950FB31D0E3795B7925E5A767BAE8F67FFDD5FF0CD8F523C6FBC1A3C71A9751BFC2DD97DFE5ACD33521FA9840D6DF4A4DEB17BFDD21EC92711903D3DEB520DF27A7F6CAEDD3C5F349C92B00E3E7504595D44CDEF21C7C4E4C4EF19BE7C81B5679E0B896FE82225907CC9B6B3919F126CB12EE35063DEDF7259EE2464C8B7C2E51773418792C4A330733D7449D1BB560DD7F07F1E0F9E21A9A6EDF9179A53BCE3AEC81F0413D4BEC96F6E9EB77FFA0C5D53D591713FA08DBA785E3685F70CB26FAF4FEA2129AB1F5498DECCD7A3B818E8703CF55AC2372BD01E47E9FB4F5293C019AFAC6AD960335833DED3FC9B5B48291D77FD4B983D1C7A08F44CC3A342BFC51F0FD611BFB8EE3938ADCB17C3F966D66729A5E6D6EEFD75510E3673878BE7F9EE9886D4BC460C2A7E99E5BE169FF49C1C6F66B9A9C99D3743B6A3C238FD2DBFACB380EF96ED7BEBF41A942FF23671371B3F71EC6C97973BC476D15D876F80DD4890AE5BD37F23F9D467FEF71DB37383C3F7EFBEBE301C235FFEEE9FAFDF95FA18893B97AEEBCC673D470442D04D447F065DCEEEE1D90352B2AABEBC8646E25ABAD972C1D5DD43F3C4ACDC2EE5675B153D332433AD7A2CEDBA78BFDC13ED45F1E0C82BFD19F38587D9CD8C6F63B993387E7D9DABD18B46733D2780E6E4323DFBADD1A9076396E5B420FCDF60D7AB5DFBB7A2F2BD26F845C8FF4AC017AF53AB076CCF4FC12BD48CB70F1B7237772D83EE113CFC16BD44D411FA1EA405654D7D2ECE28AC673C9B7C19110F37CDF1E98EEB2C95A606ADFBCB80EAC49BCB17C326AB1A93831E4E0E1599E9EDBA6DA0687B4F9B0CE46B4F01CB613E20B8F5BB71EB518553C40A09E195FFDB3F069C29FD0EB96EFE569BF37A82BEAA0ACB87259FF00EB2839BA7A033A9EDBDB3B29C3E91BD3EB7670D597EB44BD43F0BAB8B4821E3F7D26753CFA90FCC262FAFE668CE66F6F6A693BF0DDC6E61979EFE0130FB47F40CD09CD0ABD81B5164B859D91FE329D2C6515B2F624F26602E5F733C2A0688F1D611B1D650BAB3831E4B0C19780E719B69EFBF38CF988F505DF9E6F8B755EC6EF1E27FE2C18E339D62AEB1D5C3931B945F0C9A24FF5C63F8B670A3ECD56F1AC2F3B66A84B3C4BE0F698B051E53C82C92CF7B7C727F8E45F2CCD6CA50B9F3CA70797B2E9CC7F3C0EB86E6F2D29A7AF3EFDEC806E9F989AF5BBFD505F616E69458C55DDBFAC8FDC7EB07633D6CB696A9DA5A1B1F520F8E2C6BCDA1734FFECED3BD4D2D8441DBA3670872FBE04E4000C8A7B869C58A3B928D4C3846ED13F5F13D35BB27DC3319EEFECF897AB22D7B171AE73E82BCF5B1E3CD2E6168ED218CA3F7B549E30780E9F2672AB11BBB9323DBBCFF30987CBFECD9575B9DFDBF1033A02BA0DFD0D7C7AA817586F9A96BAC768AEAEA4DC2E636A001CD72CEE2FBE8F63B7767F16FBF6241A9B7734DD9E99937740B7FBBA0E8111702ECCDBB577766BCF336AC52F87B076AE518E5BB0F2DEE0DFF7751EC1579E1FF9BC08CDD2D26022AB68F35667DDBFC3B0BCBE19549E639D2AF0ECB8F3E358570B71D0EEE3A2BD77EC407CEF41DF788B5C3F176397A7FFEF3A27E45D5B3B3C8C130E3FC68FECE7268AFD2643AE819AF3B48292620AE9D98D7CB9F671E2AD8203E333C67D1C8F75555FDE2B91AFF72F64D3BD6FB3E47AA94549567A7CAD5DBECA35456BEAE8C2D9AF0EE876D435F5F7B9BF27FA53F8E7D232B2B5764D484A16DA6823AA788EBC03E4AFE6178E68B56ECAAB3AB4FF7CE7FE433907A17404D69145BD1DB48FA673C47D18E938785D789EB57AEFCE7B04A85813A3BA35D9B9051A2FA1A56EDFBD27E3958E339FE92FCF719DA8891923744D7CE2F303D7ABFE47F28B9786FF093C445C1580F6536BE13A9C6B7AC05F857A40F54DD3BAF513E7B5E719BEE03C613B22FF5AD5F3A9AA6DD0E6933006DB9DEB2AF67AB94EB5A7E7C79FE70AE3F9A3C756E98FC378DE33B022F33FE0A7292C19351CCF1107065F0E6242EC939B321E2C236BD0599FEC476A687A4F6999FB351C500F093E7077DD6EEB1B0C986E475D4975DFD232B345DF1B98DA0AB0558FB24B10476BB4CFEEB63EA6DAB6EBD6D29C1A9CF2C90642FD56B5AD7C1E40BDB0D9DCF984E70CB6913AA6563C8BC7B5BD0674BC803F02FE10B5BE29F2CC3EF9CB192D96CD1DC1E639AE01BE9BBF9CF994FEFAF917077E1F9FE315FE1C5CBB918DA5748991F6408D00E8287DEE30D60052D70BBF2F34A57AE6C0738C3D8AE738C6D35A82980356EDAA9F0F0E06CF830D3C6BCF455FEAAEDB03C173A5DBB17689BE0E62A0EC63F47919D983721E02B6D58B977DD2D67F9AD02DFB36F8548CDA1EF1D4CD77EE4A2D595850A43D73B2BE85B06DA79D35281756907FBE2D6C9FB7E2FC9B5AED49F80CE313BB653F8AF7D8C62BDE03FBFD6DA5D6A60D4DE603FAA8B0B84C5BD74BF6E7426707A24D24776EC5BAF0FCE2E52B861C0F05CFF11D704AD9869EF404FCBE7A3BA3D7C7BE6EBCC3A66D678AFE42AF4FEF0ADDA4FF4DFD3E8CE71505FB7DEC80B84EE450C96D0FF50A476AEA65DCF051630A6A83A3FE61596AADECFFAB32EAA932AD8E3ADB26C2928F8B75C2F29C6B0AA976F9E42FFF2F60E73FFBF5379422749B6A2FF4292B011ACFEDF6158AFF3E5FDA3158A71A6B9AD46537CA7D79621BEB551BDD93CE9454EAA9ACA14ED18F173AD78456F7B24DF01EB91538AEC7EC90F6CDA53316CDCEC1EF3C8F2DA2941F8A28F56E3135E69BA4FD049B2A3FA19272C52B8ED3D781BE7EF396CCC57789FBFFE4CF92FBEA98E68AEA808CE7D0EDAAA6ACDA977748DD9060F31C6D9A9A964159B9F9867686E20FFA023DAF7AFDF02D37E8D6F946CE75ADE0AEFE9AF4FB729C35BBF13DF3BDFBD427EC2BD8042A56D8DDBEC0FA6BF8DCE87751FB486D83E35837BD36AB41CE9395A6D48867A89A5A4C63C7F689FA83B5AD6D4DBBA25DD0AF3E7AF23460E7473F8E3655ED855CB840D9E7C8C9C7B80DDFA49A97C57C147C8E23C266F6E43BC5DA7958C37C7BFBA02F18395D33BAB1B77FF83DB5B6BF1776EEBE9D835A00D01158BB7C72FA95D48CA8058D79315C4FB3F31EAA1C404F76B4DE5650790686DA7164F2009F959E745FE753F146FD26B611B3F4F7F3DF8A31FDEA91FEFE60E9F60B972ED3956BD7E9DEC3471E753BE2268D74FB51B1F246FF43AFC96197A3C6827BAD34B50FC728AD6515B616D6A857FE797DFB2A7F5D7B429257B956A8137E2BB655D8D66352FF41E7C11F0E7BFACEFDF690F31CF300F08DA9FF8CB5596AEA03B74E436149998CA1D1D77BD5D73666F8364F8CB973E41862CEC268DE029CD1DBE7B8B7DF9C3B2F6C9924F91E63ABAFBAFDD7BFF940F2F9C38F3ED6B615F0FEA8F11C405F139F98E4713CCF16E3BD7E3CD7EB13CD77A41BE7077475F48138A756D7C7F7EAD7CBF076BE41D6197E17FAF58FDBEA7A28FB71B9D487D0A5C9B78B64CC0CD6080AC4FC798FE074851873555BBE4CCF146DF62C60D70FDF7D87B07783319E9F569E23165ACE9F1BC460401F5CBEF69D7C55BC01BF5FBC4C977E30B56644A8C673771BF7B3BF7D213989756AD43E7019E731AA5706BB6BBABBC7EB1A14919ABBD02E780E7B136B6AC28E07CF4B926B02C6F37EA1D34B32B35D74FBC3B82701D5EDD007EA5EE71796085B618739ECE5330BCDE74B8D77F8011E3D890FE035F8C773E839E587009F611BE3558DCF6ABC56CF9FD1398C6AF9C31636E27FA4F21CBAFECBAF6AE45C1AE6CC3EFFB29A6EC6B4042C57076B85617E51AFDBCD6D1D01D5EDFAF542E1875BDD78C53CF632167C68749D3677BCAFA784BCA1A3625F42C973D869EBAF7683D23EEEFC6F699F93FE9A93BEF6C551BA1D3E3B537E9344A0E25EA1DB1B9CBE61A5DBE13709A46E875F44B3B79ACCACDBBDF691BEA5F9E5D7B4BEF5368C9A2272D65D821F14B1F33B6F7E8A68DDAE78DE5410389E43B757396D28A5DB9F3C4B0CD83A0DD0EDA81BADCDF108EDB0B1CDF5F923A94605AFAF165ADD8E588C73DFD6536BFB5CC0CE0FDDAEEC71A5DB516F3D90BA1D31494AB7A7396BFEF3BD659E33420BE58355BAFDF69D7B01D5ED2AEEB3CB196734B3C0F5BB99E78C5062E7CD7BCD1FAE747B46564E40FDEDA809AF788E9A338879E7B6679E3342CB73C443EB75BB512D087F74BBE239DE632D748E93619E33C2E103A8768D9309E0FCAB7B9C0CF204B9CD99E78CD08FE7885D718D6F8F977361885D431FA0F2FC8E1FDFDEE432AFC6EDCE3C67849EE757BFBBAECBD71D96F1E8BD03C3343AE190F520B1EFB8E7375B3A68C43EA9E976D47EE676679E33C2076FE2FEFD01B77164F21CF1F12AB78E79CE604427CF9117A3D644669E3318D1ABDB91038ADA34CC7306237A79AEF2C899E70C46F4F21C752403B12E3283C1607F3B83C108EF78CE7E380623BA798EBA2FEC876330A29BE76AEE9C79CE60442FCF3196631E9D79CE60442FCFD5DC9AAA05ADEA9933CF198CE89A3F576BC9EB6B8A31CF198CE8F2B7AB751158B733183C7FCE603098E70C068379CE603098E70C068379CE603098E70C068379CE6030CF5D79FEE1471F4BAE9F64E01ADDAF9BC16044D7786E74DD0C068379CE6030CF99E70C06F39C79CE6030CF99E70C06F39C79CE6030CF99E70C46A03972E6D3CF244FB0CE9ADA56F8F56F3E70797F126174DD0C06C39523FF1F5A649B51
+SmallImageOriginalSize=63600
+SmallImageWidth=150
+SmallImageHeight=106
+SmallImage=78DAED5DF7771B4792AEFFF7F6D6CFF6DBBD5DE770DEF379D759275B962C5B56B024268949CC040966E49C73269893E2DAD75F110D0D61901880200842FD43BD194C0F66A6BBBFA9DC353D0FFA69E8D118F50F3DA2583243D7AEFF4C77EE75D1E52B576978749CBA7A1FD0C0F008B7293A4A182B8BC3450BCBE6F2F8553B47CF756AFD47CF759AD5A7D35E63C96CA51E812B10C6E6C98BDF793F5FDCA060344EEBDB7BE40F45291C4F51229DA34C618D02E118ED1E3CE5735F75BA73F73EE3EAD1D804191797CF14575D3D7D2DE913E6BFF2D8D6EE415DD7C0F34E4CCFD0F51B378FE0CAED0B328E24AE3C81D061FF5219727AFCB4BDFF44E1AA3456E17892B1055C8D4D4E33DFCAAEAE9F384FB5E6B2DA7FF45CE7AC70353E35C37DBBD7D54B369787068646A87FF0110523713259ED74AFBB57B4F5D0E3E7BF957185774DF27279DDE9D979BA2DDEC599B9059689C5CD1D85A363F895C71F22A7D7CF847DBBCBCB58EB147EB5236413703369300A1E344BA313536475B805361629144BF07BD4FB7080CC766799DFE07971FCC6CDDB4770A530D3F8BBDD8C73DA8D5FD54B520E82C7295C35C6AF7CA14899DF435F9D9A9D3B137EF5DE071F9575E1B3A4D75E7F83AE5CBB4E5F7EF32DEB47DAB64F3FFB17F320B4A30DCF79F3CEDD72FB5D210BB1C571D8826853B86AECDD868E01923A16E4E079F02BE874E01152CF830E63B23AF837E618BF41D07B80D3E3AE03CCA02FF86FB5BE0027B2AF20C87FD98E71D0CAC14A7B5061463FBFC2D8638B71C356EEB74ABF82EE7BA83F3B184FE09F201CC39C631F6DC002F6A53E88FD0D6197555EEFB3CFBF604C48DF09B638866D251D771CFF431BFA812DC603FC4F61463FAE3067907D9837C841FCC6B612235AD9D84C5CA573AB655C81B08FF3E56FC977A44D0102A6F08C894CBE2A5F94FC4C6E8FE335C71DC7FF802FB955FCAA313908F9F3A07F88E50DB6520660EEBEBB7295B7C085F43F43160167CD94830E8F8F7D43D9C21A15D6B728184D507E6D43D026CBC8B5AD5DF63D1E3CFB77CD3E295C9D4C8B626C87C5BB592FCD0BFB79EFC9F39AD70766A0BF4AD907BDF59B4B978FE8BA6FBCF917E63F95FAB1D471417F7FFB9D236DF88D76ED39B8C749CF025F367C017DFD834C432363B4B062A6A919233D1C1CA691F149D6A34FD2AD9A892BB4E17DEB445CDD4A67E8F2EFBFD74D3F6D6D93311AD7C5AFA0AB8047811F497F20C6126DD093E5784256A20D3C0BE38D39963C4BEAB7D2AF0AAC425EE11C9C0B59A6675E801DF8B1E15F5A163CF2C1C010FBB48131C4E26C4E0F65F2C596E00A7DED54BDBD515C816E47A2BAF815F00492F635F454D8E295BC489E27795B257F923C0DEDF8ADB501F4F0AB6AB4FFF4056DECECD3E6EE21E9F90FEE0D5CC32E44FFB4FC13FD923C1A9897CF8DDF387EE9BB2BBC8F31405FF19F4EC4D58D589C2EBD78415FEDEDD1A5E7CFE9ABFD7DFA626787BE15FB5F8A63DF3C79722A5C558E95569FB8C87E51F051F057F04AEDBD65BC4FC614701C3C168463E0CFF03D0093D2AFD189B8BA6CB1D29B4623BDE7F5D29F2726E83F8687E9EF562BFD97C9449FA452F4B6C3712A5C818754C6F12BF31A2E9A5FB41A3FAD76ECA4E3787EE04BEA049D86AB1F5C2E7A4B6007587A6376963E0806CB98FA381EA77F6432F4F9E6267D9ACF33297ED51C927E914E9583FF1C35D05F9797194BD88277BD6E30D0DF2C16FACFB131DE7FDBE9A43F8D8C30EFFA1F8133493F399C6DC5AF5A15776E16AEC0AB303ECA7FD5985F54E1EAF8B8339E59E1EAF4B17F250795BFBD59B8D2126C6FD842DA63888BD5D2952BCFA9F61F3DD7691702BF55B8527416FC0A3E2CF8B354DC5991B20715B53BAEE02B55797D8A9A8D2BF8EBA16B2A5C296A26AEE06FEFD4388EA2F3E55795EB07D5D8286A06AE14BF52D46C5CC9DC20852B45CD8EE340C752B852D46CBFA85A8FA3E82CFCA26AFDE0510AC5B6E8E61D1745E2DB0A27A7D0DB659CF03C71B573F09C12E95DCA14F6CF7D5CB6F69ED3A3B10815D61E2B9C34882B690B9E37AED6B79E52779F9FDCBEB5B6189BB03F436BC997B41A4F56DDAFA70DB4FF0AD40E3B8FF8E0E6EA3A45179628B6B44285488CB68A1B7C7CF7E0052D99B3945D3D688BB12964F294305B29E5701DAE2B0E862961B15170729ADB5663090A8C4F09DCA4F87754D83EFED109CAA7B2DC163218291F8A705B5C8CAD7F6C82311513D78BAF98F9FC4EC615F2455B594F066BB8DF7DFF03BA71EB0EDF136BDC7EFCF9177E165F28539643E7392EA85B80757EAEA919DA2ED53F187C384869A79B0E9EBE386C13D848DA1C9414B8C1EFB4CBCBEF0CD681A22DE70F51AEB0C66D31AB83D6C5796E5F80C68747286EB2088C3D29D721EB445CC97590ADC215D603BDFBFE87E51CB0EFAFFE48FF14B6E861BE6D41D08E90CD29B23957CF756CF215B50BB4BF1B6DE3BA2F35D61B770AAE20035BE91745FD890F3FFE847916D6E1CA3C4B3C4B5ACC017410F74A80C61E9869D9E0A6BDBDF3D19D63FEA37A11645AB5FD7ADA40E7D59FF3883B4336B512577FFAF36B74E9F2F75C3F10F596AF96D609485CCD8F3BE8C677D334706FE9FC709554B52F2F925F3495CD535FDF43320BDD04F7EF16FBD041B4E76CEF3F173ACE53DE9E8BCEBEF6980686C35458577E868BB26E627B7D8B36F245D67F3B755C37779FB12F2E5F3C78657155AD1EB27AE74E47AB1B4FE87EB78F02E1CD573A9F017248E14A1FC19E5B103AA1D7EEA268227564EDA8ACAF093F89C99AA7E2E693571657A8DDA4F29075E85CA8AFE80B722D2AD4BD83CF4F5B0F686E69851C6E1F85C479E9608422AEC82B1F1FC4FAEF76C715E23C0F0682B4B852BFFF67623A4E7DFD8153DD1F766A22933BB1DE1DDAF08D0ED45C5C7B05FC54B5E28317A19ECCFED37F8B772041E12A3906299B931E9F5037D3E35F27E362FA54F74F0A3E952AD516468DBE65B3ED483BBEFD82E366D11EF5F8D8FF7EDCB572429FBFD7ED15D7C875B4BFFDA2E48B1EE7535A32182952516F1875BFB6F65E9E138D6F72BC6F77F7A0615C4D0C0C316F871CB494E28695B8B2D81CB46298E5B8CD49F9128829A4737B1D6D0FB6F3BA09C4A77D2387FE2D8BD5493131775AFFB555CCE3BC38A7A7AF9F56D7B7F83CE83A98E3A99960C91FB5492B0B2B3CD78F6BD4033E095703F7BB995FB9BC01BEA76C438D619FD0A9FC026F27EAFCABEBE56F3275B2DF55E2AA9DD7A5C6964D7450AA4D6C1173AAC515720B1E0D0E73CC60767EF130EF205FA4582ACBB8CACAF3046F71B83CB4B3B9D330AE908F3026C609E3856B6B71851A9E881DA02E6C9F183FBB3807390C0141435D3D14165BFC9E17C7E74B6D11A17F28BF68FBCA41D427876C320B1D0BFD801F1FB6086CFE6822DDB4B80CFE6FB1BBB8963EF212B02F656E289A20BBDB4B2B563BA572057E266DFE86F2B7B737AEECAED5867C42C8E9727A8BA78AEBE0DE75DBB0D90285A66739478B79A9D3CD395A8DF2CC8B842BD49241FD646CDB7DDD046223F0653792AF1E8C6E357CDFA8E055BEE046FD795C4226035312472987BB2CD33B1D5795C7945F5491C29522852B45ED4003C3A153C71E14AE145512EC17C4C415AE14359BFCAE14256DCE335B13741EB8826F722D9D6D6B5B1B6BBA900B138925D80756ABFEBA96DA3ECF67759D4C738B14375939B7F22CD6049D07AEF285359A1C19A715B395F2257F785C107CD8A074E9582E92646A641DE72E720AC43592FE7899B4B11F6D1BF633A134E5A229DE2F0842ECCF6277B2FFFCB4E3A96BAEBD01DA11CF8C39C6DA31B99EF2AC7065771D7E9319F7BBC8B8422EC24B1EECA542BE78246E1B31CE93C7622753FFD021BFC8ED51EFC3007983EB0DDDCF6649D2952FC679DD45FFDD257AF8EB22A58209C68D7DD147DF7F31C6C7D17EF7BA911627E3D4F57384D2025F83DDBDFC6CF85EDFE8C4F489F7414EC3E0A3511A1C1E65BF3A72B2C2B1C41F305C49E98A353AA05429A696136DF0ED237763C59A3B360F033911C68534F91BC8493DEBD8247025BF69AFAD3FDFEC1A1A33F329EE4B2CB94973024358E309FFFE6A69FD4DBC543F17F1978C3816F3C6687EC2410E818146D6E360CC1756105FD9A244669722896D5E87217384974C596E8BA77604860AE2FCDFC43BFC9CB6F77FE3E700AE0CE2394D567BDDE3995DAD5D0760736E81D605BF4E8AEBF33AE8C7CFCAF17199B755AB36047222803DC4120ED70CACB21F16B175503199665A8D26A82864F95A3AC7722F18D9E4FEB7228EA3E55167C1AFB4EB97434277D9DE3D38F2BD8FB09843B7C556E657381FEB52CF633D8C7161A98C2BC41CF5AE8FAEC6FFA32E0F2D0F0E8BFE1CEDC7AAD097B703621C368EE692E11BE0F5E4034ABEE3C6B7C185CEE45C3691637E89DC4277F208CCBA4D16F20959EE15FD09BA0E653AD6723412B368475C1DC9C18B27697C7C9263C55A7EA5D5AF828E30F5DD5A6099D5EA3A19E35306C6D5C8F8142D5B6CC7EBF602039093905D8871F70F3EE2B15C11B2117D422E854DCC6DA0D4AF8246E6E522F163E5603E12D7FDAC99509CECE219B126537E83F2E8FB7C406B5B3BFCADD456DA14E7812BF0E283A7CF19572F73AC4C1CA395762FF4B16C619FB6769FB59C5F4D1A6619576393069A9E9DAF7B3C771FBF7C66C8A34D61A7D4B27DB3BE00EDEEEC1FD1DBF5DAD68BD04D05AEA6850E51D98EFC43E87F9207DBC43803C3B7AFCE9071CCCE6B7FEDA65847E0AADD0979D978F7B1C65F8BFDB3B407F5DA66EB25FE2E09395CC6D109CECFF9FCCBAF39DF305FAACFB32A646C329BE7F7645EE0097D9AE97BC8B95FB7BE9FA2854927DB2DEB857585AB16D08A902B78B78746C6F9DBEECDC0D5D61A72A06D356DE55A34D463623E73FDDB49320C5B39AFDAED7033BF7A28F438AFD0D972255C4579EDC22275F73EA41F7FBAC17D0A790E73225793D98E9383ED4EA833843980AE63ADC8613FE93F9035A89513AFD09BB282C7D8845E1D1473EE2CE5BA62CD58BE543B0736DDCC5C52576CC5604C92CDB5CAF1BDB5AD274267CB730E217C1CE0AFD5FCB4A15882F918F60325DDAD157E06F047E4212B5C957882981FE9BFB29FB0A6E6887D27ECFC94D00FC3B124FBE78D0B1EAE3D38327EC8EFFC8257B984ADB657B241B4361FE618766FB681FA97121FF0AB16C535F5D42680DFA5911CC546EA14697D568A5F19CB7E06BCE7CDD2AF92D104E5C351AEE5D78CB585BB8F5F08BD2953770D88787A8792025BADC0D57B1F7CA40B5717A54E7036B3414B532EAEA355CBF75D49FD5DBD655C0575DAFC906FB01DA1E78722310ABB22E43605281D4A085EE2675FEF83EE5E4A09FE97F1F8B826D669FB081D1F6B29375B6C338F4DC66AE6D9C8FAA2AFBDFE862E5CC1670D7D40FAAEDB95A45FB5915AA5B20E0A7005DDA4DEF77463678FEB2BA1E607EE0F7F1CFC9F45619B7542DD47F6D79BB335C701353FB07E50AF1C844C87AF29E3F6314F6FCB3CF8789163828BC296AE975F194AB8825FB41E5C61FDBC3FFC47FB71588C6760628AB637B73B66BD443050A04238C66B2AABE5EB0357A8A9F6C9A7FFAB0B57BB42EF5C323B28E9F6B2EF647B7DEBCCFB809843AEA443C026878E5BAC118708870AF4F9C743343D64AD5F0E96E2CE8B2B16B6DBEBD1CB200F174D16D6DFE5F107B7EE70DD67BDF5BE5087E2CE5D0FD7A180DE71E79EE7CCF5A17AA8B8B9437393B314189F64FE52ED5DA9D7CF2071B525DE4DC4575AF1FE2D2C67843C0F96C7FCAC6BBCA38FC055301A67BF50D55C1F61DBA3DDEA74B34F1BFBC8A991EB0B8F8E717DB9997877100B474E07F40DECB793DE81D8B8D9EA3A8C0F88F9AF26DB1BF15FE9F17D40AF5FB1E41807A7CEB113E32B7D3BC849C27EAD58BFCCBF6A84067B1F30AEE0771F11EFE471320F3EC75121DFE08F34181704BF9AE35AA94B26EBA9735290F781BAF6D033B05F4F6CA79EFA3C665B9E79622CB5C3F3A5371E5DAB4FF5E24AD60BAB9573E60F6DD0AD5FDDBA9F735DBC8FF0F97903D5630AD1F81AAFBD3B7CE60D2AC6535C2BFDD8FA31AE0CE7580DDD5FAE1B573DBFDE635C4D1A8C3477429EAED32364DE8A9971855835FC80889768F33420B39193528F4F5DC692ACF38B94F607C9209E2328AE990F451BAA9D89F8A48C3D56E2EA6E9797ED1BACADC47C499FC5EEF6F1F5487258E3EB2936DDDF8E673878F647DE07B908BB473E7F354C239EB15928FEA18F1877D489B5D80B55EC8F38D760C0B71E76B676398EEA17EF2FAFF13C669CDDCE0CFD74698A6E5D319063C94F417BF865DE4030411E73907CD6103997FD94F0C5C8674991652E49F95886EEFCFC0BE30A7C07353EF4F1D455F1BEDBC9249ECB6C770ADBFFA0A48B3C216F03EB59B31A599ACDE41BB287CBBE218F8F732AA21A1FBC94EFDA39D2EE67C43BA3D5C73744FFF01E43EE6DEC3CA34C7EBF29B8B20B9B3B1A4F558D13EC97E61618DFDED82AEB5CD9E4EA11FF04DF4FE8AF886744934773C621B34FE2AD27D5DDAFCA4BEC69FAEA1FC36C130E752D733C4DE20AB982973E1BA1DE5B0B34787F89AE7E3541E6D904F5DF8D08CCA5E8C6D51FCBB8D29B872C71657379D83F114F9FAEAE95D66F5AAF0F754DF021E8A4184F9B33C63103E45487842D912BAEF3F73D90E7EAF5052913D7E0377998FB95E0EF7E4498E4FC20D7F1EB4B97D9C6FBEBDFDEA2B7DE79B79C078A3A578DE2EAD7FBDDF4FE871FF133C96F34E17AF77BFAD817286B6BE259B0CD88DFC037FC38D2DF61B64779BE6033C18FBD2E780FF413EC438E6422E9233607AE29F3E1EA1D678C2DF86A5EE8619045DAFC40F81103E299E4717C3F6C63E73771EC05ED3EFEAD9C7F055CC91A357A71353BBFC4B21079047A71E0B2276972C04213FD66320CDB68C5E0E678F2CB9C854572083D6F508C37E6C6266C85B8B05533D1022D4DC5C8B61063FE3BD16FE1BAF7A37D269A1CB4906DDE4B0B8659C6D5DCE28AE8EB5629C638CFC796C41CD6D2090A255C412E43DE63CEFFEFBB2BE5EFA08266AAD4C5D18B2B5C4FD620D5E2AAABE701E32A5EEBF9E2695A14FA07E66B19F9B7259E031D06FBFD02AFA86FE711DB7C2A537E6E5C3B28C6A1A0C98393638E31ECF9659E86BB5768FCA199ECEEE6C4BC26A60FF3AF3017D6924EA7D7CF00FD1DE31C88E8CF699A1AF3D1B56F26E8EEF559EABBBDC03AA1B6BF5E31CEBEA515728BF711F3E5143C11B9CBC0D5CD2B11F19F28E7BCFCF8CD24F5DC9CA75B3FCC70FECB98C09745F441E24AD6B8C13EF82AEA86D5832BF014CC39BEE780DC9B5AB8C2B9D74ADF7B006963D05A5C01A78855687135F868EC445C79449B4B9C8B75020EF11E63BEE0132A96F26FA1BF607F4CF02DE02A3C3BC76B7420FFA51EE01919AFFADDB54A5C356BADE592C952F6B7437EE8C7D51CE30ABE8670A97E4CB3489B9B85ADCC87473DC2DD83DAFE263DEBD1E477F12007ED0B4B140847CBE7023B7DFD83651CDC1218015F3F0957F0B5E35B13122FE04B95E7A16632E288DFFF708DEEDCEB2AF3B89F6FDE2ECB41AFC0854BC86DF804210711BF90F57067E69C65DFD0493A5AB3C86B8BD22F9F75D3BDAFFBE886D83AC6E6389F4D0F0D88F1806D8777C8E50BD4C1E766B84EE0F0E844391FE5A210F45FE82AD26E65FB4BE39B04CFC3BCE33D072F807EE016B6AAACB7D9A81C441E37CE45BE37EE112BE976D0A5E49A81C3FCE297EB1CD382D74A7B0D7919ADFCAE602890177AF93C75DD98A37B3F19D9E6D3EB67308E4F95F8D502D7CDD67B4F9C0F19037EA5ADAB761108F63D6AFB1EAB3FA2DED2C6761DFE377DB84AE54EA7BBA4855D9A6BE1373DBCEE0CDDB936CB7AC6EC88BD2EFFD584E0F5D22F6AAAC31F09FD0A7A07E23FA1368D9B76F2BA8956106C3CD41B86FFAEDE759BCC734A7E514F20A4FB7FB06DE127053FBF687250E1EAEC09D8907E86601DF8985F36317F83AD154B6514AE14AE2AE2DC2F7105FF6D3DB802A690CF5068419E87C2D545CB439E2BE30A7164E85995B1E4E37005BF28FC13AA5EDFE11A5BD4AD55B8D2C6D71ED7559BE822D5296A15AE80A94F3FFB97C295A2A6E20AF9ED1F7CFCDF0A578A9A8A2BF8E6D53A2F45CDC61562347AF3DB1529AA470E2AFD4A51B37185FC8537DEFC0BC784410A578A9A812BE0E89DF7DEE77C0A852B45CDC2156A7A6A736314AE14297FBB22852B450A576A6C14351757DF5DB95A5EC37356643CA3EFB2287AB5F995E2890A570A578A14AE14295CA9F1EF645C55AE1FD4EE9F15B5E21E8ACE8F9023F3FFE6C3380F
+
diff --git a/sch/doc/Rev.0.1/pastilda-Rev.0.1-BOM.xlsx b/sch/doc/Rev.0.1/pastilda-Rev.0.1-BOM.xlsx
new file mode 100644
index 0000000..33d5c49
--- /dev/null
+++ b/sch/doc/Rev.0.1/pastilda-Rev.0.1-BOM.xlsx
Binary files differ
diff --git a/sch/doc/Rev.0.1/pastilda-Rev.0.1-assembly.PDF b/sch/doc/Rev.0.1/pastilda-Rev.0.1-assembly.PDF
new file mode 100644
index 0000000..134d5e9
--- /dev/null
+++ b/sch/doc/Rev.0.1/pastilda-Rev.0.1-assembly.PDF
Binary files differ
diff --git a/sch/doc/Rev.0.1/pastilda-Rev.0.1.PDF b/sch/doc/Rev.0.1/pastilda-Rev.0.1.PDF
new file mode 100644
index 0000000..68111a6
--- /dev/null
+++ b/sch/doc/Rev.0.1/pastilda-Rev.0.1.PDF
Binary files differ
diff --git a/sch/pastilda.Dat b/sch/pastilda.Dat
new file mode 100644
index 0000000..7beec78
--- /dev/null
+++ b/sch/pastilda.Dat
@@ -0,0 +1,22 @@
+Field=Comment~String~Comment~100|Field=Description~String~Description~100|Field=Designator~String~Designator~100|Field=Footprint~String~Footprint~100|Field=LibRef~String~LibRef~100|Field=Package~String~Package~100|Field=Part Number~String~Part Number~100|Field=Quantity~Integer~Quantity~100|Field=Value~String~Value~100|Field=Voltage/Power~String~Voltage/Power~100|ReportField=Currency~<none>|ReportField=ProductionQuantity~1|ReportField=ProjectFileName~pastilda.PrjPcb|ReportField=ProjectFullPath~A:\projects\keepass_dongle\pastilda\pastilda.PrjPcb|ReportField=Title~Bom For Project [pastilda.PrjPcb] (No PCB Document Selected)|ReportField=TotalQuantity~46|ReportField=ReportTime~14:57:04|ReportField=ReportDate~13.07.2016|ReportField=ReportDateTime~13.07.2016 14:57:04|ReportField=OutputName~Bom|ReportField=OutputType~BOM_PartType|ReportField=GeneratorName~BOM|ReportField=GeneratorDescription~Bill of Materials|ReportField=VariantName~None|ReportField=Organisation~Третий Пин|ReportField=PrjAuthor~Ларионов|ReportField=PrjChecked~Шишов|ReportField=PrjFirsApp~РТЛП.123456.001|ReportField=PrjName~Pastilda|ReportField=PrjName1~Pastilda|ReportField=PrjName2~|ReportField=PrjNumber~РТЛП.123456.001|ReportField=PrjType~Схема ÑлектричеÑкаÑ|ReportField=PrjType1~ПринципиальнаÑ|ReportField=PrjTypeSch~Э3|ReportField=ProjectNumber~РТЛП.123456.001|ReportField=Revision~Rev.0.1|ReportField=Address1~|ReportField=Address2~|ReportField=Address3~|ReportField=Address4~|ReportField=Application_BuildNumber~|ReportField=ApprovedBy~|ReportField=Author~Ларионов|ReportField=CheckedBy~|ReportField=CompanyName~Третий Пин|ReportField=ConfigurationParameters~|ReportField=CurrentDate~13.07.2016|ReportField=CurrentTime~14:56:26|ReportField=Date~|ReportField=DocumentFullPathAndName~A:\projects\keepass_dongle\pastilda\pastilda.SchDoc|ReportField=DocumentName~pastilda.SchDoc|ReportField=DocumentNumber~|ReportField=DocumentType~|ReportField=DocumentType1~Схема ÑлектричеÑкаÑ|ReportField=DocumentType2~ПринципиальнаÑ|ReportField=DrawnBy~|ReportField=Engineer~|ReportField=ImagePath~|ReportField=Mass~|ReportField=ModifiedDate~13.07.2016|ReportField=NormInspection~|ReportField=Organization~|ReportField=PageSetup~Record=PageOptions:CenterHorizontal=False:CenterVertical=False:PrintScale=0.67:XCorrection=0.00:YCorrection=0.00:PrintKind=2:BorderSize=5000000:LeftOffset=0:BottomOffset=0:Orientation=2:PaperLength=1000:PaperWidth=1000:Scale=100:PaperSource=15:PrintQuality=-3:MediaType=1:DitherType=10:PrintScaleMode=1:PaperKind=A4:PaperIndex=9|ReportField=ProcessInspection~|ReportField=ProjectName~pastilda.PrjPcb|ReportField=Rule~Undefined|ReportField=Scale~|ReportField=SchTitle~{Ðаименование}|ReportField=SheetNumber~|ReportField=SheetTotal~1|ReportField=Time~|ReportField=Title~pastilda|ReportField=DataSourceFileName~pastilda.PrjPcb|ReportField=DataSourceFullPath~A:\projects\keepass_dongle\pastilda\pastilda.PrjPcb
+C|КерамичеÑкий ЧИП конденÑатор|C1, C9, C10, C11, C12, C13, C14, C21|0603C|C cer 0603 X7R 0.1мк 50Ð’ 10% -55…125|0603|C cer 0603 X7R 0.1мк 50Ð’ 10% -55…125|8|0.1мк|50Ð’
+C|КерамичеÑкий ЧИП конденÑатор|C2, C3, C15, C16, C17, C18|0603C|C cer 0603 NPO 20 50Ð’ 5% -55…125|0603|C cer 0603 NPO 20 50Ð’ 5% -55…125|6|20|50Ð’
+C|КерамичеÑкий ЧИП конденÑатор|C4, C5|0603C|C cer 0603 X7R 2.2мк 10Ð’ 10% -55…125|0603|C cer 0603 X7R 2.2мк 10Ð’ 10% -55…125|2|2.2мк|10Ð’
+C|КерамичеÑкий ЧИП конденÑатор|C6|0603C|C cer 0603 X5R 10мк 6.3Ð’ 20% -55…85|0603|C cer 0603 X5R 10мк 6.3Ð’ 20% -55…85|1|10мк|6.3Ð’
+C|КерамичеÑкий ЧИП конденÑатор|C7, C8|0603C|C cer 0603 X5R 1мк 25Ð’ 10% -55…85|0603|C cer 0603 X5R 1мк 25Ð’ 10% -55…85|2|1мк|25Ð’
+C|КерамичеÑкий ЧИП конденÑатор|C19, C20|0603C|C cer 0603 X7R 0.01мк 50Ð’ 10% -55…125|0603|C cer 0603 X7R 0.01мк 50Ð’ 10% -55…125|2|0.01мк|50Ð’
+USBLC6-2|Very low capacitance ESD protection|D1, D2|SOT23-6|USBLC6-2SC6|SOT23-6|USBLC6-2SC6|2||
+STM32F405RG|Микроконтроллер Cortex-M4 1Mb|D3|LQFP64|STM32F405RG|LQFP64|STM32F405RG|1||
+TPS76333DBV|LDO 150mA 3.3-10V to 3.3V|D4|SOT23-5|TPS76333DBV|SOT23-5|TPS76333DBV|1||
+SST25VF064C-80-4I-Q2A|64 Mbit SPI Serial Dual I/O Flash|D5|WSON8_6X8|SST25VF064C-80-4I-Q2A|WSON8|SST25VF064C-80-4I-Q2A|1||
+MF-SMDF050-2|Предохранитель|F1|F2018|MF-SMDF050-2|SMD 2018|MF-SMDF050-2|1|0.55A|60V
+BLM18AG|Фильтр|L1, L2, L3, L4|0603C|BLM18AG601SN1|0603|BLM18AG601SN1|4|600Ом|500мÐ
+R|ЧИП резиÑтор|R1, R2|0603R|R 0603 10к 5%|0603|R 0603 10к 5%|2|10к|0.063Ð’Ñ‚
+R|ЧИП резиÑтор|R3, R5, R6|0603R|R 0603 510 5%|0603|R 0603 510 5%|3|510|0.063Ð’Ñ‚
+R|ЧИП резиÑтор|R4|0603R|R 0603 300 5%|0603|R 0603 300 5%|1|300|0.1Ð’Ñ‚
+R|ЧИП резиÑтор|R7, R8, R9, R10|0603R|R 0603 24 1%|0603|R 0603 24 1%|4|24|0.1Ð’Ñ‚
+FYLS-3528RGBC|RGB Светодиод|VD1|FYLS-3528|FYLS-3528RGBC|FYLS-3528|FYLS-3528RGBC|1||
+1734028-1|USB A вилка на плату SMD|X1|1734028-1|1734028-1|1734028-1|1734028-1|1||
+292303-1|USB A розетка на плату|X2|292303-1|292303-1|292303-1|292303-1|1||
+7-188275-4|Розетка на плату|X3|7-188275-4|7-188275-4|7-188275-4|7-188275-4|1||
+KX-7|Кварцевый резонатор|Z1|KX-7|KX – 7_25M|KX-7|KX – 7_25M|1|25 MHz|
diff --git a/sch/pastilda.OutJob b/sch/pastilda.OutJob
new file mode 100644
index 0000000..931ce4e
--- /dev/null
+++ b/sch/pastilda.OutJob
@@ -0,0 +1,515 @@
+[OutputJobFile]
+Version=1.0
+Caption=
+Description=
+VaultGUID=
+ItemGUID=
+ItemHRID=
+RevisionGUID=
+RevisionId=
+VaultHRID=
+AutoItemHRID=
+NextRevId=
+FolderGUID=
+LifeCycleDefinitionGUID=
+RevisionNamingSchemeGUID=
+
+[OutputGroup1]
+Name=
+Description=
+TargetOutputMedium=Bom
+VariantName=[No Variations]
+VariantScope=1
+CurrentConfigurationName=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputMedium1=Print sch+assy
+OutputMedium1_Type=Printer
+OutputMedium1_Printer=Brother MFC-7360N Printer
+OutputMedium1_PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=0
+OutputMedium2=Step
+OutputMedium2_Type=GeneratedFiles
+OutputMedium3=Bom
+OutputMedium3_Type=GeneratedFiles
+OutputMedium4=Product
+OutputMedium4_Type=GeneratedFiles
+OutputMedium5=Assembly
+OutputMedium5_Type=Publish
+OutputMedium6=ÃÎÑÒ ÏÝ3
+OutputMedium6_Type=GeneratedFiles
+OutputMedium7=Sch
+OutputMedium7_Type=Publish
+OutputMedium8=ÃÎÑÒ Ý3
+OutputMedium8_Type=Publish
+OutputMedium9=ÃÎÑÒ äîê
+OutputMedium9_Type=GeneratedFiles
+OutputType1=Schematic Print
+OutputName1=Schematic Prints
+OutputCategory1=Documentation
+OutputDocumentPath1=[Project Physical Documents]
+OutputVariantName1=
+OutputEnabled1=0
+OutputEnabled1_OutputMedium1=1
+OutputEnabled1_OutputMedium2=0
+OutputEnabled1_OutputMedium3=0
+OutputEnabled1_OutputMedium4=0
+OutputEnabled1_OutputMedium5=0
+OutputEnabled1_OutputMedium6=0
+OutputEnabled1_OutputMedium7=1
+OutputEnabled1_OutputMedium8=1
+OutputEnabled1_OutputMedium9=0
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=0.95|XCorrection=1.00|YCorrection=1.00|PrintKind=2|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A3
+Configuration1_Name1=OutputConfigurationParameter1
+Configuration1_Item1=Record=SchPrintView|ShowNoERC=True|ShowParamSet=False|ShowProbe=False|ShowBlanket=False|NoERCSymbolsToShow="Thin Cross","Thick Cross","Small Cross",Checkbox,Triangle|ShowNote=False|ShowNoteCollapsed=False|ExpandDesignator=True|ExpandNetLabel=False|ExpandPort=False|ExpandSheetNum=True|ExpandDocNum=True|PrintArea=0|PrintAreaRect.X1=0|PrintAreaRect.Y1=0|PrintAreaRect.X2=0|PrintAreaRect.Y2=0
+OutputType2=Assembly
+OutputName2=Assembly
+OutputCategory2=Assembly
+OutputDocumentPath2=
+OutputVariantName2=
+OutputEnabled2=0
+OutputEnabled2_OutputMedium1=2
+OutputEnabled2_OutputMedium2=0
+OutputEnabled2_OutputMedium3=0
+OutputEnabled2_OutputMedium4=0
+OutputEnabled2_OutputMedium5=1
+OutputEnabled2_OutputMedium6=0
+OutputEnabled2_OutputMedium7=0
+OutputEnabled2_OutputMedium8=0
+OutputEnabled2_OutputMedium9=0
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=2|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=0|PaperKind=A4
+Configuration2_Name1=OutputConfigurationParameter1
+Configuration2_Item1=DesignatorDisplayMode=Physical|PrintArea=DesignExtent|PrintAreaLowerLeftCornerX=0|PrintAreaLowerLeftCornerY=0|PrintAreaUpperRightCornerX=0|PrintAreaUpperRightCornerY=0|Record=PcbPrintView
+Configuration2_Name2=OutputConfigurationParameter2
+Configuration2_Item2=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|IncludeViewports=True|Index=0|Mirror=False|Name=Top Assembly Drawing|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=True|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False
+Configuration2_Name3=OutputConfigurationParameter3
+Configuration2_Item3=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Hidden|FFill=Hidden|FPad=Full|FRegion=Hidden|FText=Hidden|FTrack=Hidden|FVia=Hidden|Layer=TopLayer|Polygon=Hidden|PrintOutIndex=0|Record=PcbPrintLayer
+Configuration2_Name4=OutputConfigurationParameter4
+Configuration2_Item4=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=KeepOutLayer|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer
+Configuration2_Name5=OutputConfigurationParameter5
+Configuration2_Item5=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=TopOverlay|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer
+Configuration2_Name6=OutputConfigurationParameter6
+Configuration2_Item6=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Hidden|Layer=MultiLayer|Polygon=Full|PrintOutIndex=0|Record=PcbPrintLayer
+Configuration2_Name7=OutputConfigurationParameter7
+Configuration2_Item7=IncludeBottomLayerComponents=True|IncludeMultiLayerComponents=True|IncludeTopLayerComponents=True|IncludeViewports=True|Index=1|Mirror=True|Name=Bottom Assembly Drawing|PadNumberFontSize=14|Record=PcbPrintOut|ShowHoles=True|ShowPadNets=False|ShowPadNumbers=False|SubstituteFonts=False
+Configuration2_Name8=OutputConfigurationParameter8
+Configuration2_Item8=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Hidden|FFill=Hidden|FPad=Full|FRegion=Hidden|FText=Hidden|FTrack=Hidden|FVia=Hidden|Layer=BottomLayer|Polygon=Hidden|PrintOutIndex=1|Record=PcbPrintLayer
+Configuration2_Name9=OutputConfigurationParameter9
+Configuration2_Item9=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=BottomOverlay|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer
+Configuration2_Name10=OutputConfigurationParameter10
+Configuration2_Item10=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Full|Layer=KeepOutLayer|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer
+Configuration2_Name11=OutputConfigurationParameter11
+Configuration2_Item11=CArc=Full|CFill=Full|Comment=Full|Coordinate=Full|CPad=Full|CRegion=Full|CText=Full|CTrack=Full|CVia=Full|DDSymbolKind=0|DDSymbolSize=500000|DDSymbolSortKind=0|Designator=Full|Dimension=Full|DLayer1=TopLayer|DLayer2=BottomLayer|FArc=Full|FFill=Full|FPad=Full|FRegion=Full|FText=Full|FTrack=Full|FVia=Hidden|Layer=MultiLayer|Polygon=Full|PrintOutIndex=1|Record=PcbPrintLayer
+PcbPrintPreferences2=
+OutputType3=BOM_PartType
+OutputName3=ÏÝ3
+OutputCategory3=Report
+OutputDocumentPath3=
+OutputVariantName3=
+OutputEnabled3=0
+OutputEnabled3_OutputMedium1=0
+OutputEnabled3_OutputMedium2=0
+OutputEnabled3_OutputMedium3=0
+OutputEnabled3_OutputMedium4=0
+OutputEnabled3_OutputMedium5=0
+OutputEnabled3_OutputMedium6=0
+OutputEnabled3_OutputMedium7=0
+OutputEnabled3_OutputMedium8=0
+OutputEnabled3_OutputMedium9=0
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=0|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4
+Configuration3_Name1=Filter
+Configuration3_Item1=545046300E5446696C74657257726170706572000D46696C7465722E416374697665090F46696C7465722E43726974657269610A04000000000000000000
+Configuration3_Name2=General
+Configuration3_Item2=OpenExported=False|AddToProject=False|ForceFit=False|NotFitted=False|Database=False|IncludePCBData=False|IncludeVaultData=False|ShowExportOptions=True|TemplateFilename=E:\Work\Library\templates\bom\Øàáëîí BOM ÃÎÑÒ.xls|BatchMode=5|FormWidth=1131|FormHeight=985|SupplierProdQty=1|SupplierAutoQty=False|SupplierUseCachedPricing=False|SupplierCurrency=<none>
+Configuration3_Name3=GroupOrder
+Configuration3_Item3=
+Configuration3_Name4=OutputConfigurationParameter1
+Configuration3_Item4=?A
+Configuration3_Name5=SortOrder
+Configuration3_Item5=Designator=Up
+Configuration3_Name6=VisibleOrder
+Configuration3_Item6=Designator=358|Comment=71|Description=52|Footprint=44|LibRef=44|Part Number=44|Quantity=44|Value=44|Voltage/Power=49|Package=100
+OutputType4=ExportSTEP
+OutputName4=Step model
+OutputCategory4=Export
+OutputDocumentPath4=
+OutputVariantName4=
+OutputEnabled4=0
+OutputEnabled4_OutputMedium1=0
+OutputEnabled4_OutputMedium2=1
+OutputEnabled4_OutputMedium3=0
+OutputEnabled4_OutputMedium4=0
+OutputEnabled4_OutputMedium5=0
+OutputEnabled4_OutputMedium6=0
+OutputEnabled4_OutputMedium7=0
+OutputEnabled4_OutputMedium8=0
+OutputEnabled4_OutputMedium9=0
+OutputDefault4=0
+Configuration4_Name1=OutputConfigurationParameter1
+Configuration4_Item1=Record=ExportSTEPView|ExportComponentOptions=0|ExportModelsOption=2|ExportHolesOption=0|CanSelectPrimitives=False|IncludeMechanicalPadHoles=True|IncludeElectricalPadHoles=True|IncludeFreePadHoles=True|ComponentSuffixType=1|ComponentSuffix=
+OutputType5=BOM_PartType
+OutputName5=Bom
+OutputCategory5=Report
+OutputDocumentPath5=
+OutputVariantName5=
+OutputEnabled5=1
+OutputEnabled5_OutputMedium1=0
+OutputEnabled5_OutputMedium2=0
+OutputEnabled5_OutputMedium3=1
+OutputEnabled5_OutputMedium4=0
+OutputEnabled5_OutputMedium5=0
+OutputEnabled5_OutputMedium6=1
+OutputEnabled5_OutputMedium7=0
+OutputEnabled5_OutputMedium8=0
+OutputEnabled5_OutputMedium9=0
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=0|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4
+Configuration5_Name1=ColumnNameFormat
+Configuration5_Item1=CaptionAsName
+Configuration5_Name2=Filter
+Configuration5_Item2=545046300E5446696C74657257726170706572000D46696C7465722E416374697665090F46696C7465722E43726974657269610A04000000000000000000
+Configuration5_Name3=General
+Configuration5_Item3=OpenExported=False|AddToProject=False|ForceFit=False|NotFitted=False|Database=False|IncludePCBData=False|IncludeVaultData=False|ShowExportOptions=True|TemplateFilename=A:\Library\templates\bom\ThirdPinBOM.xlsx|BatchMode=5|FormWidth=1432|FormHeight=985|SupplierProdQty=1|SupplierAutoQty=False|SupplierUseCachedPricing=False|SupplierCurrency=<none>
+Configuration5_Name4=GroupOrder
+Configuration5_Item4=Part Number=True
+Configuration5_Name5=SortOrder
+Configuration5_Item5=Designator=Up|Comment=Up|Footprint=Up
+Configuration5_Name6=VisibleOrder
+Configuration5_Item6=Comment=100|Description=100|Designator=100|Footprint=100|LibRef=100|Package=100|Part Number=100|Quantity=100|Value=100|Voltage/Power=100
+OutputType6=Gerber
+OutputName6=Gerber Files
+OutputCategory6=Fabrication
+OutputDocumentPath6=
+OutputVariantName6=
+OutputEnabled6=0
+OutputEnabled6_OutputMedium1=0
+OutputEnabled6_OutputMedium2=0
+OutputEnabled6_OutputMedium3=0
+OutputEnabled6_OutputMedium4=2
+OutputEnabled6_OutputMedium5=0
+OutputEnabled6_OutputMedium6=0
+OutputEnabled6_OutputMedium7=0
+OutputEnabled6_OutputMedium8=0
+OutputEnabled6_OutputMedium9=0
+OutputDefault6=0
+Configuration6_Name1=OutputConfigurationParameter1
+Configuration6_Item1=AddToAllLayerClasses.Set= |AddToAllPlots.Set=SerializeLayerHash.Version~2,ClassName~TLayerToBoolean|CentrePlots=False|DrillDrawingSymbol=GraphicsSymbol|DrillDrawingSymbolSize=200000|EmbeddedApertures=True|FilmBorderSize=10000000|FilmXSize=200000000|FilmYSize=160000000|FlashAllFills=False|FlashPadShapes=True|G54OnApertureChange=False|GenerateDRCRulesFile=True|GenerateDRCRulesFile=True|GenerateReliefShapes=True|GerberUnit=Metric|GerberUnit=Metric|IncludeUnconnectedMidLayerPads=False|LayerClassesMirror.Set= |LayerClassesPlot.Set= |LeadingAndTrailingZeroesMode=SuppressLeadingZeroes|MaxApertureSize=2500000|MinusApertureTolerance=39|MinusApertureTolerance=39|Mirror.Set=SerializeLayerHash.Version~2,ClassName~TLayerToBoolean|MirrorDrillDrawingPlots=False|MirrorDrillGuidePlots=False|NoRegularPolygons=False|NumberOfDecimals=3|NumberOfDecimals=3|OptimizeChangeLocationCommands=True|OptimizeChangeLocationCommands=True|OriginPosition=Relative|Panelize=False|Plot.Set=SerializeLayerHash.Version~2,ClassName~TLayerToBoolean,16973830~1,16973832~1,16973834~1,16777217~1,16777218~1,16777219~1,16842751~1,16973835~1,16973833~1,16973831~1,16908289~1,16908290~1,16973837~1,16973848~1,16973849~1|PlotPositivePlaneLayers=False|PlotUsedDrillDrawingLayerPairs=False|PlotUsedDrillGuideLayerPairs=False|PlusApertureTolerance=39|PlusApertureTolerance=39|Record=GerberView|SoftwareArcs=False|Sorted=False|Sorted=False
+OutputType7=NC Drill
+OutputName7=NC Drill Files
+OutputCategory7=Fabrication
+OutputDocumentPath7=
+OutputVariantName7=
+OutputEnabled7=0
+OutputEnabled7_OutputMedium1=0
+OutputEnabled7_OutputMedium2=0
+OutputEnabled7_OutputMedium3=0
+OutputEnabled7_OutputMedium4=1
+OutputEnabled7_OutputMedium5=0
+OutputEnabled7_OutputMedium6=0
+OutputEnabled7_OutputMedium7=0
+OutputEnabled7_OutputMedium8=0
+OutputEnabled7_OutputMedium9=0
+OutputDefault7=0
+Configuration7_Name1=OutputConfigurationParameter1
+Configuration7_Item1=BoardEdgeRoutToolDia=2000000|GenerateBoardEdgeRout=False|GenerateDrilledSlotsG85=False|GenerateEIADrillFile=False|GenerateSeparatePlatedNonPlatedFiles=False|NumberOfDecimals=3|NumberOfUnits=4|OptimizeChangeLocationCommands=True|OriginPosition=Relative|Record=DrillView|Units=Metric|ZeroesMode=SuppressTrailingZeroes
+OutputType8=PCB 3D Print
+OutputName8=PCB 3D Print Top
+OutputCategory8=Documentation
+OutputDocumentPath8=
+OutputVariantName8=
+OutputEnabled8=0
+OutputEnabled8_OutputMedium1=0
+OutputEnabled8_OutputMedium2=0
+OutputEnabled8_OutputMedium3=0
+OutputEnabled8_OutputMedium4=0
+OutputEnabled8_OutputMedium5=0
+OutputEnabled8_OutputMedium6=0
+OutputEnabled8_OutputMedium7=0
+OutputEnabled8_OutputMedium8=0
+OutputEnabled8_OutputMedium9=0
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=2.54|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4
+Configuration8_Name1=OutputConfigurationParameter1
+Configuration8_Item1=Record=Pcb3DPrintView|ResX=300|ResY=300|ViewX=44566931|ViewY=25590551|LookAtX=25354334|LookAtY=24606304|LookAtZ=-1000|QuatX=0|QuatY=0|QuatZ=0|QuatW=1|Zoom=8.63869221777914E-6|UnitsPercent=True|UnitsDPI=True|LockResAspect=True|ViewConfigType=.config_3d|CustomCamera=False|ViewFromTop=True|ViewConfig=RECORD\3Board\2CFGALL.CONFIGURATIONKIND\33\2CFGALL.CONFIGURATIONDESC\3Altium%203D%20Blue%20Configuration\2CFG3D.POSITIVETOPSOLDERMASK\3TRUE\2CFG3D.POSITIVEBOTTOMSOLDERMASK\3TRUE\2CFG3D.SHOWCOMPONENTBODIES\3FALSE\2CFG3D.SHOWCOMPONENTSTEPMODELS\3FALSE\2CFG3D.COMPONENTMODELPREFERENCE\30\2CFG3D.SHOWCOMPONENTSNAPMARKERS\3FALSE\2CFG3D.SHOWCOMPONENTAXES\3FALSE\2CFG3D.SHOWBOARDCORE\3TRUE\2CFG3D.SHOWBOARDPREPREG\3TRUE\2CFG3D.SHOWTOPSILKSCREEN\3TRUE\2CFG3D.SHOWBOTSILKSCREEN\3TRUE\2CFG3D.SHOWORIGINMARKER\3FALSE\2CFG3D.EYEDIST\32147483647\2CFG3D.SHOWCUTOUTS\3TRUE\2CFG3D.SHOWROUTETOOLPATH\3FALSE\2CFG3D.SHOWROOMS3D\3FALSE\2CFG3D.USESYSCOLORSFOR3D\3FALSE\2CFG3D.WORKSPACECOLOR\316777215\2CFG3D.BOARDCORECOLOR\313761015\2CFG3D.BOARDPREPREGCOLOR\30\2CFG3D.TOPSOLDERMASKCOLOR\37026967\2CFG3D.BOTSOLDERMASKCOLOR\37026967\2CFG3D.COPPERCOLOR\33323360\2CFG3D.TOPSILKSCREENCOLOR\315461355\2CFG3D.BOTSILKSCREENCOLOR\315461355\2CFG3D.WORKSPACELUMINANCEVARIATION\3-2\2CFG3D.WORKSPACECOLOROPACITY\31.000000\2CFG3D.BOARDCORECOLOROPACITY\30.890000\2CFG3D.BOARDPREPREGCOLOROPACITY\30.500000\2CFG3D.TOPSOLDERMASKCOLOROPACITY\30.900000\2CFG3D.BOTSOLDERMASKCOLOROPACITY\30.900000\2CFG3D.COPPERCOLOROPACITY\31.000000\2CFG3D.TOPSILKSCREENCOLOROPACITY\31.000000\2CFG3D.BOTSILKSCREENCOLOROPACITY\31.000000\2CFG3D.BOARDTHICKNESSSCALING\31.000000\2CFG3D.SHOWMECHANICALLAYERS\3FALSE\2CFG3D.MECHANICALLAYERSOPACITY\31.000000
+OutputType9=PCB 3D Print
+OutputName9=PCB 3D Print Bot
+OutputCategory9=Documentation
+OutputDocumentPath9=
+OutputVariantName9=
+OutputEnabled9=0
+OutputEnabled9_OutputMedium1=0
+OutputEnabled9_OutputMedium2=0
+OutputEnabled9_OutputMedium3=0
+OutputEnabled9_OutputMedium4=0
+OutputEnabled9_OutputMedium5=0
+OutputEnabled9_OutputMedium6=0
+OutputEnabled9_OutputMedium7=0
+OutputEnabled9_OutputMedium8=0
+OutputEnabled9_OutputMedium9=0
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=2.54|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-4|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4
+Configuration9_Name1=OutputConfigurationParameter1
+Configuration9_Item1=Record=Pcb3DPrintView|ResX=300|ResY=300|ViewX=44566931|ViewY=25590551|LookAtX=25354334|LookAtY=24606304|LookAtZ=-1000|QuatX=0|QuatY=0|QuatZ=0|QuatW=1|Zoom=8.63869221777914E-6|UnitsPercent=True|UnitsDPI=True|LockResAspect=True|ViewConfigType=.config_3d|CustomCamera=False|ViewFromTop=False|ViewConfig=RECORD\3Board\2CFGALL.CONFIGURATIONKIND\33\2CFGALL.CONFIGURATIONDESC\3Altium%203D%20Blue%20Configuration\2CFG3D.POSITIVETOPSOLDERMASK\3TRUE\2CFG3D.POSITIVEBOTTOMSOLDERMASK\3TRUE\2CFG3D.SHOWCOMPONENTBODIES\3FALSE\2CFG3D.SHOWCOMPONENTSTEPMODELS\3FALSE\2CFG3D.COMPONENTMODELPREFERENCE\30\2CFG3D.SHOWCOMPONENTSNAPMARKERS\3FALSE\2CFG3D.SHOWCOMPONENTAXES\3FALSE\2CFG3D.SHOWBOARDCORE\3TRUE\2CFG3D.SHOWBOARDPREPREG\3TRUE\2CFG3D.SHOWTOPSILKSCREEN\3TRUE\2CFG3D.SHOWBOTSILKSCREEN\3TRUE\2CFG3D.SHOWORIGINMARKER\3FALSE\2CFG3D.EYEDIST\32147483647\2CFG3D.SHOWCUTOUTS\3TRUE\2CFG3D.SHOWROUTETOOLPATH\3FALSE\2CFG3D.SHOWROOMS3D\3FALSE\2CFG3D.USESYSCOLORSFOR3D\3FALSE\2CFG3D.WORKSPACECOLOR\316777215\2CFG3D.BOARDCORECOLOR\313761015\2CFG3D.BOARDPREPREGCOLOR\30\2CFG3D.TOPSOLDERMASKCOLOR\37026967\2CFG3D.BOTSOLDERMASKCOLOR\37026967\2CFG3D.COPPERCOLOR\33323360\2CFG3D.TOPSILKSCREENCOLOR\315461355\2CFG3D.BOTSILKSCREENCOLOR\315461355\2CFG3D.WORKSPACELUMINANCEVARIATION\3-2\2CFG3D.WORKSPACECOLOROPACITY\31.000000\2CFG3D.BOARDCORECOLOROPACITY\30.890000\2CFG3D.BOARDPREPREGCOLOROPACITY\30.500000\2CFG3D.TOPSOLDERMASKCOLOROPACITY\30.900000\2CFG3D.BOTSOLDERMASKCOLOROPACITY\30.900000\2CFG3D.COPPERCOLOROPACITY\31.000000\2CFG3D.TOPSILKSCREENCOLOROPACITY\31.000000\2CFG3D.BOTSILKSCREENCOLOROPACITY\31.000000\2CFG3D.BOARDTHICKNESSSCALING\31.000000\2CFG3D.SHOWMECHANICALLAYERS\3FALSE\2CFG3D.MECHANICALLAYERSOPACITY\31.000000
+OutputType10=BOM_PartType
+OutputName10=ÏÝ
+OutputCategory10=Report
+OutputDocumentPath10=
+OutputVariantName10=
+OutputEnabled10=0
+OutputEnabled10_OutputMedium1=0
+OutputEnabled10_OutputMedium2=0
+OutputEnabled10_OutputMedium3=0
+OutputEnabled10_OutputMedium4=0
+OutputEnabled10_OutputMedium5=0
+OutputEnabled10_OutputMedium6=0
+OutputEnabled10_OutputMedium7=0
+OutputEnabled10_OutputMedium8=0
+OutputEnabled10_OutputMedium9=2
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=0|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+Configuration10_Name1=ColumnNameFormat
+Configuration10_Item1=CaptionAsName
+Configuration10_Name2=Filter
+Configuration10_Item2=545046300E5446696C74657257726170706572000D46696C7465722E416374697665090F46696C7465722E43726974657269610A04000000000000000000
+Configuration10_Name3=General
+Configuration10_Item3=OpenExported=False|AddToProject=False|ForceFit=False|NotFitted=False|Database=False|DatabasePriority=False|IncludePCBData=False|IncludeVaultData=False|ShowExportOptions=True|TemplateFilename=A:\Library\templates\bom\Ïåðå÷åíü ýëåìåíòîâ.xlt|BatchMode=5|FormWidth=1432|FormHeight=661|SupplierProdQty=1|SupplierAutoQty=False|SupplierUseCachedPricing=False|SupplierCurrency=<none>
+Configuration10_Name4=GroupOrder
+Configuration10_Item4=
+Configuration10_Name5=OutputConfigurationParameter1
+Configuration10_Item5=??
+Configuration10_Name6=SortOrder
+Configuration10_Item6=
+Configuration10_Name7=VisibleOrder
+Configuration10_Item7=
+OutputType11=BOM_PartType
+OutputName11=Ñïåöèôèêàöèÿ
+OutputCategory11=Report
+OutputDocumentPath11=
+OutputVariantName11=
+OutputEnabled11=0
+OutputEnabled11_OutputMedium1=0
+OutputEnabled11_OutputMedium2=0
+OutputEnabled11_OutputMedium3=0
+OutputEnabled11_OutputMedium4=0
+OutputEnabled11_OutputMedium5=0
+OutputEnabled11_OutputMedium6=0
+OutputEnabled11_OutputMedium7=0
+OutputEnabled11_OutputMedium8=0
+OutputEnabled11_OutputMedium9=1
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+Configuration11_Name1=ColumnNameFormat
+Configuration11_Item1=CaptionAsName
+Configuration11_Name2=Filter
+Configuration11_Item2=545046300E5446696C74657257726170706572000D46696C7465722E416374697665090F46696C7465722E43726974657269610A04000000000000000000
+Configuration11_Name3=General
+Configuration11_Item3=OpenExported=False|AddToProject=False|ForceFit=False|NotFitted=False|Database=False|DatabasePriority=False|IncludePCBData=False|IncludeVaultData=False|ShowExportOptions=True|TemplateFilename=A:\Library\templates\bom\ñïåöèôèêàöèÿ.xlt|BatchMode=5|FormWidth=1432|FormHeight=661|SupplierProdQty=1|SupplierAutoQty=False|SupplierUseCachedPricing=False|SupplierCurrency=<none>
+Configuration11_Name4=GroupOrder
+Configuration11_Item4=
+Configuration11_Name5=OutputConfigurationParameter1
+Configuration11_Item5=??
+Configuration11_Name6=SortOrder
+Configuration11_Item6=
+Configuration11_Name7=VisibleOrder
+Configuration11_Item7=
+
+[PublishSettings]
+OutputFilePath2=A:\Projects\Òðåòèé ïèí\keepass_dongle\models\
+ReleaseManaged2=0
+OutputBasePath2=models\
+OutputPathMedia2=
+OutputPathMediaValue2=
+OutputPathOutputer2=[Output Custom]
+OutputPathOutputerPrefix2=
+OutputPathOutputerValue2==revision
+OutputFileName2=
+OutputFileNameMulti2==ProjectName + '-' + Revision
+UseOutputNameForMulti2=0
+OutputFileNameSpecial2=
+OpenOutput2=0
+OutputFilePath3=A:\projects\keepass_dongle\pastilda\doc\Rev.0.1\
+ReleaseManaged3=0
+OutputBasePath3=doc\
+OutputPathMedia3==revision
+OutputPathMediaValue3==revision
+OutputPathOutputer3=
+OutputPathOutputerPrefix3=
+OutputPathOutputerValue3=
+OutputFileName3=
+OutputFileNameMulti3==ProjectName + '-' + Revision+ '-BOM'
+UseOutputNameForMulti3=0
+OutputFileNameSpecial3=
+OpenOutput3=1
+OutputFilePath4=A:\Projects\Òðåòèé ïèí\keepass_dongle\product \
+ReleaseManaged4=0
+OutputBasePath4=product\
+OutputPathMedia4=
+OutputPathMediaValue4=
+OutputPathOutputer4=
+OutputPathOutputerPrefix4=
+OutputPathOutputerValue4=
+OutputFileName4=
+OutputFileNameMulti4==ProjectName + '-' + Revision
+UseOutputNameForMulti4=0
+OutputFileNameSpecial4=
+OpenOutput4=0
+OutputFilePath5=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+ReleaseManaged5=0
+OutputBasePath5=doc\
+OutputPathMedia5==Revision
+OutputPathMediaValue5==Revision
+OutputPathOutputer5=
+OutputPathOutputerPrefix5=
+OutputPathOutputerValue5=
+OutputFileName5=ÐÒËÏ.468332.004Assembly.PDF
+OutputFileNameMulti5==ProjectName + '-' + Revision+ '-assembly'
+UseOutputNameForMulti5=0
+OutputFileNameSpecial5=
+OpenOutput5=1
+PromptOverwrite5=0
+PublishMethod5=1
+ZoomLevel5=50
+FitSCHPrintSizeToDoc5=1
+FitPCBPrintSizeToDoc5=1
+GenerateNetsInfo5=1
+MarkPins5=1
+MarkNetLabels5=1
+MarkPortsId5=1
+GenerateTOC=0
+ShowComponentParameters5=1
+GlobalBookmarks5=0
+OutputFilePath6=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+ReleaseManaged6=0
+OutputBasePath6=doc\
+OutputPathMedia6==revision
+OutputPathMediaValue6==revision
+OutputPathOutputer6=
+OutputPathOutputerPrefix6=
+OutputPathOutputerValue6=
+OutputFileName6=
+OutputFileNameMulti6==ProjectNumber + ' ÏÝ3'
+UseOutputNameForMulti6=0
+OutputFileNameSpecial6=
+OpenOutput6=1
+OutputFilePath7=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+ReleaseManaged7=0
+OutputBasePath7=doc\
+OutputPathMedia7==Revision
+OutputPathMediaValue7==Revision
+OutputPathOutputer7=
+OutputPathOutputerPrefix7=
+OutputPathOutputerValue7=
+OutputFileName7=ÐÒËÏ.468332.004Assembly.PDF
+OutputFileNameMulti7==ProjectName + '-' + Revision
+UseOutputNameForMulti7=0
+OutputFileNameSpecial7=
+OpenOutput7=1
+PromptOverwrite7=0
+PublishMethod7=1
+ZoomLevel7=50
+FitSCHPrintSizeToDoc7=1
+FitPCBPrintSizeToDoc7=1
+GenerateNetsInfo7=1
+MarkPins7=1
+MarkNetLabels7=1
+MarkPortsId7=1
+ShowComponentParameters7=1
+GlobalBookmarks7=0
+OutputFilePath8=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+ReleaseManaged8=0
+OutputBasePath8=doc\
+OutputPathMedia8==Revision
+OutputPathMediaValue8==Revision
+OutputPathOutputer8=
+OutputPathOutputerPrefix8=
+OutputPathOutputerValue8=
+OutputFileName8=ÐÒËÏ.468332.004Assembly.PDF
+OutputFileNameMulti8==ProjectNumber + ' Ý3'
+UseOutputNameForMulti8=0
+OutputFileNameSpecial8=
+OpenOutput8=1
+PromptOverwrite8=0
+PublishMethod8=1
+ZoomLevel8=50
+FitSCHPrintSizeToDoc8=1
+FitPCBPrintSizeToDoc8=1
+GenerateNetsInfo8=0
+MarkPins8=1
+MarkNetLabels8=1
+MarkPortsId8=1
+ShowComponentParameters8=0
+GlobalBookmarks8=0
+OutputFilePath9=doc\
+ReleaseManaged9=0
+OutputBasePath9=doc\
+OutputPathMedia9==revision
+OutputPathMediaValue9==revision
+OutputPathOutputer9=
+OutputPathOutputerPrefix9=
+OutputPathOutputerValue9=
+OutputFileName9=
+OutputFileNameMulti9=
+UseOutputNameForMulti9=1
+OutputFileNameSpecial9=
+OpenOutput9=1
+
+[GeneratedFilesSettings]
+RelativeOutputPath2=A:\Projects\Òðåòèé ïèí\keepass_dongle\models\
+OpenOutputs2=0
+AddToProject2=0
+TimestampFolder2=0
+UseOutputName2=0
+OpenODBOutput2=0
+OpenGerberOutput2=0
+OpenNCDrillOutput2=0
+OpenIPCOutput2=0
+EnableReload2=0
+RelativeOutputPath3=A:\projects\keepass_dongle\pastilda\doc\Rev.0.1\
+OpenOutputs3=1
+AddToProject3=0
+TimestampFolder3=0
+UseOutputName3=0
+OpenODBOutput3=0
+OpenGerberOutput3=0
+OpenNCDrillOutput3=0
+OpenIPCOutput3=0
+EnableReload3=0
+RelativeOutputPath4=A:\Projects\Òðåòèé ïèí\keepass_dongle\product \
+OpenOutputs4=0
+AddToProject4=0
+TimestampFolder4=1
+UseOutputName4=0
+OpenODBOutput4=0
+OpenGerberOutput4=0
+OpenNCDrillOutput4=0
+OpenIPCOutput4=0
+EnableReload4=0
+RelativeOutputPath5=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+OpenOutputs5=1
+RelativeOutputPath6=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+OpenOutputs6=1
+AddToProject6=0
+TimestampFolder6=0
+UseOutputName6=0
+OpenODBOutput6=0
+OpenGerberOutput6=0
+OpenNCDrillOutput6=0
+OpenIPCOutput6=0
+EnableReload6=0
+RelativeOutputPath7=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+OpenOutputs7=1
+RelativeOutputPath8=A:\Ðåçîíàíñ\Àêàöèÿ\hw\Akazia\doc\Rev.2.1\
+OpenOutputs8=1
+RelativeOutputPath9=doc\
+OpenOutputs9=1
+AddToProject9=1
+TimestampFolder9=0
+UseOutputName9=0
+OpenODBOutput9=0
+OpenGerberOutput9=0
+OpenNCDrillOutput9=0
+OpenIPCOutput9=0
+EnableReload9=0
+
diff --git a/sch/pastilda.PcbDoc b/sch/pastilda.PcbDoc
new file mode 100644
index 0000000..a6965ec
--- /dev/null
+++ b/sch/pastilda.PcbDoc
Binary files differ
diff --git a/sch/pastilda.PrjPcb b/sch/pastilda.PrjPcb
new file mode 100644
index 0000000..24c00e7
--- /dev/null
+++ b/sch/pastilda.PrjPcb
@@ -0,0 +1,1131 @@
+[Design]
+Version=1.0
+HierarchyMode=2
+ChannelRoomNamingStyle=0
+ReleasesFolder=
+ReleaseVaultGUID=
+ReleaseVaultName=
+ChannelDesignatorFormatString=$Component_$RoomName
+ChannelRoomLevelSeperator=_
+OpenOutputs=1
+ArchiveProject=0
+TimestampOutput=0
+SeparateFolders=0
+TemplateLocationPath=
+PinSwapBy_Netlabel=1
+PinSwapBy_Pin=1
+AllowPortNetNames=0
+AllowSheetEntryNetNames=1
+AppendSheetNumberToLocalNets=0
+NetlistSinglePinNets=0
+DefaultConfiguration=Default Configuration
+UserID=0xFFFFFFFF
+DefaultPcbProtel=1
+DefaultPcbPcad=0
+ReorderDocumentsOnCompile=1
+NameNetsHierarchically=0
+PowerPortNamesTakePriority=0
+PushECOToAnnotationFile=1
+DItemRevisionGUID=
+ReportSuppressedErrorsInMessages=0
+FSMCodingStyle=eFMSDropDownList_OneProcess
+FSMEncodingStyle=eFMSDropDownList_OneHot
+OutputPath=Project Outputs for pastilda
+LogFolderPath=
+ManagedProjectGUID=
+
+[Preferences]
+PrefsVaultGUID=
+PrefsRevisionGUID=
+
+[Document1]
+DocumentPath=pastilda.OutJob
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=
+
+[Document2]
+DocumentPath=pastilda.SchDoc
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=0
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=0
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=BAVQCQLH
+
+[Document3]
+DocumentPath=pastilda.PcbDoc
+AnnotationEnabled=1
+AnnotateStartValue=1
+AnnotationIndexControlEnabled=0
+AnnotateSuffix=
+AnnotateScope=All
+AnnotateOrder=-1
+DoLibraryUpdate=1
+DoDatabaseUpdate=1
+ClassGenCCAutoEnabled=1
+ClassGenCCAutoRoomEnabled=1
+ClassGenNCAutoScope=None
+DItemRevisionGUID=
+GenerateClassCluster=0
+DocumentUniqueId=DIHMUBTU
+
+[Parameter1]
+Name=Organisation
+Value=Òðåòèé Ïèí
+
+[Parameter2]
+Name=PrjAuthor
+Value=Ëàðèîíîâ
+
+[Parameter3]
+Name=PrjChecked
+Value=Øèøîâ
+
+[Parameter4]
+Name=PrjFirsApp
+Value=ÐÒËÏ.123456.001
+
+[Parameter5]
+Name=PrjName
+Value=Pastilda
+
+[Parameter6]
+Name=PrjName1
+Value=Pastilda
+
+[Parameter7]
+Name=PrjName2
+Value=
+
+[Parameter8]
+Name=PrjNumber
+Value=ÐÒËÏ.123456.001
+
+[Parameter9]
+Name=PrjType
+Value=Ñõåìà ýëåêòðè÷åñêàÿ
+
+[Parameter10]
+Name=PrjType1
+Value=Ïðèíöèïèàëüíàÿ
+
+[Parameter11]
+Name=PrjTypeSch
+Value=Ý3
+
+[Parameter12]
+Name=ProjectNumber
+Value=ÐÒËÏ.123456.001
+
+[Parameter13]
+Name=Revision
+Value=Rev.0.1
+
+[Configuration1]
+Name=Default Configuration
+ParameterCount=0
+ConstraintFileCount=0
+ReleaseItemId=
+CurrentRevision=
+Variant=[No Variations]
+GenerateBOM=1
+OutputJobsCount=0
+
+[Generic_EDE]
+OutputDir=Project Outputs for pastilda
+
+[OutputGroup1]
+Name=Netlist Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=PCADNetlist
+OutputName1=PCAD Netlist
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=SIMetrixNetlist
+OutputName2=SIMetrix
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=SIMPLISNetlist
+OutputName3=SIMPLIS
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=Verilog
+OutputName4=Verilog File
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+OutputType5=VHDL
+OutputName5=VHDL File
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+OutputType6=XSpiceNetlist
+OutputName6=XSpice Netlist
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+OutputType7=CadnetixNetlist
+OutputName7=Cadnetix Netlist
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+OutputType8=CalayNetlist
+OutputName8=Calay Netlist
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+OutputType9=EDIF
+OutputName9=EDIF for PCB
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+OutputType10=EESofNetlist
+OutputName10=EESof Netlist
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+OutputType11=IntergraphNetlist
+OutputName11=Intergraph Netlist
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+OutputType12=MentorBoardStationNetlist
+OutputName12=Mentor BoardStation Netlist
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+OutputType13=MultiWire
+OutputName13=MultiWire
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+OutputType14=OrCadPCB2Netlist
+OutputName14=Orcad/PCB2 Netlist
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+OutputType15=PADSNetlist
+OutputName15=PADS ASCII Netlist
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+OutputType16=Pcad
+OutputName16=Pcad for PCB
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+OutputType17=PCADnltNetlist
+OutputName17=PCADnlt Netlist
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+OutputType18=Protel2Netlist
+OutputName18=Protel2 Netlist
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+OutputType19=ProtelNetlist
+OutputName19=Protel
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+OutputType20=RacalNetlist
+OutputName20=Racal Netlist
+OutputDocumentPath20=
+OutputVariantName20=
+OutputDefault20=0
+OutputType21=RINFNetlist
+OutputName21=RINF Netlist
+OutputDocumentPath21=
+OutputVariantName21=
+OutputDefault21=0
+OutputType22=SciCardsNetlist
+OutputName22=SciCards Netlist
+OutputDocumentPath22=
+OutputVariantName22=
+OutputDefault22=0
+OutputType23=TangoNetlist
+OutputName23=Tango Netlist
+OutputDocumentPath23=
+OutputVariantName23=
+OutputDefault23=0
+OutputType24=TelesisNetlist
+OutputName24=Telesis Netlist
+OutputDocumentPath24=
+OutputVariantName24=
+OutputDefault24=0
+OutputType25=WBSENetlistGeneration
+OutputName25=WEBENCH Simulation Engine
+OutputDocumentPath25=
+OutputVariantName25=
+OutputDefault25=0
+OutputType26=WireListNetlist
+OutputName26=WireList Netlist
+OutputDocumentPath26=
+OutputVariantName26=
+OutputDefault26=0
+
+[OutputGroup2]
+Name=Simulator Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AdvSimNetlist
+OutputName1=Mixed Sim
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=SIMetrixSimulation
+OutputName2=SIMetrix
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=SIMPLISSimulation
+OutputName3=SIMPLIS
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=WBSENetlist
+OutputName4=WEBENCH Simulation Engine
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+
+[OutputGroup3]
+Name=Documentation Outputs
+Description=
+TargetPrinter=Virtual Printer
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Assembler Source Print
+OutputName1=Assembler Source Prints
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType2=C Source Print
+OutputName2=C Source Prints
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType3=C/C++ Header Print
+OutputName3=C/C++ Header Prints
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType4=C++ Source Print
+OutputName4=C++ Source Prints
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType5=Composite
+OutputName5=Composite Drawing
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType6=FSM Print
+OutputName6=FSM Prints
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType7=OpenBus Print
+OutputName7=OpenBus Prints
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType8=PCB 3D Print
+OutputName8=PCB 3D Print
+OutputDocumentPath8=
+OutputVariantName8=[No Variations]
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType9=PCB 3D Video
+OutputName9=PCB 3D Video
+OutputDocumentPath9=
+OutputVariantName9=[No Variations]
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType10=PCB Print
+OutputName10=PCB Prints
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType11=PCBLIB Print
+OutputName11=PCBLIB Prints
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType12=Report Print
+OutputName12=Report Prints
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType13=Schematic Print
+OutputName13=Schematic Prints
+OutputDocumentPath13=A:\Projects\Òðåòèé ïèí\keepass_dongle\keepass_dongle.SchDoc
+OutputVariantName13=
+OutputDefault13=0
+PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+Configuration13_Name1=OutputConfigurationParameter1
+Configuration13_Item1=Record=SchPrintView|ShowNoERC=True|ShowParamSet=True|ShowProbe=True|ShowBlanket=True|NoERCSymbolsToShow="Thin Cross","Thick Cross","Small Cross",Checkbox,Triangle|ShowNote=True|ShowNoteCollapsed=True|ExpandDesignator=True|ExpandNetLabel=False|ExpandPort=False|ExpandSheetNum=False|ExpandDocNum=False|PrintArea=0|PrintAreaRect.X1=0|PrintAreaRect.Y1=0|PrintAreaRect.X2=0|PrintAreaRect.Y2=0
+OutputType14=SimView Print
+OutputName14=SimView Prints
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType15=VHDL Print
+OutputName15=VHDL Prints
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType16=Wave Print
+OutputName16=Wave Prints
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType17=WaveSim Print
+OutputName17=WaveSim Prints
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType18=Software Platform Print
+OutputName18=Software Platform Prints
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+
+[OutputGroup4]
+Name=Assembly Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Assembly
+OutputName1=Assembly Drawings
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType2=Pick Place
+OutputName2=Generates pick and place files
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=Test Points For Assembly
+OutputName3=Test Point Report
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+
+[OutputGroup5]
+Name=Fabrication Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Board Stack Report
+OutputName1=Report Board Stack
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType2=CompositeDrill
+OutputName2=Composite Drill Drawing
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType3=Drill
+OutputName3=Drill Drawing/Guides
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType4=Final
+OutputName4=Final Artwork Prints
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType5=Gerber
+OutputName5=Gerber Files
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=Mask
+OutputName6=Solder/Paste Mask Prints
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType7=NC Drill
+OutputName7=NC Drill Files
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+OutputType8=ODB
+OutputName8=ODB++ Files
+OutputDocumentPath8=
+OutputVariantName8=[No Variations]
+OutputDefault8=0
+OutputType9=Plane
+OutputName9=Power-Plane Prints
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType10=Test Points
+OutputName10=Test Point Report
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+OutputType11=Gerber X2
+OutputName11=Gerber X2 Files
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+OutputType12=IPC2581
+OutputName12=IPC-2581 Files
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+
+[OutputGroup6]
+Name=Report Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=BOM_PartType
+OutputName1=Bill of Materials
+OutputDocumentPath1=
+OutputVariantName1=[No Variations]
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType2=ComponentCrossReference
+OutputName2=Component Cross Reference Report
+OutputDocumentPath2=
+OutputVariantName2=[No Variations]
+OutputDefault2=0
+OutputType3=ReportHierarchy
+OutputName3=Report Project Hierarchy
+OutputDocumentPath3=
+OutputVariantName3=[No Variations]
+OutputDefault3=0
+OutputType4=Script
+OutputName4=Script Output
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=SimpleBOM
+OutputName5=Simple BOM
+OutputDocumentPath5=
+OutputVariantName5=[No Variations]
+OutputDefault5=0
+OutputType6=SinglePinNetReporter
+OutputName6=Report Single Pin Nets
+OutputDocumentPath6=
+OutputVariantName6=[No Variations]
+OutputDefault6=0
+
+[OutputGroup7]
+Name=Other Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Text Print
+OutputName1=Text Print
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType2=Text Print
+OutputName2=Text Print
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType3=Text Print
+OutputName3=Text Print
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType4=Text Print
+OutputName4=Text Print
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType5=Text Print
+OutputName5=Text Print
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType6=Text Print
+OutputName6=Text Print
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType7=Text Print
+OutputName7=Text Print
+OutputDocumentPath7=
+OutputVariantName7=
+OutputDefault7=0
+PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType8=Text Print
+OutputName8=Text Print
+OutputDocumentPath8=
+OutputVariantName8=
+OutputDefault8=0
+PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType9=Text Print
+OutputName9=Text Print
+OutputDocumentPath9=
+OutputVariantName9=
+OutputDefault9=0
+PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType10=Text Print
+OutputName10=Text Print
+OutputDocumentPath10=
+OutputVariantName10=
+OutputDefault10=0
+PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType11=Text Print
+OutputName11=Text Print
+OutputDocumentPath11=
+OutputVariantName11=
+OutputDefault11=0
+PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType12=Text Print
+OutputName12=Text Print
+OutputDocumentPath12=
+OutputVariantName12=
+OutputDefault12=0
+PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType13=Text Print
+OutputName13=Text Print
+OutputDocumentPath13=
+OutputVariantName13=
+OutputDefault13=0
+PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType14=Text Print
+OutputName14=Text Print
+OutputDocumentPath14=
+OutputVariantName14=
+OutputDefault14=0
+PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType15=Text Print
+OutputName15=Text Print
+OutputDocumentPath15=
+OutputVariantName15=
+OutputDefault15=0
+PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType16=Text Print
+OutputName16=Text Print
+OutputDocumentPath16=
+OutputVariantName16=
+OutputDefault16=0
+PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType17=Text Print
+OutputName17=Text Print
+OutputDocumentPath17=
+OutputVariantName17=
+OutputDefault17=0
+PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType18=Text Print
+OutputName18=Text Print
+OutputDocumentPath18=
+OutputVariantName18=
+OutputDefault18=0
+PageOptions18=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType19=Text Print
+OutputName19=Text Print
+OutputDocumentPath19=
+OutputVariantName19=
+OutputDefault19=0
+PageOptions19=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType20=Text Print
+OutputName20=Text Print
+OutputDocumentPath20=
+OutputVariantName20=
+OutputDefault20=0
+PageOptions20=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType21=Text Print
+OutputName21=Text Print
+OutputDocumentPath21=
+OutputVariantName21=
+OutputDefault21=0
+PageOptions21=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType22=Text Print
+OutputName22=Text Print
+OutputDocumentPath22=
+OutputVariantName22=
+OutputDefault22=0
+PageOptions22=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType23=Text Print
+OutputName23=Text Print
+OutputDocumentPath23=
+OutputVariantName23=
+OutputDefault23=0
+PageOptions23=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType24=Text Print
+OutputName24=Text Print
+OutputDocumentPath24=
+OutputVariantName24=
+OutputDefault24=0
+PageOptions24=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType25=Text Print
+OutputName25=Text Print
+OutputDocumentPath25=
+OutputVariantName25=
+OutputDefault25=0
+PageOptions25=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType26=Text Print
+OutputName26=Text Print
+OutputDocumentPath26=
+OutputVariantName26=
+OutputDefault26=0
+PageOptions26=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType27=Text Print
+OutputName27=Text Print
+OutputDocumentPath27=
+OutputVariantName27=
+OutputDefault27=0
+PageOptions27=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType28=Text Print
+OutputName28=Text Print
+OutputDocumentPath28=
+OutputVariantName28=
+OutputDefault28=0
+PageOptions28=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType29=Text Print
+OutputName29=Text Print
+OutputDocumentPath29=
+OutputVariantName29=
+OutputDefault29=0
+PageOptions29=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+
+[OutputGroup8]
+Name=Validation Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=Configuration compliance
+OutputName1=Environment configuration compliance check
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=Design Rules Check
+OutputName2=Design Rules Check
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType3=Differences Report
+OutputName3=Differences Report
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType4=Electrical Rules Check
+OutputName4=Electrical Rules Check
+OutputDocumentPath4=
+OutputVariantName4=
+OutputDefault4=0
+PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+OutputType5=Footprint Comparison Report
+OutputName5=Footprint Comparison Report
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+OutputType6=Component states check
+OutputName6=Vault's components states check
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+
+[OutputGroup9]
+Name=Export Outputs
+Description=
+TargetPrinter=Xerox Phaser 3140 and 3155
+PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1
+OutputType1=AutoCAD dwg/dxf PCB
+OutputName1=AutoCAD dwg/dxf File PCB
+OutputDocumentPath1=
+OutputVariantName1=
+OutputDefault1=0
+OutputType2=AutoCAD dwg/dxf Schematic
+OutputName2=AutoCAD dwg/dxf File Schematic
+OutputDocumentPath2=
+OutputVariantName2=
+OutputDefault2=0
+OutputType3=ExportIDF
+OutputName3=Export IDF
+OutputDocumentPath3=
+OutputVariantName3=
+OutputDefault3=0
+OutputType4=ExportSTEP
+OutputName4=Export STEP
+OutputDocumentPath4=
+OutputVariantName4=[No Variations]
+OutputDefault4=0
+OutputType5=PDF3D
+OutputName5=Export PDF3D
+OutputDocumentPath5=
+OutputVariantName5=
+OutputDefault5=0
+OutputType6=NetList Sch
+OutputName6=NetList Sch
+OutputDocumentPath6=
+OutputVariantName6=
+OutputDefault6=0
+
+[Modification Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+Type44=1
+Type45=1
+Type46=1
+Type47=1
+Type48=1
+Type49=1
+Type50=1
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=1
+Type57=1
+Type58=1
+Type59=1
+Type60=1
+Type61=1
+Type62=1
+Type63=1
+Type64=1
+Type65=1
+Type66=1
+Type67=1
+Type68=1
+Type69=1
+Type70=1
+Type71=1
+Type72=1
+Type73=1
+Type74=1
+Type75=1
+Type76=1
+Type77=1
+Type78=1
+
+[Difference Levels]
+Type1=1
+Type2=1
+Type3=1
+Type4=1
+Type5=1
+Type6=1
+Type7=1
+Type8=1
+Type9=1
+Type10=1
+Type11=1
+Type12=1
+Type13=1
+Type14=1
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=1
+Type26=1
+Type27=1
+Type28=1
+Type29=1
+Type30=1
+Type31=1
+Type32=1
+Type33=1
+Type34=1
+Type35=1
+Type36=1
+Type37=1
+Type38=1
+Type39=1
+Type40=1
+Type41=1
+Type42=1
+Type43=1
+
+[Electrical Rules Check]
+Type1=1
+Type2=1
+Type3=2
+Type4=1
+Type5=2
+Type6=2
+Type7=1
+Type8=2
+Type9=1
+Type10=1
+Type11=2
+Type12=2
+Type13=2
+Type14=0
+Type15=1
+Type16=1
+Type17=1
+Type18=1
+Type19=1
+Type20=1
+Type21=1
+Type22=1
+Type23=1
+Type24=1
+Type25=2
+Type26=2
+Type27=2
+Type28=1
+Type29=1
+Type30=1
+Type31=2
+Type32=2
+Type33=2
+Type34=2
+Type35=2
+Type36=2
+Type37=1
+Type38=2
+Type39=2
+Type40=2
+Type41=0
+Type42=2
+Type43=1
+Type44=1
+Type45=2
+Type46=1
+Type47=2
+Type48=2
+Type49=1
+Type50=2
+Type51=1
+Type52=1
+Type53=1
+Type54=1
+Type55=1
+Type56=2
+Type57=2
+Type58=2
+Type59=2
+Type60=1
+Type61=2
+Type62=2
+Type63=1
+Type64=0
+Type65=2
+Type66=3
+Type67=2
+Type68=2
+Type69=1
+Type70=2
+Type71=2
+Type72=2
+Type73=2
+Type74=2
+Type75=2
+Type76=1
+Type77=1
+Type78=1
+Type79=1
+Type80=2
+Type81=3
+Type82=3
+Type83=3
+Type84=3
+Type85=3
+Type86=2
+Type87=2
+Type88=2
+Type89=1
+Type90=1
+Type91=3
+Type92=3
+Type93=2
+Type94=2
+Type95=2
+Type96=2
+Type97=2
+Type98=0
+Type99=1
+Type100=2
+Type101=1
+Type102=2
+Type103=2
+Type104=1
+Type105=2
+Type106=2
+Type107=2
+Type108=2
+Type109=1
+Type110=1
+Type111=1
+
+[ERC Connection Matrix]
+L1=NNNNNNNNNNNWNNNWW
+L2=NNWNNNNWWWNWNWNWN
+L3=NWEENEEEENEWNEEWN
+L4=NNENNNWEENNWNENWN
+L5=NNNNNNNNNNNNNNNNN
+L6=NNENNNNEENNWNENWN
+L7=NNEWNNWEENNWNENWN
+L8=NWEENEENEEENNEENN
+L9=NWEENEEEENEWNEEWW
+L10=NWNNNNNENNEWNNEWN
+L11=NNENNNNEEENWNENWN
+L12=WWWWNWWNWWWNWWWNN
+L13=NNNNNNNNNNNWNNNWW
+L14=NWEENEEEENEWNEEWW
+L15=NNENNNNEEENWNENWW
+L16=WWWWNWWNWWWNWWWNW
+L17=WNNNNNNNWNNNWWWWN
+
+[Annotate]
+SortOrder=3
+SortLocation=0
+MatchParameter1=Comment
+MatchStrictly1=1
+MatchParameter2=Library Reference
+MatchStrictly2=1
+PhysicalNamingFormat=$Component_$RoomName
+GlobalIndexSortOrder=3
+GlobalIndexSortLocation=0
+
+[PrjClassGen]
+CompClassManualEnabled=0
+CompClassManualRoomEnabled=0
+NetClassAutoBusEnabled=1
+NetClassAutoCompEnabled=0
+NetClassAutoNamedHarnessEnabled=0
+NetClassManualEnabled=1
+NetClassSeparateForBusSections=0
+
+[LibraryUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+PartTypes=0
+FullReplace=1
+UpdateDesignatorLock=1
+UpdatePartIDLock=1
+PreserveParameterLocations=1
+PreserveParameterVisibility=1
+DoGraphics=1
+DoParameters=1
+DoModels=1
+AddParameters=0
+RemoveParameters=0
+AddModels=1
+RemoveModels=1
+UpdateCurrentModels=1
+
+[DatabaseUpdateOptions]
+SelectedOnly=0
+UpdateVariants=1
+PartTypes=0
+
+[Comparison Options]
+ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|Confirm=0|UseName=0|InclAllRules=0
+ComparisonOptions5=Kind=Code Memory|MinPercent=75|MinMatch=3|ShowMatch=-1|Confirm=-1|UseName=-1|InclAllRules=0
+
+[SmartPDF]
+PageOptions=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9
+
diff --git a/sch/pastilda.PrjPcbStructure b/sch/pastilda.PrjPcbStructure
new file mode 100644
index 0000000..27a51ba
--- /dev/null
+++ b/sch/pastilda.PrjPcbStructure
@@ -0,0 +1 @@
+Record=TopLevelDocument|FileName=pastilda.SchDoc
diff --git a/sch/pastilda.SchDoc b/sch/pastilda.SchDoc
new file mode 100644
index 0000000..e3d1bbf
--- /dev/null
+++ b/sch/pastilda.SchDoc
Binary files differ