blob: bc75d90f570f8b96e689b83855f3ef33c4c7f497 [file] [log] [blame] [edit]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Interactive BOM for KiCAD</title>
<style type="text/css">
:root {
--pcb-edge-color: black;
--pad-color: #878787;
--pad-hole-color: #CCCCCC;
--pad-color-highlight: #D04040;
--pad-color-highlight-both: #D0D040;
--pad-color-highlight-marked: #44a344;
--pin1-outline-color: #ffb629;
--pin1-outline-color-highlight: #ffb629;
--pin1-outline-color-highlight-both: #fcbb39;
--pin1-outline-color-highlight-marked: #fdbe41;
--silkscreen-edge-color: #aa4;
--silkscreen-polygon-color: #4aa;
--silkscreen-text-color: #4aa;
--fabrication-edge-color: #907651;
--fabrication-polygon-color: #907651;
--fabrication-text-color: #a27c24;
--track-color: #def5f1;
--track-color-highlight: #D04040;
--zone-color: #def5f1;
--zone-color-highlight: #d0404080;
}
html,
body {
margin: 0px;
height: 100%;
font-family: Verdana, sans-serif;
}
.dark.topmostdiv {
--pcb-edge-color: #eee;
--pad-color: #808080;
--pin1-outline-color: #ffa800;
--pin1-outline-color-highlight: #ccff00;
--track-color: #42524f;
--zone-color: #42524f;
background-color: #252c30;
color: #eee;
}
button {
background-color: #eee;
border: 1px solid #888;
color: black;
height: 44px;
width: 44px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
font-weight: bolder;
}
.dark button {
/* This will be inverted */
background-color: #c3b7b5;
}
button.depressed {
background-color: #0a0;
color: white;
}
.dark button.depressed {
/* This will be inverted */
background-color: #b3b;
}
button:focus {
outline: 0;
}
button#tb-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#lr-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}
button#bom-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-grouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-ungrouped-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}
button#bom-netlist-btn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}
button#copy {
background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
background-position: 6px 6px;
background-repeat: no-repeat;
background-size: 26px 26px;
border-radius: 6px;
height: 40px;
width: 40px;
margin: 10px 5px;
}
button#copy:active {
box-shadow: inset 0px 0px 5px #6c6c6c;
}
textarea.clipboard-temp {
position: fixed;
top: 0;
left: 0;
width: 2em;
height: 2em;
padding: 0;
border: None;
outline: None;
box-shadow: None;
background: transparent;
}
.left-most-button {
border-right: 0;
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
}
.middle-button {
border-right: 0;
}
.right-most-button {
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
.button-container {
font-size: 0;
margin: 10px 10px 10px 0px;
}
.dark .button-container {
filter: invert(1);
}
.button-container button {
background-size: 32px 32px;
background-position: 5px 5px;
background-repeat: no-repeat;
}
@media print {
.hideonprint {
display: none;
}
}
canvas {
cursor: crosshair;
}
canvas:active {
cursor: grabbing;
}
.fileinfo {
width: 100%;
max-width: 1000px;
border: none;
padding: 5px;
}
.fileinfo .title {
font-size: 20pt;
font-weight: bold;
}
.fileinfo td {
overflow: hidden;
white-space: nowrap;
max-width: 1px;
width: 50%;
text-overflow: ellipsis;
}
.bom {
border-collapse: collapse;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 10pt;
table-layout: fixed;
width: 100%;
margin-top: 1px;
position: relative;
}
.bom th,
.bom td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
.dark .bom th,
.dark .bom td {
border: 1px solid #777;
}
.bom th {
background-color: #CCCCCC;
background-clip: padding-box;
}
.dark .bom th {
background-color: #3b4749;
}
.bom tr.highlighted:nth-child(n) {
background-color: #cfc;
}
.dark .bom tr.highlighted:nth-child(n) {
background-color: #226022;
}
.bom tr:nth-child(even) {
background-color: #f2f2f2;
}
.dark .bom tr:nth-child(even) {
background-color: #313b40;
}
.bom tr.checked {
color: #1cb53d;
}
.dark .bom tr.checked {
color: #2cce54;
}
.bom tr {
transition: background-color 0.2s;
}
.bom .numCol {
width: 30px;
}
.bom .value {
width: 15%;
}
.bom .quantity {
width: 65px;
}
.bom th .sortmark {
position: absolute;
right: 1px;
top: 1px;
margin-top: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent transparent #221 transparent;
transform-origin: 50% 85%;
transition: opacity 0.2s, transform 0.4s;
}
.dark .bom th .sortmark {
filter: invert(1);
}
.bom th .sortmark.none {
opacity: 0;
}
.bom th .sortmark.desc {
transform: rotate(180deg);
}
.bom th:hover .sortmark.none {
opacity: 0.5;
}
.bom .bom-checkbox {
width: 30px;
position: relative;
user-select: none;
-moz-user-select: none;
}
.bom .bom-checkbox:before {
content: "";
position: absolute;
border-width: 15px;
border-style: solid;
border-color: #51829f transparent transparent transparent;
visibility: hidden;
top: -15px;
}
.bom .bom-checkbox:after {
content: "Double click to set/unset all";
position: absolute;
color: white;
top: -35px;
left: -26px;
background: #51829f;
padding: 5px 15px;
border-radius: 8px;
white-space: nowrap;
visibility: hidden;
}
.bom .bom-checkbox:hover:before,
.bom .bom-checkbox:hover:after {
visibility: visible;
transition: visibility 0.2s linear 1s;
}
.split {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
overflow-y: auto;
overflow-x: hidden;
background-color: inherit;
}
.split.split-horizontal,
.gutter.gutter-horizontal {
height: 100%;
float: left;
}
.gutter {
background-color: #ddd;
background-repeat: no-repeat;
background-position: 50%;
transition: background-color 0.3s;
}
.dark .gutter {
background-color: #777;
}
.gutter.gutter-horizontal {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==');
cursor: ew-resize;
width: 5px;
}
.gutter.gutter-vertical {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFAQMAAABo7865AAAABlBMVEVHcEzMzMzyAv2sAAAAAXRSTlMAQObYZgAAABBJREFUeF5jOAMEEAIEEFwAn3kMwcB6I2AAAAAASUVORK5CYII=');
cursor: ns-resize;
height: 5px;
}
.searchbox {
float: left;
height: 40px;
margin: 10px 5px;
padding: 12px 32px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 18px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 6px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNklEQVQ4T8XSMUvDQBQH8P/LElFa/AIZHcTBQSz0I/gFstTBRR2KUC4ldDxw7h0Bl3RRUATxi4iiODgoiLNrbQYp5J6cpJJqomkX33Z37/14d/dIa33MzDuYI4johOI4XhyNRteO46zNYjDzAxE1yBZprVeZ+QbAUhXEGJMA2Ox2u4+fQIa0mPmsCgCgJYQ4t7lfgF0opQYAdv9ABkKI/UnOFCClXKjX61cA1osQY8x9kiRNKeV7IWA3oyhaSdP0FkAtjxhj3hzH2RBCPOf3pzqYHCilfAAX+URm9oMguPzeWSGQvUcMYC8rOBJCHBRdqxTo9/vbRHRqi8bj8XKv1xvODbiuW2u32/bvf0SlDv4XYOY7z/Mavu+nM1+BmQ+NMc0wDF/LprP0DbTWW0T00ul0nn4b7Q87+X4Qmfiq2wAAAABJRU5ErkJggg==');
background-position: 10px 10px;
background-repeat: no-repeat;
}
.dark .searchbox {
background-color: #111;
color: #eee;
}
.searchbox::placeholder {
color: #ccc;
}
.dark .searchbox::placeholder {
color: #666;
}
.filter {
width: calc(60% - 64px);
}
.reflookup {
width: calc(40% - 10px);
}
input[type=text]:focus {
background-color: white;
border: 1px solid #333;
}
.dark input[type=text]:focus {
background-color: #333;
border: 1px solid #ccc;
}
mark.highlight {
background-color: #5050ff;
color: #fff;
padding: 2px;
border-radius: 6px;
}
.dark mark.highlight {
background-color: #76a6da;
color: #111;
}
.menubtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
background-position: center;
background-repeat: no-repeat;
}
.statsbtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.iobtn {
background-color: white;
border: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
}
.visbtn {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
background-position: center;
background-repeat: no-repeat;
padding: 15px;
}
#vismenu-content {
left: 0px;
font-family: Verdana, sans-serif;
}
.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
filter: invert(1);
}
.flexbox {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.savebtn {
background-color: #d6d6d6;
width: auto;
height: 30px;
flex-grow: 1;
margin: 5px;
border-radius: 4px;
}
.savebtn:active {
background-color: #0a0;
color: white;
}
.dark .savebtn:active {
/* This will be inverted */
background-color: #b3b;
}
.stats {
border-collapse: collapse;
font-size: 12pt;
table-layout: fixed;
width: 100%;
min-width: 450px;
}
.dark .stats td {
border: 1px solid #bbb;
}
.stats td {
border: 1px solid black;
padding: 5px;
word-wrap: break-word;
text-align: center;
position: relative;
}
#checkbox-stats div {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
#checkbox-stats .bar {
background-color: rgba(28, 251, 0, 0.6);
}
.menu {
position: relative;
display: inline-block;
margin: 10px 10px 10px 0px;
}
.menu-content {
font-size: 12pt !important;
text-align: left !important;
font-weight: normal !important;
display: none;
position: absolute;
background-color: white;
right: 0;
min-width: 300px;
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
z-index: 100;
padding: 8px;
}
.dark .menu-content {
background-color: #111;
}
.menu:hover .menu-content {
display: block;
}
.menu:hover .menubtn,
.menu:hover .iobtn,
.menu:hover .statsbtn {
background-color: #eee;
}
.menu-label {
display: inline-block;
padding: 8px;
border: 1px solid #ccc;
border-top: 0;
width: calc(100% - 18px);
}
.menu-label-top {
border-top: 1px solid #ccc;
}
.menu-textbox {
float: left;
height: 24px;
margin: 10px 5px;
padding: 5px 5px;
font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
font-size: 14px;
box-sizing: border-box;
border: 1px solid #888;
border-radius: 4px;
outline: none;
background-color: #eee;
transition: background-color 0.2s, border 0.2s;
width: calc(100% - 10px);
}
.menu-textbox.invalid,
.dark .menu-textbox.invalid {
color: red;
}
.dark .menu-textbox {
background-color: #222;
color: #eee;
}
.radio-container {
margin: 4px;
}
.topmostdiv {
width: 100%;
height: 100%;
background-color: white;
transition: background-color 0.3s;
}
#top {
height: 78px;
border-bottom: 2px solid black;
}
.dark #top {
border-bottom: 2px solid #ccc;
}
#dbg {
display: block;
}
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: #aaa;
}
::-webkit-scrollbar-thumb {
background: #666;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
.slider {
-webkit-appearance: none;
width: 100%;
margin: 3px 0;
padding: 0;
outline: none;
opacity: 0.7;
-webkit-transition: .2s;
transition: opacity .2s;
border-radius: 3px;
}
.slider:hover {
opacity: 1;
}
.slider:focus {
outline: none;
}
.slider::-webkit-slider-runnable-track {
-webkit-appearance: none;
width: 100%;
height: 8px;
background: #d3d3d3;
border-radius: 3px;
border: none;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin-top: -4px;
}
.dark .slider::-webkit-slider-thumb {
background: #3d3;
}
.slider::-moz-range-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
}
.slider::-moz-range-track {
height: 8px;
background: #d3d3d3;
border-radius: 3px;
}
.dark .slider::-moz-range-thumb {
background: #3d3;
}
.slider::-ms-track {
width: 100%;
height: 8px;
border-width: 3px 0;
background: transparent;
border-color: transparent;
color: transparent;
transition: opacity .2s;
}
.slider::-ms-fill-lower {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-fill-upper {
background: #d3d3d3;
border: none;
border-radius: 3px;
}
.slider::-ms-thumb {
width: 15px;
height: 15px;
border-radius: 50%;
background: #0a0;
cursor: pointer;
margin: 0;
}
.shameless-plug {
font-size: 0.8em;
text-align: center;
display: block;
}
a {
color: #0278a4;
}
.dark a {
color: #00b9fd;
}
#frontcanvas,
#backcanvas {
touch-action: none;
}
.placeholder {
border: 1px dashed #9f9fda !important;
background-color: #edf2f7 !important;
}
.dragging {
z-index: 999;
}
.dark .dragging>table>tbody>tr {
background-color: #252c30;
}
.dark .placeholder {
filter: invert(1);
}
.column-spacer {
top: 0;
left: 0;
width: calc(100% - 4px);
position: absolute;
cursor: pointer;
user-select: none;
height: 100%;
}
.column-width-handle {
top: 0;
right: 0;
width: 4px;
position: absolute;
cursor: col-resize;
user-select: none;
height: 100%;
}
.column-width-handle:hover {
background-color: #4f99bd;
}
</style>
<script type="text/javascript" >
///////////////////////////////////////////////
/*
Split.js - v1.3.5
MIT License
https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});
///////////////////////////////////////////////
///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////
///////////////////////////////////////////////
/*!
* PEP v0.4.3 | https://github.com/jquery/PEP
* Copyright jQuery Foundation and other contributors | http://jquery.org/license
*/
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});
///////////////////////////////////////////////
///////////////////////////////////////////////
var config = {"dark_mode": true, "show_pads": true, "show_fabrication": false, "show_silkscreen": true, "highlight_pin1": false, "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////
///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("N4IgpgJg5mDOD6AjRB7AHiAXAAlAWwEsA7DHARgGYA2AOioCYB2AGmxEKIE8tsqAWGgE5hrdgEM0pbGQCsgmjIos2eCd3L0AHAr6CAvqMgxYPANqgALpwAOYHiDEAnAMYhRsC04tnZ2xruFBVjImGkYqMkCAXVFHMQgCAFcTHAAGMIZU1LJ3T0dPIigAGzs0mlTDIggxQpKeQXSKtgB3AggLAAseRpkDXBArW3snV1yvHyUaMios7NYqGQUKeiyyGLY4hOTuhVTNVbH8muLS7ABaMn3yyura07OG65a2zp3U3tZLG1OQWDAoPBgIjeQ7eHCmXxhGTBLQKeh8dbgKoTRhTKgw7QyeGI1rtLpld59L5DHAgZwEFx1UETeSRejzVEyfiIzZJFLSOF8US414Ej79QY/EZuNgecbgyio6azHLSWHZOTCFnxNk7GR7A6ivIFE71Ro3Y51chXJogHn47A9IkDb72P4AoEgrXi7AQ6h0LEY8rTRFAiATWgLem8RaKeg4l4Wq2fG0ktjkyl2akSplCRjBqiM5mxFXbcic7mRt784k/e2A4Ei37alFo+aLVLYm4+OTlVJckPlJvPPHF62C+wJ5xU535GlTQTBkKLQSaBE5rbssgFnu8y3lEuxn5DkfVl0Q1OCdMwmdz5WLnjLrEds1Fvn922k8uOqtiscp+QyEL1pbh5sfhRvzlVFwj/Vcow3B84wcFxXxrACsgoQIfzDVZz1VMp1X2OZRx1I1zkeU0/UNe59XAvtEQgOJWkKdlQFgAgigAa1gZxHDAIEeFAAAxMxSztf4KydPd31dWR5HoGRNBhCgaHhPZfWRADJOk6Rpi7dMI17Mp6CgstBJfZMxNTLIqFUkJZPkzRFP9ZSpJkuS+AUwttPXXSYwHJ8DMrIyDxnJlgnU1JGGs/9jP89E1NoChli0td0lkeE9IEh0fNwlsIsC6LYrCvyhACuVZMiOKIMSvhkq81LhLfMFjIk+yoo0sCkVs4zaFM8ygqYZrzR2dyBUfUVvOq+DjKlRhPWwQQBHoCh5zYP0W2ihgO2muS5pKvqKqGqq4P3MhdDCYLIsnIRNGmmyfEOxhjtYR5Ihkebb1chLr2235hr20SD2W+FgiyOTGEnS6U1+jsyHbGgkKe3qdPe580pE2qfqhlb/oEaGQbGqYJqnSHMZc+K5Phz7fIO6LGAoVhzt2WQsYhQ7JyCbAafVOnCdKt6PMGj7drJvhQwianURWdmFqUsS+Gi2bqdoJkFk2soypJvn0olKWoZllm5aoBXcoO+RNCB2WFF1mRFfXZXueghGRv2gW6DIWVNG0TQzfp8mocp6nPwVC3XqS639NVpGltRv6ppmjb9dTagI9nKG+Bd/3iaDlKhK+5HPZkBrTtnC79Y1nPVPuwRHpTq2BQ6AhnCYog4HZdJg1+AA3KBrDENcQAAWVkSy+C0GQWDdnRJMYMgABk+6hzQh4O5gR7kbJBCnxQaD4GLN4XwMlH2Ffp6T1Iy/pEfKYodtGFX2TD+P7eaCNpe+Cv9fN5iu+jydgfn4oWfx65I3vRGwiM/egDQ+DhAXqiVIusf6r3oEII+WIqYAOgVQWBiUEHH2Qe1GBmgQED1/nfVB6C14xT3tCEen9v6/3npQiIER95rw3q/O+kkzJD2fswreI8KBYkQdQue/9aB8HAZvb+P9EF310LoLE+DB7DzlgPOecDMFILvo9MeZBe5rzdpEdsd8QqoKoKvDGEiy4GP2LrKg2jZLhCseiFBuCTFTCIU42QAguFv0cWgzQ2iBAMDMa4nxq9FgPVmtJEexDfHuNUTLbxJCBANCwUEn+2jQzyJyCPdhBDV60FARfBxgZZ4ELSbE5BUC3E5zKXfc+IjwggH7NXWu9dYCNymNCUUbcO5d17khOgkkCHMCBmEagv8p59IYBo6SwzqBTPGYbR6QzPwLByZQBZXJhngI/k/NZ99NCaKWevegmj5lCCdgdekMzpqnMEGZQehzZmrKclMc5A8HkrK0FPZ50x9mzwedcg6CVbmEM2cc5RgK5IDK0IcrZf8vlNyhdM+QCxP70HhROdhLBhk3V+TIdFPz7nYtGUPXpyLEWHMiDs55YLBkhSEACiZ5K6VAz4KS/pUyhnaBRRc05kzaXaCYNs05xTOXryBnC3ZIq6XQ2FfsueoqYqYpua8y52hz64puXcv5dLBUSu+Sq0VuqDr4q1dCaVexB74uBUPBVxLL4QppdC6VALqVMsxB8vBELIiYtFQwE5XrTW+q/BchpHkml1wbn1dwXTO4Wh7rIUJiCZaCGXIlBJdBX5UxTe08JzipKCOYNmhgNDnFoJYdmqSSbnHphoYWq8mbnG3PsXWpYr8QnlAYfoit5C0UJqmEmrNy5i3gqqbIP+9Js3pjMe2sdFyW23L0Ts0dA7C3wPeOO9t0DF2rv7eA4BMSm1WJ3Wmz1j0wgZOPUg09/jM3HoKZPGJ+a/47vXRc0pIj5EtpPe2xg4RIiXtzbIWgENknZpPaGquNcI2tKjZ09usb7BssoOQ5g5ydB/v3n0y4Ba0N4t2VoJNqGnbryvacr8YCWBoYFoBiZFy/m4d5Z2rkuG92RFOTdZJaH+DyPYyutDlNyGMe3Whl2VbdlHwKUR+B1H0F9I42op20mr292ecsWtVHSMQoHoEjTgHnnkYvkRq86L5ZHpYxh9FEQCHQi49Z+1zzdbCeI5oBtELHNgKk+UcdnqHN0ZsyEOSTGTP2PRIpqGgje36cXZRgLTlWPou03vTzMmfPpDU/KsLKX0WzRYZl+9+KaHMYC7wjdXqzH+fgfQILEKJN7s88FOj6LasQJE65755WjN0DswVnDxHHoWYdbehjEL0vj06yliDlhw0tLac3WAMaem7OQf4lzSDTlVe3XOKEQr8NMYXgII2Oy+nLbOhqpbGGF4Nn4Hu05KXLv9v9RM+993AVWPY9Fl7Tk3uSu8y9xs4K+nTQu7PDtdTjE1fCUffbp3LU1b21tw7TX4cCHFXvJrkOghbbMrw2aNzCvQ/4HM3Z48KME4FqsuTH2tuo6PipxoyOob/fHuthn59/XPK3R5lz99yefN25t2Sc4pl047QL9e13wgs7F1LMHUuueWX8Kc5BRU5ASuO8D2SewccUFu1ehemveeeqe6x/XbYz46+J1TzXwUxE/bo6b9sRPAescx5r1buOIeBO5+JPV9OxdMCpX7+X4uweTYGNNyNOlo3wcW6mCGJuRPTWPrktsnHnOiJiu2hdHn+PCAlVUlN1nOs3Vl32wv9yuNMjGWXvbuH6FsaA6nhTfXjWN/j3+8blS8lYOklRrvUMKOhZb0u4RHW6/TAb6mJOvWh1V44Y36fz7+PthuwvsfxGgY7djoPzrc5zcp9AXrxPMje1x+e8f5Pjeshp+XNNf1Bfa/EeEMvLPfn6vFL5wXt/YWmCPyz4/+BJQVFFPa/ZvaTS4P9FPdvIWTLfvQ/cJZLfvJCSTTLCA/dKfdfQA8eHlBffHH/CaMBFPRfeeMLPYInDAlDNDZ/SfaKHfKgpRZnRveAn+XfJPLEMPToKDGbWDVuGPONNlIMFgyJNxOTF3FJI3Q2OzO+KhSVHfOhCfTDeQQQDrEeNhavQHfHEeOpW3DQgtLJD/CQoQFQ2gB+Qg2QyTEeD+HAvpOcT9FBNAh9UQ4HCpYJXZQQiJFw2TT8CLSBQBSA3ZdUZJSw7Ar+XZKWTbEwgg9sW7N/fQp3eQPgWI4RDPC3PpcIrnPJOfe1PpQItReQhhMjHwyhVvCZPXYQnxDgiPGDKPODbpfg3ZZQ3QfRcIe+ScfhAIxQW+X9dpIBLRBouaDzbogYmjWkAY5o1EYYrwqYMYjZKBERVfLDb2Fo4FWHPpegJ2SRZY8+BvNYo2QlEwtosuW7BUMbFo86FYI4sI39DvLYl/AI3wG1ZY01QopCT0bolfBY7w14y5CY3QcJNlc6MyKHFoqSfffopojZYRSmC+G5GYoZPJOVRgmw4FYEvJaBKY2eI2eeFoglWedjOVGWHE7YxQo6MtKmIku4iZbYt5HE54gIto8BeEuSdEwwnOb4pkrQR7T8B4rFUfE/W7a4oWEElVW7JCI9EEv4qY6gOaCBEEo2HQiSPY7VOWeUzPfDDY8xCUycKYsgJYuWEU3ZSgCEpkjefkw0uElo+EUvRY8k4DYkpDC0mcbIAo8040iadeeY8INlRowYxYTMWpbI0Yt0v06E8BSorgyPNyaPOoxDAIvjWQNsVwuTIjBsFk9jHvIjRJUE/dGwqQz+M5YA/oygg6DIM7XQpfEsoeQxEk2cXrAQb1dQpQ9fes50nYw2Ogks94I7eQIGI/TstMtw8/fspM32NPAQLs27R/FshQmIovfMhs+fNI7/Es00y/NIqcpYSk0c5vAQKstHQchPEsvlPnOTDM/M48ww86FAys39fcwHZszctss6Osl+E/cM5pSMpuaMhDUkbRYRMuF2fzQMbrRvCIbIMbJ2IpMTVMfgfZXWIjWgEnGE0Ct2agHISCsIHvFPMyNBGA9SJJNbUCpOKrIfWgWs/PQMCGXU9C3UrsadRvRQJCXvWiznaIpg0BdYoIJ2CpRdA/Di/9DCjbMwqfAC+jdSISti1MIeFYFrdSC3GCqiiCuS8rbC4i+CjCxI6zVSuC0i9eQfbCxSminWexFPaS26DCmYeLBfUSoCrrHjdiycAS9SbjX+P8+lRTKmDClzNtMdL2GS3S7yzeNywvZQzyli6rIeKYTQaYBCwLXi3ykRHSojHisBbRVEGYaBRkwSiK7QddY2bKxdNK++firi8K+KyK/ZRy0qvJJjbRNVK0m1DCiaUrKSIwpi2K5qt9SEBgKq5K0XYSrlEq2KibRpCM6oqM2on8tgb0zQ5FAcpcovGmGYHxNlYeOakcsIBeLleauak3F2MISU1kldfauca0hI2I12Q4mQd86DWbb8xbBa+5bNeEGcsIvbMDBlbw8dL9KWKY3shAsDX6y8nfD67sowlDZ6xIl08s+ebNRVRs5859bNDeC4vDe8iGq8fwNc+QagZtU6cmKY8i2G+BAmzQG67gmo3gmM38hi9YivY5UeavGC3hDLBmytS/GCymMzBmpje1VMbAjvEIeBKgLCxvAWmAhmnteSwMLm9SyWwrbClmiChm7U/cqSuQFgoWoQCKzI9I1DFWnWuSR6BhfWkmw2rEEIejBmhQySuWI8OrLW0/HeHOZWyrFS0C2W0LBmigPzbCz202gfApRWl29ChmqWEyhi+2lrNm/LWmy2mzNmkC1MAZE2rWqZElXy50hTBm83NUyKpCfwaO+BXOigYKpyLeLW7PSSkWYKAOm2pdVEURbm+BKu1lXyhgSyyja2nK8oFzAS7uwq3y4pVOg28q1EYe/us2we1qgYwhLWhYFq7QMuZQ3vHmiLcmz8uSe6+okyeM1M1wqpDeYs/e1JPtKdJLJ2E+09RYc+qHfM0yEhP0i9ecw69tRiiuksq01fQ+h8jixBNy4dJS8cgc/mjHTMxMkhEwj7e+x6FPN2Ztec1sxhMi5c+s61Pmsijcn+MEw8Dci8lPcvMSg7cSW2++ELcBlNQs1MaK0nfMgC/w0BnTBMh+09QMZ+5hkBuWIbEs+h9A4RPAnhg0igyRfM6Kv/RvZAh2o8xFFPSR2SjGVU6Wl+YstBpVXAl8qil0qS7h8c2B0C9h4Bio0aj88ar8yah60Yygo+LsV6rDPAvYNMMGgjW+CGJeqrKYgzLKhxycDaqzCvbxxXNw2vaxxsWxnsvjaxyChG+TGWEDOSEIdoiZYJnGx6bG8oOg6xnxv6iJpQ9x6JBzZJoQPJprDJ3JlakbC7OJrJ1LL2VO7x4ph1HtVDEJkWvTBKex2kCXcHDnUp+J1Gje0xre8xne9qCJiY1C6+5RkR4KGecpqpW+rimZn+A+m+sBiGaKCZ9tQB9C6BOEVWt+obXZlab+xYI+6ZmW1Gty4g5jJZzZj2up8Zg+xC37CGCY7Bvh++aBmZ0BKhlBucmZg6M7XB4TXZsuasgh4JuWcIJmv5/x/h166h8h9Z18lPX9e3ZF5ZyBhQJpjFu5qfexvkogsfXZpOBF2glA3ZoeNR7fClqBs04R8xZFlNO4/FnDUFoeNWlUwjV5tscg559FmZrIPlshhB9l8FxvQhmzUFqi5B7WkFul4+AZu64Z2M3ezjTJhpn+qxsp0++ZtZjVlZ89HTepw17Z5p+QaBfZvtd+t+OJ6YUvLV6ZiSBJsuNy9mz0OJ3hel/htlnGm3PO0fbVo2rfclh2yJrp2R3pqJ+fBlqVi19YrRn1pfAJkfbF7lk1rFtFwZVxopp5kVszFNgh7/EJhNmguVnPSJn5GNzBkFzph12F+jaxySEN/N9S6x8+HB/l7N9t1J2RBinFnt719eDp9eJnB9WN81kjFl0Nlraxx6YVuR0LaxymcRiduJvunA1l5Nw2EKBhrllxg1zNl5w91h1tpdnd3oot/5w2H2zdmtitns3hYS+9/ROJ+d1ZQ8YthItmWV+BgthIsd1F49lJt84x26ng+bPg2M5Eil5cc+DayjbIRnXx8/JDr1wo76qi0dsJ8XEFq8T08HR6xt5cSmM0ojqVkmkhsG9I19xseJwsnIiJyrbMxw3awWuj+Dv6s8jjna1oil5jy9os6ZyrA0mGm5yj8RsT5p5cI2cV9G6ZkjxE1jvjsNkjgYvt08o/JDsyME43djodRRsjCJtTsjhI4JxTrk9eYtmT28o+JViDhbeomDurW5BQVXEo9syTI8SFcp0ogG4DXdnM86ovVz86AMprW9UL5Qi+ezymyD6m6ag89jhVjT7c2J3Z8IXTsz+VsISINXYLuF/pM6qz/5qFtR9cnL0l6GtLzykluaXlVDjZhD7jprjEjJwloTxlkl6K6rxGkgyl6FxcpQglorz48G853LnbZz2dxC/0tUzThA5F6K0zugRrz5lb3I9LkwyZJE7LitlBrckr/xqBLsk8grxtqUZetiiritkWSh0Ixj9Vt5wTvTmA255rrTx5tril57/w+Trru7hj4btly7yT4H5Nk7+I8brrg7p8q8sN7byz/6zW3Z5bxVsDimiaqmqa+NY7ch5QugO5qTgnnCqY9wwtccub1InsjMtaaBLLlTiBNaT+NJleyRZnnb5TomrkNaMeO88H2GjxK7sGtn8xNaOQIHxn9ENaHxP7mnvXGXonmrinwnjazSp6m9F7nG/H3c+7+gWLrH+LnH70jrBOOxKYmjnnvwEQ876EYQRySzy3wtWkNg3tHInw+3g6Bn5H6ST3lI4VEGl3lb0Xu3iSBgrn/He3mKOTgXnnz8KIkX035FEIt3zzlznshw9MhXnsm3tz76+383wwp3gvzPsIt/e3zMVFA3sx7Hix1GUVwXIGiL3LVIRvlDhPSGOcIxsNMa5V2vne/xeHC1pTxtDMmmC1OeUpZDSRJakBwfzbda9NdzfRfa5ax+6YlDVflk0pUzeC2fw13fhxbavN6f8xffrF0/ihY/n+avoZ/v1Vm+shaFCvhPn9J/3312V/tvJJMbF/1d4DH/jkATimF2wRVRsA0Hgr29FQFFelEfF/7Ipd4R8OBnYj+R/9n298LIDImd50Av+MFN2BcWwFoJxWClVYEECgH15ZWc8bUtgOnwfsuGP8Z/jjRijIVtGDA33s60E5SUScyaC1v3jArLxC0S9BoGWxwoECE4heOBpgLF6f9/+98FAXbxkHoDn8H8QQWcgbpdgIB0vJenwjLi39JI29WMhrEBSJEyBcHJkK3x8zAY4s/6ZGl+CYDdN2ok4X3vhxRRUp2oAsS4C2jkCJE1SDsJPHfhbT8BdSfbB2AQXDqBCwujBB2BbSAIRDlCUQxYMwPOh28h0iRXGF8kWCzQmQNqCtNNEoAW4HYlwfYCwQrRSwvwVKUJNYNMEkYQgkuA6JUPbA2CzBMwdBIUNEwlDlwVWPYBkPWjZCWAz1SgJcB6FJCxeqaBYEyAfTRD1isQsDLqTvw9CwhkA1NHMNCJ+CAgbyMDOMP3QaxHcnggYT7UsHpNn+nQmYIcOMFNDwsLQ/Jg0JMEvpjkJeHofsBxR294ExtcoSpkWBPCyCdwpgGxUKFVCd0bwg6CpisGNCyB8CFzMcj5xGCARBPXQC7EuL/CwRhaTXDdGWCl1PY5wsgeOTREe4YRyIjnjnG2GODn+M0U4V8ncFfhfeGMPYCYJ6H+CNhGMcwa0JvreDIBHiVvgvR6ExDf+HI2ZPZkSHqoxeTIq4T0KyEL0Ve6qOkfUKirFDqRgWboTKKxEq9pgRIyYTcJsE4jW+eI0JO0N96yQjwWEPDA7HFE5CDRAeXWMMKFF29BcQMPfNyOmG/9BcywY5D5lZHTRIBzoqEW6KEDrCJ0to2cOAgpHlAPB+oopv4EtGewj4z/A0RNDILBjlRdPXERQD0EdJ7+NNAeLlyThCF6oemCERDFug0xJIeYhBIoFoQ40vkLdLEKFQXg40XcXya3O8E9A0wP01eDeCGOipjYlqbWA3J2MyQ7tGsB0RsTnAnRB4/hVY0BG/HugRZKxpYn2jzybix1Mx0VLIEzybiaZMxf8FzL73XEliGE0vRcVZUzFUCdx7SUrMePhBoVC0Y4qlNJky5vIaYWJJ5HeMzAPiEBPlC8RvCFgtiQKx4knBEjrEDZMx+42sVDFnFbicxRtf4kOJniyAu0u41oQaPeDzjQJT6YETBJ/hwT/4n4BWjBIaBliFxUE0+iIizHbjQJxY1obuUvHfjcxlEo5CmjiQViDoCjLCaBJlIukSJWgDug4gSL6VmJ60N2IySWo9ovkUcQSf0JvGiS5I+AyAa9HPGmIf4qAw8f4RIkDwGJWaBCT5n8TeprxRErSaRJKHKTthKOFaDkLkk4ESJK426IRGqyWSCxECR8RjikmgQBYa1c9CWn4kQSAJhPMTCRJAndiPxHiH5oxIzSBSoYZCP5MJN8kzQZJPE9yeCk4nLMhJhsDHB8NgnqhsJPky/CaNimgSySvgzIUlLcloSKhE4CGNChbF8TChzLCqQkV/GFTxJbE+sTKK4kkU2JwwsRiv1ok+iTx5EjcX6UzCcV2pMoryU1KAk31TJbk1sfPlCGTTQJEJOoaEMBaQSSpPQ3WOmH/QBTbc0Q/8XlJEkyjMJGUvab5MyG5SaYNaBKQ1P4BuTf0HE0JDVO8lPjoR908qaeNYqlTwk103SbOlWGnTuJuklYEeMSGdTCJFEnqbtMeBgy1pg0mwUZPVEGTTxP0yLBNPhBmT+qfwlGa5NAlPSfRo086eNLoAwzMcPZDJNyN2lRT0ePfExn3yN519dSbOCJDJ2F6nJ6ZjYRmekzB4ZpwKmSJmZzLQTcyF4y4RBKlS0x3I9+MnPLq3meQbwBZ0Ve+ByyQEjZfAkU3mWYWpRikz+qsv4QlAGRQ45Zv8fchzj+KbTFOr1DnOcjiQkdTuhhI8AzMFludwuDRaEhVOXBH0VJjQC2cgk6F3MjZvVOWesTuLfJdZmOVNPV0Gy3JNZHMtWWlmVkUIhZzMrTNsS7GhzA84uJKnLN1L9N3o1gFAEUE4BQAUARAKsDnPZAoxx4qkOWY2CoCIgSIZgRoIiBzl5yC5RAUuaYFMBnAEoEQQYawHrmsB25r0e2sGHpyTgc46wfue0hdodIEoc0ZiWPI7nTEYoU8h3i7FCiuh55ewFFMzBjkS8KAc8xoE2IKhpY1JY8xoBGMoA9yoY4kSgCfKmBQiWCbkAeEfHmimAEo8xNBBfPyG8Ib5gLd+euEtbvBq5fc16KQIvmpBv5ScX+evNaajygFUwN+VTHODTzNKz8nWccnvnzz4QWgZOLAuCiPRoErAeeT7R3l7zeWRIghUfNAQkKN55GchZfOIV9z55n8jpBgsfkFw15r0SebQqYUkKfcbyRBR2nwmAL2FaIJ2D7VAVRAJF2c3OfnMLnFyUApcsWp4JZhCyqsNcu4HXPKANzpFzc1ue3OWGO5IoFwLsJ0V3kML9FAsQxekCaKKBV548iBUyGZjzzrFP8EhfYpFq0K1MEQUxcIpFpMwOwhCridfIYVpY5ADi8RcEvCxAFmFCUOkE7BIWKo+4tC70QLHiXQIXY/imORJjAjjyqsS8SxTPDIRrAIlD0XhLKCcUjihF481xkyGUBOLZw2DKhQfPyV2Dwg3il+f2nRK0L4RDS2BUUPATBhylWISpeuKBjuL+FP8QpTfNAQTQbU4ykDI2BvnLApIc0JJa6JSWwK5oBGMpTEscpFLXQR8oXJFF7n7LE4vwoeS8l2WLKBk98hFFoHWUnLQEViDsJkoaDZL1xPiWUGlm8rRVv5bsMsRfIFhDKb5R8e2qpCsX1KjYjSjWRfJaVoIeF5UjeACohWMAeF9S3QACoqUkKqsvyMFQUswmpL9kWsF5QsoiWKp/AuK5JebFJU2L+AH82JXsvHlPswlf8khb4tAQZLNYuiNpfPLZXTQL5zA7JU4r+VjK0sbOVxcKq3l6U6aVKteeYsPlSrpwc8uVUcvCkkrhFgJZifyrFURKNVIiDxYEu5XKr9VXKpVS8gMVdL8JLisxWaosUEKVFJi01QEg3l2rjFSEQ1f0nVSRR7Vbqm+RlTdiSrjZkkX1ZfTnD8qH4ScX1ZsvwVuRf0y8X1QvQaidzEizkE5biN/k9Bwkti9IP4DZK0Kmxf6G+UDEoBjLGFQ8MuMMvviICEFGC9ULNBvkuxsM+SzxUEpOVSxmWTag1TfLbXrMLVyE2xUav4XOL+1NqgqIQuPl9yhZCwGYI4qbguY7EY8oWdMBZRJKL42Ck5bcgEzVqEoIK6OOupkrRK2wPtCaPWpCh3K6VSQ+tT4ImgXzZoZ8BlekGipKBJw/K/gJOBRWwLN88HJFdKt9VZB/V36xVdaqdVuxggrq5Qqao2K2qOQ/2H1ROpHVeqwNbSodLNGdXQbJIsGsSB6tQ1GKYN4GuDZBtHXeq8Nsq+DS6tw27zJFacSqBnDJhf4K5skKxB7FaorAEF3ORjRzB2AhAVYNGtWMZAFSt9qYDG3WExv42saSatyCuP1H4jUbDIvGg8KJupjiahFLUDKGcgrlKbJN3G2TaHHVgYwgI+yF+O+vFitQGYLdBgIpsM2aaqNO0HjTpslh6bgwW2CAh7EzG3JHN9ZSFRxqVhSatw6cbTTVBbD7yS42a3hJyKY1Ba7o6QcjNQBhh3hLYPmzyDZv82jQDw2a6FFNBC3qhqA4W9yZFsAjKFsw5EbzVpsRgBb1YXDZQNzhMEuZlNi0crUsEq2WRGhhW56ETC43WbeYtmsrZLE+G6lBNVnepbVolgMxetjW5klDVi0vRb5JWu2N9FkBCzyVeWldmFpjgLak4eW6LS1thjxaZtmcFsCR2mjBaRkWWobSZvm2YV1tGW/LTFqs0DRoIjcmRUXNEAlyrorw8tXdFkiKg1FuocEMcpAAPadFZgNufPJuh7BoqXCveMeoiXjwmALsJJUnHmIkLyV6ofJfASh3qrORx4cZccgWCCASF8pFNDOvCm6k1148hoBJibXnxhAz8+ecoVyUdqboQaiJXTqnV5qj1Mq8eQiOXX8LW+wQ/HZjoGWNBNKlMJHQLBijbKvMmVGndmr/Xg7+FlwOAebEo13afgAO2Rc9vkWvaFA72qaJ9qVCiBa5v2zRRrqbmFzdFRixQCFBTRkb0NxGznZTEJ20K2YesYRUDCUAHrdAZkUnSDvWI0LB1cFVlZWn/SDrllKaVle2BXxdLPp3KqLVxPQVpYUNTIEhVhGECC6jaCwWxfPNrXzEuFbu73VFvOTXqedR4NBAyqz1KBqAROxsJhJj0bhxIzyxOCPOBXbF014UsLvet7rBCVVPtVvknt6XBRzEbkEWnsA72X0n5N6qERzsaAl6xFlsO5OjvaXITLgny2+ZkEqXryGseqv+U4JFpUKBMwe+nFhEz2dypIfKv+fIg501qXqae6vY+viVLro1jC6vWwsZUDwe1/Czirgvv3Aot1py9ZliuvBAQnFAxBfYwtnhAGrFIUYqMUrZm8IndjQ6A8IqFZkL+FsKtpafJTS/p4D4QVvt/OvAWqf1sC3JRAK6VSwwdUyvYBNFR3HwF9Os6BAetfi0G2w8pCXcMUv2nzwgIgcZdQHTDr6dZZcBqBguEBAYeFUsU6kktmRWrhFlAI+CWvaYLAfaVCsBHDvl0I7FDES1vn8QPVOwIB6BrsAwg5VJop9t8tBapHXlMheEFa9YhvHPl/zVxL+2dYqklV7AI5KCxnNQChyWx4Rbyy+b3pVWmGpD7SrQG7oQVHyGAIuogysBgQAqK9fek5XBMei4qtk8IPHTgtVy3IYV7YH+NLrr3eCYVtQuFcUoiBYhcVKO6w1irEPyq3FqR4RZYehgxGxGWK1PVvqbgspUV7CflWcvYPTFgoygI+ZXpyPvB69/KrQ8nor1yG6Kd+iJcsuKGgKlAaIwPUspVUT9ujcgMCiqvpl90xjXNSVbDuWriqqsYa5bjkY3grsVVga7o9xk1XrgLjrKnrm/HXBMVHMSO34UXrSyUHd90O39OloRSmQjNnOnvfKpkN87mdywVnZbCTndGWdVRxykzpI21DHdNx2E5ftTSCpg9Ti0CCiY7QxCulDauI2ToXSjrwV06nI34rl1Z7ZgDAfHQ7vRNRas6pqy3edDKVEbuVa6dUBbRt0OqGFbJ94OsVA3kaGTu8a3Whq5OYbGTwplkwutvlFqidQ6qUwidpOcqvF9akWkBmNXKnYF/qtU0icIMnLBpX6nU4Br1NTpH9Cek1bAp8GPQOVzavQ5aa311K+18ptE7KctXDrxTsoSU33J5McmRTGG0wN6b5PnBPTYpoU8ycQ2CmrdYZgU8ruk1JbStKWuCZN2DAE8vwU6p6HVuMjZq6QH2kZGguU3badZu22ja7KQjJnPtqolrRmYPAlnn1uu3M7NHzNxbCzHW22HtvVjXwXYT7amKcwOgubbE5axIt2ZK63bYznW5LfbA7OrZmYWOcuIXH7NMhBzLMfxLOaK07aWzpMOTYC0hQqRAopzGoypvViog8hfCy+npRHO+aZN8Z+2AKjBSdR9SLmo8+ryyiARzziWsc1ebm3qhCZoalmNoCThc10zw2xM7rB/P7U0RK21c82ZV1+aPzWcL8DPFAt/n5SlZoC/BcUkdgwLrfCC61tKgJaeYrZ/mI3X2SBRtAmch88OynArAuwPUJs9NvXMhxutDMLlMRbUikXNIhcZi5RcaDHJXz+Fjc3ZoZhEWuL1FlzZxZhDcWaLU29rdBcvOzas4rqZmOmBeTY5TtV0BFIpdvzZB7WvFm2PxcYsQok8rAJS1E2y2Fx0ghl7AOPAQSQVJtbWvC7pYYsJnEiXmSKN0X8A+0ULZ25y7dEstHmpINWnS8HC61OWQlrlkCDYc8tqXLhRlvy52cbNSX7LQV8c3NsOiHG5QElnLVLHEsiWvNa5mS3GbktXQJIXqy4DjGahVmDYgWbK42Ekt2Wizm5r81ldYtlXMrXqqizVcCswXCrKYccpeLkAWac4eyg88ZFMT2tnYrwr8J1dkttmRrXYDeP1ZZiyRb2TG0a0EP63LXcrUF0cwRc3POXiK1MGTi5tdksWFgUMKawVZmsHgDsLFgzWApjjjkbra6c6++e6uSxvZjmzoUdekmOanrm1ui/lZeuXWYkLsD63JBWt7IfrxuyC/9e2t6WnLx14MDdDoDg27kRl9IPFbqv0Xgr9sEmrMtOtDWKrzljtj+CGsFmYbF5i67RuusZhQk4NkGz+HR04XONiVrq0DbPSo3Ow3i4a1dcJ6g3V5TN4rVjeSvyWEbP4LmxVfZsnXEhz1nawJZiQc39ZX1/a8ovvgy24b9sd6xZruvGatdFqLW2rccv7Qz0lAGm1MDptS2zbf16S6ObV1Pa2AL2lMAxuUApn9dbAQ3Scu1v/btFZuoHXos1hlxZ9QeFtX7eWAB2V9Np01XcqwVaro+WJrIf+seMDFCj8Jm6FAc6PTRoEEG5ifoMeMfGajftm3NNAb3EHM71q94JYklVhJk7ftiGOLtCNHD/Vkd+EFQdAUMJg7Ri0O/8r/lt2KNUQKRabrtte2FFa8TMDma+0G71FRuz27bfN1RaJoba8JcIqHhORcVlrSSKsd8W2GkFs86Y3uhUNNwCE+e3YGQW71Xza91Ws/RQvzuEKC6Od7eSmlr38Ub1rCnI1VlnBvGF5X8iJbkpxSt3BFWK/gD7WcMAOh4ewPNdAu6Nv2H4XCmeSIiaOBmWFWC4/W3uUKsGz7riyIOdGtPjql7f6ok3QofvJ697Zhg+xcRyMOKH7MDxecnv8BgOedw+/E1nvnsirNFMZim17YHtyLh7Ttse67YcCT2PbWige+bs6Hv0JdBY7IO6teyKmTbRIiDf9kVNQi4TNd4tbPowUhR9j1qocdzsIU6G4HWjkG/aYT1QHr7nQr7Go9FUk7M93sqxEToFWmrO7FjzWI9ECMd3D8TjiR+3dEebxxHMoXu/3ce1cOWwPDus+PbdsCPF9Qjx7boqbiXAtAK+7W0Ee9R9GBF69qZeEhuXTFkFUysg63swUryplTgy+wQ+DtpYBM8qzZfnasV4K77JTvQ87qXmYKn5N8q9B/e4WwKSj7Yc5f/PxOx7pogdqG+0s6d8KoFI84w60+0OwO3DDT+HUg67WJHFTRCwhxsvKdNqcHQRop9afQdEHcnv+ppw4chQTKSHn94w5xVHv0P/7RBuJ3LvrlsO3zttoJ47ZwG8P9z7tyJybuie+2LdoZzk36aMWvGz9FJ1URBt8UqG6lp+rEy4ZoZdKNH6h4RbODZkS7EiLmUu/C/camnwpnu2vQxIEEf7D7yDtoiONz2g6+DYQB3dGuOXjzoWvJrhfSqR0ZThTGCtZd0Y2nHI0HWSu442CMd4qflES6dV7q6WYrpjxyfCRau3H/GnFmDwFwXvsG16faSgOh3UvFdYqVI8FEPUCuKUWGJjEy/FcUqXXHOe9ryqhYBQE0f7mXe+vuLUp2XrEy9h+htYvcX2YOWjgz7iw4uOc6GbXwKlGgtaZd3LjDwUYsXY/mU+HRFKOjxd8tH1zhoEaewFaoqIM4oBYYrnpScor2zxmlBR209hBGfgrlXHTzMOksFcau9Tqb1gxG99WcGrXvho1x+t5OMkzXfrqU5a2X3qnSnnzZEdjvNMnKVxtwwda6alPXgdH4Kx03BoHfSulTwdk4S0NYOdq4NJFXnQBuUeTqU0NzhVYu4EXNuO3Gp1NbW8reUrC1UI2w4wrpcfq9jwDk9za4b0eu4lNb6fBPobewLMwMwLA48eDeRqy1DenV7y5OXZCi7GKot+0q2QxUkTublN/PeddoGplqplh90s83xGVxre2NxWvOTTgw1kynBdgXOj8rX3OCgeLrGLvmucF699FZbGPce2nXDexJ1Av8sJOLXuFOlZco0MIi73QueFZl3ruGu1VVSstRU7Lff3YdFLkjP+90cCwA1yKjByi5VUQfhXAsFdzB4lfo2QgOnP93G58VwVann721+ejYTh3sPrur8KhtuUsfoddyHCNa+veu7yXyxkhYS8miMLY1qLsneEW0N6Jq7OGpQDYbZ2bwCXigP4qAqMPWfwKrdo/dSd0BOwP5g8I+38tnAr6q7te+UliHOX2D9k+OhdM67mgDHrPv6ANT/CLumrNDbCAFSLSy3yPJHSR86P4Bp2poz4QsdcGzCbGR2vwFXzI8RSxMHCarmR8+EhAcfwNZPJer937YsVGkAVLsXGAyebvFO90yji3eN45XgIQorj12f9nwfSIUdkd1O2O4acRmmTvzu3WcADNRnbdrJjcLyY9PhnrV7p/k4d/7c/PfTdu/b5d9FP+njvPpnDVd5Hc3fXvj3755GZ2/+OhbsFwLQQ4Ws8JFUOWgJC9RNibwMbuF+q3La/NLPgfoYLmmD9mgQ+WYSP0y9DetvsPZb+l9sRWbuiCjVL6sNdAV6mhE+Db2NlKzNB10F9Mf3N/iYfhOgU+rbLN6a/zAfW0+WfOt9WJz4Kh0/ofzN2H3j758nRH2xPt696H5/i/Kfwtq6DT/5/c+GfJErvYT/CmC/BbAN3H05dJ/S+RkEvhmEVHBMC/ZfAP9WIusV/q+XNovtX6D9Z/C+nL9ZFu1NBl+FwFfYv/X6b9etugmyCC4yz8np8VX7yfvzSzZa99A21ith/3ypY9iR+Q/1l7S/b/+/e+Rp+idKzlZ5+SwyKafhJhn4Ft5XYbhtlKzfRz+lWyLhcEv+DHas8Wk/Wv9Wylez/gwy/7FzPwzEb/VWa/WPtn5Td2t21HNiFM8IXD78mwXM+5sm7UId/2xPwtZosYP9b+VW5AjmiSJQtZ+MBJ/KV6f0v+kmAWvLFrJQD7G3+Sa1/yfoG4dEX8mwQoO/oq9rv7+Vqx/tFifyf/5h7/KtA/q/+rE38X+5/+fnWcf7r9F/5LKUDrdZ/d/yz8b/A/zuUj/df3kth/bWDCBv/QmyADX/eANstcLP/0L8qfGAPACWYRUlAC2/bAKLEV/Lv3QD2HHcCTBe/OimFgoqJ6FZA8wS2D+tu/QGw58RkMbWq1A/IC2eRKYMbUBlE/Lv2gCroV2VmUqtTB3YCvLQQO4DmtVAKF8n/Xa2LpzIWaAOo0EOQBc05AmEF0YYtUmwf9GA7XxxsuwByAjEn2FQL0C5QdQKCFw/Kmyip9A+pWUD7rSwJMD+0Bc00CErfgKecTzBQLtFDAmOGvhKLFskcDzA3awbAlFU8yPh+bQm01wgg5hlnB/AuW3bFsgTqAbAoguc0AQSLelH5tx/bQPr95LQIPiD0mUII4DsglIOEA0grQJcDjIAzi30AES+nCA8A87TMgKgt5iHENfAvxx9MglsGkxI9FmClAx0SKxTB2g+oOJ0vxaILx8/AIDy2wwUcSFEtcuSKC2wwwERCcDMbf/0wCroPy2mCZoSSAmDC4FYOphdyZYDmChgpyxwlRgnYKtICbDgMODVgyFC/AbAvgJkC4fI+SODfwPYJjh7gi4PGDrgn/3Js3zHQI39pidLVOgc4GoPARfgkuAmspA7zRICvg1oI/9gQvLXnFyLE2yO04Q1f3egyAtm2n0/g2/F3UQAWgLaRZQD4IyCAAtoPSZbfUQP200wEkKaCtrFoMJCnnWUBN9bA+OFd8bgxYLl8UwW/GdsmQhnyxBiQl3099a/DANZDwoL2ApCmNTIQ6Qy4K335DqQpYJTBEhDkL5D5/KpH39yfSUOZCBQs31mt44JXwlsioEUKlDIQmkLKDyQlULt9FQ9kLuhOQ9INKC8oHO3pDFQuUItCFQj4Ox8DQmULEgf4CcGUBo/AK31gPQvLiMtQ/XgOdCCQt0LdAl6PrUstKOGP19Dwwr0MDCttEoNuCRfdXyMsb6bUneDCbUVVctHBW5ESJ9gjW3SZXLNMKyF9zQm3jlsw9JlzD5gmHyTCEzbkLLVGhf6BI4VPLkMqxx4AgibDz0SkM+C+LQ0IPBXhIGEbDpAAGCbQmNNsOCFmYAsW1puwl0N7DQwg6BI4FrLjBb9lfRcMnDKAfKCM1gw60JgkRXQKCHQVwssO2x9wnAVqsawlkI1DDfSFHXCDRIeD7Nrwk8MGl8wz80+1E3YcMsh3Pcq1QtXwjpFrtAITEmfC4LV4Rzs/w29QHgxwuEF/DW+f8KkhAI5YJfhNlf6A4FyLP+Aag4mdYmKDnA2sPthG6GKBPMIYASRQj6hTqCbgpDbcOwji/PZGUBRFM8Rc1PhI2EChACO8P1C5wwUIZgLWWujUgVcLcMJsOI6iI3CwWOCPVh6I/iO4i6IqiMCgsyLcKtCKI+Sz4jAoMSMLh5ItSCYjpIxMIvCU/eCyqwlEPGEZBwI54IOpdSS7R5YNEISKNDtI4sX+h2oQ8NQts1NIWMjdmANzMiRtPSkbATw+wQ2D5/B2CaIpwPrBcwngtUOlC2IzyTZx3Iv9AzCOAlHFCi1IK8H8i8wliIct5w+H2WAFIwmRlUuQ0VV8i9NdKJkiNItm2vhJoGiPdgvAkjCyi6FZyMTMYoXyKE10oiW0yjUov2ASikrS8IPhCojcOKjFQgqN8jb8e/ywi8o/mC5QnBRcynDRwjixngc4JcJHDhNJqNZsBougCGiPTJDl4NJgn+AmjJwpaJbDco9UJT8/JVyQcjhaDeHEiCUQqLo5AHCqN2jl7cyEhhRFI6LuQTo+shbVyI/qIat0bCBWGiNog30qjLTdaObCZwkMOCivzWCjWthw8y2mjFQ+4K7MQY6cIqivzT+H+hTmKWBy1C8eGI9I/oncNhj54YcMAIWwuqLUF/obGLRjZIwHzhisYzWE+ik4S+XBgOOTaPUjtotEJeQqYhGPJicaTGIhgmYmGMW9QLY4ICiuQzmIws1gq4N6iFgumNo1XormMeD4o8GK6xxYt4KFjzwkWN2s9Ir1UhhmIryLlhAzePAUA1IvqIViYgpWP+g/AUsI4D1YxaMNjzo4uggRhws2KSD9gU2Mwpzo/WOHDdyHiI4DHYtmO10co2mKCiWooEONoDY+2M2CdAZWJAgXdJ6N1i8fC2OVjrYryMjj/oEOM9idY72J2jY4p2K1ijA26RRjQlc2LJdlY52PvDbY9GDTiZo9nwatxyWQECg0tPILO0MY38IIia0GGLLioIvwC0ActS+n9j644uJ784fRuIrj3JcGwVB24luM7imA3a38RRlYaI3C3dFzQxgp0JcMnjiNMOKTjT/MeKrDJIh2Wni/KSGPzI2SGGPNFa48s0oAIo6uL3jUo6KkElqw6QOeju4wnn3jAIQ+KNjq4lbFviz4swOHiHnDXQUVMxaRF7jdAb7Xwh3ne229sW5L53MswTeVWgRtRKEzATu9Lo3x1DsLe2J0QoZB23FqdGO3d0kdSz06MTHJHWCEl5DtmX1WVWNRYdtIoB1ZUu5Yp0iAeDFl0ypMnI+EtpNPfZCQSEnFoSm9QE+nVbtIEiRT7sOtd+MATP46TDP0NiM8wnsftQRw+dAdcEGB0H1Bc3wdNGUXXc8OVI0h3tXdABW5cAjZB3HhMwfBy2UX9EHW7Ug3XhDhcqXB+21d2VBz3nk5wd3Up1Y7OBKPAx3cXSQTrPaBP1VGdKBPYT5dZ0nx0ZE/JTkS7nHmF4Sh7LXW/i1IcFT/jTgABI4dPnSRPHkuXZag8VnSVhI3AC6bQ1uQAFPfXiED1OAVL0eFZ0gddGFaw2dc5E9Dyl0P5TxLSNhjFlRwUW9X/SySjE/eT3Rf9b1DSSNDeEDiTxlBJKV1uEgGwCSHbSWAESm/UJJET/4v7RnsvnVExlMyNXwDMhqTJCEVMstcJAwTb2X/V0ByVWvVaZf3f3VCZr7KLX8iMXC+3Id2VJx0VQYFJe3m01Ez0lWMGzZ9zs9Z4XRKi0/iIvXyT6DeBxcxQFUElccm4QB0VMLBLBxVcERd1yrwxYKpQzssddR2mAIgHhTkA5wUt3S9NPRTyiMCDI00X0/lRU1uNelaYXsS5UQI1egIgXdxFpMwf4yBRaRStz7hHoDvUdRMkmeTqTTwg0yHcbFctxQ1KdTjysVD47l3scLTVlNm9kTJ0wmTe3XUwhBpTRExvtmUshhTR8HdlK7dVTGE2HdjTRlKRUZUoIyhRKUnwXJSSjTD27tvXKZWwg4DOfRmB1iRZTSVaVGNUQRjDRgzwSi1JgEWVQlaDz7deldUFxc6U7FP7QmKFfXcYsQbozHQddT5JxxIHLlwE85TCJSchzBc41tTajW6VNcynNBAk1SVaRCx1PknxDlc6acuLn12waNOEUOKV5L/l3k5B1SZf8LhSiNLjINPwdNDJvWmN5YCMP3k89ZPXbA5UVuy/thFcBGKENjS1MDTVTAT0oStE1xTsQ63VoyQRz7VPRYdNlf/WmMVxWp1ONLDVlRLdCvItVJc01euyTgxGWdOqCQNJEw9F5PeWQgVJVeZI+SimT+BSc2YajGs9zoSxCRUSTPL0X8FrKxSxJCtGu2dMAVCMVc9xkoVMgM78SFwAVyTYk2acdVGkyJ1t06x0FT0TC3zdh/0/gC7JHFIDOmSgNINOI8IM/9IVNJwqX2AyeUxE1gypTUDNSZ+TKZOHV0M4jxw0sM5DMAzEMyDPhM70oMyIzrIPxPu0gEx53s04FDpH2pNDMJI0Vp7IBJEdlLE9LIzsgAhCzsgSZpXpNA0pmDmT+M2ozYRqADxQzsjwe/WDRf04TK48gHDlU29ilAZEPcWUi9ONdXDeJOWB27HoAqSwDRXSoU4JD9I7R1pf11aSMXIoR0NgVbjHsS87YFVT1UU4IVbdahQd1pgXdII3K8hM4Fw2UH6X/Xc83MmOTbiP9LCGUcE9enm0MfmFzCuUuVPNUoNqUxeQnw6VRKB8M5oIY12MljKp0TgF0j9wBCRUuaEOVhvKij0NpgCAQDUVxJzJCg8jD/URJ/Xd90vdN4bo1pFUHD+XqysVP9UUdqs1FSwUV9Ulkkd4ldMDfsCs3rNJV/SOhxCU7RTTzQpB9UiLiDkHSwwehSkiPW2TwsTAUMML9eJRllZwLhUGsQoeJSTs9nW8m0znHOj3GUJM9dL+Jn01zO6NzsxZ1vtqEhc2tNbspHVUSP3PRCPtrsyVSAdyDATJ+ZSswrJ4yOMq9L+ytHH5AE9Pso+1eVgkmOQaBwcrl3sTHs4HN4yPFeHPhMQcvjK8yUcxHM4y6MR1UOTDFRdW4ygNXHMwyCc1NQ0cWHRTL1NKGRNT0p9PHwzbsx0+e16dAIf0m6zZgYwwR0ihEYxqUs1cXF/x/DPeFJ1qnb4TcgGsT41bUxDFd2nAfBLtQlyJdCnPaVAHSmDlzZM16Ir0YvWoVbcFgNrJvVwUg50r4vweuzuVpgPQ3HheEFd2WAwswtTPi0vI9UFz5ZbIFByojJg3OII5G9W8oxc9pTFTKUHXP08K1RyitNEspFPMtfdbl3lzlhTHKBc3M8PIBzb5MlKQ0XkLQEycZKYrPlNr8AZ2cZSdBbWZZ2PCxR2y4NR3Er0AVNnJvlAgcXQBV5rFNU9yg0ib0ZyK1N2CoNRPWnMLUycrdNkyjFHqi/FicoeIxyOM/HO7yBUqJmjU+87DKJzoNbHLg0O8sTKxyScgfNRzJkmfKMVB8vHO9BuMyjNV1qMj+KuhSLNTBzNjmJjKnsonCRNdBgdUORR1q1IWVb4F0VxSiMwXcFXyFNPR+QFdsdDO1JdMwaaAYMzE0l3Z0YsiaNJc0ldxh/y5HDQzFk9nTsX69t1VYFAKSdUfT8dACpnLYM4CitQ5z97PSnvyu1aFNvzUC8XXLd38i1TQKH3FlG0NL88AqMJNsjxJdSS89ql7d8CzDUPjOlaguwL8NULQQ8H7alOUIyCu/MYL11Kgp6AWUNwzfy3w3gty8CC3AqRMaCgDwwKkjVgo70ECnnSaVFlLQw/l+sEgs8d67dxCgNv5WApuMe9cxPpw4KedJ0K/8kAqULG0ibOCETCjQtJVzCuQt/zCE0QoCUX8uwsEKsCoxIsTWlJFXEK3CyBQT1HCrR2YLfMz/Ig1/CvAq4K7FG/OOdQvUIsXzgizjMvyIUqDM4Nz8w9SvyEikWgQUL8sUjL1T8+goyKUi2gpiLci+Isw1rpNIv5M4ihlVSFEisjXKL5TGIpw0aivwrPzqizIq4SAnZuRoyebQRMiAM0J6DecHgEZNYyvnEmjd0BlSdTnlSfYdC6UXDSr21owwD3SUQy4U1UBIPMQdX5l/AJYuOQ3wpxV8VTVCMUAoulHqiBT28o2EzSnFcBHbBHVajD+RB1QVFMdHYEeS6VahLE1x11UjBRBs7i6End19VS3OtV9kAICRynILItaJXxD/J+KSNACkNEklUCCm810fLxSTakU1XhFu9FLKBKkSp3RkoHHbTF/TRECVzg4sSpJQ5YgSx5XOcMFEWgfhI7T3WOdf8a4JrsryePUBhUEO4rWRFHHOHwk8vIEl3dZgKbxUU88Wl1xpIXDFOOcIE22Ly9sMQw3+wcjUdJ8Sx4OLwOED1dYMRjodXQD2cyS0A3Rsy4P9ShLlqV/MUkJdWHUOy54GeShLsjch2mB17JJWnVZ4VxUOkklWoUSSxSCOEYVZke0tWxDDFmlJcHoanLwjsgVFWLhVlHHB4UllbRLmDYI4AsIKLS3vWBUsLID3UcLUHnLIJPDdRxRpv5OmmuL1Hc+GMNqKLYs+S3Yd4HScNEeUstLTndyzT14Qc4hycfELhUaE3DAOWwxaXXUiQ9H3RRIgJ7ldpWnBvYeXVmhEDRfULxFEq0grUq5Ekp1l46KhUwkqyycEFVGgMcsTtAS30q9KUS+JVdK2dIAtqMlyx4xWALiwNPAMP3XeEnK3OBelxU5oK00nTwjEYztEkdAug/to+ZLx1VIgZNPeMoabo39UpsxyAtyny2TjULg0OL1fFmE+tM51LaPzyUCLyr7DzVm7NzJ5VLTNnXWcs9bcVOKpykEyXs8I0CulzpjJCp50bDHNK8VmywulWNqdRRKYoaSnlQ5YfE0RD3L3LfNC4UnISTNvKq5fNKHh3VOIMWQ5CgZFFKRUGcp9KtHHCq1VZyzivAQl5cCjzyU7MuBUyNwNSSkcV6KsuCNI7dzBgdqKkjXVQV2GBylhBVPEtmgiddsvdVNlJCG4qOKkjTRL2KsvVhLNleEs3K15NdDNKfzJ0uUrxirsHXRwHP8r28pfHtw9kfGFSvpRhAMyFAVRMRQFNVB5e8rgVgjLEwftZDD+SbQw9X4s2LGnAml2LrDa4sXFUER1Xoql5TORb8/bXFI4K5IZeiBLU7K4LQTQDEjmxwgPMI1mgZiudUHT2TNyvYK2K0VXgYJXUn2oxw7XnWCgbKuhOISj6GnRJpz4NmQ/k5wQSRsqx0HwTpVwiTPWGLsjeu1b4qda+2GK6dPNTWMpqsqwUMtslYEizuTHNAWAJDUZH6qZKRc0IUI9cxLXR5vHOA8VJkK0tWqq5e5EHVpi/qpGKyNdfWFpCdZhTGKGFJa0FRHqjtBsrVTQfSerQPW2UyM31LtWmL+VNFgyy3o1nJdFxnUTG6zEoDLPGEUom43XR/M+aKnQga22ULUihc5RSzhAYw3TBGvG9VCpCU89Fxqh9ScH4LYKZwqwUiAhXPXRdjD0WmcZ5S2NnVCcJAomgQgV1M7QfDAhEmQJ9EIMWVhKsLzn0RxPQ3d1EIUBVtlMwRZWxxQFVURkLf0MvJ50z4QSoA8V8R0tflHMNwxEQAKFdRyhv3cqUEMD7empadR/JRVJL57AmszAAFKEtZLC1d3UwLuoaN3rU4yjlQ2wtketTgp5S9qtdrclG9XoQfDQ7DPj+VCqvrUDcolSOQyygmuioE2JeTm8sQQtSJEl5VMzBNfVbCDiqlgVJIyz80HtPQwlAFpw7ZTPHQA8FbTKAyOravJ9jcMn1DsrpN/q1as+rfw96tWq5hOGu+qnvBuqnA66zDRsNQELVSFwOdODijszyxIMw1tPdVP6N3gfO1TRl3F8rUxD8WopmB/Kzr16rG3K8lqcoHBfSFlyhPOpx1FASpRUU44D+Qd0x6xMj4q6VGSmHVZgBmpDFMqRt3p5lCTzzIRG3Msqr0jwIGEbcSjRpPdSaSoWU7N1K0FR7qejCICpL0s+UwqzUdQkqlMRXLGuNK8y2d0YSoSqY0w1pSMkotL387JRLNy7J2tNJdSKU2zEp8jBS5Lf6i2iasnSooJQb86uGqgUkIF/SvByMCj0FRn5KhpkN+Kuav7dIc3ulwp5TTIH4rUKbepxhEifyuQxT9MBtrsYvS/z/KThCaMadMdbhrwjn3WJwuIsGy8XeAb1ZeHjzPddtJ64KiwCHCA8Eg2G4aO6j7OyMTk5upuroNSpXur5skxrHlcbZDCrLNKSxpeQqRZzwbK7GgNyNSj3Q7A5010DtkaSuyg+o8ruXEIBERuG1ByHLb5Ecrg14GdSujESGiJp0qNGjjD4VRVHisw14m0sqyESG74xz08XRIlDLMNOdSbEIy0RoQRbY1HRxR+8nqOvwoS5Mq9N9DC6vTKoG10AOrCcC0tzKPGnoyUQIy2sjsaW6+HXLLqm+bXpL48Xs2qaa6/k0qUXq3sluq7GkZs4zTGnGBmqZm66vmacNauTXz7AHpM10erX0UCgEBXooid+iqG0iSj8tuXHkVoH81uVEkoeC7sEUCfFWM0K2J1OoxjFZT/kI6nNMZ1xq6Fgcr0bEKr/ksaNZJ/dQFKA3qaTm25FCUvK86BeNtKkj1TTgK9tNIqnss3KUb9PS4zLL8PMFFaKeEjfL4SWwRJCb8dm/fLXlCIQ/J9tok2PRuh+K6WpzqgCVe2W4uvDp0t1zlS2jZKH3d3UvcmypOtTNkqiIEpq0tImtflG0/dyJrGFAeG7AFcxojT0vebWoVyrjSituTDaguPl02cRUu/dhWqvVxgQgFp1+FyWlFHRbukzFsCTNmrorxahk8JP2aWM4R19tFvEfVArPIgVOhhCG+nEIKpTdz0xin9XsidbVo912dLf6weBVq4FSmBIbUfRQEmdNE+UzBZFGjxInKgGv13AcAI/DQ4brWj+tHYrWnnV908dVZtJB1m4exxbtmnovxb25QlvETiW4/IFSnIZNvXlU2p1qLt8la+tbK4OfwBdbt1N1rg0yEPWumIgwb1tnhfWiVoDallHVKdKQ2/DTDaiCyNvw0a0bMo7RY22gvjaU2m1stajM0JmUD02wBM4dN8g1txbc241rMBTWoluASSWuEDJapa7Vo6do+JRUaAaW9OvpbwvK8mMMiBJis7lqg9ltVEP5LloyycaitLgV+Wk90FbX5TYt9UxWyiv9b41N/RlaaSnZPlanS2JJacVWvNTVafDLEAPa/5ClqXbDm9XSxa12nNrQRdm0RPzaBi81uiSeVFFrvcLmiaHTzS2W5qeb7m/R0QqKOzvX7ymHavQBbscS42+bT5ZUsD1cdAFpXFLjEFpfKwdJbKnRK7ePH46UsjYzhbodXvQpUhjIFoI6EdIjs6S2i1Dv1bZrQ1o3bwnbDu3bC23duLbHKiw3m1Jm+uqGV5S+Gi2rgoHaofLTIFqsOqGDE6sv0Ji2pqsUrq61RBallUg2bYsTZYrT9tijtlKrIqg4tds/bPYrTKrFQ4ueKTi5ZPOKZiwnHs6jkTfEdU6QD3SeLEq/OCSV3i3Ys69Hk0LM7SIq/4u4Mkmv20BIc1b4qy7wS0/Qy7AYP1Fs7D1dpvl1ouDqu9Bi0fCusqzqlYFmVyGyroVBnK70FcrfKwIE8rnm/YB8qnO/wF90P5AhHyqzkKnQ2MwqoEsJVya6KutUNpW9xFyEqoDSSq967qERLZwZEry6jFfSqz0MS61S0rsSrgMxK1KgkssKSNYkrxT37OO0pLLawitTQ6SqkpuhdYJktmSiddeyZaSNNJU4jcGrIG5KNBI8D5KOogu0FLwHDUCBLGK8UpYqy7MUtiaINLioMqEeo+sQ7byBHuEqakjRF29x6gZrZlcSwLBNoFWuSpDtYsyZya75K/Es7L6K07shbEm3SoG8tu+HtW7FKy2HTBUq9vLmEKVLKt2LcFOes3hxuj5qKrE4AJFKqlAcqt5NfKgip3LaqlqtRlAzd4x706q9JmKzn7bI36quqn42oC+qgzvra1C8mEuBrqsarmNJqxZrIaegCOWurclN+uWqjvRKHWqP9YztWrdOr8H0615VEUJLXe9uVsRuKckybqzgd3rTsLGlZ1+ravaMQJqV7Yp3mNuyq9OBiHO8Grla867Ju5aPQMMCLyqWG9qPAQ68upNz0akYxBVsa9YJSdJxbOq/b32t+xFb0bMmsadUuh92pq8amXBzq0hfnKZqu1Fmvl64qat1bVWpRpwuIec14nORn2wWsWU4xCNPSYuaAmtGRxqilpWc71GDuvKAaj9EUTw6IZvFzNaj/W1EWnXWqpKMGgmtD1jaz5NNry3C2o/0ZlV9ptrnuqI19rHai0q94MskG3t6WFNXs1M3a72rNKT1UlkPLA6zU2Dr50zYtg92lCOqfabjX9BjqP1OOvyM0EFTwVzk6+OrFIj4Q2v6wYVHEpzrgoPOqtMDc1vrEZYB7wWH6Q+yupbS3erzA96g+sytNgiFU7wc9XhUvRd6SBgVMa97emOU90sGn2k7rE7buqda+6x4y2Rh1Ieo+yZZRNrvLkhTo0qpf64tQHjc7bI1Pql6xp1VLf6oY0BKJ9BQ24bq9czVZ6KGq+uulkqhJkVqL8nyyF1L6/POvqak1+FPqH6vNSfqD63kzgqc0K2vzyv6rhR/rairdAAa2EA+pJ1tE0BtndQECBpP6MysBpgaT+uBttbcKMgtJLkG5gbQb4dA2rg1sG1HTwb+3awx8SKGm8rFMREM3o7QKGuhrc5vc8/TaMR3A3PDbzej3Pw5inDeUx8B86drPa2G0dt4bkqj1oPqA5AZxJ15rMBvGFi6xcR4MpGmUiL6XWeRv4GlGyhKwbUkjY3Ub+3Bsu0amB6pud6KBsZqIHA+puqsbce2xr6b5tILpeQnG6ppcbmy9xucavG/NNIS4NPxr7LAmqU2CaSU1Mt/qYmiNs78BUq4bp64mp+QxqFyuDRSb/S0AeSb0wTJpYVsm4dTybi60ksjLDhiHpKa4y04fJ0PuksucaqsaLqYA/BzYeqDCylpq6bakHOwBHOmvpuMaWFXpoab2kaxo8Tlh10AD65dJuu97oCz3p5VdS2BoNLTcszsBgTS5PTNL/hz5JCCrsm0o/07S7owdL8K9tsXKvWZcsYcgUP0qR7ilAQypK0mwMvXtUdEMuQca2wssBGPbaMpBHfkYFVnhEy1oyqb4jC4cgbMy1COaaZgU5yVSOm06oeUSynpuBgdnSsvxGV+pJ0Yr6y8IG/kmy2lx2H0U+iv2Ho+5Xv8b+y4FRIpzhsJqQNpyp/RHb/R83OeHpDUUaZ7VyvkZ513S3kbvbNYTAXFVyhLVVPVk9PoUPLycHI1womAfuo0TLyvBN3L8dO8rwTmtJ8t8VGnFGmk6H1D8qUKbonVR/K60p8oAq7DICuh0RO5Cq0bWVSCujHoKnZMUljBhCvHlGKVbJQrqOwwwwrk9LCtpccK5PTwrZK2Vr5diKgDsla9Es3O0MqK9dKlK6KiI3VU5SgkvJhRdG+o/1ZB1lQ1LFXVo21LJ0+10CHg7UkcD7lmseSJGozWZumHyRqgfIHJm5DszbVNRS38Q82gtuXaok7TvrJDE/wBdVIgW2UFVgJy3Q5UF6ZcaWsxepkY9BAO56vCktG+Ys0My9W0SUBjkUgwwm55LCf6zKKsoW5Vr4YKFng1x4ifwnR2CrP4qp0Aga965BbCe6c6JiVwImcJm4wHgxDKifyQ03cvNaTM9IqCdzJPLEn1SUJlfEkRHjdyzTT25FujSUGI7Qv2RrRxyrPiaOsg0MbHKmHStJp0rGo+qq5ANTJTiMmSdbQJogFV8Bf0GyvhFAVF9QAV5qhdM7M8aoupsq7BTkgn1EjearnghcZ9soY7qj0GxUYvL+jq7hu/7C8qNpJXr+UQKv+QYFwq0gei8jS6Mb0Rr7TXFfFB9ftuWqqJqii7shDObKonN9awZk9hWmytinaRqSC4kwp7yaJ1QMkAZsrqyX7vRsZlQVWFp2TJip5UsSTjx06FXCAx8kihCycUlazIiqLsRq6SQEKndJ+tVijJ6Ui+KTs+WFsmaWyt0Cap0D6vnEzx8XE3xKuwujBRBXVmqO8euceA90/1QyeUmmKY2DmV8UmypfiMXFI2PhqpwBxq9GFWcGPSPq86GhytssuCo6jJ04QqbOy1pUq6tkJx1wVGvGypZomYPz3WY6u9xnqN4tONVWqGzbqCUbcFeavuEuyvGup0GppqBYdcdRKll7eDCqfLo2p2/F4aYy9G0GtsennBRp8lPD3nUFuiBVoVza2kUdUp1ZUJ5V+s8zz9t9PFix5Un3cBG682Y45w7oSsNbyUCndYfVpb4TLGoeMhVaSjcq+4D9A8VzcKWYkRjpjBQOF8e0lOraERO4o3KhWUBTLKDe61SYB62y9xNTNKvuhTqQcwbpI1yhONOZIiFNysGkHU+Jmnw3KrRv/qdcx2d2Kp1U9o9ABprGYGz1wDGYjVoZ7qHTzAgfSNIGx4WHUK9S2nyZlIEm7Fn1GleuYPc8L5K4128qB0BBYs6p0EjWmhaZ1x05ypM6dCV5VfN2WAle22UBJk5vhDanBJ+nmEmYdTCcyqT7Pia4mUJniaLnvBAObXkoJpOb9n25zPS7nQJ/hVgnIJ6YmgmwJvPGXH/EQ+E87x6iCbnlEhfN0RUyM8CeQnO56WMwFQNZeeXH0bZTPOU85tqcrjllZOdGUBRytXidcVRzEubrPdDTjGPlNUvcpvB5Oa9475jO1Rl+VctQ9yLE4tQrqPSPCeh1E899tckmTVlV/xae8XGdaGRuaAYGPSFej3KN4N9RSdzHSsfGjtRb2vmMlsoNNlq96pBFgW38l8qdhLEPcqZA6aZY39VJrPlwqzDx0+Qz1NPMIU17joKSBoXvBdLSFbL8pbIvmyuwFHUGR0wuxlboc6tOhTGk52dgWiFlKYRQ/0Uly/FsNd4yFwH80ZVEXQ65thnH7pj3SIFJYqlzm9mFqxVLNzJ79MXnCFDRzIX4XfNy4N6O2u0LHW266XJUcE2tTT0CU9xnD1RYWxdanYF8ihgnbYt7KfkMjQed7msVCr2TSYKhXVr0HoVOwOLwF4pRuh9+y+VOnv7QFls8T9Hxl2yC6IUrZJ4B7+2YRPO/eWIMeFeewyrUB8CcDKtMyuy7kRZqpTvK0rHMsYzilJOGentC04VJd5IJ9RhVhZpbMBNjphTwaA5XCwZVUp1MeGrTRMo+fYLgFslN3nnFueUnms3DefHnh5w+O7mZ5leae8gp2pz3nslAcM8NK+z4f+NpMHifrsn3OoLsaPLS5syMBFuxoolL00djc187SrEyoaa71FaaSdV3MtgAQm4bNo7E/iq6a94bwvaQ+KzZYdmpYXd0LwYoE5bfyG285brVqmshEoZsDAYjsbcPEIF/S5wanTsaSjW9RpmfBMGKe8XKbNxwF5YWxWLotEuJcJ5x4TjwhE8hX1q0SnIFZfpRakCXVgpoqBlSSmZZGCeKzcDPuSKgB9TqZ3l7R1lfKAmKa00qogWlunWJbyLpSiU7G1pXTnBXQ7Vmavk5adOMgU14UUkOywhQ7ppJ6TGuxFHHLCKKnvVsSMzpwLCBhWSsHCA30fESlfmId8iE02Ln5O8VCZn7QuiRX8hJq1FUmYaVbHRzlNSTgWxV/FbdXvBN2DsaCtV7piM6lh8ZDEqKvBPOJ/+oqALEG9a1LaUzNDqArntxK1fllCVbpc3xnlg6hWAll0ZYYV+58GAnBZ5vuVzXJlgtcJH+kaHMlVll4NfdTMDAZanVg1t/Q5tK+sdA50XqwvG6XMJBfUshIBtyL9mn5ltcpiyfNLHfn87a+BXtsxjid/nS1oZUuB50jlminTABjTfsavYLrCXS1+tt71y8mBeDWxGNBSLz+Zftf9UxDVBay9t1/83HWEoXGElbbEP5UKGXkAheDXWmbuaqHhKqtaiIUnehf69r4DUqtmP1+lZpyA3SitYWq1pmFRHX5IDe5X/SDvFUMryWxVsQyDeSbs8el4NbtEWu1ZXEXt1y4E0p4kmReQ3yVcNqcVJ9EdY9BwifJV+p62qtfp5QUrRfgXg1iRDT1d4I9tLWuJWeqd0IllldLW3ZVFd/QO5hddTrG0mme+Nq7BjWvBMCyte5XT+tKxamZs09ftSYJnxe5WEXYXICXihMeV0YjYQ8a87yNwtd7oUaDxWKzKlccjFJLtRhVx0oB80V5Mb9FJfzsy4nQ2raq5GkpxFydZieXhrN0Jvidn20RVc2ZlgeYqXd1UwF8CNaQNY3lVNlfNZqmljpaI3+nCcsfmOl7dZqU0/ImZ25kN6LRSc38kpcXXy15OezXXQItY5BN57JXGX15vLamWx5eeZEax5ktf82156efzX5l8yy1wcGzJTLVPapLHl1xUc2YFStAe7jzVAWedZs5MHHreqWNGrEgyrMFdUH+NvZbrYflJIZqugapt9eV62O9EG1a27PQ0T0NluLgNmr3LCtSQp+a3gsGCH3NmPb7jc88o6c/l0fstWQssVFQpXUjdUMWAPS8RXSynHHRBrGwW9cX7DJ0GKt0A1Tic+3tab7YrnvZ/vQRXAdzGf70j1Xeejd0V7dW0x464owOdP4UzoxUpV8BTNyPsjPX/72mNTxvVN8fzv1rZlRcV1qDUyAcvd4ncWpWdN4bp2Wp6JqxXLpaR/7tLTv3LC3kWWSXWb1MsLDhY0dwWh904m9nAFfqdlCLLUeLQScPoiX2J8pRR2NlculI3plIFsXFMOgIsz63DX9ad1FPcnfiNCq39I6X1W+N0XlbFkRBdpFlPfDVcmZ/gGh2ac19RpnsthXMCJIWjmYVcfDU9V+QRp0LXW33LGF2PLYFaHMVQ9N6mpC3YKIrcXySt7Te83/FOZYnmR57uaD3Z5z8b1bekvKB/HkbTdvBB/xlDq07jm9vNXH5ikTyxNQdLmlINDEp2Y9mIihgSUmCqiYSFKCjSLovTMkqvYZNQvSt3+wNsREt8Uak8IxXMBvY5Hp4YHZpL0qt0TqZywigxEowijVzKO4oW9l2BN2h1/0jcqyUkxa0XoRu4qUDyJ0gxz2dW8OPhstYqczugDqwEJk403Rc1OhTO86Mxpt9qaDg4V+1cL2RHAu6Av2wQ5oNdDgozMR7XFPJJNfiY44wOnBFAzwMCjH9n2NUC5QdqC3rJY5XwAOv9gwPeCto9hy/HhIopnSKAYKSCw7hkg5tGT8OzuUYS3looy91ljCBx4VwjA/SydlEqpTixinfJyPsj4XGnY9tnJA1qERjZPvp4F7F93oV4jOCVIOX7b+TVzK7FrN6VNKJ7YEVe9tsrG7MD+I14Pq23A96VODpSqIOYlQInQa5nHBWMK5lZg5iTaD8ZR7H0mSg703lDlheCTEHL9OkN8D9Su4ODD7A/AdLnAw4wPxFWPZXa0OnrTgP/oHZKQPwk3DsAmM95YUtjPvP53cPSN0NLsV4hESoDSG0/w4CLO3KlxoSDXGd1qN1pBBMo80sU4R9czPCbJRoge+tyM9ajQFHHXdHDl2/toSBg149002HNm8hXaQ1nQkXMTw0NVDrPQzc7MvLJ8OQPNssfVNFwTygH1xCfnDc0PB5TAQRKjj2SzLgVU1WV73FN0sNWuxI4ULBhcasvUfPfCuodNTQuhEqhVhdPrUGBX3YnSP1cIlA3TlGGr+JMCi3OK6hnB5Pdq1+eZ0e3w3FSB5y+EY9NwmyxFp1T0jMnrM1y/izI7pMWvQtRRQyuqTy7d4PZZIDsS8llEwKP0ZZ0w0L4Mrq9ZLERtyVyjO3UlXrRK8Rymcr68WaF049Sgr6PxqzmvW3AicL1MMHakuc5byVDvVxgUe65osU0a8CeLsDsvQyK8XOxO049vDrVRpOXkc+rRTW1TEwXd2c/rNk9rwJ1NERcFUyfnWr0xoRSdKnFpy5dnXWEbl2lgYgcXFkhcZ1jUgTe1PdGAkFeVFqFzM2oExSh6jDem0tO3cyWZ15vJtwJdApCu2hcOaGmO/yiGJiPFlFmmpyr3GQridSDgjweVkhDGt08gjQ6lQ9dXeIzz0kjYo57KuhBvTk8DM85HrsPj0pYEwEF8o4KPUmWdaE9e0jz0eN8jxlT7hznYlT3L0vc4mY9Wy5Vfsl6PT12GzK+CY/E7AHCI9COQdcI7pOXFoAnY9tVII8rPWTrO0ZPuU4HPPqJUsnW1EUCls9p02z4s63cVHDw7NMezxfIbLe1elKbPl8gUyA02cJIvHOSNfmS1hgzXs4Q1pz2fMtj5zodEnOHvP0zXOGOzjLe9aCoc53OvvWk4POfVZDu+D5LSyFrMLITF3vCOKNQOxZ79puB3D2xW8+AhGcQEIvPKLTEG/8ybf6J9iPzr0EQOIIvYgAvvz2i1/PNIiESx0rzvCKAuoL+EHvOU4cC7ZtILz84QuY4FC5hAJiUyvxCnz0JDhqJQqSHJi8L5M0DAiixeL/3NIoWXwvQwX1Yr9fgtX0IuOYnleTMEiWi68jiLx0IgUKoj0KBhEbI30BD0Qoy34uoAomN58jhIy13JsLoP0NjEbSS4fPpTFEIpBhwcgJiC7Ivi8rUaA3MFxCGAvQERAAAIT4gl4/mGig0/fagfiroEy4wtPhd4edCuYK+Lx8XCPLU4mXNC1jILHgZy6ts7LjfZwjjMnfZIxyYxy6u0PLrHy8ujL3a1cuQQ/y/ItUEPy+JPPLwOHsuDgshiHNO2ly+SvfzIQArhQrii9P9DYaYKXoXNSy+pgCr+K/KhRLyWAiunL7sGV9KrqaCUwZw7K9YifYoq/R95ZL8N390rkHFSvSrp8/WpIfZmPCxb/YdJCuEr7y5StAr/amQxCrz5kc01Uc0ZGuyrxK58uYrjK7N3priOuKuB8M8M41GrxKKf3x6dLUqDO/ZXwOuK5bbkwi2tXa+aido2q54QBrnHBNhhr2y9GuwrmIMNhoxGEBbpSQ+rXQ1KLL6+7CkL/mH8QZ/JBQ3jWmA6xGR5LyuDGv5LYG9BtSOETVaJ4brEPH8rr2aPCvBrx69Rcar1bmmDloLK5eucrwi2Kozrshirit83ulv8kMnq/Kv5NJG5isUAxG/TOWYM9qhu0bkuJiDcqFi0eAsvcmK5vkzfGYuuIITcCJuMbh64yvSzci2d24A6m4Wv0Yy6mRuag1qmZuTQUC6kt2bruLx9MiRuvWIrOdq+v894Si1dkdd6G0BvR4+aMRsQIBANQsFbhm8v8Cbxa5hv4I6W5HhZbk65JuqAoWgdverzG7gCnr3iN9v9qSW5pulrlK35vb91IPJv1YcO/P3I7lOAhCmrm64wFLz3W8SJ9b6EMNvProwgBunzqBlmutr6K7VdJrsiNRvCbxO9yvA7ua/TuwAja4lv5r568dvXrrW6Nodb/6+mvfrmEGNvtruGFpv+JcG5ZusnMG9rM3LNW8uvCbqolmw0xWmQH5HIJXJ54pQIY2vRZ7lCVc42Yy4BsRPmQ7AnQ0SMEWfg0WCyELRgMEo2fgtE/YtXvF7zhDQXD7hwKGFp4Yys9BV74++nh2VGsVc4Ny6UTXhm7Fe+7w+hfBDnvr75AmSEQEJPCnF6BdIWnh4GK8W841709H7h/76B8XvtESrFERYaE7hRmVEF+6nEoES5vQJpMK+4QeqRFREYpuqgh9vvuQ0+9QFsHqg3HYLYjymvu3NdERUQz44buvv68+MQwRIHoWFc5H3adSYeYELh7Ae+2bkOYeNhaKBRo6hbkP3vk0PJEPgSEYWgmgz7o+8/wFVu2XPvCHjBFONjYNR7IfKsEB6zQlH09GQf4Hne5MFtEVNBXwchKh4mFV4UGJipSH09C1Ojpex5sf+kJKm8510ax8TNK0L6XceQVUIi/NiH5/j+YHhLx4FVfeKBg9FwcAJ8sRGSVzk+HXRFx+LQ2pbh7sRFZL81niu0NhiemXHh+02zXOBhaAJV4C/N6p8n2O1Pw167HHCfh2LxXkpzHg3f6FyWIB/O148LGTfvy1GNgqeyJN+8wFJ8Yp6GlH7z/HMs1kKp5gfEnhR9QFgMC+9CfVHgx5UwSZULXnuNwah6+RDYFsonQF79R6/Nr8fp42eyHmHdaerH9AgDhrJTBlR95KY56Z4VSSUHHZ9nnIX4Yanlx+2ebBQNnKEVnze5YfXOI+lefKrDJ5557n/ITeeKHu3iufCnyqyBfr7nh7SeLn6Xn5Y98OZ+XvYaF56lkw+eB92f8mFF+/vW0cB8OhwJor2vuIFAF8qsWnu5+UZvnimIXQYX0l6llXYfh6AF/n3wVdg1n6+4KeohRl63vC0NF5Uw5rgWXcecHyYQFQ9Hjl5vufMUiwsf+hNF6+RcqaMRsFDnyYSPN6Eeh/B8CheV7sfgnv4SleSniJ/DpJX3dFafYXoMS3Mv7xF7JdMN+zDVQlEB+8QpMFaEW5fqKCF66394CmOQI7X/J8fVWX05SJdPnrlQKEBUFB7+eqXqlFFf6n/F9WjqX1PH6f6XjESBDnX3/gleveYdjwUyBWV6+RGQMJ6Ffr8eYXjfvH2J7VeqURkBieGn1x+EAU31tBIfBHyLCItE3/F+9eS3mN7peA3kt6Nf/Xr56lkpQPhEufqnwl6BDiXwt8YpsX7B8qf7X7J/jf30koVzeS3nt/Te/Hit5zRrJZN/jem3oV9Gf43ut6XfEHz2CSfIBON41hN3yl5be26Hd85JIBLJ+Lfs4At+Zeyn4MUCeqngl98FR8LLxDfty4MXvvt7gN5BENwQd95flnmUQpe139R9CFsCZNG3eQyfyzt553h2F3fFXs57Wkj3yl8LwQniD/GfgXz5kieFhQD/0eTX+0R/fhn6+7RYsPnYWleyBK1+FbDhUd6qfi0U952Eq8Md+xZrn4MSeeiPzt4KkJuvJ6RfSpKR4w/93taSQ/q3mp43umAOh7N5VhkBHQ+hX3afXuMEFlFfuRgzZ+LpBX7znE/DH3Di0F6JbV4wRLaZJ5AhhP9T9g/VBRT7MffJud9y5Nn2fH8pVBAd0koh0MV9UEGETN/gsiRLp65QtE9AldkFXoT5M/AYQT5k+yHqr1A+bP5z/HZUTNx65RST8p97pMqfoUxBm7Sz/C+fHrT6pF4XoMCM/FPt54c+SheL9vvDoEjbE/i0N558E8n8ekGbHX7XlwogBI8wAUZpFmPZeE4WQy7eqvj57VRNlaERK+oHqL4i68vnD4ThbP1YWy4VPkzO2FvCT9+8+fMZFHbeVPlL5+e/X/z+/froeT5C/0Hyq1sJPXtr4Q/POF18a+SPt56vJ1vwsLq+ecde3WfSxLkR+f5Pwr93vJv1F4yBmvwz6Z4Mv/JiXpikKHHc/Mvv8zc/cqafHQlyXx77IF3vp963Nsv57/yZ0qMb7E/tPoEKW+H7u75Lf4hLR5DjoRI82++hX7twbwKYjUDi/8oEue6ZSLXT4ThtHEIWx/gvzkAQ+ubiL5s/QvnV4mqSHpz5m+jzfB+G+S3wuhXv6f+N6S+mean88egQyylaf5vzN99jqPj/iJ+/hRkH5/VBZjcVlOf6z9x+H7KIWB+zP3H9OMQhcK3gfcqBdF8Fafh95q/Vfn155XVH0iwV/IsEn58fSLaX/5fb5Qn7F/BAd99rIqK1QTx+Z3tH9ieVfh5/jeNPyAV++yX8aD8/vOAO3sEJ3nj+9+Kv+zClAcfs7+lEgQh3/Fervw4Wt+nvqH89gpPrB+M/MvwMA8qxeOH8OFWf6XlD+UfwMEl/yv3+43e8/jH99+N3kH5q+PvtwXmiI5BQV2+73i7Wk+4Fd3UiwyKRH/l+m/kt4j/bfk34necfgVBy9HXz37PuNvhJ5d//flb6F+zf5J55/VhKBHPeuvgL+DEY/n76T/DhBP6zRmfnd9T+a//r8mFAwMv+n/m/1bmDeE4Cz8r+ufnIWH/oRPf7l++/4d83/q/rv7o/4/ub8b/cYDe/P/+hHGnWDYHnX5Iev/hL7vuTLynCSyjIeS1iZeUfG/+SDyr+eL3t4RdhH+8Fhh+ZAiUIH6C0AUAOVmbyGAB3/xUQ6AInQyyEx+Bn2y+mAI8+AP3/+En3gsJAIwET/y/M233gElAKAI2iE58AsiIBezz44Lr1IB6L2U+2AhABI33r4UD3YBbzwE+B9yj4NaAEBWQi7QCRB4CxXxxgXv25IBfxxeOP3CYzv3kBbj2QBm3yJePHynCRpFW+hziOkU4XAaPX08+B9z0BIAwG+vALe4Cen/evX2aYFgMy+g3zIkxgJm+u1CxkegO8GBgMz+1gKyc2gN8UMANUBI/0Og3gLF4igL2+7gKgEQGEq+R/1aeEgPO+Z/hF+wgOu+FAO4BXL3r+trABg3AJ1eggJ4EHoG3KSQLX+hAnzQYbwyBtXBsBQP2fINvwgB/7wmI4AP4B8b0Z+/XGKB771qBcfGccyfxu+0vGqBRcFiBONBEB2cEI+NAkkBwYgoBVwWO+GsHy+7AlJIXb2EQnX18BV/04BmgJlIfwjlgvQJcBC3w6Bg7wcBHP2v+5lFSBWAPj+U32YBhwgh+9IHWBxIlYBEFABg+gMP+iAI8BWgIWBpQKe+0wOj+rfyCBdfyuBoQLkBBxB5eUQLD+JhAteuAL8oq/ym+5QLIBM0FE+WHBG8nj2Nsunyw4gu1ABpwJ2YmIU2e/ZmVKtXH3237zXgjQOk4d/js+DGi3+mIIq8ITxHsuIKw4r6jU+6IL2BSHCeWn+CRBNYiw4KOl4eED2EEZwMECw7zPQnfyw4vDVBextg0BaHFvap+DWCCz0xBHlkJeZ6EKBmIK72TTxFBoIKQ404GO+IoLEBNzCou53y5BfnxGivyGcQbIJHCpSh/+hwI8BMIJ/+AQKlY5ll+Q/HylBCINhBooJGiWoOfglP2hQloNk+cIN1BaoMk+gryw4ZEwsEKiAxBWHHpkJf3IeRIJ5B7fwwQBoMxBdILSexdHJBQ6CPA7D0keLoKWi2pA9wwj0ZB8IKoiEIM1wab2hBVoOfupoKMIAAO5COAMxBJIMjE8Fh1BxIOkQusCgBowMxBeoJUQGoNASHn09BSHD1BDAMn+bbCNBgzx0BtHFrBLAMoO5gOzBLAMCIQ0lVBbYI/+mILdBJCCJmZny9B/rQke6pQf+WHGlI4D0BifoKvAqCCherQPzBkYLxIwFms+WHF4ujDy8eSwKQ44IKOeZgKTBVYMTMFoIbBGYNhiUIMPBD8GPBGoJk4mQ1PwZ7VJ+tIJXBjCFaMdDzfBusFpwYLxB+6YMsBa4LtBtgMMB6XE7BPAOCE+xUHBEEJvBioLD+w/FfB0oLYQ4QIfBgWD++ygLakc4N5Bbz0ghxHCs4T/1SsWYJk8lH1G+E4KQ4xEMt+W5ncBAEJe+QEM1BAAKBCS/11BGYKBCuQOAhPmHSofoNbBHEIiBjVCQ4o4J4haX17wSHGxUHv33K9gO04cQQNeEv2DeO4LjByr2gBXXFRBHPxAgMYLNBPEKYhNEJFesXy8YykO2EbFhVBsYOg+hr3lB+YKkhZr3bBCoLQhZLwMhUEP4hhiFaEhvy8Y3EOh+iP3Yh772HBWkL9+hkPUh77xoBp4JYhHwLte7EMX+bkPshcog7+570nBmP28hdkM6Ey1VdYP7zCh4EMeEiYOYh/7zTCyIMdBz0gOo/91dB1K0defpCXBseWGBfpH/BaHAnwzH2ohFII0QOUKDBO4LqQGMlyhKEjBBT4IWEakOTB2wk+EaUK8hSUKrevUJ2EUUNvBM32AwsEKxBqwgC4PkIOo7X09gaCl0BNULUBGsDmhtHAv2SgMmhcUJKhM0lGhSVHyh0QPagQ0JchfUJt+7kOngHH2aYX6zRBi6x2h0EXnYsINXef4VuhP/0wetXAuhKYIReNzFHWC3zXguLy64S1n6wklCKgfoMsgbIiiecDxah0EXtY8AIvOWUL/CkFHpBpCB6h0ETSUp7zXg2b0Q4muEdE47CdshkJboXASEetiFMh5UlzYwoNsQUoIhE1oj3uZMOO0soIJhAoKJhoGQ/u2MLshb2ipBabC+kRMMeh38F+BzTFeEoYmfgP0Io4N/miQ3IQFh50OgWdnyMe4MNehuD0DowUJuhfMI0eYUJ/COj1cemEOgiKyQhBxdEJh6sOr08YNoeRgOgiudU3BwjyABEMPBSoYPeeGALo4tsgXB+sPS4cgRihkn21hwtD1EKiEg+HMKcEKiFoEd9Do4nMIwQ90N9hCsO5Ci7w9hyj3zWeL3phVQgM+z0LFhfsPgsZ0IehQcJI4VMMehiX25BLMJ4BCcMDhgENyewkN5hmzx6AawN9hnsMTMiUC2BLsIihpcL9BDsJ9BB9jyh1sLxhz4PehYsLhhq4NFhf4SNheGFhi5UNImxkK2eIvz/CGsNMBucNjhCsMOgIjyOB8sMAh4L0HhholMB7sPVhfokBeN4MjWP4KkBE8Jbh5sMohOLyBhOgEAh7cOzhtEI3hHMLHhzcTphxcJte2K2ZhXWGiBg1GuhxdGGOFkIXhkF3QhXKHThaYADBFMV+eYsNCYoLwpix8KRhZkBIh4cN+hE7WEASQIPhysO0hB8PzhEn19iaYMPhPEJfePML3hmXxFg5IIzhE73KhFcPdBLv23BdHBOKYkMneoEXwW0kLbeZEN7he4KBCIcPVhc8LleHrw9YU8LQRpb1tBTCJ4hC8Olh9CO/hg8N1hCkKzhlkFIRQfxNeBsJfhYkO4Rp0VdhLPxvBmCKzeCCNgR+THoE3VSJhNsJCEWTzVhgqzWhV8MbYoiKlkVr3PhNcMWkeiPmhD8PeBWiMFhDMJz+qsLbYMiKLgciNQRhwmQRJ8P/eMj3rhNiIAEs4NOiVQgTE2COphW0Nnes7AMRDghARgsMIRuiObhyiI2wdf0cRDcM/hiiNYRuMNiRViKXYGMIIhMtEMhSUzv+RiNo4/Fz8BWSI+h4WBmhO725Bn0N5+aiLbYnCKveCCKgRz725hicOcR4SNoRI0OCRYsI1qpSP8RySIKRCHyUeWwJyRMwMgRYCMdeLiKlhNjD/hYjwO+KCJUR+vAx4m9DmwjnFVY/5CPoAdGEq6AgfgFdBVonjGQE79DronjDco9wiXw6yPKoeSH1mJBDDo2GHHguyOORzGGtoGyKYIGejvo1tFlYeyJORlWGcYXcOAwGqi4oDyL4oWbG2RhyMhQPyMdoryNKQXfEFoPNHAQm7EKk59ADo10i6oZ6DTc9NCrE5VAOwRCytoVjRFkZ6DQohmEroNyLPQpxkW4KtFP4ziD4qayMgugiDzQRpFtBOdCxq8YN3IFKNXoqyw5oHiBI6trDDoQOHQIHiGwmmtDDou/GcQmKKyopyI8kIoL+WEtHAIgqKd8r6ADoFim+wxtl2CRdD0oVlFZB/TnpRWsWgo45CVRAdFWmNKN+CDtElonVCXQ4qNZoLdEJRMSFaSoKMRRwlAxgYFH5R5qNAEp0KuCsTAFRI6FsQ9qM8oByPRRzqLTQkqLZRWMNy4mymVRUqMLBDGk5R/qLORPqIS8LjEdRjBCYQwqNDo9V2lRpEz/YAdDDATNATRzdHyg09Bqo7NH1oUcGfwqbEQiATWZICullYEiBEY8FxO2reCnwy+k+RD1kvWRBCrR+tEFwELidoM8FAIDaPgCHkVkYGAPcCgTULBmaIvo7gXoMUaKPunqKvOL3RHQ1kS2Ro6J7RUT3agwaLbRp6gYYM4GEMXaMbRTpyzwy6KOB8F0oMhFBMgc6ILR5aNTYuCjWRM0DiCaT2HR2dBzR6AlyU/aMvRtqKqQPSytotiEHR47DKhkxQLRalXRRr6Ppo16w7RfaH/q/dDg24dCieoYBXRpJBHQpzEuR86OfR7aFKU2dEAx0qMSEdKLbR+yDIIfNEQxfqOzR60FzRfiE3u/dFvR+qNaIiyPfRp6MYQiSFlRXtHrI2nlIxRhDAqbaLgW6KN3IHyKgxC9HHYGMA3RmGI/Rd6JPRiaNHR0GJiQFDTnQ76IoaklCZRk6PguMsnTQBuWzY4mLqCEj0Yx2eEwxKOkn408Ai2r7DLRRAgrRguDuR1aMLRatCQkkjA4xwmKXQBoi7RJ6KLRz8FUxVyPrIGmOMxCCAMxQmOwxKmMvyamINEpSn8eJmM3R18BCgFmOcxVyOvgRmOfgfyn7RXmJ/+lmLbRMIPcxdmJzwCgXox7YFv4yaXTEiXGoYVBkaoclCKCvCFMo8kNioyQ14QVzBxQjLHUgQuBtwmyIlEXlAFgxWMbwd4NSxS6PG2SjHOKQg1PMWNRtwblC943wi8ojuCPAIBGQhMWB+BtWPbQ+yEx+sVCKxlMB/Q2mFiYhWI6xaGKOgprw6oQQnWIWzC8USlCKQHlkYQA0muesVD1SCbB/Q5kNioFtG0io2LOew1CeELsH6xqPlkoyRF50L6OfInggwoOWLeRxmXyE2WI1ocgCgI74OyxRQhcwUBHqxtlFvUyhC+xzwlioQGCPAp7HWY06liox0CrkIBEcwtrCCgVpyzw4BmYoNWIqx8zGd2jWO/W8lDWxsQgwovehzgpSFl2YlF6xyOMyEG4P8wSOJGxB6CnBQ+DJx8lAOwWWOxxcOOBsVIiyoQUBwMVWGcQdKyxx6kCBx3mOBsoiiWxgMCjcfNGRRM2Nuxz2Oox5xHRE2WPSxXcMSQlOOGo5dCdg7aHxxtlBEQl2JwxnTk1oCZCax5ONZBO2LRxfWJNRCOPexK8hpxaICb+xuM7M6oNRxclDFx6oLGxYVFoI1gXVBeuPUgh8CQSzuJFxzlD7oItDtxh2Kaoc2NYxlN2YoJhEmxziBO2HrEKx5WJ1xHIjXhQ2KjxpuP/MEwiGxoeMfQBGE1xs3DTufRBHsDkODxLlkhx08FvaeFFnRE0WfgRIjBx+uORxf0JI+KZHpQBuM/ucuPpxJeOfuO+WxxrONBhE4D9xXOIcUPOO+hdOPEoT6nkoH4VtBNuMF2jCG9625TjxdeMBhneMJxlMCgBvyAsEu2OIWS6BJo+wFuEGFD2x/AGjhT0wwB6kGqCrNSKeqqnXxE2JE8fNEECnuNnxtT1/AueOGxV+I+Qw+JDxp+MPxK7Buxe+IbMAsGfxKWJ6xdlFaYh+PUaMOP4YZE1PQEshqeT2NHxn+L6EgOPtoejHjhWoMBxqokbAh+PvxueJxxXcPrQw+Opxh+NDEzOMwJ52mYEx+OLxOcEPxDr13x1kT1S1iHO0pkHLxWuPRxLj0Pgx+NwJ6T15BFuM+xwFntxLBPOepsHWxouPAJXjwShtlDuxdBLXxTlEAJ7uMTM9BJEJhPBWxLjwuOBWIzxB+K8ei2KMoGAifxbBJnxPODrxVYypEk+ORxoMVAJ7WNUJ8FioJd9D3xAeKbBkFEexG+OXxeX3YQJBHUgm+IPevAnNxZWINxh0HRIuMBrx2uO1+XKiUouBK/hT4PBxDOIpiGehEAGFEgotah1e/9STGYROgJgby32i+J4JT7B1eCsnTxw7CAJkROwwdhOAo5fUiJp+mqoRrEJwOr33qpBJUJquB1ePhOUJt+Lee7hIjxl+JUw49B3xRwJPxZRPjeG4LkJGhIqxFMQRCOhPJxFMUdEtRNKJnWMNetUNzxU6EKJwxOrxt2Olx6QMlAAxIOEluK3M3RMEol/mCg0P3yxP2JWJQiPVmJRPmJrBPB+pYN0oghPjeCK3CEGlGOx2kKhQD+K4J/gHqJpsH0J4lE2Jtb2YJLhM6JUoCUJsVFh0TkEYAfkKsSlRPjxwYjnUSeIrxc+M9gWoOZxl+ODEmiUsJI+KfY77zBJMWD8JJhF+JR2KAJaUhu6ReI6JvRNPA1Dw+JmxLRJd4JooiJK7AcokCJTeL8EBJPBxbePpE32NJJRBKShOJOBJBQmxJQJJZx5BLSkJeFdEuJMFxHUmREyxMFxaUhKmiONrxnRJouVxLGJH+JlEGiElxBhJaJ3kXeJLxKxJLaIIJmJKjeCQQBxVhMU8VKA8QBxKXxmpJUwn2jyJPRIKEjfHUJquNvYKmHHIjUKKwEJP4kK+BLwnhNoJMEnTALhlJxwpN6JQaJRmtJONEeukielJPIJDYjc4T00Bx3eJ8wBpKDJfJK+JAZMVApxJhJL2JgkUaQCEUxKdxTpP4J8uMuxUkjtJr7FdxCuL6I+PiBwWZL8JgMIi6G2O9xjrxVwkxNMJmeIDJfOIGJa+NlJqYKuJVRIuQcghdJRpPAkjROTxqhM3EOpP9xVZObJ+WPyJhVR9x/ZJcMpVGpxKmEAIVpM7JspJeRg2IVJBQlJ8rZPnJXyExCnpJlJQxOcsO+PUolZIUJm5MNJFlFLJK5OTWoROcoNVmmAR5K3JulAcJR5PYKiZNdx5xNnEb2wax2ZPTJzZOucUuOTJmYncYHhMSJcZMzEKIyuJuxIXJmWXtJglAHxs4hNOoFK7xItB5x/5K6cVxIhxbOObJ35IGJqBNnE75MZJN5OEJY5LdJBQhk4+5NhxE0RUwQ6EqhYVD8Jocl5JNBNqxxFK9gc5MjxrhLradFPHJEKD3wbWPsJ1hK9Q1Om3JJsW0ibKAGIMZJtJNhDgJ85LZQi/mlJ9FIqxORD7xuBImQDeK5xCBNT4UIArJAAhzUYNFWwr+LyQA+KgBIG2Hx6VDbUqxKdhsmKIwAqEPiOuOAiPaL6oZuwaA3xPO0MymPxJlJKw8lGQeoijCoDlPoqBn2IaslDcpOuJ6ijCSHwExCUCZlK8wE5WYolb3+6KiGlAr+KzAoShXxjkBcpllJoSBn1mS0JO3y0I0C+y2VKxzfip0Z+IHw8VPwW8TEcpWBI8sJhLYs2VMPxyVJhxqVIYA6VIqprlIKp7lMoJ2KmZxjdAN2SFK/MW3U5xjdAj0XcPq2c+z6o0pHoqLj3AsmuICphVOAs4oP8wXVKDSMhJ64JhJap1GCie9yTyptFHdSjaRkJHILCo6VBoSM1OlApVBAgsOjjJRhJn2dVOmEg1K8eG1OMp9VJBJ48JlBNFG8pBQlWe2nj6oHzQyxi30UACRNooOnAmUbz1CoJ5L0pw+j5o0+ghcllP0pgNJxgRlO4ohKwmU8LwjqLJNKpcAi2+EWMupp1J1xQNOfJ91JceDZT3wl1NZkQxK/MQq3EpKv2sMPVPiY/rTqpWljpAmNOhYzVKMIXLkeeEJUmpeyBL0VKHbIbmL6oXOn4AW31up7NO2O93210flP6pgVO1+jXnEpo1LOpFMS/EnVNHY01K3MrxGfJ81KGUOrxZox+MZAAyFgpaqANgu+PSo8pD2JGtOkQTRIaJzNKVpAIScouVFTMw5KdeDNJxpYJnmx/33nBd1JxgZVK3MItPGxGNOdps4HsEyNNMp2vzfynJPypuNIshJOCgpVVNtpX8NnqzFDNpuuXKJpkFSxhtOqC0dMHRllJ1p2vxwMUVMgia1K3MQdKzJCtKQpwRN4uulOlp7wGSJHtNkoYtOup+bw0xINIBpJb0IunOPuptxKQSP5Noo6IgRprRMoYMONp+dNPjeMuDvJndPhA770Yof1M1gTtOoRkyDwof5nEgj0HfePzGhJOdKCRM20ypU1KLpmIhgp2dNRgY1L8Ex1MFpG9PoildMhpcWGXpDsCFw8tI9IC1MeEXZCcoqtOUK59L6pkNOWoG8EeExEMZpbPVuSz72KppVDdpR9IvpH9KupqpMBgIVO3p4tPukAtMhpA1MVJ3FFFphdONEDYGppMWDnpPQk5EUtNWpsFMSQVtLvpydKkkWNRPpHNNKkiDKUokdNe6CDNgZ1tLSpPQggZrtMdprdOqkIDNKsKNKZJ/9L9ptDO9pwwnDpONOhIG5NOYMdJiwIdPhkcwRSpdekIZMoiq4c1KZp8dKEZs1L2pUNL2JCMWWpV9Izp3kS4ZfVHmIitIOkrDP3p3VLFE+dNCp69IapfkmdJYlHgZfd3fpSjI0Z/EhzgidNAZQtKkkeWU9pljI3pZIjJpJjJlpnEiapcDNPpKjJV8qFCUocjJQZUVD3pn1O2pjPlcZz1IOpjrxRw3NPypdDKkkKJ3wZv9P1JZDCep+9Nap3TEFwE1KcZh9Lg2sjJ0Z7pKWAD8ANp2TONJJGBCg6TO9JVnEcZSTLPpGEmIZkNOQZoZNqY2NLvpgTPbEaQkgZL9L/J+mI+pn9KWs1TKYZjlL0EBggzEAHGhGq9AlkqNDeeMWkYo+tGThLNOkk/kU3RanHEYbhOBxctAWZasnjYS6i9o0zJ1e1gRGZM13aI5L3JwVtH32Z2AOZiRgTot+AjYW5h2ZAdDImKkjqkAbldRCq0WZS9EOZCdCeZIsmCJXxIdRozP2Z21GGZUzLJccRKGURGN1uK7DVkjXzWModFWZ6r2DYaLABZ3G3SBCbGjoPzMREpFlWwuzJXksOC6J6LIBZuYVXwfRKRZXtAOqgnDzpDak+R7zJhZM63sgadCfYtqKBCDazlRQbTVk49CYS5LIlOHzOB+XLi7oFLLzeHoC5Z8LNpZvLN4MILPwpgcnHo51V2Z1TBLeJxWhcrNW1oYOFuJCaAqacrLBZtwOqpj7gFZizMwYYukeZ7LLix0yMGYsyKg4NNHzoryxPgRMzORq8AmIZrPtkMUGpRVrOUYgyDlkrCmro12y5wrn2QwDrNZKhCDlkbMCZo2tPjo9sj9ZMbDh+CBGdZXimFh1rP+o9shJ0LAkboVuhX4nQmww8YL0pGoBDk8TE7a8lH2pDZR5kOMDXxfNFDZQhFDknVAdZ+wAE+/8AqeWjHFZ5bIXgD6klA6BELZESBC0zjAdZoU2/E6pRywWbJvhSWCuAKKH9ZbrJX4FrP7ZBdFvgvbO1IMUGCoqDnTZGER3RZFCnZtbI9AZyMnZQDgXZxKBTZOvyPQVwCoqBDHnZW7NjSM6PygNbK3ZZ6KpWm0jiOmbJ3ZK7L3ZbKLcoHGB9ZQ7OrYszEMwvbIcaNlKko6Sgqk57NnZ2LFsI7MjgE7RCkoWyGbEVXnzZRBFHs/smTZSjGWYz7KTZmbJaxjYGfQEHIvZbeAQ5tCC/Zs0FKQAmCdZsHJ3Rj/F/ZC7NlqsOHmYCbP/gHbNtwVSFuS97MXZTNFPAgbJfZlrKvwfqCEIZHIDYD2EQ5zbL3gOGIjkzHOo5MbESQaRXZkM7Iw5faCh8e/AfZU2NE5DiHjk8mCVxu7JA5LAkyEQtCLZGbNw56TDTZ9siE5GONTwPrPk5BrzPQ3HPZksxPORj6DN2JshU5WqIXMJtCuAa7IxEZ6Es5Z7Itu5HI8QNWjE5vHKFxmsBzZC7L7ZfHMcg6nLHZnbOcQG5W4QHHLSe9ZChSNqCuAbr3ZR7SHIo9sgAUWjBPRE1S9k0xBLZJqJXsesl057nK0yHeCQ5O6Oc5uNCk55nNNx9nPTZsbPAQG917I8qAzk7uijRzqNyIMbMMQenPnMVXJw58YOdEndAa5oHNOhAhmTkKXKdRmFBDoGnMg5G93s2lsjzZLAjZWhdEK5mnJAQAnKG5yHNIQWWi8QmXO/g0OQy5fXNq5L8Do5lbMnw/mLo5dbLF6PqMAeeshC5Y+OWywXMc5edC7WElXo5KaP7QU3K85r7OtBuSjiQLHNs5vML85rXKcp/SE85Gcka5fNGFoTHMM5NXJoeR0CPZO3MYQxdFQ5pHM+Yh3LdhQPII5amAth1VJy5b3KIe6XMxw4nK9hlCSbZbnOwB2Rk/Zl3O+50ylHZp3Iwey9gckB3IYYzHAe5lcnLSkPMyq0bOq5qXNzBBPMM5/3Ox5N3K+56PM+5RXIM+7emnZkHL/xu7PE5/PJF5uZjVo+FKPZaPNsp7YXbZePNqCS3OQQWPPO0Dih45j6zzoV4C62g7LJc6WEPxJRndZfPNV52vJh5hHONhx1nw5/nPI5i3lp5KvK0iuZSEkdvM6E7wBn4MvPgs9rCs52an9a5vLRAetFy5wnO7h0vM5ULAirG23KOQtWHhe87Ba543OkhZKEEI83MIo10A/ZgnKF5i3zm5f3K65jMBZGw8Gk5+zKUI2fII53vONEeVxu5MvKT5lvJV5/gJe5yvIV5Z/kBUXYjL5vsHq5VwDN5xfN2AzfOkSiWB+pBfKuAMIO3htIBeacchj59mFpAiEGW5RXO2ZbPIT5eIldgFPMK5ZXIshnYji5kYNRZnzBz5H7w4ks/Nt5aYFMwk/Ir5vYKkBo9So5ffJwhGPIXZWDj1QA/P25sPLuZUVGv5rfNP5fnMb5G4Fi5t3JmkS9Cn5b/MX5c/K8547Kjef5ng6aHNr5AAvB5tMFco/30AFMPI152vyAIqPOAFzJFf5lfIJ+XODL5XN3353vPF+73yZ5VPP0hIYiZ5EPIp+yfJjZIPJ1ejLUTZw/PSBPfO55stLl5ubJm5EAtAFC/NuJKllc5F/NbePKw65kXKBwn3x3gYfPoFO7xYGkUlF5G70EFFCBwFu/210T/Il54vzlgSvN/5AXM9gbanV5T3NBJRAq/5773qE0fIX59H1M5gvOQ5fgmh50/PoZikxy5K3JGkg/OX5MnPMFYfPi5KP0+EQq3l5c8MjEBgqD5J/KjEL1AfEnYMGRDgVd5hGL1QVgkG5kXPrZEgs0FDfN15WLMmeHfKJ59Hw8F5rNr5TpCD53nIFExVF+5b3Nv4CCkSx8aHIBZZUeIbDFdEaBLmsIKDyFg8CbBs8Awx3RBm2TNFdkOQqxQIsCNEOVM4mRQuO8TNGkS5QqAOqGKbBDpW1Ql3CAIS6ARQi+CGQdQtQxP1NmSNJCGFbYhSkAwu6IlCUv5GQB+R0wv5Ekwgz4EqPeI3ojb5RK3lQyxEVE10AJS2JEQo/hxmZfxSaFXNASkTZHLwTJAEKbYKXUz6BaIfqCI5s6kuQOsHKETcLtZc6BBIionh8bmmVIA+F6FLjy6FZqDyQLKDbBrwppIwGFcETcJcmOJA+F97RuF7QomFENiZILvPhFGwtOIkzw4B3qEJQ4wvCBGIu+FSIvf5IyHOFLRDxFT8JqFTJFcYyRN2FkJDRAzwuSJbMVRF/9KeQmIDpFOQBaI5WLbE7qHmFTwoskg1CmFxQs3B/hMJFMtDvwEEK+FAIpwEwotuJHlX2ImFF+FI72IsLRDd0f8DSkRwseIWIvswRyN5F4opKQ2cGZFgwqNowwp1FKwrhFfiOQktKGNFyQvYKbwrRFjwnlFYIppFMohVFvJAZFOUMdFJpHqFNoseFpsHtFfglGFnoruF/IqAObQq1FMwKRa9IsuF1wlRg8wp6FeqHukkxQqF7ov4kzLE2Faouckoor1FMwqlkUUUJFUoEWFUklRsqwvyFeYttFRTWckvoqZIioszFmFDjFiFFzFiYt1FtwqBFPomZKoIv6QhYpakPnidQXIt+kvhk2FiwJ9EPBlhFPwpjFkYsHFtDRyhrSxZFdooskYoSDF5IqVEZYqJFCYsskHYumQ5oqLFnotcYHBH8Scew2aksBjuMwRSG/Dmw6CuhQOgxXw60eSHyK+To6F4sk8beXBUP2UyM6OUZUomW70p2SkyOhkfF4FVeg8mU/FHqWUy86XEgiSRcMItA/c2okOyQxkqy7TH0yFRywgzCRMy3o1ycPVTpWGWUyo7Kn5UtmRwU9mQDUjmSKy+s2Kc8uVnUH8FbyT4veM6JHY8EYlNS5yEacwWVNSTuWSqEWSFqBqj88LBktOqZnEcl9BuGR8lSyEhlcGChSyyHihyydOTKWHulrym/RZyUxSFY6BWRcBrlzyPOWUqzvjeKIQTklRohXUmiRBqsuToqI4wA8GktD6JEq6wauV/FvqnHS7EoE+FJ3tSRmQTYIEvLc/TRS6UNBz6ZuWncYJXaUUBnEM3BiscQdQdyHaiclnPkeUH3XdyGWS9yY7l90w109yIeWbKimGMM/uXA8smRvFhkvw0c+Sp6WkuWEieSpKouTcGaeT1KAuVPqRalNcY6m5yjbjF0ExlLa4p1LyTjjSG+qy921eVm8oks1MznxdMTeQ/ULeXgMektVMvgAtUDUr1Mwko92cVxTciVEsqIShqcChXyy/uiByGuxKyuJlGlbZQoWxdg6yaRj4KVDk+aOmyayCrRmOBRxH0uxlmlYYy6yE0qGyYaRe2O0sOyPBnVQAkvGy8SgYQRnWk21KnOlVZUWy8Slk2NDV/gnIw2yuKgTQJOl2yWLhx2UBkTSWrjfm641cUgmWIlX4qlUiJidWONSey92S1UmfTuy12D020OWQc72VhlX2SCOD4pGlu0pUcEeUByaMsHOGMsvkcMoC8KRi2ceMuZ0hR0hlYMoRyMeTtZZMp7yAnnly2Mt7yV4pAyo+WHygMwAUIdUo8yGn6cY53Hy1Mq5lM+Vil0+TKaZa07yAstxWjOCIWBZ2KKTMoZl8pgSlzMvJll4q4yLcWsOgTlXae4spuOZmWiyezEgJoB3abGQu80GgaKDaXCKHhSiKVimNl65V8KPinDKFsq+w9+g/syBhPm/+Vb0DsqMK+hTdy0BU0KkBXdlF3TbKWhX3kthSl2DxTsMAct6lQctLUphSklnOQYK1KWQKUhXEKdU1EKnBWpSAhWSqxBQ70VVVKSFBS92PBRcKGjToKLBXEK2RU+WkRTYKVBTqU8ctIKySz4KOBXHa1NU1OWoo900hUjl/xyblgco2O6hRUKWhXDlPsogKkjhFWBYldlABUHUhhSoUih27l/Xl0cHC2UKZhXtl8hXIWicv9stsvnl47RLlDCXcK0crXlrelDsS8vhMMRR8KO8prse8tzl1+TkmJstcK9aB+8BspaKZ1QqqFA0NlRk3/EdCxaqt8uaKeRVZmH3kKKGjX1l9RWvlOIxd5L3k/lYq0wcT8s2GL8qvlb8ovl23nAVWq2+8UCsAVyHVRCxZkPUVARSM6EDoC2ajfiO4s/it+BXSWSEv2bzhPFZrVcObck6qcCwo8ZJVaa5dhyGZ7WkolCsXk8kw9kLnlOGOKHnaeiF/q+Em50jCogEUpjJZK7lQxa7g4VFCRaEgRnZCYOhi8bRFJ0njTNyKTmlAd9VAVNDAo8v8GUcpCohmw8mNGzdWmUBB3pkini6a3OJvU+aDYuT3mjEVJwT0ASAZUa6CDSDxiHWXZQ0aEcjQlNxiHEIitaIpOEeM2pBZmMnHOKFTmhGRiRk4qPlFOBiu4a+wGSEGxiVyUAxk4YInIV6I1yaLpOra6Xkryvit2CfZXAEE2x5wZLR8SDam7KTMhcVNamq0pw3WSTtWhKlCssVezjn2osuMV7coyVly3saMFPzSySq6amiqr0cStFlRpFUVAiitKysvaKqsoZgOCrxujsCcOPgB1lmnV0UVXleI3emxw8pgN2KBWhGSuRlly7helgDgc85YVuQ41SsQ0J16MH4u7GjO062rTAxcJaTXcM221M9OHglXgz2InLRlk3DRY0JisCwsIzzlDugqc4yo6VinXj2C4TOgvSqswebUIVusqGKZAz06xW0sSgM3WYeyWj0AKogSqOgYQrjjXQFyydq4KsGmshnsV0+3JKq1R70bSQRVoBkAIgKsk8/lkdU9eQIOxcBAyOKo+ywKHG6O+LS8RKqxMrJRJwrdn0KDJhpUyVUOw6xXO80pAu2lDEryFulQGNHSfUvAQG8P4KqMqZjemHdgEMaAzSablQUq77VMwv8T1m66Bplo6Uhc1KKaWeHjuKWlnzcMKmFV1njf0HJ3tYpJn+wlCy9gKaBvSbhQiseNQ2IyCXoqxHnaYhdElKqZlKGIBS8SFXmSWnixC8puS2yMnmxcmhhXSiDijST2Wya7tVMwF5WYk4jjngrnjsiUBks24E0YWYJmcMFCtF0aLDUKHS33mIyBae9fVJY8LSHlXynCQbCxum+kwpWuFTMgQEFj0Mnk08dglfE8qsLwGDgegwkyJ2pKlkMNAyi0tMz3KmxUDEKquRBkKV7I5xgWcS2R0MzVFQ8NhiUMzdkS8r023GMST/QedQSmSrSHVJSW7sUSqHVYFANO5GHnW68hJqVGzPExuXhUhol3cAaJbVOuknlkDhSM/UoQsAh12qILSRc89XQWOhmW8BuwZGuHhjcJ6pnG4a3DcA3VfyuOnFSA41LO3qvh0vquJltR1mcnquZ0pxm1c82m7KeGUmy4bl8UKs0wEPa2AM2QBFa/zgQMspgvVh3VrsGmy0WUGpmKvK3n2szDzwE+0WRSh0sy53i1wSq1IcP6otmoyFCGr0BdVNKsBKhhlkOdxQpVBBydl7qhJVH7jJVSxTwq0Kpx52Ksr4H3RhVHGspVNxUxYIKraSBG341TvWoGp3idcJEzmGxIwnA/yrEmzVF960msOiRBnCMTjnYQ8ZVCUKmsnaQzgj0AzlU1ham6p3S001nyRuVVuxyaDE1wUd43HqMmtIGL4yXmgYljWPypoGQeys1trWnwdx2BVzbQlKiiWtQBUtBVDg3YQJeUJMMu2E1qaiZgy3nc1XbguITajgEoky7cTRG/qG4JPUpHCFKMC3Tl66DhqlaRXolBU4mhsyJEAUvxSUCzQUEqqBOK+GFMNVVNCAqQsEG0gxUnkvBO4ohhUWKugasEvq1meVxlYLE3W0wida/WCsV6vgDKzbSwcrqUzWPoBiGalRQKBYjBOMQ3KENarbAWQiwaFC2S1jRG4a7Jlw8K6j5lSwBx5emzl6/bgKeSLnC1LmsxIO2uC1T3hs1TmsU1pa3M18mvE1+ywxVf9nUVgBHkGVejnV5itmZwq3l0gavs1ztSQ1jkA/VOIzQU9iu3VXTSIWU+33V+JgOq4kFlMN6sOG+StX2lw1e6/xwh1yTQGx4uy+UD6qlMu0z+1McmhOBKQkmLCm+1AqVfUK23Mk1djXOaZ1mqYarQygqD4VUaonyi8kyceiGrOeOtrUAnnZUyaonyWXnbOA2O52yTR+QHJ2zVqOtOomTmvADCx4VmKEk8r3WtGFzL8UMKhlVzjV2mXBlrVoOkpWQGDaktXhSMgK2qav2om87aqBWBsHY8/kSMSlWBG8xTLcgA6vs1GZQNgoVSfkszWRVAnktY6isfGY82c19ur+Vp2qO1omsmWzmp06buud1f3l1aNhyU63SteVJsHeVWsohAgyoAmRzSkSjkHYQOBynVASgzKJC1oV62XN4UtSYVgaVrsExmXgSCz4qUGi4VuhT0oPjGcMSiquyteWfaE1Xhl6esrsEitmye6Fb0sip3SLdPASReoqM0epu1kDiuCTQ1CV9SzaGhuQCVWKgRE6nm8VSRwawgpzcVD+TPV5xkcV8MsJUo/VLMG1kQqJgg/cg+tTG2EH8MveumM/WQoSnepocaStb1NDhFcbpRlkOaUrQ5mUzWxPXL0C+oh0yEoOMLGgJKuSrT15aq1KaLRjSw+tv1mDj715xG0MlSpAcuak7KdSu/s7eoNOTSub1vE0nV7Sq6SNtiwVAgUD1cAWD1anX/inyqGVYyVRg9CSpV9i0O6UKT6m+8hBUIqpdoGx3oMDagcci8lz0ylTjsf7A+6e6DjsUqpKaQNAg069npKYFUhcWXhEqmxnPlG4CrwQpS1y3ujXqiUBiyA+hmKLvO7k3dmpVZdntRzWRZq+PSbET+UXE8kHX0C2iLUVB0votBvAQaXmhS43Ra6L3VMmkFHdUzG0HSqhta8RBpfcfhgccuBokalUOMN+cAZanBwccXLUp11KseVg9meVzlkZ6OAS+WHyrD1ae2GVebN4157PjyOupkGNyqdMrxGfa5ytTymcn4qqyrkGZ8XnabBjAaDugz1MRtncqTDo1ERrAaeEVG1CyouVGoCmVymtuVI2xfUkWXsNHRReVzhppg7iDcNLhwj1IdmyEyRuEN8lUGsNSQzeOBtkMbe2o8DjmCMAzQjEAPXicJBjxcHY0lVT8gKVNBq0cMlDK6DBry8EJ1z0Eykh6/YMySnBv/S7YFPuvBryG33UKlkatqNBdj+W1p3d0mDREN0YgkaMhvGNRCiw8ihuByRQXDsehsjs1+GdcBM0fS0khc8YajSErXnaNh5VrsjDjMEzRoGGA5zMEBuTENBwzqNm8lQNcKkKNXSuKNuCtpAK5iPF8BvcNqB206b41+Vlmpd1jlQzKrkqE1qFBZliBzY1mWrOqYqSccQlAhVyvSuaA+B04lXWRNpKuJN6JtclUWga1M5xoY8qjxV2Kof1rivJNvxQ9E5uWY153l7YOB3WNFulC8Pa3NVyhsFM7iFu2xqoZMNVjGwkkz1VMxXWOmus1VDjmspAutVVh3Uvy7QzuJr6kuNAxql1lau+6QOGpy4qsVVTbkk8ipvhczrX0mspp1UwOPIlkpvx0RXkUARqtcYXiRUgMivpVkpSUFzCW5N0iWxU1bWo11pp8G4cuWUKXj2Iezlw8JS1p0yBAxc5A0A1F+UAoTamfKEhoHMIqxQ1EGmEAlhmh1DjgAUZUu2I0Grg48QkZmXylA1LeyoSWh1w1Fs05E/NQ9VIZvQJxamdV/pvO8WhlnVDqo5NMiC5NaBpI0WDlzVb82ZNrZtZNepW41QGlpNYKvY1fZsZNqJtc8d2oxNUekO1nuvfG3upymcmrE1dmtnNxAxO1ayRNMQWrRN5CzlSR40HNDaVx0uJt7NO5o1orqVVImFRI6rqSp0E8sr6X4kr1y1Q0Sp7gDqgJTWSYugIOyBHdSqYyCE2XjLmXaVdE3WWBQHi0BKW6WpNOShe65OUAtsZQDWW5qxNSBnnsF033NQ6rwUa5qDVNKSBVk5qd1y5qcmXurQtSmqxobi1M19OHdWJmvOOlBmKcumprcZLKy2uFsCw2FoIt6FunNmFpxGx2oRN8eUMSJpwnN65vgaNuHMy3mvzyqxr816it0GF2USw1dmzUT9VRSu2ofU4c3o20WqW2NiltNNXQS1z/Rtc5g1L2JeSE6/FQH0TqXYKpkFKSuWt+OH6CL6JVUsGexqrO7uQKleWX9OdXmUG+9wAtLWq62lJsDJw6llRBBw1qHWuba3gknqA1JIa0MEzk3NQTY8jWgclsD/Uiyv8u1hj88M2piG7uXMGC2rGGcQQ+6XTjdMPBg21h6RHcFH1m8u2rMEeEVSth2rhNjmsYtwa3O1YZku14KzQamVrYtAqXyx3LkEt8eXKtmJqcVOJsUcsFtvwfcAIO7RqcVbr2at55ria3OvEVN5rQyjFHNyeCgncx2mWlQ615MlwzLKAzjgWAmFOGwEtE8XumHUT9SRmtXkAtlHCoVzWuaVPMx7N25qe8pJpqtosp2trFqE2kmoKtC5u5W+Vvd1Luuyt85o91l1vOtPuogNfuscNPSojuVkpD1CBvD1RbTcO4WGHqE7RbNVRpZqBp0aNxhoyt4DlaNh3VvYMjk6NpBsPs8Oj6Nl3QmqGxwtEC3lvkRCilGsNoLsMyg8cm6mmNzAjEOwXjLskRSr09hn4N0dUBNDFQJtYhoBmIhpxtSjQONZdgxtOnhONJGQbMuuseNlxqqiUdXOQtxqjs7OtZtYNvOQH2VeNshsiULFpFyZhvQN/1t+NkZq+taxvsWwJtsOAeucNRaDYUkJvCSb1o8NFrXBpZCHyNvhrbUxCRyNTpiBxwRvg4jbmTNzriMQayomamyv2Vu00wKeyu9a7qVoSKRtnct7HbSGRrAaVBu9qARtHaZaEPKDyvAN0B0gN5vmgNStv6VEoGhNZ4thNDmqutiJru1hKg90u2qRNFqARtsFscqFB0ocEFvxNadoQSYpERVpA3VQG0yZNudvGmSdvjqoFvKCWtqWtXBsJ4zCEPK7Jq7NL3XY8ddtZm9FUdt3JvoasnUtgzpsFMpZn7VIprw1ZQgxqM6SlNuFA/sHgmuwcptvYW6SNNJPTLQouoVVbNquVDC3+weXg/goCz1NeXmjEKR1j0OOD3KGcpuMfKq1VoTEHtVpu/SlCWLsLKpNVd3U7tFqvx0ypRiONqp1U5jJCaLvKTwGDnzgl7mVk1epKMrqVbIcrjPsbuUvm1KjG2QNV0Q6CwN2mhpXVu9nyEh5QREO6SCEOqUYGSygvKURuq16io5mmfX3SRFvIcD9nA8Bx34WA21q80JDeyAyHjq0uqrV5amDOSgUQtNrjxGBem4oHqSEOAKkZSHaqMiV5VmAO6WLU7qRptB8rAM/rS0GEUoAMQCHGqMPVqMt2VmqySUXKLPQXVVVGtKYjC2y8mS7SN2xXUAhn+lsltJKW1vXkzskLKGjtPkbOHjtk5qzMCvwOttenLkItsIUFxuh0uCQElWuA0S5UmWmiNuQcXug3cuDUbSjjsSM/jS+w81xOah8Qz1nYhPm8sAEwoFSw5DI3El5+mJIrinWktTlQG8GobSUrg/t/lhNVKOkb23pu/SOWADV5GuJlGxHdq7jCWyeQkUkRZqltWlgQI4yljNK9rLZx6sTNkqs2MqZqVNtsWvVlTvkqC6EiWyzEw11qnDox/V0c0mVFNioFLKwZpo1R5QjCfppWqFswTqlmwbNIzrPgq9gft9dvoKqKvc6kYM+WeJvxVNdpv6kFrSqliXpKlVpZlcduMdNFvhNCmok1Z1pnNsmqXNuVqU1X5WotChzvKv+hItTO3gd5Fp5yL3Ww16NkM1gWAudg8001/vSOtDupjtUdp+d9moYtBzs61Hxr41pVrg4qaXblXFqBOakkwKC5AC1ZQoiKYloG5FdpHN62xywtI2ypMWoAGls3FaeeEryD6nFQrAwXVylq92I+kxiGWo0tuNFqcbMQcUvx0Bk/hgMtGg2AubA3K1Qsl4afJqnYIUrW0gTsrtPA0OwrenpNzbTQUmTmctg1pKwJMSzCvWvgamBlK1kKFCYujXcYLDjG1QVrF03lFCthTRvgis2n0UVpHcboNSlq2p88K7LmUm2uStQxmWSaVuWyyyt2dUwwwtZzrO1c5v+dQK3mMxY0QgosqtIONW4dlAwnApZn4dSKRJof/VXsIjqMVSfUySnRGhOyZsfqMjsOGcZ1LUCjqBGQlGUdhjX32oLQzte1pLtqzsCMsdoLtqLrQyIFjK6WzonyPVHDNFjuKKRAmsd24jQyRKyxWDjrQy0XAmMgMkcSLw20i5mU8d6TUfc87T8dgSvqEIlQQ5T/VyahODo1KGkyVagi4dPzQseeSp8ddKgSduwzmqnxuDsa6AUMSeUelUIxBs5qVAdpw0LNDiq0NPCoExuurC4w6n3qWHk1SE+XOVs6zIIqOo4lwZywdfOufwknjwd4TVyO5ynoqSMoFS4Y1q8ZDr/lmiRQKFhgsMXTQiWCCWDQA4zdogJKYd8HCqV35LYdrrrytDrts1juu+dxzvotXurtdRkxs1uVrlt/utBNJ0Cjgodu1lFRo+tbcke6KOnR2wzoHyLtE9tMyqYKo/XtYxtvw0GoHtlTtqBOINj+mCRsHqxQm+SLHu2VinkjVxysHqTFFp1bttnczEiTy+tvw0qo0HSftoU6Dht3FCtpXSvPCxCBCvDteHW067xpV6Qht+tHdn/MQpUBth3UCaPbox2QJRdE+Tra2JBrW8v+Rht4FXHqInkGNPiCzsH6HdqaNuWafXTs8Uxry89T1mNeNpWNEei09fBry8zrxlttxoj0K9gptOxpWNrkn2NPDsnUfXQCyRxWWE0pHONvNtFmVnogdXNpmUPHgS9IdlMMLxqMNOnvCIhuV/tmJROKktruKoWlU9ehVlt/tvucgdsl8ituw95RtPFSnoz2N1oQ9Rk1cBY7gLdYc2p0QUpTta6ARxm1rWdqdt69HZqLtjlVa9TGs7NLXs690azLt2KxRV9lsdUVBlByTdqMUJuIGcOdvG6iRlm99Gvr2v+AZaXdvO86wVldM9NZVrsmXo7fU5V+qsEC0iHMtZpvkqliW/d09v+cJelvW69q0c7+XwlH7oLs6SlGyqpqK1BdiFYarm3tCXicS6zFNN49vNNgLBRqXKosS3a0NyF9tvtASCdNN9p1UQaVsN6nofUv1Ea2x3lftdY0x97iBrN6qm1IBGod4RGrJ0ziRw1hTv+wxbvzNZdhdyCZoCaSZq6qpGxidftm8G7m2HlDTpDsOtMrcLTrP14gSpOnTuLNDPV4MepT6dY3kXGr2oydFszUko+yx9v3p5NuZWbNtxpW94diW9xzLlq6jv69B4WDSGbpAyC3oQtR3lG91rus1SHqBdJzvmGpvsIGRzrotdilCUdx2Z95egTUIqywcmY0aC5rvnYdxhnkspgH0R9n9apenEyo1pPGT5rQ2WMq+aq4jlGi0q3q8xmNKdSAidkFAhGX0r6yLQi41HGHXSux1GN6nD71y8D7KmJGQcTPiXV0bgqltRjf0uyvI8GDiyE41Qmqg6rqUBepT1tYyXsoSlKGyHlr0rJUgllDJ3S1Rj3q89WvyxzD3qK9Fmy/WWIS8Q1JU/PUacmEntKdp3PtaR0ZUWEEycGnlcUliqhqNdtTGZQw7NI+k7GZYg+yM/tsdVqqRUlZ3D04KWDOHLVJcwLJVN9FXGVgaTf0uKo+9yqweSMKgUe6KyEMnk1q8VwmQceXBhlofS/ogZSvIE+qX9erlrI3ehrSkKR/FlsCr1FRjIcpSQDsr/oq8560l0zdh4U4SCidZkwayE5SJ9qWXnVZ7VV8CrQbKQSzTl53RfVF60tWAkqjSr9laSRyXiEfeqIlUekBYE2TfyuUq0WzowbStvqRc9vtQtyHqnNvyut9rRhNKlzo9sTzpwt5xzOSDeludzkvm06M1edsIxRNLztM17AZytFvtd1tFuQ9Zgg0yoLqJ1l8lmQPiShdFWsa8Mjk0DF+WxmRvoAGEeiKlSLshEAG3aSmfSW2eqToDtW3xdeyC74SlsUmKlrqCalqrSlUqDaGxkkNAUqeEMjUOcv3ot8LQi7qrLpDEaKmq1XLt7okC2stPA2zwU3pa14uktY7WrFdGemcKiqCldJbSFY7E1+MvlpiGpSgWy42vbqY9Io81el/q1S3FN0jsgWYwwUMsVoNd/Q2NdSVrFMrTAqtFrqfYIEoMDTXut9rAbkDt+EslcGtrapMy0STvuEKyTRAs/xxIdtbvm8SLm992GQJedjnwka7hwovGqZcESyqtdK1GNLQkuGiVCJ9sIxj9hww3KFkvJOzjRO8PZpT9zjXjmRnRkQXTQdysiQi8ZSvImRuqgUlQt2GvZR62gYiyGv5q3th6gr0PCpoYfCqb9PCsjqyxl+D4TX+DnfosEPCu7NIIdqt5jPbSXpwODx6R/t/3SKVu7FH9sNJODTPjxqU/s8ajQl11HR1fdXxKctk+p3dPyVX9/XlWZq3q39ubtOEP5r39Lw17I37qP9PCv6wL5TP9JHtXJghp2SWpqMVxuRDqlzXgYzjWlutap+S7yw8Mt4s/96uu0w1xoJD6uq8UkfUAD6uoIwQJlADfTVmSQJkQQmbuZIdyHeaXLJOWy9kQDWcxOWXOmSdZOvV1k3pgc2AZOWgmw+6c8AX0Vy3J0TagsML+lxsMlROyJfT/ldVqoDLOr/lDqzmm2DF6DjlHAtZxVbKHQcKt9ruIGyHqa9bAfDDQLvQ9zyu+hqg23iEJoU9eHvT2BHtPmnBgtKX5QZD1eh7N6u1uGj7i69OYfZCqv3h087o3AeTFz09QmcacYPc9BBr6aUGsQmqwA0cFwe0wbpt+tkKvOKU3R6tmwy8UxCUDE7Cq+F4dgH9B9XVmTluLy4TSwqTGpHkgSsx+hKrVSO7vsEXGozD0Yek908DNKa8QBCdXqIVlRpNqLDVt1T0oGMXlUT1w2UzSueokWhhWeDWerTqFHh0MeernVNuqb1AmRJMperkVDaTPDIAc7DUR2PDaIDL162X3DzzUPD6aWSmkSrQdrRgTYL0q3139lAdrqTX1tRkQQW8qX1w2UPieCVH11pWbY/p0lDuDiNyb8xsVqY2zE4dngjS9g0c/isxIx/qZgHepYGJEc4MQEdwqk4kANh+pocgkiSV0yhwjfdEv1gvopMmEaCyd+pfDqEcf19pS8UiE2UyA9UZUsEcaSX+ogjbdlqVTEZyOoEagq6qAAcVFtAN8nQxaD1uXDsYbKi64detinuIVDE38svDVut6U0umJVtc8gk3WEOvsKm6zAsl3XrOQaShV943q+dATVQShdtAMJkccjVJu90rwi0sNMtAtHkY2Ir4rsjxdGQwq3qW9WBGTUivqO8oyEsi19oFNSKqI9wpvtNSKusMZ3qHtNlQIwmTWqcN3pa9SktKMD3v9dgJnlVapua6Vxs1Ny9qc6ayG+9L3tbNXQgB9cIB3tuxWyE0HgPtuxWKyh5WSjfZqNgzKr7tM53bCyoX5NDKpnOP4NR9txsr4NWlmq4zvWdjLjI1+PoC6JOk2DovoW6DC2fVXToiqK+pA1rTvBKt/Tp90GvMqYnpqdpAwCad42Q19PuhmltAQ2eZrWjLXt+QGxwjN81RdEUG3LNN0bsE7qsmjJHqRNdQRl9L9rl9IUff0ZXtHNvqJYjTkezmUxrMjTvU8jA5v69Pkff0ObpQmDkba9Cds+06Sn5qbAenIXTn0jOa37Q8eFGKcgd26heDC1k5pO99QjBjSNsHgZbU+SGju9kTWrcgx5u68IFjPNIQVRK6lOvNL7p5NES039D5pb2gTUJVAfsO6Mymg8BdCJjAKx/Nc1qbsK2LWteXjhDkQbFj0Xi41OjqhAJ9S2ymiRMddQVwyOmWEMiyR6NaipZcTHQt19OpB0qZhXczOovNRrA+yHOrYWqo39SNTkuMRkTNVnICF1qFXF0T7rF1JxiWU73o5DwqWjsz/oV1FRiIWT7tV1QS2mlGKlJYHavLok9T11cKUGEay0yqXWqUM/pBelSSDHVC6pQNikejjPLvMMRoZKOhrnljkDukMwcZ9V7GmkM/sbmUd81RkfqHvVB6tFUbMhL2FgnQWzsdm89vqi0eWXQ1EmM513jvfmpcZPmOFEqy/2r/mv03fVecapc7bwBSCsclj0LlTdKXkBUhMeQS7+VxjpVuxjBMYMDZwGRjIzjYD8MehSx1uc1pDnH0HzootPyTHcwgavSdrKEDrzuxwnXT3jDvE3jLU2kDK8b0jsHpd1V8bLNigYHwOfuOqccY4Ge+GWSIGEMVnQnmMCDi0WXLRIainnV9tO16DzpALoIq3+oyJ3iDg6hnWDnnEtTVufjBTlmOwGT1KQZx5y0Xh5OQWSEdBUt2m8pXnsPitX0gCekkSkvdtQSue6jJTAaaxgsl7B0a1/lr+6NDDAa0XBkcnRBstqXp8SfjlSNvka22gwYHyqdnnaZmW4agzRt1vOjWVCTAGccRTtyYzhiObRGdyXLS0VY6LryDko2lkzqDqjx1MmnIgCl69gA92og0tTgme9MuA62C2gxOhDoQDUbULy77o5DojiJWT7vv9XQ0gSTS0FDMQyPoAznKEhTVvaeyUS61OrjEd7q1WBVRRltaquCPCs+GdJs3s8eSPVMAaIWnBmcapYODOPgjVDFkEu0zx3CM7y2oaGKgyjbtDUmYak4oT2oE+TquN1y1HA9ID1CqRQiqVbOHAtP0fe1eTq9Ny3EpWokIGaAnp+1B1KpKzwr/dK9kclexxJoGoAg1z2216f8upWyyUoMJId9E+SBjcjyhC9tw08VpG3UDVVp7RyyRHlHibDcUCd/wWDUcTK+mcTv9WWY7ZseMSgScV6c0OW8NWNyw6j6O4JhZSLNV8N/3XKW0tPzgBUpq0gpx/Kp9R705uVlD0LqK8q+q2QWQ0oMzzviYr3SyGQ4h6qfDvdtvDSKWpSiYtqwFr1rSWHdPdsdtEYgPq0ptWyQ4g0apLB88eaiwGw6gXSbPtLUk8iwaGelba/HncVj8f8sz8f0OvG10j98bkDi8cxjwYae8YqS+GZsqytoqQimd0381wzVM6ExjhdNruJIrQfCwUsY5T2DEJU8SQsDMK0npjSTxdosvmIP8Y0Ojgeqa/ShTdFLtFlbMG+jDgVpdUw2dK+luhWUw1NyslrK15Q2FoTYjOanLq9dUaSGkvLrsa4Bg2SbkdFlk+xHjtO0co9mv9y7lqUClK3LUsMzcgg2tmaz+FNmgVtmGcQRQkdhjCtZ2vJw1bVNtnqfZOVQf7ymuHumiVveGvGxhjRkZtT7iEaDh2rJTjrpD2DuRPMcgbvj0dok1xKYzT6+wDtKke4caIHUjCYYicatphNjXukBpSZ+tv0aMiTR1mAqemuqWlhaNNYb2jrjvdckNv6qlwdRt4FUXJ58fVGNnqc6FDQRtFBpY1WsGc9Wxl+Kee3c9TMZk4uOmWmZ9V0S06Y8E/noY1M6Zel2xvx67UfQT0hoi9SNwUNMXtIKbIZng6XtTtG5Qm8nNtt6HaYeNL6pJoLaaw82Xr2j/7ry9YtvvTgyAhMSuXmqXehYcW3qXD+adXDakF3IRaePFWkcqNYYPWl2tqAV9QnI9+utV4t62o9+qZNW4Rp49GKzgW0RtGM1TRq0kCfXkHHvzELMdbsiGbk+eKqNtXrtjUUcqM1FHpxGtDktTqMAKNFXu3FeaeCcBacYiK+Q3DXyvPFSlJIzlafdUuMDtEvBrrTVMyUd9DlBtJGmFZ5mTbTQGl7IoxqHT53i268xwMC/6SZx5yQc9rshxQENpc9bTunwY7noMU6dPpA8Eb2RNsRKTcdJt+mb0twXvx6iVFb9ma23T9WOfNVEoZM4w0vT63ukzAEu3dYmbBYYayPTv0QimmSlWOQmYgU6eXy980Yp1RXrqj0ksMz36fozv6dII+CuLTQGfw9nOhrSCHnCKY8ZQM1irr9pPqPK6Eva2KXjm5bkCMikXmIml7k7EH82zUWsa8MgTTWStZAn0v1E08BKVQo6Eood1i1K9W124VOqnizv/TkmOacq9dGdpCcYYCwXGWYziBvw66adRjpAzREPxpUDR3lGz8xysj1S1LK02eZuczuqmvemztwUaOgQKdFjZ1VGUtTkFdpAwH0XNQBjKUfTCQ3vG6x8D2zZSd8qfy3FNvUZmKIGwjjR3v/ST00j6rUdbNp+gQ8jUYW6X3v3SD3qtkZpWjWTyho1jmeKjAPT+Iy2uf989radjuBTqSCCB9YNqP0KSbB9l3Vemcut1VUPpOE/WV7t8Ucu6tahVNLZT6jLPsCahmZEN7Bqva03qiaPVWglKOXPqaOixMBYmGtA+A1qxNpAGw3i5o2LkCIAHqJEiSU7MaUa1ihF1JcxTW/dcFEOyr4kn2TS38T6+p31tXmqO0xnqE8Sa25FnQEytZ3XKLjhzSb20zqY8B0WS9k1ahSfZUE42EMahQ7Y66VL0taWeazRpwjZaG1mBhmrSCuNvq7fpwMBKxCCSiAidg0m0MZJUQtCOmi8FpRzDWejlWdjkSMeetfU7sclc6AfPQd5QmTjRhazbmmz275Q3ks3goa5Q1p0YujC1e+V2Nghv0Wq0SFt3FFR0HmSZKmlGYNaPT8KfkyrKlunkctKzZ00JCFtW6Fj6hQqQWuIJ+aGSXPSROfi0OfopKjqw4zDXhxxo0ex9l3UfcjCcl9LPuWVmBuJ9FZvV8/QfJ9dxS+wo7vMd1Pr0qoVFlWmZpmKquGCmg6nt9VslDs4Oo59RiiLU9KbOjvPrIYRpC2cS0fBKUGq1dg+buKTMAG61Zpej+M37u5hjGjRihOzUTumdE3qyER2cq6HFD7apMfBjwVL2zGvsztm2f0dM8ah5a2fGzVEyzTw2fbkiaea9C8fRjKMZvjQS0hMPAcZUI/oQLMSgilDzsWUVErQLxSngLW8b7m0BaXjWMaGzsBarWCMbXjLupUUpejscw+gOcjqYyWVnBCCdeRWQBKy/EXtzAG5jl2jCuTmCTR1OMV0zpa/x2gTSBT+Iny0r0CCbudg1XZGoih5ypwg4yNakwTBBQXSJTRcc+J3gtoBSITmpgUTUJTITz/V16szkJTQz2FDK6nWlJeX3U8jvumJeS7ON0rRl0iU7MVcq4TwlvAMNST4T1tRnWq9iETN7QLozspzt5x1mCFHikT7OQREyVTkTXaiUC1fSUTFpluS382TUlehac3hY68CyQfcLXSny9yUJwJuTZkGQa1ixic1MmoHZDJUc+O2DTv9POZLylaCCT9iaBOu0wFdQ4jkG/qoxqWydQT6LnOMICZ5yNLRQKjxtbcbPTa18NXhEMNRwMSOZ4MyLl9U1HnY8jyYVygXX0VrybRqO/pyzXyb1OSuV+TSDrULdZTn0QKaMLVulJ26REbcP0NbsUKcXqrykyS1hjwTIGGV168mRTMstnqb9QxT+eUF2rxVaMtsQ0aVciNdyqxfj3K1ALRBeTTGMaTTxRWkQAR2Z9WvN1ItU3ok5/vbqZkz5WfaXda1zr02jNs62o/g+67nnjyKRg7Cqhjc0AbQ4oYqeBOIrXiht6nCN6xq/jqA0rsgJNhLIdENyy7tncAhgyq4xlM1eJX215eScdWDWLU5ORrSa7mqWCdiSLvyRHcJHSZDnwy8dQ6DqCAro+9PiZBl6Re1z4TSOlpRkF1XweEMU9omYpw02KArsQQLWuvSW8oGtywfdKv0ukQubrVSyXvjylzVb9drUoaelEMQyJXb0SycIDbkAz9w2txSHmy2V1QpH07zT0d8jTfabOi6cKSsCa2QlpcQQidLSIfSVV3q21VwXlKCXnF135l+olTT7TyTUielofbClw1WSYoyf1mGhJq+G0jScRdyaW0wO1lrFR1aFBmT5eDQynxfC6rZQgL1vogLYYdWzY2ahjf8vCL/+ersPXtVwpdskV31iNzZqf1DnJG0dazsALRZY/zaocmz5roTTeBdbqFKcILy8Z/Z18bQ9NGaoyXWeMgRvl8i5lRw9oeqTDs9j5ZNCc7kwwbIS+pXrKSKVLOYivAcWxeM8q2CCdPsuh9BKXJah9icSWWg4NG5fhcfn1e1TFAJcYgxAaiEAYSmVHlKm0uBazOp6aiOgXG26K4UViGTgYWe6zeMDIo8nuiz05a+cvZaxjB0Vy188ZArzKh/zg0w7q2iWmzLAwqcK2cJwzKgWz1dXHjEsea6PyBWT3kZsYGyeQrYcxNOi3rsjTMjEMLYaV9mLMR90UdbNMOmqjd2aWKJgi8WZThPtrZodyTlrezQmdqQArq+z+kqi9P3po1X2HJy1/pLMiVEodYOYp6eHhWTnFcuR13vhzLPvd0KpvO9MxQuIEc2N1nUZrsbit29SPvhM8DHASj+aD2L1HrNneZZ9shinlvef+cJpW36OTrW8LBgKdxXtc1pbinzA3kMSD/UOjWZtTqJMfcZlxXcDm0ZmKZ8GUqq0Z3zxQn3zbEY8VUPm/VQ+axIuiAvzDGo5pHebl9RFZwrreehm+Fb8jw3rSTW+Y76mdtAjfXoyrGFbArXWFArwBZQmzxaRjXZbALUBaooMBet9eGRY0B2pnji6mqrwMYx09UYarcWaarlMdCL8LgDc8qhQ00Xg3tVFUvcioe+6WiUj6ipaPSGUiY1XMYJ9VmH9OfMeQSCTH9Sv5o0SpxnA8oFoU8l+RiDufq7khSTwlr9g0cTOsOogjvXlcRwl4S2U1mDORadOSTUqU3sSVo5QRW+6WqCWqynKVAil1oczbKvQqsT2GD0MbLk16PnjpWWqUfU3WWhITBkVQloy+UTMAlqOobdyYFCFqYHlZaSxY2UKKCidwRkHViTVU9RxdcMWqSM2DgxAwpznEgQZadSMhgeWY6g36VSRAT96qIORxYzwjxTnuWKh0MZUt+EO6QwiaKfXEshaQMCLiaOVpH1mUZSsr6/UyGdmWryMDjZIRWXlOjSpRQehh3jhhhbGSBjiw87VNVr/oawxaV6mr9h1TCTjWy39k2rpOyy8LvrWr62Z8UiGt2tGDgNyWVfL1htfnjdVfncBVdXm5VfwLFKa+dzxc4Dweb90F8YEDfdAqmrzv7DFa001YwjuUh8YotG0kdrUgYEm/ZZJTPZaDrpBfs1iFZZTGuXe1bMTHcimFNyJyxjrFHkVFrTQjrzhmTrUzVQrtLlMlxBdXj7xaq2VtfJTJ1py2JVea9OCriiBOZjL42VnVVSdOGGiGYNdSdfdMyxKVFyAZDc8KK60Jzd0BKVlmXEiyGmiTB0UxROKGjUAYc0xGTKSrDAMxeHlDMwiGKLq0WA8o4GBwiRc7ifgaXZRXcxtHhT6md+zoubFM22vC2gJwZ1GoAdj84dTLBuVKMMSd+GdCVP9CxvomNnA3koPremXQe6q8Z0yTtdYEwXPTyTpw0sQMGbmVvjU5z5CvWN+ZbTToddKrQFcu1X5dHLDGeHCv5cnLJaYjtxzSvAmGzUS3KE1LtLLBVBYYdkpidJKaDbNgAeYPsg1qxtgiwrDNIY4NgmbKt/qgaNJOm4a32xt1j+cU4Fgm6tL7pI4EXUn9vQdzVXqT8ob9n7cp/X9Oo4dSGOGdcVk4bGGp1CY1s4ZHcCDehVi4aHL6+RHLB4DHLVkSMI0DZizyYcX01mR8LS3xTKmtdKS0dV+UDZUrsd8h5ymGz4aG/rcMmG1NTsoj3rF6yN1nyWhyo+iYT6Y2T62Ndn9Tdv0GpLFMmJyYMyorg6LUMyQM2aTAzjHhBd99nAlDaiZ1gBj3KS+klymEnAl6JFTl/kQJqqEtKGgYiDUYDZkbEDaZYf5cAzAFdYz+KS0manqGjh2nrD2npnOEAltt+nvpmXfEEWJnsJyxuRF9imZ0AjJTxr/6XSTvRos9etznLjtLHTjTvoMINq0zSUmsGc6dQ1qo2tVbdtmY2YhMzcps6bIuVptelUtoV5RszbToXz3ehLdrMz4r2EuczM5wTYq3sWb7eW5LVBzvTaVSKbknSfTezenwdQzfTjqjc0ZtptVSTZXDcYesYFFZVtAyoybxbVc+cZbedqWaUzoyhVKaDZkQ1XUwbKSqfcZjtwb8eSBIGDYvWhDeSaG5WLSJTabdx6Ts2FDdTL3qBWVWJa08HybpADDcJ4h3t7D5OofNQNRe2Ywy0aReUkl4VuspSEYEbMQ31Gb8xEb+QZebuShuiVzbUjSETFQCjcebGe0YVoiiYd7WZgMaPywjqWaIagpwH0d8yEaUytyzMo3g6uqeX0EScI8cY2Ykv1Dsyo7v6F2SV6Un9rqzv7vQ8lJdcV+SD/yTfvZbXug6ztGZVl8tuubeMASIfUfubYduZbwOhAbRdYflS2Y7LABcLLU2Y0d0mGZukFYsm82aJNKVftbjdv8jnrZ1rRk12zW2awr/raQj3rbfzwbeG9t+CGUD+aGba6UuzUVA0rfthuzNywxz+XRDmkPou9x5NezGUY3zH2ZVVtUYW6CSV+zIldZmAObMTORYZ6mCjntBUb72MnnjqnFcXk/df3tWbc6EiOY+yT2ZZ9g0jSLNFb1mWObpV8bf+c+OZyb2hqy09YZSdXeYuwEvqmjj3oNToVeK9uNBBOAGrHz9BiujpTradM+crjR0YtmkYI2OyjJ56q+a8ruxULwVPvOjy3vHD1ld8qR+fINFlac66cxebePsvzvomvzPQFvzEbehGmJfU9uj2fz+2ehmh2dHjG2YjzzVdTtf+dyr7ZfnjlrY91ADZtruZbYDS7khKFtYLsoGsbLO6S4aAHYfUx2VnU7VbJ0QYBvUHVvZKLGljj74dvSbJE/6bMfxt6c1rtE1bJ0eCmaLM1Z9NL5UpKkXmdIdIaPsIFgrtdZarV5chV99OYAM/p2QsQSze19WqIWDWWWK0a2sTjSjz0UusiR38iKERqT8TQKVicXyfyMsrimUvFw5dNhjlzKbnYdh5WuUPOR+YaIn0V1xEg8yZzKkgpYeUGTlXTvRgdG8XS8qJuaIMyVPfWQlBrKWeetzffR0byWrUbGyi6M75Y6pBqSAQXGpzDrR3NrhCl9zSHngUjxT5OXmBnWMebDzNByzm7BaOLIRBFWyZo9KqZiBVSefTSFhiMyqbhPm6IjWGXWxJwSeuiMbW0VqN9nb0heZdDiZwkDpeZo9AEcvl3FkPgvqXS1wVPQSatfW1jeZWrmVSf9UEsNE8SnCQjThoMnIwawbJq47fLmxwAuva7LHfoNKdsgMHbEQ78MsBrZZYYqCHfnjUHYILQDZeLepkCpB6lPjZBkmmTtbMLieMwLtBVTSh3e2VeuFq84REra4zdk7+DVWA37uCT/bicEupvCMxQxwEJOGjWZ9dR1dgj22uwHklPCrhWY6VYruYc1WGSbvKYIaLs59vfrOwZIo4iqKTG7oS2CVZjLGEWftDCxerTMhVW75ZCN4TQmiVxaNoLdfCacQW6OdEuPrZ8G7r3SYZ1xxgHrPssxoZEqj0C6HdLrjpFWU9ebaAnRjzc9dnc5PAWT0J2r5p9e8Tu6A9rFFpgQuyb27hVZILedcIL1vqUwOmcySLBns1vOBBONRf1DTagV76uqejvdCVy9mskaNSRl7uw0fcNpbLbBuuWMWjsV7Ixi2VkvbzSXA1N7JGCl7ALVtL1TRA7PzVt75GZtbSKfV7MKw0QZXViyN4zW7eZZLrPvYLrYBbA7iJsD7d1tzT+rYw99LeHCxraZb9Xu0jP7Vab4KR1bEh1kM6lQtk/rh30VelfEHuVdcq2QOye+j0dUtQPLVSxOj65bbUeB0c134tMLf/pANNahvLBmSeO31kAd8Rg9Tz5frldGA4WH5YoykjbWaVXuSbEWdubJrcTDMfa3Di4RCzg7bqjgWbkK2Bt2KvmYNOULaEzzbp8Soma6jrmfM95KpLbSZWDLrMzEbq/cRKymfUqWNv0ztyQlrHnoG8oqd0zPnrUz89Qrrp/eMzr6cptelQ3rnrqFtVmYFtEJYt0dmfjO7mf5pXig1L83pX7n/ZfVHmdBygtun7/GcJ2Xxtlj3GdfTfxoC6ZKRQKX6a77GbR77MSBJ0Qeqiz6TaH7sWeW9WjVsMqGSkzLNViLSNs909pKRMqyURKqogQdaRM4oaZtBcvJxZLmOfXOidnGEkdmwYlA6/oahv6U3FfcG86cBgzG3C8zyVh63GEs2OtKPSRajmMCIlJMIm0rsgKShMDZTycmiRgVVY3S82IZ7VyPrsSUhX5SFI1Ts86UbOPii2SgpyxSJ5uA6xNQJSYxgDwl7iDaaiyVc4KTmMKqSoUj0cblCqVTjF1XLjqZyjWh5R1jmShrSdZwtMWRhgDTJyVq4j3LO4CnAG1JxDc48ccHI528bgbN7cTg5zcNg8imdg8DSqdmsDNCUSS5UtkSP4KxdkrkGkpCZUdpKleUhM2Rz9Exv925wdMUQ8HGK7CJ9gRxbjt029Sr5p1UYjGM29Q8SSI8iKCw5yRtcKwId5Q86HWlnsSrSmkmOGjLz0KoTSrnsPgPiUsogw8XUQg9mqIg71mNaGqjCTGabGgRlzdtsjsZbLVGZuE19kKGhSYhwcqzvLNK5wxVmBevdcBWjUN/3XoNl620NrojWcAciFt7FaKH46TeNqMDgEyyWBWz/dEhs3jxMQtvtSvRgtUa6QZMl/j4yOXcuKoiGOcB6UjTG+fyEpGr0oZ6Xezg8CRc16VKqVwSRcD6QY1KI/vSr6Riqb6h0HcI83bBA9D6II/HTotcwyhF0GmOXh+TY+TJHgMyZMeizwHlFZJHWOWpHg7R8YZhnpHoUtrU3od/hsdS0S9TpctqahqUBKz7glfaZ2LNW0MtjeFOYo8AqZpyhAvI+lH2NUFHiXgfLweU5HbuTHgkUpm2MAYfoog2G6UC21HQDVw84o4vLRhdVH55ZFHHI4Q5CZv5HA+QHSbI/IyF7suAoQ3ZHgBFpHEsrKt+CzIK7I5nm2KlJHst3y6OA/SK9o7pbTvlJusBtNbuHswHSjYt0WbhelZST0qc3DqG2TjadobYn0Rzn0zbqrdyWft37Qxiw8hiSBK5Qnori8vMSV4H9IMubNScXRbaWqnclq3VOaWCTLb7eSIWMuaKSFsxjHpSR9AwY7zZaA+j7m4awHdkW+D6EsZGGCSoMU3X1GvOfAE1UdqSDCQO9NHmR9w7arKQ2p8U1YmaH6MdfyJOFyWJ40qcotVaUNC3RqletHHoun7HudkHHHY9QHMBvQHUJvNbaVUbHHBs4SNY7LKLiXrHJFKjWSOWrHFsxs6SORsSq7axoER2wSamc/grBkG7qJSoJFpRsMxXr3waww7S43Rlk4AnMG9CRpVErXB6cxZnO148QniTcQH71qk9WbU7HsdxetcBtVtijbYyI3j3Ct3iirG+vlSFQ+OKZBH9Ovhy2bWDiSMI+kMVDY/uEAtrzHjqkM9PQwkLcXRtWAVp0t53lQoMI76bDJmnUMI5pdH83rQ9qVLKYIln2T8loL/FERKUblknfandUMnksoVZTKLiJTtZAk9v0qJRAwbS2dSPVcO6yQhlzFxCsWh3VXpL2QkDxhs2KrOTtE/6Wj4r03InnQ/F01UZqHi+RccPRfK8rBrmE7Q5jUCfslVM+iUKXNCJKq5FXsVOmeHfk1oLOqZKHzbZhdlFVxoxXq72x+cDaYk/Cw2Z2x0r0m68mVCmKh/Taduk5dMmg5IpzbDKOBU+o57MzKcVpki6gu2amB9jqQuewTYS1UWOfGdBI4PXzcuxRzUQvWZ2zw83wmhn4HAegiq9yyUapHHc6Omb0n+SAwGvxSARERYaLSxT2IrA0dS92dmnCGSXOSJqKCS4TO8edtWn4GXWnoPSNqMLkmQeXkTysrrm8FbuJlxRmon5WKXScCxWTd4pwEq4yRUELhnGM8nOMsLgfy4rmwlEnmvyuaO4qyyoNrCr2m2IhbCKmlErs9ngkWKySbHLnmb9yajmnOv2fDNvo4wMWWPgV2V5MAk7mNfWQGb+aSbzw2TBY39SGUcristWpRSGjKjzwGLqvNJxjR4Je2d92xjYq2xQ1KayVb4UjqvS9tEzGnBgSOtMHq80OjZIxU3pLT5VLYMmU68S2SXqx+ZWSuaus8quHSGC6VG8ZdkOnqI/2nSKs2nv3hmnZE+POdul0daFSqOSnYqOaQkrcZRiUmVQzFT1Rh4Uk+1oLNxsfsF7gNcNSiDzY2ySnjlG47S3QwU1zk08KkHJwMDh5G/+qFw1E7iHouFUnSJk9nFedoLFkDlQ9g9WpaGzyDMSSf4fO3g6/rgtQ9rUQSduXoWmw6FOPBzm8rBlty+jaEdTtQGm5KRZGH3TSpGWQTYBAk7KWJyucmQFE8CqRZSXvB/NZc/wh4KJdnDQ9bUuCk6TGbPicvNVZK1BixdZTjF65s+BWChUQgs3jPThTgoapG2NoPhjSarM4NnvSiY5CmWjc1o1VnTzXVnrSkVnxE88Odumd50pDD220/Ms71KJ9GUj7dAAyhoe6pDOIWiMiMmWqp/BRlw+s4lUOdS90UXbk72ujp2UJT1yuYXr7JczLbxWZm23PtJnl6h+Q2Di2VweQBbKDjYKcYjnnXmfxMF+SFo13TX9hgznUepUn0AWokw6lXn0kUr0T6lWhGMCb2Qk42L0XEjv6lKFZnmmbtybPWyMoFSJLephXseo/CQrbnT6sbfKkBMG/cwaFjbn+iYMSVUnqxforUoGT+UMRg1hemrEYCC1/HIWpXwV7oBTrtW+MKyclz66kCT0awhx8eQMUPgYCHqaAl4uqcCaaLbsdNHSpz6xe0WeVUilb2wjjHHrrZLtA8Hg0h22RAn7VYqR22MuBUXkhkedTqlxLChiW2CHMrsahmkt7uHo86JBUt3AuVOa7gVAuVSzSVDtTy8JY30F/doK3aTVm6NcHaXuhJS3hndta8/9KJ09oKgAw8U8kt8NayBjzZxlMtRuYxMJNQClW89/0O87n8nW0QZ686XOJHDNKrjXnOgBHlnlSS51HdDzWhS+tmmHQ3OJMyInrA0lMJ46N1Idv6zGE5nLDeWhnqhU7GDa2ayko3D0XcgZd0Ze8dSs+uLmjh8UoiFldk9v5V6pQMbWCToTSpWg6idlfHxiUHKwQ51U9sY+y2nfx0Wy4WyIftlHwMwCtkBV1bw5bD7MYZDHz1uVtg/Z7HUY4fUey/oc1zt2XLAzsckRypcMrIYMI/ovKvpNy6P0/IW3Bf1Ulsu8dZbN8yGEoIj89h7NeSgnGCfYcGuM8GXE0YbsRWfckUYygUTy82XLy/AcTy5aXFcnBN3Y5YzynrkEAyGqX98pw00ksblnhTZdRQijqrcobSZQgiLNK7sUdK/Y8gRWR9usCz6LK/VU4dBDqrjAq8/0vLmAVsOwJxnzgXpoXr8PoCQ4joISrK/FXz+R4d5c9gogK9lX+EPlXG8tc9VK5CKrBtOVW+kAVSKvAMRem1Xedt1Xb1UQgb8ticZKXJXoRU7kT89OOvDRTKSnONK60mBUES1Zn0/TI812GSWi7tHKbqbeSbLk08IQVldE+EGEShigV5ctNlgMDsE3x08KvaQPuYhVDX3FELHq8rz7U2uRc7JioUGrdJlV2y4yltuZrS6mBUy9jOWUJ3U7PZU4VY/RKqHB2vAAIZeDDo23Eobvr038mWVTlZeQzBTrXuFGpXFcuwmVZDPlMtTVz6q/JSQpvNXrhRdHjXiNXJK5s4RK9flvPZY0KK1iKv8vdHhF1qU+q+2thq/HXnVrnXDrkHX1hQXXRS9XX0Co0ak6+VCC6+wHY653Xpy6kb5y+XDThpXSdKERWmkcvHQe2nUgY+Wnr0WzE1pjeXAS0Pi8S9+LS2XZMb6niXT7iuyMlBhHNOsIqR1dNImmWtHAShPwvFqelWRlhOFndJUwGQbXYirz1rkkUw4DgXSX69Vx9fdfQzHXmslm12m4elw3mjaqmqFRNsMiuBOxeoLEDLVT7GDkZ0MiqPUiFt3gQ3jn03neGyGZUS82xCPsrxDWMWHgPzdik7afAz/XM4yIWeEd4XwLVXERfQfLusdT0CC1GDfLnPn3WW8odyS1iW00yMpkS3KOnH3Soi7sUshkhzki5/DBc/vFK5dIcFKw4Xkq+kMLnLwSZBgFbpnNH9Chlf9NrPi0DAkgcwGUmgQuiXrOSkEGalqdceB0xIVGszUgZVxEkkY62+SRRQ8pSH92ccOw+qiVzNNYV1UejKEXevYKBxQRb70rm8uJiZnZfrZX2Bj/UlueAXgEA1nS9kfUuW/G2URkD0DEjKO1Idd08TmuSkBllnFngd0grhlZ3y6JdTcH67vS/8iLbnEq96/qXnGcoMc522nK05XreSStkgZoVnFo0SMiKSu2MlDHgsswqnDo2Lg7tVqnHBzZLDU7tyWTrtzy1EVqrN2lXU5VgjVmUuDvU5aOPKxZ6i4iGnwKmNy/hnwkkTZCDeyc375bVa280+/kTu2pXVc70Qd5SLyL8QoMOFFzH1x0iMw+kS8KCZyctPp4niqZNGAeABtAS42cy3F8cvE5TcL1FzN42jpAChVtk8pRtnKzgNyYW5sUtpiFY7+fu5IhgtMCpQBt5C5lyPXEzlBk9bURXkO9cAh42jM/msWHksnHTmRh9E9snGrXwWz24qHPLTwGrkXZ3R0GUNYaltkHemBWi5laMfk5IX8Qg2MZ/oF3QGCF3PK123HTmzyobpKmu/TJq4ji/EWfYa0F00AaDO8aO+qgynFpkv8jcdwUXMwtMVXAm3pzjKEy44CHG+d63U513Oqla63ys6kX3uNV2+W4q1Feb4yzpL9yieSFnwRyDqdOmWSmJnrUVFCRcoJDtyvVTFTqi8qlJFA7UoRwvyLa4/XHGEXqY6F8yVm9EG60kbnQG4aGXeyB1nXmtHJwgGQpw8ZTg9XbDRhzg3g9W1HSKfg8TgyM9UCnQ3pltEQW21vn9Sgh9POjngkUr7oTY/I3L9VxSahU738Uvx1geTXcvxfr3EJjNDs7goOiw5dzsJa/oFKg43BycJ08PeujqeTZcIxkE3Xu2Xcek5Lmiy67cg8kJL6o/rUv+AiLsm/XUyaj0n2DV1LCSQYV7fNR7HSm23eW4Xno7SLqmRhwMsJYBOP5v5SeJUCISRhnkAyfLoW5a4Gq+/bqrohTqDZgqHcHCMnL0oQDaydMgqw7Tu0J0n6/lVIEuS+NuTJi9N/m4m1Cxvdcma30T4uBZGBhbLbJZiAQUW6PoTrRLwMI9+2oC8vkdKyS3fy8Hq71JHTjM95XNQzIkqBlQG8SvCDRQ5DOd64oOo29yaoyjBcpS62uBwh4P21rcV5kG2nNnF/N3W6TN9u+aX6E7T2RRr3JilmEQAGYvHkY7YyKGlhGUh+mMMCDQGN09vebqwWrGDmdew3igGQXYj03WT36TRm4w5xgTt1zQ5dDevqWkjh826emkDQKDUovfsUkrWSVoW44Vb6aWmUU2u0nn1fMEvrR0XqEzuDNVVQcRu3iEWzl2bqmSrwSDUgXXfQE+qTRGXDnWvACC4wOEtQH0KC7X0BqQvghhnT7UynsnGfZP7r8kzkq2WIXi+hHEt60CPjSjhlpSUuro5T6lOuWJbdfau7f+jQXTYlQ22hU4X6KV3V96S33QRlXUAi8F97xkv6infv3Kbnry+Er03FpgyonswCHc9hxw/p3g2AgdUWeNUjnXaiPeHg8/HKbmNy1sdCP4DWfNPBkO3sbIu3Ji4dGvRmLsFi8e3Cqp6qNi6mU1FDUKDi+U7b9j16uhktOY/vcX7OR2TjDR8XHTk4oDRoh3UWiSQp0d7oIS86l4C8oqHtODU4qCdqZnZuOE0VYMCS41a0t2AMKS4tMDCyB1yRl+9cRwNm8Bg9qRBmCPCmS03qtU2HOs+V2uyxjcl840M/5j7OyjFvnf6ij2rRgR2rzCc9xjlfn4NN6q8S4y8RJ71SP88SSIrgJH3Fhr0viyiJpeYWMMaQy7SKbScEEd6qradUzfh8NEepV2rHpW/H9GwbUsy9vkZc1N370qGUup9JUtDn8WQ63gYY+vfy3PrBXdiny1qTT+MyehKqAzUhMQy0XxCrXAoyLSPLBp/VULGhl9lu/Et0ZXvStW/7jBBCjq3w7uMCLtPShKYI6KJ0yMpkEIWOh+unT4tMrvbq0PPmfyQD69t3SJoKeW0+WnjDdTPwh8TPmh4d3PCsBUirlXOL8DZI4ZwVSJZnLPwgx7OVXgJSi+pj34NO42Hp89yaay5S/KXMsbZ5rPrRZtcqg37OPZ8goBh8rPZZ8t0jk9+GxZ7tHS5yYij6izPtu+nPayGTPYyfMZYh+zP60CTPJE5PX3fekbLytuSRlmUPeK4Gz2nSHWYJjUKkOiRnvLUcgQjfn9YOi56mx4fDXZE6MWS20P/MnDsqc8en7sfLj1658UM21n9sCT5cP59Cn+AexYDgrmMQF9UacY2rKVfq0WMaoBaUuniULOlPP+mSubX8UES/fYPPHS6QN1xARSY/YW6Cj0GdWBt4zQmc0S1YYnljDdfSxBoDPVu54jTTeeK6zZVPQxql9BNB37q7aOckxvabA3ihJLRq0zfy3Adk/eWN3KtHH1/d26r4mcKsxNGTu3U4vT/c26rF5fcb/fw4dTYAH43XVZE1v7n+beovXyi/72FvU8IA9wvQA3AHXjjJcDCzo3pzdwvHu9Czch5gOfSXlRDLbubNy/xXGeyd1EYa7CmUxpTdrd4MLl/Srg02cm9VsdbeW8NTuFYflVvVsjHrfcvTiawr5Unf9bHb2jVcjJNHraIUpiYCvd+aoMFzejbMFNxLfbZfbnJOUrybbvzIrjOW8lZmnmDgsPTbc+YFyENNebfn758/yjsVZ+5fvtLbAPSuCvF9rVRbd269glH6UOZuGHdiXtbapKvcpU9mBV71mEOTijx3rpGAeF+TFFfbb47bOz8w+j4mPVvz9y4zm9jQBnIOmX2BzYHOIWjf0G0sb7VLm0HA4fXddYwIwE+tWblHbxZRxm2Ho9SOTlMSQnNdgXMmuvPdNPuKEV7vU2/BurVSAzfUUJlyUz3qIdyCQV+FavrHaWg0cW6SodayWZ10a0L0G9nwW3WWYdYxklOjOCg9ZaVwjUl75c6ZvVyAjvIWL3WcMQbt1jbHvEd3XZazrVekd1A8ftTNXkdlKCyzElXX6+Q/hcV5ZQ7uctpvrPvjTM8Za3JNX1rGhnT7tN+jETJekkGHbumHMew7dMaaMMhg7DTMZCU4w/vNBy+6gg60Dodc6qU3lCqMNHbZvvVCRMQsY0MYU8xVq2+f061c0Kl1earLW+dmut8Z54JmLLOSmaMMaf+l9+Vpvq8tNrvwQ2Txt+iKZsHDcX/cPi1fZCUNjtoNE+JP6DF5rsmVFtqq6nmNExtUMa9l89EBGl7XelGrHQXLawTtBM7p7CdXjc50qo1ETJeEzOC16o307pmvFehirGs10MAKRMrF+zyEIvqvbdRuUDAvqltakgDyJTvsr7/cgGXI43baVXfutcczOv0SEP7Ptrvy3uzsfK0rv++0lpZ7evbsU7xchd4TbyKzfqud+1oEbszvvlWSvf9ffbdCgSv7rbRVM9/rdVkYiviDd8vy97Nvq1VCvNVeMj8Hr7LRVdW7dteQ9r0UkNyBcM0KZpwLrtUbUJ3c/qFmRO7R95QMwvcIGB99W7VvuQ9QYatbrwmFH695xGH/VbaLbT820mGyaEmcW34KzsV4S/1G+y1rUGmcm8rTRRGsiRlkg6oE4hqb0ODofiYnle4MbuiqVVjkZvqgY3UGhrg7E5dHP2OiclFiuUz53Qt6mwzRPRKTuWAchEnty2aVEbINOYhigzosFqz5+m9ZJyy+J4CURnH9YclvrfE04KLQrOI1C08KscgwD/ot0/HVvosqJWl1+2z2qyhSTQzYTUwxqs7wcVGALrgWGerROSK2rXznlgo4dci1okav1wzStMMI9Ey/Xhdh8U9hlTaYWWQV45T7ethjh2rfvcHqfvIdb3vFKcatx96NThw1EnL+d6tKwh8fE+Ua89j7BdVvY2Sxt8u9pjbW9ogwXQbJvG949X/RvrfcfyWbm9TxdF7zXscvz95g9g5ck9Ch/6SjGb6zN67UPgFZ3vwFecvdNcnNWsJsXAHY/vbLmljn+e8vhKu9bm9/8fI2Zsfnj+iv2kS1v9dRivY3rivSZwaf4bZ35kV4R7CbbSv419xzd+YS8mvS7b4JTyvrbcYr+XW+DxV+krbd7KvubehzlV+4w1V6X2dF8Bz5KrjTcOxav1Quf3az86vZgng8cOf5VF+yNxEppRzDczR8LW5Ur/zinBBWYyvlFsJ6018u6CtTmvBlYsSyxxI8ad9d0q17ndJjqHSW17vmsagnrZTn2v6qmLQ/qVUvp5dOv8Z33d56RBap9mPd8Jluv5lvuv33XaET1/4v9RRBab18WTzOk+v8dW+vt9qsSuz5eMgN6aWdRmAW4PfyM9DuhXG7hpTKZdQqsN66qoIYRv/0a3TfuZRvA+8uMRCUxvHe2xvgXZ6AEjvxvRt+1dRN/VU3iVJvSm+WK9BpNS1nhpvv7dqMW9SKHs6AY3oLkNDqscNPFU931WM6VOIAawsqZzDAzVsznPXaVzGSZy8fepWQ5lt51MS2PSn2YLVgZTdzJat1nPKxVSVL4UOnYl+znsbtSHEfzVoVEePW3SzVgx+ZraSm7V1KUHghiQ2PoiANS5R4t1HogNSHHcNfGnaTfLe7Tj7mSDab9SHjRJ8sQ2/Vx1sTjDfemyYMiUGhSbcYHKuaoHmkGttfqt+9fS+eTvbbVOMCZvrffh42IvmW8q9SwbURySAvJ56DNuOqC7aFB8Sb2pVf+hbVffhwtvk75DXZT9qrNt7c1eMbbaDa+yMgA5HmLt+WyMS9vSHt437vQ5Lz6/VcdhxuNPcCiDvZdmVmod6oM4d+5cvbtyXoZpjvIp7jvFiQTvCTiTvT5T+fMh2WvnQi+f498GvLJEirDjkpQZZsI1Q+eaD9iQXbw+1emHd+Pb8Derv+7cJyK2Ti7Td8iWMslbvEskX6flfXTliSEL4H97vEq37vJPomfnJGHvk7Yl1iW5b3z7cGfKV+nv8V8HSK2Zo/tT/xNa96qfD2Hf9dt4qfHl/a9Zmsyf+99Sfu99Sf9tfQy+Dm27sRnJmrzobUIBoDrie6vGkn552Hj4fvOkf4/fZZfvgDeU/FKY/vnRC/v2qzPiv99Wi/949Iza3h0Yj5EPrTDAfAq2Wy6OrwFAZ7u1SiBIqXjW1Dik0vbhKZE4aD5vsGD7/d6Sk0/FzKISHKa4yhD4CUxD7wFblbHg5D5LLTRzYV9So/jtLhBa9D+QwjD8KqJyziCzss+6brs4fyxm4fhw3RZmFerLlKG8NyT6EfkD+LsFyXtWEiEkfQCvoMpX8lT8j5i8ij/otyj/fW1SSRW6j6r0mj6mG2j9dL2Yima+j9Yj3ZUamGtUaTHyimaLnKDc90ye1TT/wfgEA0/Bgccft8e97r97W7D8c90/l9Nguuc4bPiFKMoW8zLoDvq1ZQwvdNrintZsCqta8Oon7+55wc9Qfsw7t0QEGfXKCOmiaeYcK/aNvwpgJDUKIRKyGkIjTD2+n3UfOrLQFHgzKibS/drCsL7HwytzHiRh3tw2nDtpU0Mr39WRBrkwcAybp0B0aOQh2ubCm+E8/hPFVGny+IKmZc448Ohd5i2se7AKQV0+DUAes/bRX7dXc887R7szAzxOBgbMcNT5p/DvCW/6AzFdELtLt75pIPLqSaW81l0a4+dF1kImKDbmlxV93ZSfudbSfxT5tr6T9AbFl+QHKF6b8E5faX6tr3aBNc/TVOo9s/WE/T94Y9s1SRT1zWf9GR64W2X3RiSM+gSc14Y9KBSUUV/4cN/246fDO6UgShSQGri+i1/KaVhnPQD3Qheot/08mT76b7bKi+0vc4EZYOiM30VxEZVG31ptp1KXpnrjCwjc+rDnjb5ZSv/ukMWRksbgh5ZmpahCGnRjMVhs4J7gf8YuIoz5vagx0VIozcVXv95vjB0wzdEeKU7i3Ecp+vXSQGBBbsojYjMO13gr+qEjpf5Tz541SPR24j/nEbf1OCiY88ujEj/v6dTTySkjmow7yskdsDSv8jVnTWQvuT5UiTGYKfty88Nr3SlvKRgTLDOuO3USxe65OqqbL6kMSbpjw81UeQIQYxLaAv4DUPDZLaj6xV9pLbJ/1P9cVlLZLa5P+q/Jy/CtkP/2Xg1vlg4QgCtYtSxbMeWQwOv7x10Cn8Mfatp/2svWf98nzwnB5tCn1YzLC9qGyGbEAYl+Un7Qi8AumIvEG0rHw3zfWltDCX7ALptVXQaGptlL3ovW7d8OCYvGi9pL2YPUdNWDXBRH/sBM24vES9Mkj0zNp0eVTCjFvYKvBObe/sOL0qhJG9p8xkvaL1yVWWbezNaL23/Ld0s4ywA9S9D0zXfLS9tGl2bDfNkANFtCAc4APfaSUAYBykAsy8x+2Qva3BC03QvBX8nmwwEWG8tvXx7dsIeM05LUq8Z62xMKx9HwTqMCi813HaEIKVJMxjLfiNqDU37CxVEoHs9NzIevTFSNi8oMyDOD3tUZxWGJ5YljRQfOP1RE0fzCTgNEFGbFYZZiQ4AoxUmTG0aCEsLFR8aPgCJ3TPvcuchAP32bWtFL0uGReQt5R0vRMtoHWBfHhUX9WgHC7910EGjEPtOszPXT+I1ALXDFQ98J1vXM2hfJSEvKehW2lrTLx1HKgGqPT0SGxaArUFW0wqbHbNOzGDKBz1YSgd0az0kbTfUbN064WabdTZF+0VPfLp6Ki8Ak/tlvVQgbz18X3wpetEcL2ezC3JV03ENJYoZgPC9Ysc5BELHcG0gqhISeL0r0zNwVpUTZxaqXoCFmyPTTqoqRCy9bzMjJlaAx9MBzgaAjYDFANqAh5Yzs1UA6bVKgI0A0tMT8gxQFl9cggdzfPN4q3bwcbpbmXbSPRtxjUgGZKojG3GNNkgYvAREAy8LUBHzKxtEj29vfd8r7Ag0W3Za7UIreJhU2wcVNxt5h0RnIvJ/zQA/a1NfGwp6IcQXjW0OCksGFn0Va/QAP3UDZrIOcWkqO6JSkhibaQ9AQPtzNCdsnxBNWIIX9krIKoCIAIX/X2wRlA+AiBhTnDLURe95RnaUHPcpswzDDZQE6mzDcPol1B8vaQ4xUBm7HH9VvA6cRCMNA2qCaZxDkkr/cPpJCmQqCZc5QPCMM20omymUaUDnDGtAr4D/uh+A+X8/gIq1ERMSKykXClEDAJIaV09imxIbKi5YpgsAyI08PBwAqPI0QBwMewDtkzm8CTMHv0jjRRID+2baBso8DW8A5es5hBv0OgDl6wXra/te6lTA0ID4GkTAnYCLlQcnWS8gUjMcNNxjY3S9MYRwwN/7OwZgwPiA/PIXUh2be4DF1HGeXID88k9AgoDLBjdA8y8+QINbAUD1AOdA2Bs25BRrJV1EFxlyJx04ZgjfYdh4RFu2M11W+hadFfdG7GN3BVwFmze2CtQB03grSkMFChwoU/9CWw07LXAVfTKbG0C5FjfmcrtxQJHAzI8NlCenIpZMjwdAwUD/01+AwcCFPxF/PstFMAs/Tj97IyFoLr1fL3K8d3MZ3xJWcbJmnwYmV8DI+iW9SNZ99V9bRyossi8jdyNh2CjcZKt57wfTYK957zQoTzNhnwzPCaJ1KwmvJE0n1AxbR59Y7Sq1G599VUqwes8pK35VcTRy5GyjCq8HgPjwZ70/sxaqQuxo1gErayxlqi2fJYp8hGqjDq8nZiPoBqMSrw5JFqN5n3byHAwOoxyvWfAOlnIrcZ9Z8EKUIS9RIKrNcj8fnwPCVxpnox63EWkZ2ybsXwBZ+32HOG8t1V4KPLJrDSt/aMYJBxb2QS9z9EqPabwFCHC8TWtBTGsbZ+xVaFszVWgX1GOrFvZ3tgEwFKc44C5vNkgrSEjsfOArZipYC7s9ZmbsOk1bCFoNFhBCHQ+rXz0HqhhUPLJk/07PEqp/Tnm7K+YJlAMHMGtzTUprSmMoazgSLLQYvCUCQ7JkhEoHPHooL1zYA0w0a1wnMnQcB3EcZlhFinxtML16m1oNDUo1nGJrS7pOvG6OTU9UNWowWVZtFSlNT4YgVTREBpsPSwJKFmsqjQTvQz9Oa27bK2Mtai/PGuwxKySGQWss7HNUaMZRazUg+kD6HE0gslp6ZFUgqmZ52CbUHD9WzT7gI9sd81eUTYcUPy2jXlhpCyATSrpFMDcrI6CwZlu7bn0V2zDmMXYGDG2g8aYB5QLvAj9ACA9aUd8TKyYiUBx9K0+jZA1UIN0AkbMG0yQgtaZgYOY/KCCJ41dbOCDQOwTyN8C4Y3m/LGMIOytbMqsU00LrD3V642CVBAs9El90UT9XD0NvIuZPnWn0fSCZPw9scIw9kkmDKzJfhC8TSNwrvSaWI+sNlAf0UXUVvw5SE5NOf18ALtQ+vBWTMQw9cgDcJy0aTw27PRwi8nj6AgoFnGONW+dbHGMnBaktjnfXa+1rrypNUyBK7DjHBXIUsm+9cuwprQfcTEg/PHZ0NGoVIAz7W8dU1GClFBdw6nviKe8hLRQ+RKgxnzcMPJpbszh9WqVwjDmfLlV6thxqHq9pK07PENUTn29AwnAmQzoguNoqwPqvb1ouAlrMZq8q22CGfY8PYOYGURQln3vrMVAzAwYrLlUTvSemIvpbYLFMcSBa9T29MUxeZyzAib9BJB/fdupnDSGdFRoySnr7CtsSlmqFSD8e73gaOaooP2J6L98fmDg/KdpCdAbvOQZDijXzWu9Oz1JYLt97K3q2A7tR8xVMZUpL2xJ9e5cghEUSedgSPTrZJmAHtTGjA7lW/UBg5yVDYPzSAmpTcmBxFdRyJkkLB+xtElwTAXdvmn0WGyNoi0SVKYoAmg70f8xpSHdDEgoc821OF+BBUGSyErBlvEmTSDwgcBL2KMCKDFAzG4o8hAyycY5sT0BkZuN6cCpg7KdzRwXVYmCb4hzSHLwhP0+dFbtxf1m/QBtnH3fvQ5wLP0X3Ppopjmrgn5YjEAmTDn0LmSfLJt9LhlMwVuC0S1LICwwMP1rdfARHoN43WfBgMgHg0uCuZHtYf98J8hkMZWNZfQPqf5sqP1UDLxQCHSuzNDIZuyTbNg8fwRgnQiDe6wdyc2MMo2ThJXVw4Kx7fyIDnxDgi5lJ3X9gk4N57AdjIttcbBsUaNZp7ReRBdIo4KTWDp9BTjbbD9tC6DtNSvI7tVXtS2CrtS3qJdN9llq+KjUxow/bHHc723e1QKl11QHvWck4EKeg8XtkPXAQq1swIJEfWR93EJAg8b0IRFzfEGDjUz8QjlMp1FtvVy9yyw9AGmNAILKXXlIAryiQ/ktPENhg/CVALVcQ5zUkYKcfXj8eP2fAqMMpf23PVH4WLCRsLloBwIa9f4DrfkIaVz5DlF8qWEZ51zFQFDRSqlAgfxYlM0coe7NsJhJKC3lBlipmLXJl8mrED040qnGEO4NYol2CH4dXpn4PLrBv1gjMS8QXVDZ6YtRNukw2ZfIxGBEgsVB5YDeqXzc1dXjHOeBMY2/9FKcRPGb3O/MZhWUnEcQtpyTwBR5ESh88VrocFRLwVEpqxFBSTxpwJjHzMMATFgOqTAw3KnJwDTZKOHKxKU0M6kcUa9N9c3ZjSt9zgBeWVGo2nTtVWpQrlgQ5TqDS9H8UK5Yy8VFNAhBq1DbCfKVGVWxwAZR3oILHQEdvjDMMMpcm9kdUKXR0UNDqFmh6ZnfsWFDh2DpAD4pHkAIUYCJKqCFtFYNBnSoGb9c2IK26JFDTYEhEO4oQURjKAcJLEmZQpYNgUOxYAEIGNWFFCFDJBVMPLoNxdE+Q7XQtMiBKVLwyUI9icCh6IJN2N7RcUhaqL1ZJULWMT3NXkOiiHTphKnOg2NIuUIl4GTxrqmKyBlCeczGmEb1wjHZmCawNykMqYXpORCVQ5nYLJnAmZhQAH0lAOrpsxHa8P5CqMx1jFR4dENdQ2N9joJxWa5JIUPlgJyZfmntQuZoU8id6OskylFxsLEonJm3EB/p/XUcwC1D80BdmV1DpXkA1V4RdEEc1CxUn1WjQruQcUKKDFZCUPTTcEpcP4QykaNC4FkxjArRlmGjQhXQqkOsbKkwnem42Q9wu7yCGHTpU7EbQhJktMhotBiQXVCw/GCDK5lumRcJkMCgrau8qkNe6a6RAZiLsQjRtdFCoC1D5xCwEMjI48lSWMOZ8nC2nT3R7fXE0UqYXVAR0QOcDOiT6TdD7/QtQ140dqiUzOIIWqlckRmZXPllqcVDikFKQtORiTmQvGO58kJNucMcpy0gA4tpp5CZgZQBSJjPgEedP11YAUiZ0d0KcPg8/0Ow4SUBcBgeWJawA7CZycIhBDSWsQes4OmhgZmBumU7aaZwcKDVcbplAmiv6RUVgMPF0EcRG3DdULHQFcGdKVoYfmAQUJrR2Vlm1BFZEMMbXNDJcynFNcIIOdi+DMj1sABJWAPANe0SKSKA8Vkr9IFYHcmZgYWhBhB6/Ms9zayUwfm0YVn6UCMI8HnK8JNZhJynyYiDKSjFWWWtWAB69A+UIRGPSFixeZFnqPK1dszEPMko8hGDWC6CdUhO9TZR/jCKgXMp1Ul7qXeDuVhlKHPxY8jLKWjZ/VSXkOnRGiFo2EqZqcn3qWjYCuiQGLsp61ifkPg4UgzM2PW5qBBjUF/Rr4ESgPNUfOBccetYQcnmVTsw/1i1nSgceVzcyELDbYmcMLLJjMLKZOoIYsmhSIjYoaHnscHowwEiw4Od8Rn86ELD1gNkqSmoQsNQld8sKDm8wsoVGkg7bbJQIMPA6AgMQLFo2KgwBmiqTWDZE4HtSFJJB9lo2f9knai6ccrtCMN2CW0pbfWDWS6sBI3cYZ+QBEW51CQxNrz0wgrR5jjGqP9YqV1y7bIxisOoCHtwmXAREWYZghBKqFdQn3CI2M0py7Fz0F7k9MK2QpIZWaiOwzkh3o1qwtpR6MJCCUKpBdkpWMLojpxzUUyoFlh8cFfQHdDJaJFY4xEv3anQKh3aCII0OQF67W7VZmG+MUDQNsB88LpoM7EhaZcE07jBGCyBW6jvUUMDbyGX3DkBDtAlbbese4KsadjZbWjuHDsBJyUwEFJVjoAz0RTCJv0wMffcyoApw/NwHdGiLTmcKcN+QApD43FuDCnDUX0WlUAhIWjdwZ/AGsgJSJ5owIPIDPVxdymAwwYQqsGr/frAmrCKgNSgPUhOKNKwxy3w3GJZQmFUgIqAz4Gb/e5pf7GwAVXDV4JVcCLJRcNow3P0NDyowzBxKL0o6I1IBETFSetVo8yowhekjiiBQCdDgMP1mOeBDZytMT9C6FAXHKpRdpk8MJaxYUA7VH1ZZQG6ZVPVpDHg6Y6ZYMIeIN18Qli1wwOgn3BySKE5IoAgw/e4g50O0YDCKVj1VKMoR9A6QUiYVoA70VBBBrBTw3oxZtniMUswUji/QqqJNzyQHHJCH0IU8ZqA7L0PPFlt6ul3YVgBEkFqEW98PZHpLJvDiqDqCFCUbcFUgFHALFD82R6s5dDHiZPJHVw7WDvDp1BfdafRNKA6QRjFe83fQyPDdyFVxNBc+jk3jKiQhWHJSUOwxlFpReJxyUlx2YMAqJFvUAmpHlFp3bAAqJCIlS04uW1PwtzgwZwlqG+AO8I1obyheam5LcfCUP3VqDu4r8LZUGOVfM0igFHBF/Hxw4LpyMGUAYhg8WTnAoNIO8Nk4AT5W+lLaXvDCMXMbMVByVB/w2mlUd1bUc4hTXCzIHTN06hZ4GfD/tmOgKDpXuiAItMBAUA70VkolullxSUA4Og1KNKx+OTaICk4xqmwI3MJxtiTqKih98PygP4ozak1gq/CwWDUWLMxIt04IlLtF4MSodiYcWnzfAUdOvQ7woux1c2clVQYcWl5wV441MA7AMjEQ4OKzdD9OCIyObGoFDGLqA7BRlERqVJ5bDAOwJ9hk+nN4J5oUcFqwxeDBewQUFHAiHVeOePkr8L/gbLcP1Er4TwxB+GEEdQiRow/wn1I9ThKMcfCWRkedFyDECLyJfBcNHAjgZ2I9jCtyJbV78LZIPHZ4Am5yCIjV30D3RZCO8NLBXHMPTWbsRIib4HrUdgoFCJK4cLt2CmbYDvDXiCpvT3J68hYI0swFjTww7MQYCIPpfHC2XRhkRIik0EsGEFoe1m1JJRADk2TUYPQheA7g+UwV9VlAXcgg1kE9T30X8ILSVI1f8CyIslop4lncDwQi9F/wukB8S2BZDvD5vD3rMRp5kwOwCwQxpi/fbcQeiNh5Pi1MqiMXcAjxIG2IwpYavGIYeOxOtWX0TYiCFkjTbM0CEBYI7QiyC1JeSFoTCOvAEhpWMGMIwFlbMPCtVURRiM+GXoNfcmI8EyRfUzoGemsLCKUpChDDXXmI/1Mif3bmeYjZUWQbKsgCCO+I+np60EdHYEjQdHryBIZuoAII17pBrDGGW9QYCO4wJigsGlQoBaxeiJ+YLIYplxXSJlFBtFm1H6Ur8OSSMdVjrBR5fIi3VA9w5cEMImBIsadx4HRIs9Qr8IGQZKDUhnJ0dki49APqGpQz7xmgb+cgW2YkTNI0GFq6CkMQczQYATpUdUzULIi7h0/jDIBQ7AII+4RqKB3dW5YO8PFwhcIvgyxoAgiiFDKEDd0qENpI+tpm4wuZKzA0iK3qEhoLBgeMJlEsSA/rQnQYCNDFFJVAgHmaHYJQHDKVLXBsCKhDedZzKgs2CIjpOyhGKRDF8NT0SlYV8Hjwe/DL/STWI9EvFjPwvhYwgJzgq/DLZnu2XGxJHGZgIXg94HeWDowr8I7g1KoROHwELMjxcEsod7Vi/QIIhPNWmh1mYkjoFiCgqUNAiEQImwxCyMotD118yIzwn5ZPun5qGeIcyPV1L1gOygxgbgZMH3xqDUiBuixdM2hqxF1ItJQLrVxGJ/1KMWTNO5Yt6ktiXRh9ZlmaCypw2mAYNy13ljqQDsATMWZYLJM8fV3I0sRhum1DOYpgMKAQOoMnvDYQHl1bRBwefUNVwPPIlZB8k1CoePDd8xaEfZZGaxVwshhF5B+WdLwp1y0xCrxikybQZNJBcDnUGcjqMByTJCRhVyRWSgx+ahMxCKMkVnSqYDCPaROKKZo6EmBIpvYQdS6weQ0O8LSUDWgpmlPNAgjfIxcA1Xh/Qivw6fhcl3uqP9UO8OlAZewxVnfSGijy5EXQ6x9MwPIoqdB5VgOoLikaKI7oATCIXxgIu3pjUwJ7EsijSFrUY1McvCx0FsgJ6mNTRIoYCLR+crsjUSxDXCjkVj9WJHlsCMuxV1NkCCN1XqwjylFlPIQ8yMbiQyYvrmPgWSipOiqVVBwjpCjw/OA2ZD9WaWpM8PlZfLs0MwW1APCimEieY1NGl2Qo70R7NQRWSvhHyLgvNDNqqyPIoJU8e3IzZ/BvcIyAB1YxVlXjN3DNEmI3cjNvjEPGBjROzHomWh4utmAwsmDOSLt7QLhXyNb3DrY5PjnUL8ikEH/MY1NgjDl0DswtkONTUQQqMIsUUzUjUQXoV8i+GR+WD+B9ZhTw0tpJCNxhR0dnKNVxA2A8rU0VN3CGqiEjN3BH1BTwkjpC8KjTapZo1HLMVNJOsOmEEeMwyX4vSyAHPyPI/+pkCN42FgYTsKjws3Y/llo2YWpnKKX/Uai/oShSL8iu8PomJax8dVIw+aIFwgaw1GB3Ujdw1UwtqO5Wdzx5YDSo/ARB1Qgw3eoNqLomSLC3Fw2ovhB8TE+hH5A0qKvgzrDYUF/kBjRb9Cuomf1w2k+0W8hEsLW1J/0DSTuQabD0MF02KPCyUk3/J4sDcnOoy3QTbiJTLloFrHLMShgq1muwNDDdgCVyTrDi4BWKV6FXqJ0ASGIQsSRST7R1DSqo9epZhlC8ZaUQsMDEYGjvjBoGUiYTBHuwqzhKqGDAeCYKINawp8wo8N/wOdRaNjmCBKiM2SbaUtZN9wFw33ly5Fo2Bqg7KNfAutC5aPyQYUxURFaUJGijyl4vVMFgixFovD8W6CfqO3V8IW9TMzQzdmBoi2hZlBboNtQjdw42K0xMYjto3w8iUycAjjCjCCt0WYYXMLGUO2jplDSwjQifzDjWTTUCYQ8g9nDocjemJEF9iijwoRMsXVSZRnCY6KGUM2jikCowgNx57G3WOxBzcLV7LuQM6LfyL8jKDEZ0bdZDRC1ojpQpkIU2ZDB0tDZWHTgrqL1VOpco8NeYcXDg1iyYBqA2Vj8eJui3ZFfI2kQtcCbo9aRQaJf5PLoDRDaHZyjwBF+rbTYYrWVCE2iz4hC2LIxJpjM0E7ox6Mw6I3U7aNhyaejoWEDMI1FgUFXo15QPaKpTauwHrFCUZQASVj9UaejbCCJwvZA3VVXojtImcOoWArY8BVeYJnCVkn7yXqwE0A9omrRYdCbojG1gwAhEengRWlcxdZhD6IyANlcrqP+SIDwAow/KOLZ0vDPos2An6m3WLIQi9D4w2uwkaPcWLxYJrFfEPmjBwhzHZjD2+QN/a9YH/iwY3L1uyn7MeOwKcLMzIbDSr25PfBjC7D5o06guJApwoAgbWlAo6Sgz6PS8Dugm6MU8ABjN4EqWUtZ37EvyOhiEW1vo+gwlumxiTDYOdHrIX6hazHeg36kQtm/NLfQsCDelbTYuqkVAEhjBhDHVUxAoUBIY6PgsXSZEOHCSGM5HAzYvYDtEM+jVj30Y7IxqghIYnxB6ejYxBY0OkDjRHMMORBnWD2jx0nK7DxBWZFlAdoImTFc2XDc5dBCjJBAQtl5wHCB3oJxqURjqkJGbLBiNejBWYusF0mLqYiC7NxC2cyUI4DdoaLhgmPG2DsoXkX2POJjbmQpwn1dJCMkuHrwsmLhWfRid51kY8bQ38j8YkYCKcMpQPuMmUQnwVSBV8T1WPxjFJBq8WoDbpD8YsqMbGLgUFai1GOBidpN/8mkY9t0KcIglNnYqtjZI4UxYSkgoELYDGzfCfGYwEC82COp0tHxmIxJrMWNyUDRAKHc8CZjLmln0XxVLiwmYnChTvGuIIYwJmPfyJqw1OEdwYJiznGD0FfM+p2Lrd+cvFgPCOnRn5BikBExQNDZXSI8FGKT3BDIbF1sUJkR0lGoiaWJzQLYxDZ1nmNd/B5iX4DcAjkAA9nnWDxAdMNO8LXJsJjKY2XVnmJdoF/QqJBzUBDQzYBZw4usf3QeMO5iSpn92ZiQuDAjBZZVgmKDAT9silzNyL5jxRRWuZsJRYFc2GClG6kJqe7YUcAoONKxmwhlwBlRwmXraPZibkJBYpChx1iKXLd8UcAIwcNoV8zuQELZaHAmUZ5jODEpqX/CSDSBYnHQeWM+qPNYrhDaUEwi6DVA0PoQMqOLrN3QEh3QJEVwxWM69BDRasQdoqrYVow5ASyZVGMwoEFFQNDdxNzIUcC6OQMdw6BdqbTZZalvgM1ibFE48PvDcdF+Y1XFDtDFY8uw4wyOQFhD/diBwKZjcULt0bSQ2cFbqHLwYB0XwvNdQNAbjX70heEZGeNj/ujUWbUl4hChwt/RE2MvgoajQcNrsf/oXGIEfDeYqyFGTFxiXqFrqDYhp6m02XDwt0FGabJA/GOLgIDxyC0toBtiwKFbqf7BlRmrY+6YaOmEMQC5tNieWT2ZllWxwqrZ/6mtI9cAi7FB7bTZ1WUlUfpwSjH92AGkL5EF2a69wmV4ac5Q6dGC2Z1jqqU/DUKhwDBC2F+JM6hfyG9IDsEbSNIt38g7Q7TYTXD7PfKAXDHZYs5BWmBVUV6Zd5zIxR5DF2JyyfRjaakLHV6YIsO02EktY236ca0d+OV7YRdiLMhBYweQ86kAoPo4Qtmi8Au10fXoQVzZyKHA4gBQPWNeVeBgL5BAGPdAoONUNNDieDBxo2XFH5G+w8qRNWKq2V6ZaHQtuUfwoOJtcM5Zc1RClRJBmdhX0SkUVWM+YTohulnMEBzw+8N86P2ZNFX92M+IhelVwU4x/dhdEXVNi4B4Mf3YBPme9QJ44mPrySgcluRFaEkjqcjHtPejr8KnXIdZ84EY4iYROvBN7RfxJOOj4AAN0XVE47Hd9FQjkfRjzanmaBFBe2jFY4rIi+i4yNjiM1i4yUKpb2GCYohIZOzjbDCI92ORhXEsPLH+MZFFM6gV0LSUtCKYfXv1njB/YhDcQlVD0TDjUMO1mD9BwuMQ3ZFUvOOfIIQZ5amKyRjiXgwvg/PplHESQRSYxUzhhSVpZcUHrOipK8llxJoovpig4w+BMDxq0W9ikkEt2LAMdJgvY19QRJyYmfRiaGDjfVQx5+mdYzWsVdyfqfRic1HQ1BNB3LDFY+Yx/ZypYEj1nCOdXIJVbWL6VXGhbSnyEZJjnYN6dKAxb2NdwzKVhBFvossR0vA/HOtZ+2NXzUtwyiP7Yv1kR62W4ZJj/IlUGDEx3eziY4QxfWgb2UzUb0FBIOXJOKGJYgbpVewWcDrYooiXHVjZjrxWIzNYRpihOOLiQbCt0GmZXmHg4oVYCViiJd9im6BpmTBRB1UA410ZB5iPUISNZcRJwLbtJaXg4lFwbnQCQTDjFJC27V5Rclwy41RJaFGhIWQwoOKCmCXQoDAHaYutl6ByDfhRkhGR8Z1ip2TT0J6Yn6JGQErAidHJ0I5Cp2LlwiXQdi27KZcxDp1oUZQx+vH8QdexqpyKaD3D/EArjY5wGJFfESTjEwN54iAhAjBCI3niu9j/KWlEx8P4UIHAn2LFQe+jVeLZ1Rji9LTUdC3wOrGrYvYwpzjmqW+jGhUZccsJmED8YgT5l8nDjOHiyzzrgpeYwKAc2GoRxcLAmB6Zq2IhfdedxQVGo2lE21DeqdUd0VlpRWTgtp0iRG4ZeiKfkf3iAKHxMUXjuMDeqMExy/GLrVwQ63C6vFeip2InKI9D6+AEHLVjLxBSmOtoReO2wTLcyMgY2fzpLCIzsMMwwzVvootQ/YjIyUtpDdhp4iOoV0MjgxjjtUlylI58TbH1YicowzCuKZ3i7REfrYS9vKDi43cE553gbDCsxWNxQMMwAQhDgywjqFBdUQ80tGKhAOxAXVD9QMncqtmYAzGNQMnOQMVjRUySKDfjCZ0FY4YMl+JxKRziTthHQ9sMKWKARQLtUhDAyf3YMpGYWYnUGEH92aNwatjJgsaZeiPAmdfiE2DemKiQMMTIyf9FneLq8dedcUgZ48nBGll/40WBb2OsEY2pkNDZLELZLDA8EJfidXBMYrvQtpwRrSHjGcGW4ZfI2hkMVEEE6FyX46FhpJhmgFD87RzJaKtjrmM56JIpltGd4i9x7TEYbEqZXNlFgRFMyMiy8YO5rmPSDdZDAZBs45apyYG7QzIAcmM+TUZRu0K74Rli4qSq43K8oUn0Y2VxQUitIkaDi6xdEdO1U7VM6LniClCQfNkxaENgEt1MRUOcGbHiyz2WYSVDqFC8dKFjWmAZQkDBIBjKYzfRJUOmbArjdgHmMHFCFwme4n7tgMgsE0Cc4mNcYBDYzaBKDDJiatEJQyhJcMK7Y2283aACaU3jmqGT4g3V0gz8Yp50cUPyQJWjq2K+7BlC1MFDnDlFGVklQwxI7BFaY2CgI0Ouoves2MTUkEVCeDBfdS1EbDH5QhyVS2OHpLXBkhNaopASOlkJQwpQ7eJeoO8Y7tSLgiZjcjmDQrrYaF3zrS+hCUJ9aZuNdGGo8SVD2VGvAaej0NGSErdAxpljEUx1khMr0E6jBk1HqZISMmk6wwlxcpS2WdvU2GKp0BlDG0lMHBTYOBMJQoNo03HbouCQMhIl4dOiFNmuwf4ZhaF2CfzDhDGRqV1DXujp0QYSR7UlQnhM4uM30QhowwXqUVzYwdC7kB4TrpDl45SwObA0mMLhxuOZKV4p8xDe2W9jpZls8CERWkmJ6MLlTckJQyqh38nWYqER+UKjcE0iQ9mQIVEYIRC7ka0YHog9pQxQVMMhqaeiI5FZQopgsjBBYzqt3VQnEI/9LSQYkLlCm9zQEiuNJNmtwchBp6LWQDw4MYRE8CljPJXJMDGEtGj5o6ggyzQNweDh+1jXVPRYDcD/jHui6QFqUA2ji4Cbo+gYCFHZE6ykm6MtYP1C0wA2FbdYuWhCE30Q9dgw2ehZJUMaQrx0PUTbIxyoKoJzDHEFkzUJQ6HJXaOE2DyoLRIkwXJcg0ToSHFD7uEMaMGigSBFQvVV3eKnWHrgXhNzYbIQiaP7IvUS8smpogoZZUPsoq6jG0igHY0ThDFGTa+B9RnF2VMEyhSRomTxxBi+dLXAouO5WCLoiXSKgMEx0Vi/WdDd5RLjbIAgq1gkDKUSvtXfIp4sghFcaJaxJHCmE2epCGh9wgZsH1gSYRzU/oSxqJGilAhdQr51V3w2w66RrKQLE0tpytWE2DbBSxLTuOmgH1l9yfsSrkgfWdYT/FH8xKIw+aMCpLYouomZ9BjR+mjKUELE5vGILQRQCxPG2OJwiaK6PHcSWaDNosMAUUB3Ep9w/1i39ZhRoaOxnetZrKQQ2eGNGkPrWdqNuROxYLboWaJT9WcTuUOa7DjYxdHrErWIMrUiw2NwdxNZKPzZGsLC4HcSyDANEzWBvBkcUT7QtLBpKfuBDtE/ErlciOJMw/U5+xPFDftYdDEU8fsTOvDytd/IXxPWcTXBGyNwk+HY8rQkcMwwConMEXSi0WGuSMqi4RhxGVF9HSjgk2QxXUwCAIAxXwhywXSjfxKvE7XRehmqaY+BuD3OABjRp8C1WXGEwJQLE3aY4WNOtUgRSxN4uNHjTrVaSZhY2+AYYlyxVogLE16ZB4B6o8uQBlEHo8iYzKIO4wxRDNhFKASSDdlumSnhzGTMo6kCjJMpufXs7A3ZmB6x+Nwqo5exHFH3oy5M0M2/XatRHNkT7HEZyuNwySnhUkie1R9RuN3OAXRhXGEpWQG8nPV6sOMQIpMy4ByTAEHp4MVY1KiNWWMQ+eAIo8OhYJNIKD3JhaAOVT8S9VSFw+i0CtHZmJCQNpFlTULRfukFwMWZTVmEJdcSEECJWJ7UMKn+Gc0Q51CAow9wDRH/qSlYPDE1wqAshWHU2fZZH5Dt2XRhhBH2WBVxH9Eko8oR+pIVAMpQYRK8w8FZ7UkVmE9FcaD2tO6IvJKNoWNx9lhQxRlwYpGWoPa0sakPcDGAFGhFTCyMBlCZERoQjpML4qAsqEjGmUVFmuMukpBJDFXAIYfR/FAUYKgxTVhIYE6TA6AYEGFZTmJskilYtJPBWItRLKhcYlFw9rWRcWt8OUROFE5ZuBQ+kl1VDKJbuK8YoC2UNcji+mlhMVyS9KAvIrpp8dWmk0siCRmbqFojsZLOYN6Z/XTe2ZhQORGdJRXUf5DMMNjFzKMrDdlCCFBniP5YntRsdckwmRGVmGXUiwMuk/SkqlXRIQVB6ZOJ0bdCek1wE0KS1A1Eow4ZU9F+6GnwI+lrrSMFsZIP3coYH6w8JYWSuhC04oEZ28KVkjRBeg07aModCBOMfP7tXtz5klIwVkFR1AMcDZPzcJN0DqEQOGyTHlEBIXb9riD5kmUg8uFrdXJRnpOomQXYaMJdoF2TG0kuIi6jIFH/TLwSxg2QgYWSNaAAoVHV6Z1ylAXjnA1DktlcqZOI2MVIo5P2w4WTBpAT3F4YZhMTko09uGjSKJJA+ZKoLf0tR0Mc1cJlWamwyUZB3VSiiYIwv5WTNR5Jf8MwkRbUpCz5k4GpKoIzg1Mw65LKFfn9Kyzrk5dxcEKaITzo7WOIWWbUvdA+koe1ig1HQ2pQTCNH8XRoGFhSmUviRZwcTLvgB5OLQZgZppjrk0LQKD20wP4dhZJe6QNcYhgsEPRZB+FzfJ1pCVBLk9lAixObaH2pSZL4kpwRgXWuSZ2IiVgPqalZk+LPw1CjEjVSgxGSEXHJLa2Ym0D5k0lh7bnw0ZNEY5NJYRHdaPSw2YWTV0KGYtepRlGxkyOchIyouCrIR5PQwB/jDBmXoPmTllAiWEvITXGxkiroXdU7PIzDs5N17P3Ju1jPk/rJw6EKLSJ125Is2YhSO6Hbk7QZCi0m6PmSyqhxo8yxlSlHULQiHclQTIStYFKZMRXDuCnK8PmT8JHJwSgpsjBskyhg08K92e1ggZN3SdeN0FxywHhT5iWMMPfBO/ygLfO9/OwwEFgYXZMO0IIZs1DoEwRSNPzP6arQeFJyyR50qCVUUx6Ek6nLsNGSdTQpOIlY+2jIxGUp41CemQRS1kDpyJQIRnGusZlgzahmzM+TyJmTbbeZSOBdkndYVZ1W4AsRsZNlqBqChnGdJQFwoomKyYgjriLPkkCV39iGcT+8cFPdSI+DllUIaSeYQ5MxPTDYY5MOKZGtR2FFbbOTxrT76Qi5nFIzQaqlejjtaHBTJxBHnWTgPDhWwLgIdOw5YBBxBWKDaIo8gHDRklmdMFL6YP4paFMRmOtdzBHYUi8ikPDYIrRTg0CQ8WNQyGgy41DCvXEijBRSQuMaUOdRYFK26QujaT0RvYWStui4YmJI0ilWk3sMlN1pEE+DVlMUmQDV0Qi2w3LjNlCUMcLkeFPTAIfY2b2LQQRTnSQ9SaigXWlo4uPDAyiwgWhTVXRyMebRfZigLbCAuJDwOR9xYFNaUG2Ty/2h7JeS3INayRCACFORhddJMqxiUhFZc/SYYj6Szdng6VJQTJ3yUwxIWlgeSRFSHiC/yQ9BVpICQc9jaV0jqbOTXJHGffeMfKMTklFwjULpMemQAVJoSVYxfABMWKKIls0eaVLd15NgoM/UqTTvKXxSa0nUmWtVNr1oUiFZk9D+UJhS9kGIoarNr6g+k3ZRKagI6IMAFlLqQT19vhK0UqblCEhcMHhSWENXHOeNVlJYQzMYsHHDk7WgoNRMdTOQTdikiVlUNFP3AvRTYdA0SHP1BFMbSOX062UUmM+ThRU9zdH0upOkUq89H7Uv8BZStQT3KI/tEyjIxNIZec0J6BRS2EDo6VDsYKWxkjpZcPBmSMFjvlKrdDcYUMUyOfQjP1zgSA4Q0ZLlQdJSCfTN1ZuTy7ChMVYil5J5VFV9OJmzk+zJsXE2KIl0x4nBRTTxhKhlwbOTu3VGrBLIg5N2Y/g17hGO4nYIQBkW7CnioCwS8B/1r71qQJBSxxOBybJoXZPg6WPU5FyPUYdTNjRmKT0oS1GdiItUWBw/wWtSGsA1mXi5QhmXMDoSAPwsoqAsQJR24inpplBdkrgIlYI09TIi65JPwVrwFHjnnFYjsGkRKf9lsZPKdHjZdulKUX2TMKEMYifZFtHXkwEg8Zl2ASZAglMv8HGieTUgWfdSM9AiY1mY/0BZkqEBdgmeKUgQbJKCmKu0neLuDKKJsxFtmVOD91MpQbZ8hjBsknTge1KK4BYst1MvKHHJijCQUj2kar2HQe+Sg4ndUcFCRVPG2PY5M9k6IAmTAuBAyUhc/5NbnJfYEdHw2DlEalEuKe6ZYFJRocjTynRjkiRAPVgW6YIRSg0HIl813ZiNIGyS5BPxwtu8I+Ptk7ANKULqotGS1MCj/O/MEajPkyClm/wRBHyxLpKswY7MnyOxkxKCjUNhKTARVpJzzYDTU7Sb6JjSltVPQl89P5LWMJXpZHBnU9DATyOOjfO8kFIQ5bIdmOEuaT2TGEhhKbm9WPyhYoUSAVSeY4BTlKj/U4RiPaU/kjwxUZlDsR0DgFOLEf/psINh0NGTNKH5mJFU1Z2pkwxJAZnVQMFwZ4ijSaOZ0NAlkxOAJ8EBmEqpJNK8aaOYxcJdky8Rya3RVbBhYFLVAzM5sYirwNGTa7EzWQGYG1mxk6NwO4jztQhS0ZNXAj3DIINHJPKSy+KgrcNFdJLOgN/MnJhVzatQDRBYMLy8Uexdk1cQAFNIGTIBfPGFkrpxGKEemZ18+ZIoOUOxFswLPFGCGkmqmVbBbPCd8ZFUzpmHQVrSSqgnlI1EYyjVRFjRKukieK+STAPzQ40T1ki60x+RWVRboGJ4z5PAoGClCpgUVWqTQqL82Y0T3LEVmW8JijFRmLKpbpgNEQYREtKrEd1JKJLsxfIRCpnREEdNnRFCYOroUAwQcWxAjF0GmLJhapJLwbAhCpjLvWqSVkG7/GKYcagg1VcSXRGx0+2hGZj10ScRA6wMUTKTQHF0SVujuj1trYmjBVCN8XzVhJP/Ek4YW5hpbUsTVcH8ibiY54Vm0jNAqDEDrTM1ipIzQYhoqJienRVwaokUAwPCxBwF03NUXFxQmfvoMdMJWbUgqJl4OExZEqMcwXnTXyGvjL50asxp0UdZb/U10jjAz9VjEml9NdKQQdno8xIirTXSjgJALMFAqxO10IBFEpjgUkZxPtC0SKuY7iS7VAXS59n1VaGinyJ3EqyB65ipYcNNw9Ia2dfQg9PfyWqSPvnEvA0lplAm0se1L9FfCOmSBdLSGO1kvdNqQT8TAHhDNOCSk7ALE2a9xny/WOFMCxKwUe2oUJlRTEkpgYXIweuZGFPw2ARFASkDrWrFWuiN8EFozdPg6PvjBJlNokAsviT/E41UJ5XhjVdiCxJtwNlwqJkw6bvYBdNx/DPT0WxBw1MSNsmT0g6gTcVn0lHQ0HUFwSODSxJtwLSUvnUEkbN02Vg8MQOsmTGm3AXTO1WaAuHT2VAm0tXZ441cxdOZSxORwwipbwkCITKSeVzN0j2kE9NTEg5TWJnpQKPdZ9OdJcrsepIJlTKT6ZzjgMZZRKhrnZfSsjGC3RzZiRMNEQFQ4DOT7e0wqxAc4uAy6RWDQ9gpiuxbIb79AxJTGNGNCskgUQVYwugwMzU88ROsjcow0YzXsTI4VMIsMblRKeETyBlDZOB6oDAyE0BSmfMRC5iomBFx6UzxWT7oBDImEF1oAo0A9AQzsmhJKeR4/RgYmQXZKAMcqYtAWagEMwxJcMhyk/7opDLeLV1CmGIbk+QzqdhxQ1CB1aPkMhFZmFg8jZ0tuDNmSWgyP+gOmS0l8sUlQ8OgS0IYM/1REyiUwNfFpljNyRmZ6ri94XAzllTUcNVYa0lwLdDR15UggoEgXoxp8blAHDPew4eYwTG8HV1CT2LQdQcjvBEJQrZBcCLRjJ9hF+PiMrRoYjKJWU4prVkUWdIyjuOsMxUBXHAUYLKoHDPnYOjoORDIMflCj6BKHIKQV7BxQtO4YTzRjMyT/DJngRl1WjJAsDETlsnXQOAzHZh9cdFU7EjL0bMi1EC9QrBB19DkuFiCvUOwgQgyfu1d4r1Cq+OvsbMjJuMWMnjD+jL+KU4SoJD2WVozF/CYM68ISdNaMxoyuUOIWeno7pMYSWwT4RGkDUxAfbz0E49JrjI67JTYpFXb4tGNDrz6Qs6BQmDgMg6kYykxCM0oRjMyqWbCyMhG8crw4DItyRPJu0KbNCVwChLt2CWQoSVBMrgIlVlGZEKVLpM8nbtCYN2HmOLA8Hw3zLbpcCzf0TBYmBKlWf4z5iFXECZCR5A+wxGS7VTDMC1IHjNTMTI4DtCuPOAyJhEE1ekydijRjHhMtihZM/zooC3raRyMrdzwiZYyo/iNWVIQZEAFM7jZO1KvAanRmKO5MtejOkJWQcIyyXEWyWfiTBBgVEyRtwNn40ZBjDO5MyP0kiiGUC+A4DPx4vXi74nbsJliSUxPwRE1gbjUUzdC4AWHmIgQS1HECAHS0YyXgVPoa+N+LSYy3OGQUl1QFXFxYx0zyMFOKODhVFmHmMMAYtE9M7ihAzMHgfAtUIyOKHYJW4zIyC4hHcEZMt1cbeOLQVgzVuCyEAq0RXG90bnjFLU4yTAxSjNPCFDxOMm8oY0zVs2BQMjQjT0v0T1jtiFuqLeo3TPkkrM9CLlZVFYj68jI0BxROr2PYnFAxzmRUtGNRMBcmTjJAPDdMiLZMYz8HB4z1JAQ2Nl0L4AFMpwRd1h3OKcw4DJfyf4ZinmuvBRTxtnL7D4yy0DnMg+j8lHYKMlI5zPBFXnia0njjWXFrJ1oUX+AJejRjZmkifUR1UaiFFOhYJdUs3AcqI8zed34UCrIwEO1oLspf9FukDTDzzN5wA9QK3ESMkkTLEjx4yZA482bwiJZK3D/QL4k4DNH8RAZnzPkIlMzbpDPvHlRmaX+Ml+lqt3CQ8zTgbl5wGmYJMBAsnAQF5id0BcxGJzHiBjZ0SkvoGnQVsGX0WbwKdKhMnncSBxyHUWTV5gNmeHd3dBu0NkykkDscMu83TMzZLFYwTIj2GFsl1RdtNszswRjnB4cNzOYeJJRM+maA6gjPhhS6D5Y5zLGI3dw/2ArMj+F1JJP6I3J5LOtfPFwqRH+MkvRPhPX6DYTV5hL0BH9pQDSKeSyG10CjW988OKXUQAp6jNzYLSw/PDUoXAzYKnfWeks3TOcLLDdHr3IsqKgCMHdcE1YUzIV0f6MWFHi6XAzbyHkWQ1xTDyd8ZSofc3qUfyy9LUrcU5pdvDVRRvDKePlPAUy/DGamUOQl2NEM3dhy+MHra3SyGD3QEdCb21z02UdEDh4E0SSF9IyArlDoxHhEQ3Tl6FoMlgZ1PR9w1qilUIbMKfScYGjZV1DeDETyQqYEXHQUDeivzNIGcNCCxKEaLtMjoA3kd/SC9VRmSuZRRMxcX5SEo2qpfsSCUjGsq7CdxNzMoKpZDGM2J9FD4FtmF0jDFEFwfNRUSj/gZPjKpO0iYr180FCGP+jZkFoNN7cNtMgKOLwrdEk2XRgPQxOaN8oY5MQQAnj4NyAIa7S0lGr/aUgPpLFwwmdG2jZ6PmTFPAotX4sM4mFk8Bcx4JHPfaTCwldEP9oNaFWk00UmDA1QwZ1B6IoA920jIn2skkSwWxLacIgUpOKoMWYaMLYLAXTPhhguLx9g0Am0loQeNk6qPYhMpM2NSiiCkTFIKvSA/GKTPDxxZmrEwxARUxiw+vSIGXDracANNjZWaShRvzjgC0SRgKqVNNxUa1JRdsI/VjSKUdRi6F8gvmi06Lt2A6JyYE6w8mAOOh0My2Y+aIi8YNDpSAKw35CWgLLQX+iJTg5M/KBiKCI2QBwVkgmQpigNsNfrCDUteUdE2Bi4gkxjDXpUJPQXGTwyNACrP9ZnX3FmKi5i+jYYtEQOeIocSLZQTgl0P2oLhOIefJRBwiMSdqSQ+lLOUjhItlH8ek8eqC3fQeihlF/SehAuVmLrEFMRjmZyIhSx6IgSfOzwUQtYjN5NnSFoYbjvQDBMD9dVTBZEqFJZs08gseiFdCB1KE55rNzsnL8DTn+SYJjQROLSBnYBGN2DcapcymcYrrpszPvaVGQWRKxoXYwMFk5Eg2BtF21EZ+pm7MwkLTt6ZCRowIBo6KHcNZ05tIPrZOZc8j/WctQ1oPXAXdhSeN42MZx3gzmVDvZQKOmPfkxSFyI2IrEgggnkNTdS1m7cKC51oFe3ZDZmWBf2OkYX3VJhCu0L9kpQJGiwhFTTE04iFGS2cqQo2ILU8TZ2TDMwyMUROPE2ecRrimqFE2x0GJO8BDR/zDRlJ2xpzRLHdxBZhlwoPDw5WJCUvXQYdFrqIJjyaNZKS8U94D5o5xMjdSZkLCw+aKmXXAdZigdMjjZyWK/o5i4VZJYc1moPaMC9U0TE4FLMD2jl9DNothBmED4YtQg9MJ/BAeY8HlOLaD1Evwpw8Roc7MpTRzA6HHkeMoQgpLoXWpiqxTCQwiM2HPwEMo0mU2XA4DDNDBXYAVMxdVFwwnRlFV8DZ9x4JlyIKEYE2Cqo4vY/u0oMYDDEDmCfMdpTXEXWDsyxg01wkST7hGwyTDTdqIsMek5iAw7KJ2xVxGwyXoxi6kSoq4pOG1WGYDDQdGkoBIZiiLic650VGjRYVgZMmReMwEtuBjic5KZ3WlO9OJzzuIctCyAHjAP0tLVYjX72c8ig5iyGMFAt6nPIjBo3BjjEFuj5ZA/gA5NqKHScuQQnwm4tEvDWiDZgSKVU7HYmOHTyMF9qKAxLtFcxb+SItVtkc6ik8DSEQ2pMimQo244y6h/IjCjN4H8UjpMpSLr0WWpslgCAWSj0BnPsbYgCoEtJeoRTYyM9MuJOSF3tSBZZlHakssCQXEJ0N3ChFOK7Y25uOXPIi5yhbReYlQw4NldEZlDayGVCINFOiHfTYL87KMm1ckzJyTxM7DC6nUq6DyCCoCHxUgyRsyQQPrpURG8GJ7Tk1E4iWSZLaAk1fBZTyiwYjjsDpgWogLisGMAMHFzlGB6oPhjBDJALNNYKmKbEQYcn0RuLFZiUMW3vQlQz71SETPot9PT4zwxFvCTFAQzD1gQ0MFBl6AwM/KYKBh7rDAy8hB8DSqgGJPALBd8hA0Ok3AyS51UTXcDxXKMiJJ8SqM9zEMcRsJNLW3InLNDcQfp05icsh+ZnmiBFJyzFVgcsq5jxXJ8Yeyy7DEcs88zkJGpybZ4H/X0I7/JIpjCc/UzmAMYaTsRh5kuUy5TRak5If4yyxj1zZgRvXPZQ4RoTcTgMuoJbCAn0dJR4LK4yMvpNjLdcvHoZpS1cfUytKnzGJGynXMEMsNQw727Mr7B2+k4mA9UtCI7oN1Y/1S8sz+ykjAR9GizNLVjbegkHzPygJW9wVC2088y7N1vFT4j5LKuPfIwUzOgJc5N3qRnjWXFr53q1ItQdLOrIaNZgUGT/XLihAzmCaTph3LQ4t/IFHNjUjhS0OOF9XAtaQ3PqQFoq/UFY4bp67F7480zbpxlzAbFJ2xvQMUgVVF/gO1Y0YykLPOpydA4c8Vz0jAE8Y+AE+PPc+2gT3LQYryzTg1+Yp8lNTJvQCPR22NocfVUx4midDeZoRlss3gweELrPCic7WOXsPNZrJ3/M2ycCWJ84Nl9V5hibGgZSwNls7szCSjEPcXDQLWYUtsjyYz5I8VygEG+acF0ySi8soBBudF7qBsx/jL9qODy29Ga2bszV6TEPR5B1JgOwAJBbmMfjFzSYPI0/U7x6nOHmY04OygvQiYQoLKj6MQ9SwTOM/QiNykNY4iiePIsedVjJQF0SA7B6pw5AA3I3NH1MyUzTvDsEGW9uTJn2Q1iqdxos6rxW6jPyZv9xlkQUmTyarBerLtTWlBoc3YBlDEZM2/pDWMEBGiyqsyeaKhp8Vn6M911FPLp0f8zZkkfrVIQyVHhMqlpnmIDsVwoZ4nUNUDRC6FGUUEzyJgQ0T9RCZ0Rkx1C81l6qZOTV5kG8ECJCMTFIczyoRFA0QXZtdNXmQax8UhS84TdAzKKbX5iS9A5YYNz9jzy8stzg3MEBM+iOoGQM/pAduAGYsspbLNxSJ6isGORnZSy9Ukz6AZjVkRosjE1o1H9daxQEzPvkKehNqkdMw/V2mMoSS8RGTJeoCRjPkyn9LtTL6HEw/5FVon6M4Qw0/DdoZAx+jOuIfmoXkQ/wfoy3kIQUF5EFSlBM+6YlvPo4aoZV5jdUXJIsGNrKIizKYlNccTRvkNeMviprilXxfTx/jMEGYpi+jkzOMRjPdAEc/ncBTLXuWwwROG+2DAyYpLYcvqxjWJ6k7ZyAGJ3wqUzDNiqKMJitlGHmOhsPaIYEAqYGDPXqDRy7PWk0nERNzQESbzTqDOwgXjD06WVc+7lDEwmsWZJ/LJPaABjEDhhc+VyivEXmHKSGyi8suYRD7LOE6cBh5mbYFmysXJCCcky0GF8/JnDObR+8yoN8fNYpQnzmJFpEJnDZaincyjFCXSZwqUU3LKKEOGo7tPKDMgzghGu8s5B0NAZ8sHQAmNUQDHzs6JUMVFztIgwM+ipB9BUwn/gMDNigsXyEvGAM7GcJ6J5wCeCBDIQMdpjKVIk1TEhPUPzEMciqJnOmHby23Bq4wgZGuWiYjAQTiSomEAYAmiZw2kRL41y4V1zefJkQEqzONWD0cmE5gnysltdVBkxE0scF9NcGDRz3iim8VcT3UjYcjpYdQMIGadRIbMFWCrcGJlOEdYJ2cJkQRLSwaJ30dnCy2U9zVcTZOHzoqWjgDKCEDdxI1nEgCTVdhTGUEzDLTED81mQ3cLLKB/0PnKhc/zTB/KhAAWko8I8sGVsUJl5Ekpy29AegQPyzdk4iP6EMqBKshvIi9G6ZdLpA/J88Eujd4Et46fyHSjsosUg+uOn8iGcU8OmEI4ocQVqnFqiR5DN0kCxanKjwubxcdAX0q6cCqM5EKwdF1lDsLGiFGg78vbSjyKXI0HywaIS8ZxzkCDr8j2IPLGAC1dYdIzsQLgwCaMSTQqt3qSho/PU52MKrPiogIDzE+VCm9JBnFPD6hkN024yJ/PtoJSYhaOjIifzNEnys34RHcGww/9EyAqjSHCBTqPpkbiZWZS/I4lB8rObWLfRYMPTQgyMhjEFoo5BXGHrmRBAjyLKEFbpLfRRcAjD8tGYcszUaGExiZWFMzjdwfO1nHIyaQ509iDYC1bhLlLN0/gL5Jg9JLIx0pj46I6iXJC30+Oh7egJhK3p0pkfkfGjZY3oQdKZkFPOor2jK/JxgB4hKnLOcdKYy2XX8nnASiicCjMpzqN83EqyJwkuc0VJluEsCttjzyJNxFgKZtlktOHSe/LEmEbwJqN9EOJMcpjwUYfzgKNZVdkSIZjm0knBDnVv0LIj/umnUXqzkYVwo+PBbtLOgetc8gteYI7xovEqoXCifbwJ0jfiqMOaMe7ZjROWYSaBYxD9XQqYR9BCc30QkhyGs9LEjyP9WczTIRKhJc8ju0nmqBR58Wyjwk2YH/SooxyMDrPFERaYGEGiokGxgXOAvXjVcGNVLJ3oBiGcoyxA5I1WqZUpPuNGCpKQjvBlwaVdbyNgoCyZK1LsozAxUhK2C0sxbDCuc/jjLgp/MQei9UgTmcnBJoACk6pYLJgP48iiIxItQruSqCOZIRrxprLJdFgj1gkvyJyZoamVIhvyIXPyCo0iziKgrU1zECMgpMiCcDxdLc0i1E1tQ81Y2MUkIyCCNchKIuxJm/ywIOwQsiMfKTzSusInrIKQUUAK02ijEiOxUcZ9dHmi8bAiJtARmMUzgSOhgNhAUo3tREsiUGx8mVHwyJnyI6ZRGPzKqIELX1AcqTqpmdN1Ii5BOrx69fA1GKJZQC1C7FwHmMLkbpgnvSrIwuSkECpC+lJooiXhzNJs4Mtl+KIUnNyotZNYGE9FQPg2KT+BECKhEt7SDtBoI3UiB0g+KaY8jSPbmJ2YhcHS0Boy5XOxM1n1EiOSEEa9bJw3Iu/dQdIlkUpRNiMWQvdNCVCQSbwiGEHuzN488SISUddNoRmkIvlkYFV8VcXCSyIXoGLz8ujB0ZcjCZGX2XYo+6GOmMeJ8qOn7d+xMSP9yXPZZHHhIiBIHnNe7I4jw/PywhIpNinmIwVBpOmQ0Nb9oSJUgWi8OKHhI5TT580n2UYjCtJ+HaqlOIiZYmF169mrPD/Cp0HdURN5XiKjSI9QIzBlg7SQy5LG8N3Q/SP43fMctgwIIxA5rKPO8DFy1woyoCAyGSM/bM/Dd5126GxQfzCF4QawnkLicP4jcODJ7Duw/KUJCmRTjDVL0YEi07iLzQ7oUpXyI9L95KjS1bAjVolLVPWY18UXMBRhrDCJKVCAjSJ3WBSsvTw5CuVA90zf9eEL68isHEDlBZlpI1JI/Qt95Oq8OREVAanMk5BYIvS1shzqeL3hEiIK0Z4cJrJwgP2TRvLptcVBkwoMIxg0XmnrCqatxjXwEaEiJogYqRo4USMHCZuMcNFsIYUxgCL1fHF9TchgIsoVixEljawotCN84le1y6GBI6yl3iPhcTLhxCKJXXJ01cwII0KgWNDgSLEhNiP8OB/1UO3DmcQiSsA0i0mYX00SQAPBpVPuXWcLrI29Mz08I9AIIuKwRXwfUDeQt8MxJW8t4OmBI7yg0hiR0Ghh4SKswfVUNFPENeYiVBhyMA0zkwotocGUw9O0kGnzStxY2VMjQtzWSLQ178PkQchxi0G7I0miVykHGBcIEouz0RaVHWITIwCAWaAfyeaxk0iokbBZXFFWI/wiJeEG0spwwkG8I/F8j5E9U8fCyi1T9IhQKSM4oxicE9C0yLIjbCABLZ8U7UPAIqPieu1Xs8QjxnJUONIosiOBxQYx9XEUilvCEQHvQ9WVLLGrwwpDtIyUMwaxafJt81GYkVPl8jQkjIkWmeVxX6JxwBYKwKD+4rBisBhFfNNCwUE98xukq/QmscAQTouXsa8yFVjfUM+jOjXYipTBOvA9ojPQFDGm04WRacIAUTELtU1L8khjWpkGmMsZ4GNqYGQSH5UhEVaKqYOk6XxCfmIqY4PT5qinM0BjQcCsHE2j5XFbqehgSh2IkzohW6nAnRezCBkgoPaLmwke7dKZdgnkmCMEqDGAMq5JM0lc+SacldMvEeHD1oGhgCTVviHb6IoIiqKb06RAXymf3ZP8yqNDckupoLMN08rxE/yG2QlzpEGjcJh11WTqsgYcA6np3R+9MBAJ2Tz5dvDgk1pICs1ZM6WKJ323UTm0QCwsEKfo4xGAMrLQlNnpwTKg49MkcTV9tiAk1SyZSg3NVAtQm9NXtPZwuyCI4r51iKzoQjmN5YtDqNzQrdl8zJXS1tPF4mdZBtIWo3SMwJjKEb3QiySBwT0ygET/UnnDn0HnQp0LsdOAtKkyfGB8mbcQvajIyVPQd4mrqaLgINVXxdLx3JhSE5ITEKzq6fkQKRIlOTeS9o3AnYNCQJW3TW44ejN2HMvZMKE1ivUSCCHnVRcIW5L1EyDC5MxMECqTlLAmqckCqWHr0gOQjUPjkV6RWbOFKLxJvNKr03qpNTIU8c4SMJIoaFpYeqAh02CCyb1JUAmlkJO3Mx2c+6yl09iTgtxO3ZVVE9LIQD5TPFCl0ukEtTxd5WtjE9JdyZvRT1APi6hd34MtUz8TQxV7XDaQ2dOwNU1JwBD104LJiejTVD65E9KrwcPoqRFx03YALiHqcaMR24o1hChcccBSOe2KJ0MedHKj+xP8scoY9CT7EgvSLkHzQysDgjCr0huy1kzbYnGz2VGxiugZ6hT5sj6cm3TXHEaySsFwQsVJq+NTEkr0Neyxw/AzgQrddPOjJULXxIQLtVgQmWgybhKJk0VC31PamA/dOvzfKa1DwH2GaQONrDOhSGkpAeQL8hwy0in7yFRzUEviMhwCcBBsMFIyiBH86F2FDk3ES2mcpmgjIpoyyhWJWc9AyZmtQicpZmhmUbDQboo7YSKjwiSVQoMASKKY9UMTVlS8o/8xQxIiWP1BBKKrIYND3LH/6RWy4JAZQt3Q9/JxGbA4FbJ5wIJUflm6+fAykONlTN3EnRKIEFsjvlgf6DGEccW+ktZCwDPlcU3VSbI/Akb8RpLYQHGypcmtDW+RH5FLE5thgNM0sEqYcbJwg8rsDwhXkZHTN0j62U+lCEHD01HBMjV9MgsSUwo9w2x4o/TJs0WBncj5CqXTC6A3CgUdkJE6S7sMb2ltiNRxf7N0LR2AfPDkkv4p/FJSWTzpcGIlosIsIyMkk16Z6ejNlDiheJJR/M2C8sjVdAXSy2WH/IIxiaNLE4QkVCisQXiSBuhKWHFIzcy2S22KUJS74e8TtAO98x1xsGwLEghZW8JDEG6jHkvRIO1TcgkUmN5LZgtEMOJxjkvLsUHSCAxpcC5KhlA9KGSR9koWNckzoLyyMSSTDSMcdEAY1HVsQP1yCXCMrBpKTHDe6JOiGkpBUEmZLDCQfBmjd2HnzKSYRxPlcQbTZ8EKoqvS9VWk0x8EHyIF0nZMq/R6iIBxckoVACAzr0wBWWfTmXPCjZJUnRIJIb4LlGn5Q7ejGHCUwUPyGEr1SXtCyXRxQ7wME0OwIYkScKjQdM4TyZMlQu6IvotWzerdrhOlmJXpqXDBcXmFdhNWqPykgDCdbf8x5qgmA2t8tlnxSAnSirwaswl18rKuPUMT6ZD1SbiZMHEds/VTXCh9wrvDbbLsSQ3Ta6UxjaTJwvINJRrwqkKS8Ojog0U4NMjRNlEJcxnRTxOfM0+iJNRI6T5ZQUqpcnOJAN3air515vEIPdpIlkkD8jzJVlHN3QPyotk9aXpDc0ooWPNROJmC3A6za0zeSR19CBlmMozsDYDIiqtK2cmw7ctR/dPFQSGyE9GLUZtK8nWNjKv08dNVMHZYdMxjS1HxFrzbNf3TBezrcVNAS0pALSGoo2M7aX1LYR2Xg8FjIqn90zSjjInlkJczruWlXRpoL5OhjO1kuvMyqewRsdJQSfHzfh22mWtQ+ukB5ZTSzpmOwgBjGdHsIkbMnhAKgMMFwiWqmL2Tr0vurDVLiaR0czkQ6OjAYq8Zv6J9qD6oCtF3SlFwwdlW06FhY/L0iwYdAeTsEQXy2YHxNcYRKRwhEP4hy8IwnBQ8q8MdgGvD/y1fQz60sSHZMdViN1E00muKwcRk8/wQPilEUeLyJeB3Mic5BpAQyIpTLn2W/BLjMaAwdbb1t4sxoHOilTWXmdVimvkh6cmSEMkPgMdAvEmLUVjyfHVnSNShAxwG48zSC9CxqWup/5l28Zm9Gczy2SMtjXHLraDR3UlGomJQvPPHYpdRn4rLUc5QwMtvnM9ZZYvPEjrYiZixoKOoTTnoUpjiC3DcgMat05X/qGo8kWNuLD0QL4N62SpK9vztDGKynWhzUg9QMIJZI2ZhIYzsiMKosGkt0eRYPRGNoaK0STKXmP4gPsKoaEqYkig8MO5LGMoz4lZIwuAe7D2YEBOxfPHVaRBaQwFlCVDQyVg5y0N+uLIZ6EDLlA6oycjyyz9sRvUFQXnsWvLLNORiWCzFMUTAtig8jQJR+3AfgQwyt0GQSrWIz4GDQy6IO9hLHWCguUPxI+kj3TOVsDSYC/RIaV3CZDIyALNjrvAZ7V1DH1CAQBIYMDQYSkowcEvgbBtQuUJlZNBsfS0PcFTD2wi/lRBkODKIld0suaL1E0RRESNBY/ODKDPRo6V0NsAyEqVZJWjg4NBZ8DMlPQepriHFmE2jA7ME9MLTZ9ObWeUwlMQm0+mc8b0Y9EFdd9OW2e+ogd1TE9tTfjlCHVMSZ8z0MBhNURmFsgbzt9zFvW/S4VmNYgl0XqGR0jiUcEukSYQQpdMUwR2S1C0dEEayYDMXgjOxLKjDTVAZsalLs3iTC7DQXNIpFDOIkpMdi3A5YKXTtRF/aZlp6cqAcCvplvxe8a3BTdM36ZyK9RK4aUXYPaQtEpO91ahd0/lLbY1bUdLxSgzto+cYu+nw4vUTeGiI4s2VYckDE7/StjxJwwMSuth+PHyyzsthMLY8E7JYwgWSAPAIqTbLA1RBqBLw55z4M0VjMT2LQCVLYkmZqCGUurJYYkGoBDD8SlZBTJx1qIbZzEvDWHOp1gmDQ4ihS1zO2d1zkhI9IuDol7WqEnb0K1FZKMiikTTQIBPL8Dj6E1J5U8tPSvoSq0SV3UAlXUP9VIGy7iVxcVO1qj0zyudAk4pMk79xMOn7Q1ohVl1rVTm1u0KH3C9ofkSYE7PyE8pKMQQwIwQJePAiE0EP4y1hxnGwmCfjaqjg6ENS7RyXHSVo6HT7lGviHHItMHhiqkKBnLx1adlsil1RfdGbneGtxUBt0A5UtUjCyE8zYjB1GFJSaZn1GeuV6DDZgAgxh2NRXKN9cujPgVFQ78HEcLEgIDIOUDpZRo0dy3Bxhcwd7TDymZi8ZHqoMIttVanI7lH8C/G0TtBfUTQN/nCt6c4xsotQ1IVZ411348gcQbDdWJkx2IvgbeI8JczImIEorURo6DvLG72mxX5V7kkK1bMLT9Cm9MHUlinCMb6t7Q0OAlpz6tSMXXyoEVkP9S2g6uhivMJNGjKO8FBYeYtsGHbMd5B9jBHQlel2zDiCTUlhVaTceOzZ1fqpyYGuNAxdzoIMaNrN6DObTewsHIMPc5tMuEHQlMkpbeib6DY8zzL2jaL5qJTf0ZgqAKGLsaWZ5qguvPg4Z1lVTHbN/KGe/E3ozqkoSZ9p1PV8pKDY5JB4ikZ8TFCUKVGR/0nkhUTp3MCWKVpRnj3WYdzpEDho6IETc9jBweiU+ZkuKOWlEshhwjk1vUGcMYVz2YxmUG3tFfPkqBdFUTg51No1XsG1mE7MINGfCmpIV7DqCzs9EGXy4xC1Dbly7MtTMxifQJHIRlyqOWThBXFWiTkYwECK3YVSdq14aDlRLlN0i34tMfUMcdiKMDEImPsyuf0aUHb0V8vqEZIiO0E9MkmpQOnu5epRZ+MI5YxsvsGT4gqox4tR2HRwDtGbDcBRfN27QvfSQ3BS7MMxCdDxQwN96bCTiih0kPHLXYNDTOnC7OCRsGAsE91IzYM1stwTDnBX4so8FBhmM55CODg3UToSw33fg7CSmjNfEQ7dTOjXkpQy+eBzwsso0ygtiT1TRymvzQVYIX2NcUopl9LA9PcpP4FbfZfToLI9SHSKccpG1GErrwEf0FXBFXTL7Nwj7I3bCcLyLGxccEazIRBejdphluMJKgUjWskzkH/S1uVz9RoIRrM0EV+xR3N4kopNiu0/BYfd7I3EkVeLUzHf03MopTLCMJppb9JI6eGU/XBxyqzAkFnKEPSz7I2owTq8QT0oYJ/SjUEISezSRrIB4zMYvhUJy0eo/1PuXTfBkdIawQYZmdGBQdQyjCA7SVz1Ihnmyndjy8xR/Dgy6BKkcQYRXGkhEuVA4MnWw5ETAjOxAtIRPEvK8B7oeiGkoB4S98BcrV6UlVgtiAkKMiskGB4Slc3TzV9scUJxqC0Ld0FTkpQy7xLKdYvLlEpawqqClK3VQrYQN7VDMpVDM5EOyJtBdBPiM9bCoEj9g9CDm9mZ0c7cTjMa5LVVLEBOMjup8ZSeMvpg4sADNCqs6mO6uAn01oicE4boGElfSWwSXeQ3GMXcMhO7KqlTWiGwmPQSxbLi8M9jy0KhSQzzOfCwvbtDXM13tLEMwzFH8ZHzqbxQ/CZDUKF5Kopgs0qYE5WYq1IXSf2ycBDCBNVU8hCX4zex9TSAcMfLWcvRtMiZ15zxMqYdcRh0kIviz1QUrU0hl8lTKHBKNPR/Bdec9Vl3CkjAQWiNXFPQuwrNI2nQnpnEvLktc1QPUVzN443xiqddQzXSUXPZj4HoPOA4/cvy6XZiOeMvoaQMI212CDniTiBcKoqYTzKZnA9DnBhPMzEhhQt0xT5YN03nVA3Vg4sp40LxIRywIUOwTzMcCrYKqWGJ49xpbJi5oP4tDEFTQgJTy6Dx4oWgpTJ/SzqZS9HWi3VLixDlyBjYntM3mEVZ4OGtSrllHoIxtWc0AEocGGh0DIxQxTHo1WnSmMCy3fwO2HGLFugScFehIRzQktbjSs0L9ICDO2iF6ZaowANMq+hLKYwL9JwKlPIDqI/snAur0AwpOxGAMrMqzliGBINKwwL07c7s/FksCtJQ+0rREfQLZ0LXc70p/dNcYRaz1wFHSOX03cDIIc5QG1FaSHKYLswb0U8Z2IutwWtQ0zwWNUuZZahXSgv0VUOzuIeV3DkFQM6YhBI3mNei6ujgoXytQcPbXIYK0zAQydlQiIPGBNVwP9wN41bTO6F+Y3eABuicmCg1rWOIrCyYZthgydvlquwm9YoQtPN9MhzSb/LzWStBZpObTCOQaMvajIZjU7VQcNlyb/GhaZrpD5mIyw11fKlt2X5i5qiltHDLhWN9088pJor1saaL0Mtmi4ftkOB1ScII6dlFKPdz2cP5kD5LhWVm8j9TAUtPpMvz9osGEDlS0QDLZCnC/4DkK32UjVI+ilwwhamuwa3zwUSn9dpYiFjoY/Uor+m4ofJiTYrwwp3CBmMfo/Es+ZhWYjaRZtQ8eZ5iI6guyzPsyPMbSDLLp03csU7w8mBZmEh8V9mg0emLOyJ/keuxP63TWMFAlK2EtGtJik3CIHyCRvx+WNmqR9RkwP7Cp8vaYdmDhmjSKQA0WhB+WZqha/2uUXKimONmSKmtGp18k9I9mlGWPNyjslUr6RSQHU3kgTYdupxFaKsRMOmZ4uOA2qOfICaoyzPpo1PBLR1s1AQxlbO6gExZVoXFQbSTOiBDMkLy8rRGnZfJzlS97bHd2ZgRwrVNVRIukqhofIj9WZNQ+phIpDGLjU1GmQATfkDHVRDKIJgmQqZAIpMW8u0c4KAQ88jMtkAf6JmQv3XUS8VwXVDc0RjYMVkF1I4qWHykwhcJ8NgXdJGStH0PwvQTx5ll7XFJC6rH6QY9wCCzoMurQXH6kjwJ66s0MlXtmJGqskB4DyOcDMurFVlzIpuTk0N+pOhUbkLLqsHQ4yNaUzQTryiZk29hjNh6iEsM8ehrywXY/4ChGFPRu0JyqDXs8O3XnbCA+4GcaXrYqkLZ6aStYShG8FASHFBES6bUloIt0ZdxJWjGY229+kJIoPJU4jU9M0ZAdBjOQDaQxzn0q6JpWcwjsnzxostLIe8dB5i94PwNCZDscNFhysp8nGQscsCGGXkxG9ij3W+SutXEVCOUx93oQeicHFGUGMXQMqlHHMaYsct/A4S1OJjpyC/kHMMsU5JT3Jw3mSwx/8IBMkRzQcOh/R1dimmtY7SJPX2zsWS16GgjqPrJSWCVYstBqs1t4gLzLKEi8J9AxD04igHpiKJRi/OZXwp8YPLyn7THzVXdTvEmcu2LsHJw8s6A4Tw41cltMcLwqTjNBJHOcWEpcUlKqUFzGvJ8w+7M1tm4c+OhrsxYajRyFQGg/QoLmp0a8t7zmCoSYICBFySUmSUKSahq8xksLgIJmLJjde1RmYlJ8fKqiLlwLgPedMpdeljOqAZs2HPmmOxqdNk22fBiJ6lhVaGD8XMlGbgqRArkcse16CtFcz3zjaF+dDUBhWjkc/iNuCpmUWbzl7AJUv1sBowp8hvzmCvaYyygSt3WqgsycpKPy6gqaxCwY3pCq7X/9JpisgTXxXypKmLuii2R103KxMgo8VijSfHotGg2SSESSqnx6dhBQBMguc2pINPzcHPy7annzGnUz6I/ganp6ANJKmOjDdz2QlsCY6Ik04fZkYsMcnvQkbU44OyjrOI2gZC8nrSmgZ5gHwKKQlD0TfRtrdFVr0NyrOUoV70/zDGM9zVXvQbD/EKRVMUoen2Qgt5qIIK7ymR9pvViUjcCBn3lNGJ8BnxqUS69Z4It0OzLMIIkg/Op7nwBM+ZCCx1jbAa89KmKJC58pTU0MBU0qII7scFJT/R9gy7pi1HA8JiDXmC9s0HMQ4LwyX94VdQxazec+hxRalV9kJDTbSUo47Vh9R59UO1WywxDUKiqjbio4HIbSDG80I0NrQqK3uw8KVHSY0l/DKK8qlGH0EC0j7GZWeI0gL2603ZVtYOAKX+CaugI7EzZxpUVakW80QBVau284jmYQLe85XEAcDxx7fxB0TBJVWp99I1r15GNkEF94hFXsH5BnVPmichJRajgnOTdilj3qMghcKj3zBkDEcLZa2b08Ik5aznQgwEv3HHNLVWWVd0DrTRpUXOD470TiguCVXyQS9aDTy1dMiuDQehfoghCtHDTE+uCWfWbEpn0sCoOEAhMroOvUxXIk2qRa29p42qrvW9gY2qWbbMRPoJI/LglhKjDa8Fr9b1WAhNse8Jeaw/N99AA7b5qYKzJjeaJ4txuaz5q4OxkDbNMzfSk1CBDVPytbdcRXkxPvCCVd41edVRpiLSPjJp1+e3qUsdrz7wHasOs9nVkDNT8/nXW7FzUJ1TCfTKpEJRq6QvcKtRzE7+oD2qNBBz8DA2zUVUZRLUO1A7lOxPeMflNNTFqGIVN5LUlSI8ri9BJdbfcsvBcDNZ1g8n5kDwNQf1seEGznU2MKz3JfyuMtIIMOdgUXCy1G3HVWQR9OtizYTp88wJpYhIMmLT+WO1NUgzAPL3hEvBdTGktFGogKUOdXZFyiwoMASOPQoHUd1GGysGcce0BkQWV8DFqDb2TzGRyGHdqROmwfAF1bXRU/GD0Jez6YQEDZHxE4DCJADSA9Sg9y70wzfjrbmq81AjseOucdIFAxOs46xd9SrXMqT6ofP0iU7+oCOys+HxSlKrRbRhCxxmtTTMsICG6ca1q/m3sLPSqHWuSaIFMwIxdam911YygkD1rcmjeiHcovxHdI7x8HFV5aw4ZaHBhMFyldhh5jPh9pOqy/TrDh2rg9I50Cy1Q9Ep9Ausl/HsCMPQvXE6ATmouq2LMxhFnqYj1fDX5KSDM85VQLOfRMe0Y9HYtcMz2OJdwJOq9fS0s4qC+UqcpUMyL3On9u7EQzeKEgCUIzfhNIAwpUET0p2li6sDNDmuDtSLr5/3svf4DJhJqNawrIxV6bApsQ7DwcxtNSL2K07DU7PG6AvvM92pYUGptphFY/XtMnJxlIZwDIXExIDACpgOWaOOBJ0yrtUeoiWv8XJYCNwArsaSD+6K2NTYCy7CzGAsCxYwoqYsDMIoLzNIDI7DxatCNjr0e9PdqNLzXfWBxZ/SyAnrrNDhkAgy8eDE/DBQCpbTa6kxCGusVtJrrwALNbLDKSFXq6fkt5xGuvCNseOOw7WJjwmi26WEDSBCLPcCCs0jmHEMsMpLZ0fjrnSAuyVwtt6vk6l9xNUj+62T0AeufQmBszmpv9OWpEHXSHZh1oeoonK9JzkzgkR98MYLYbNWCd0kIuM+r4KjvmGLQCE2x64bJtWqPdJB0Ceo98JEJAeojHUUD8OkjDS5qdiPuLUJCDfSDahj9ImqE85j8LUC0tL9sOvQoLQCCRvVl6r5rTwjjOEVrBIJq09Xrk3UOVOe8eAMULHbrOiA7XKKMoWoS8M7yHn3mQh5IW80Ragbx6BjvrfpsVN3Ja9Z8RusXmYOCary5Uq/1XY0/qPtJWIL1KmkwRELRcFYtqWsaHSlS6WutNf7oueiZannB4OEhayUp3PBgAtH0E+obUm/Mfn1Q7TbTqEPVUDxjzKwI/YPJDtDQcXjdadHNEuytTGo3kQLJINVQ/KKgm90Q/HYj/MpfgdfMwDzf0DU9O7yt7Y994EOnzUhdS2um8O7Lc+vflZlya2vw4U3r62uW9cAx/muJVSfrIYLEzfXqZ3wPCefq2P0l6q9q7W2C65GCJfw36+D1KqxC0OENxMgfyqv4LPy7KWKjvHVSA0koPCN3sDdRSymG6KwdIDE2gqEoRd0ZUSyNFQJEyHHQ9nE13dNJNnAh0P5MIIybNJSp+vRa3J/1zDDDsO6VgHT4vJTdNjTo1CvQbw2AOBJxlDRKHSvolyyzSU1TpYhYaOJxLYp8UKdJZLy4TAjoXFWgvCaJgFip0BDqqlDN/CCDhyi5zSJ9XFCYDdXrguhZqGmpZwOSHe/rlun+vcLBGKDpVcuoADCa8R5YG3UNnHRsiNwFbXVBQFG0wN7SgaX6OK20hOzvtBeCckkFXAkpdjl4G978guxI7dNJK9Fy3K4LDpT2qGXYOW1XKdOYou36wLtJ5wMwQ1MYCfGHlT81/z2AaKPRxgw3HFOMkgMQtNU5MuwKkrj9TnSC61jqKU2F3YvKSYMX0ffRXawotKkQjXQ8GngiRbX8GwGA+G3k/Ptq86zaDB+M3IOMDJH8olkCsoFAD2rXqapYvNQSG70APiHPajARviPSG93Bk+LvazGrapWvKBwZn2oAGPVUcdwoOCVM91Di0mVMS8mnwBR9/2rOgdkggOoAauIIXtU1TZQYEAv0mGrUawKGfWR9m2wK0WDqnsuy1ZDqnWj+3LVR7UywaNRN9LXldZgZLDmOXfDrxcEN89V1+fywUTJJA0zGGbZAVtWo65SorowCaOjrPhlX61QMohtlMXbUIhrY6pwb12u6geZMa1DkGlGTi+oElJQa8ZMNVE7IbXDYwzIabii0G191cRNDzPQagRhbawwagQ2XoGPNTBuSaQelUrUsGifIH4ACOeF88dWFabVwHBoM4Yc1SIihOX+pY1A3fN1JLAKIUcI9AYE4mWxU65Qf6oIZjNOTtF/qjFVP0W2oP+siA1bB0lR/610NR/wVaZUobgxrTdTUmZIpqWgCId0atAyVIpjLzP4NuiyEG4boUlXLkRg4n2wPdHE4Rhg8iVHVuINf7LhNFwkV4mIxUvU+7RdJPOubYGPJuOuDYCmUm7S6DXXJAILZGyF8G5nGnGMtcRuYGixztVT4aFqSflgDnGLw+EGNY8TRbhoCtLRt1dWTRIQbO2X1DVsrxBqhktXriuPV1anSQGmuGkMMLNVOG83112vX6660N2qyfZSMygKgNRW0WYlOauaK8Sl8UU2DNKgsUF5smgJFVVLTiG1QAvO9phEDAtbxyF2YvUWYFwghGL29BzgLMsbrmm3RIb/ML1kW6yldj+y0zemcpFPAG/g0zciYQhipOUT1zfbqVjXJdZkhJm3g7ZbqxYOpzePA0vTXfX3qVmyEAp59sxou6hDUKQMMNe4CNPWpA1sCKenMEE5tFAJjG1yNW8wF6x0IheuJ6gicNbXRqNLx2orkXcEFEutqKGbqKupllAsyjlUy6j0ZZWsK6yEt+KSgqXLqOnwubUrrXyj5q33lhqqTZP9BDchq6gfJDHA/cCT1Qxs6VA1sC8D18dca3nFT2F0D+2zJKcRwhcyJKCRACVmC/FKcbXCHlBwpt0w95XzIFHngi3b5YRq+qg6dQtRm3aFIj0leYD/IgV1p0AzBfSzkWNVVeOvfLPE5RZ2Q8GDpuBEy8Y/N9RylnHVk5jEO0RVUJ4Io8NX8mSnEE+r9WJsuNEhMYsklrGSscaiFKYGo3KihE3VYoJuQy+Q8QTUAmwXrzx3CSUCbHwJrMDDNp9C5+CODW/x5WH/c0tWN/IPDQ4LZ9IXQA92JLO7rRcEF9eKFTlSEGrLCuiOxUK1r+KX+yjkEquyCtaRxH6jUm7IMNWtUmlfApJssvBPYgJvkmswBFJtJ64GQ032g0ffQy9F1EfKs4jhA2OeY4FH5tPGoGBrXkNUltIiUaaU4opq7IZtJLIIYUQIIAUwsm1qqTXLAyhws+hrnMuzrGkg9TOcygcUUSQw5SpocUFY89vwTc60badhqmtkzoYCMyeIL+VVpxWsDUDGgyQtzsRu9DH7M5zO92D/IsFBSmrbDYnHkSlKaD7MLzHNQopvm0DdRQrWiADKb4mE9/Ejw7ymvsRTlFpq9zLsgadECm7LqWps2mmeAgpvqmtiNCpBAUDiYGpvimqKhwptRgSKb5puwYDdwFtAibKKanpioPYKb7pvmmx6aSU0ba/4yLfP+OQHsu1OsPVgw78D0MrtSNSkWcP89V5lFK+t0yjBostbSZHBe/Qryzip50bdycvOFaWgDBJt+m4IwqdgDcMMywsO4oPip+jLJKGDMhKrdMqip9JoxQFzyc838MLGk3TKTC+04qs18MhFocs2hYNyyip1jVA9qepJeKWGtxmIYMr3h/WtYdEqzJnPbG8sLOrw8xe+995FRm80RmChlPVINLdIsUdU51A3d8hNBwEi/ERhwD9LM9EXJG2Of8qqbEWjlykvyZZqY1DVtPUpg3Jh14twNmnXq/gu1m+yMxelIOZWtCYsojIQa5Zqb0nec4BvtmwgZtvL1KW0DDdM4mexJFYvysx+R8utRgbVqldMTEvlYcQy7E07yYzWOMbiZwJIrvJKKvnStINYZukNjmwPYIpojPFXAz+oOUHqUgIJKqDFwuSpdS3zkG2y9zXqp65jQoDy9i4ELXe2LFJmam7mD8rLngNysMpF50VPz2pslcOP8dZooOZE8IxAT83WaLSi9tfPzO5r/kJWaWXLEBNWZxRhQmTAxtTBM2AgqBDMHmgkputKkMyUYHx0z8j+FIKHEyMu9LDN5M9KNln0p4HPYxXDImXAzLxA2OE8TzEjQYdNUCLN/3L4zcFgUyHND/jPS8KFIT5q5fWLzsuKd0WIyiZtl1Mo5jsTG8y1TNpmWfbqFovCjMEKaoppum+TUPprYg96lmlEvm87NMzSd0X6gxrMCM8dof2COKEULToJi6di8WgKeEZrcCkUUwFKMDYFZnEig8JMSrVJhfLNVxV/NxQzHGSybEq1LaSNV+nJSjCTBXbRKyfqpVTES8bvEHNMqhDwc2plUE29ZdSjoyn+oYjG5HX4owuBDqQFRR6KEzCPNzjGts7ys4gj/cCAd7YNk8HSKaNTfU8udy1G29KW9i8N2AjWhj+lIiO9QGTWWY3ydm0MtC02aDYxm6a/TGnH2DJzoxdUNyWBdmugCgulQ4KH0K1aIYD2vAegq4Fl2Vfub9Mz6peXRYZradQ1yEZuHmqZsJyhRmzSCeUx/WJ9xTn2F6KjdpxkGvertn2lvYIW0SqhJm1lN4TCmgnXJGZpXtVwFKs1dovDIOCNicJJbmdFZzFmbgIz44RtVFi05mncZgcRelXmakdCb3chVMZqR0fFY7NlRmvsdLhrPabxb1Fhxg98sJ5qVKHaMgshnm4zwPOux0VxJylrpWJtQAZrffHfFP5q1Pfwt5FnhEHebf1Tp0bzKn5tFKNU5b5qRtTe0NvDAWrRx2EBhHHLIiYwK5bJc5lsGvXHRX5qmWinpbyAiKH6awDx8Yf6aV5uTHY6aAlD6Wjxa3Jv1FOAKH+1cW8eb6Bz9bRxbq2mcWs6o/MndccFFvtMAQRJQHenPNagq1jFBXQccnOlgja0wvdEBmg7Qx6XEyLCaxMy1mcZRVnAZMVTCU50NLWs0FLzqUH7JEqjOOR+bgcoC6CLxf0mLgLUKpauzm1ZazpoAW3+aXptdALabAFr/myVM0nV/SawwUH3REIqD7kmhYN11vBHJPJ5ZTRpNTBTJj9VmaAfRrA3MZQuyYyyZMekpRW2jg+D4EKtkXDdI15o9IJcc8gIEMDU8I5qIbHXdS+xeGGKl7PXQ0T7sD40oml6y1wi4Go4tLSLJcZ68etlglRxzX2p0yXi4GQ2oWCANQDzOQHVDAp2SAwoLSOMgnShVY1Dm6IBFFdTXxUjpaZqKtXgKfchClWur3nyioDICkVhNOM21PlvotSNbi7Gtmu3ssjCZ1eNane3OVLCM//xJWJtKjZo243ySsakH9dWbLMIsgJNb81qY2QtbljGjWp7wnpiQrEMRnZorW3NawyxC/SlMG5w7UGXAk1g/Qo5I9Wqe1XMIpXx5cP9ZPJUxSVVaztSfcEDUkouFsrvrP1g6YpXtHi1LWXF5wzQR0P6jwsI28JdQ47P7QXXNIFsLmv1Z0lAmMUuavXXryEeMvcyARJNZQrKEyBXEkpIyAx4pm5qh5e5aY5hvSKHlU1qPGbuaFlkTWstaa1oVWeYgKPHLWkNatFTlvK3U9y2WMBzsoZOwIVE4rhFhw8Pqs0ld/PkM3eqnKMx8ToN2VdS15rWSLA04XzNsVXwbIJqomyHVS9F3cQuZBVrgEEE4OV3JGtqUkVqPKcD1FBLscFqDTEMgWLt8VhH2WENjIVsvoWZphBrmSZlbn5FpWqlbBFtMAb+anpqGHalbT7P4eX9Il1t9sxA45kj8gtdZ05iccbdbcHNeILFZBrHImKtZDhNmW0CTh2BmW+Ax1LIzE5E0IihFq/tYJlCFGJxQn+KuojZKjkiDSQhjNYFrfb1IW2IeorA9JgPYvcZoN8oRm++JnMPbcDbrgsPGiQIaO0DsQNLC1JGLXAOdlHA7MPnhn2mhYKtYlEHbSVPRl1p2knXJfkD/WAxd9Y1IDP9YXWKmfSUASPUbREjonTVrvcWb5k1/8D+jI4LeSHL8m6LxdD5b+Z2no4xUA1VbVAra7vQcGA0CCtuMgpWYBbyeLJHtoS2q2qdZK9BR3Dug0sJKmBjqwjC/0CDZ7KqRW0CA0sIRM7VwyNu5WbyidjhhrJui3VEy7e6VDmP3dQVxA4wmY3k0DXBMBCZjYlBS6JwwJmJqsuMDLVkW26EpZqiSQWbbxaLmMSk4JmNKq/58AZ0IE7BK96jF0OLiIditm5ly/GOOge04CYz8Y4pB9Yw5GOJibaJGGQx9MWLe2lVVL/B5Y5Q1Bf0hvUrYAqjwffmrh2MqEBVqDpu7KeeZ/qz4mQX0odoPTcVsPcnnmXZMMDG/E9jbOU3FKVwMaVsb0Vps6EjXyrHb7JxZTb9bAdobKCO92mHDWvuRQkEmQFYbnSop2nNBFrQ30Y6zidrZFVex061p2i5Bgdrv5Ydi+8J5MppYAdudYv7a+NpdrYnb4HXBHVpJEduRtbtadM3YvSnafBANcJZR+vDFCZ5a9b2zWtHbIFm59eXaGVBY2iwbpduF6bWcxdvzsRXbhprc4AEbhdtl29EoMpK34nnbUDG9i2ljDsARXHzwF4sT4sIFmlCrmuJj1k2yXEcRgBJhA5pQBVtgE8JMXdop0vpj4APVnPGy0GCm2kPQZtoU2MbbWDAm244TU/2t2lnJAdrem1jaWZg42xGMvMG428x1rZXuaPHbhI3NU51MHtpiWIHB/t3epD1IjG1CqE9qMUDUWzna1dxIdPBZ2ngyyJZQPk2WqS99fByKLMLbc9vvFfks2XAzmuewpdp9yMVy77wVDSvafK2pdGnZ4AgQbKWoDf2EtT7pi0tey5yVVfnYlf/1KCltDdwD05XN3RvZgpLy1fKS/ALeTRbJyFTc2q5Ny7x1kJzdQjXNWe9pDJjGEGUEnsJmqzrZBeI72gZNSSL9W12jszXFwilR4ttSc5QyeqlrvfDhvdIsg1rKRvyy2oHA8suGlM1r8tonyCnUitoUWiA6KILK26StkNDRyqraV+PHSznAJDHq20j187MeURuix9w1NNQ4ADzg62WYets61AE0SnQHW8/9StqRW2bd8hmh28ZRY9oay6TJVdkT2mIY0WC3W4Ta9tTZ6wMlC11EcAWiCLOwwHUdeLnk275M6PW8ytmQ1FjZdHdiDinpnOQZq9FlWXTaS8lPuZE9UsmqGgjSjxkEFFfblerIA/E5F9qi/HVKQtRYQyBaNpt/UW+sDDs92dnZjDtUMC4qbjlC8L01zaRacWU5ljDnlFAitkiy2nAYLTEmTN5JKTF5qL6qhBvsWrw6petqbUw62ylSSfBwdpubXavaEdr9w4AN4hryWiBIrlVqEQM4LOsz1BrI+h0YfefbMlgDGHZRdDsX0bScTDq1POkAEZPuSQw6RRm2lCw7WQpFGTnNZqlsOmJYFO2DlGOaY5DzHFw6lN3FdeAdfhwkWLlxREw1OE4x2jrlyTqaZxltmjqaijqXsEvQKEkKzL9dlQ2SqBvaInT7oPL07wUkdBeVPyM125xUnprumtjatduemtjazgDWOlY64lDpbTKBeQmAmiJx/JrmioKQir31WieUXGLY3Mh8P5gUYdGqZV0Pm8KQrXUoOvCbXjOwITCbFAJPRMu9cJqsHBUL0EyQm+46uPWpbd2alfKCmkzY0NstrO7LENromsgzJyLkKVGbpSMmZSKZeJteM8+aK0vPy0xAIFB4mt4LCjJy0gSbK3NHExoDRJoc80463Fqom3Y78oDkmycsjjsqNGkQwMvfLAT5XNiPUTUogsg8MRjiTTgAM0xVb9rYxDwwGDGRW6tiyaj5WfncMmMl1Ug6iDn/TFpaSnRxDMU6jepkOpQTYMsVm5n1tSSEaN5JRVwUYr4RljGLw29iD4z+mbSdYBKAwb5JGdGNYmk6QkILTfLsyTtp8SMa/xkvHVJledGcmjybBtrNGtnRx1sBvH4NdJqH8jo7DJtLWU+5tKxEwiDYQVHtlDnIiNntDWhIjSCc23N9PlhgMhzwGaL6OW07I6OKoG07zBjUmjscvt3T8MBAouruXeYblpSgUfWCrT0PNeeb/11PlNyVG3T2lP2byx3Y7bLrN90OU/UU0l3eMDjsaaxf/I8ZnBJz/Ev8gUCoSLFQC6B7dBiRDYzQoMeb9YqXMgAjMzt7O3kC/xqeVVSMVsDasbuC0zs6XA9ba6gVAP0dy9Exg5W8Izwc6flrCR1X/XapmwtIHDr8+PGqpUrItknhUCJCHFXftUeVwdvV8XlSOxE66dgcGsmPqhlpppWNcc0pIZiBlFg0EnA49NGtnWyqG1W8Kf05wyODjQPScHc6panH2+NDG/QAu8hI4wL79X86kHwvWMC7ftyW/I/NAzhLa90akDByOmrpWzo0MbA1r+pBLVW89fwoUZEyYlD0WaC8pxovWcr8DihnSNs67N1xMRdJUlBL0Mo4AR3g3CnsWDyJHRgMUAWalS8j9unVQMo48R0HGEeRct3/MKH0m1ja2xlsYEDISQWDgBixHVCoFzs/SJTd8BNDY2c6Dpm9kboJfR1kuu41u4qZHOc7isywcI1d8MgcI9S7JkmZHVj15LpUuy/alLpXOe0ctLtEKdkcVr20uqkckMiTOldJc/FTO5rq68Mj1cSiFH1Ki4Ib7ZiUSLU901WatBE9/9RvLTMdHdpyUZLCXslYnReKW1vTsRVcBuNW9L5dA0ip6lZcizpzO2nMX53SHXc1qv1cu5y7UrpWabJCwxs2aZM78qVYs4XqX0NF6o88aoxx2lhJLkmwYD/Jblq5a/jMb7FWXSDUMxu4MXY9GVARrSq7Bj12qXzt4klrOtWscVBAnRQDdxDTuBwYULs/6utqE41z2wPNZ+2zO1i7Srs4SGy6SrDVQFrRa8IwvNA4PSEy4VOU0rr2yZrILyqEMUnhUxy3fXap2tn8upo6a9BeNEK7tBvxTG2VkNxAMfMYmrqFUQrIqx3iuqa6rylBmwcZwkDacQ9TadlWutsdMrtC6i5dVeBSCfK6NxtvXNS6zLpMuoY6bUg4u7YoT60IHWbIO1qRUMgdf+q0W/k4ZX09w2VjDzteWp5IoFmOSD1JSxsNyIr89XGqWAItHKqqWVNJSdiz4nJQj1HtlF87X5Hm8OzZMdsN/Ln57KhqyTNR5R0TfU7NJQNZu5eplR3FwJHMGyyYMNtQ7QMEmrMwH7BcLQW7JuDxGWN1zR2C6HriJRzmPRuM2cFbcFvRt23luoWoOkhMLOOcr0ABSY0c0jGZu5sZOcNSSa986ltScRCZ4juAKWxNkLuo0h1pUOJP6DC7Wa0CM+Jc7h2yWY0t0TwIunYdSNneHJoxEqERHCi7hsllOf4d7qNpXWuT6LrXOmVxVjKBcFi7si23bS8NA9FXUXExSApwSYW6YXHDoQ1SE7pEu4ECwbtmtJc7SyBBumS7/0nicZS7zLrku5S68Ml0uqlxpzp0uv0dgbvNsnO7/Bn0u4u6/R0Lu4y7q7tMu6S7NLsBfSy7UMjucCe4HOGNZJLEdklukLuh1YmpYPu6ZIq/2MExwBWiefu79aG6hE5l8+QSLKe7WiFxQeF4DoNtNV/Yk6PCBZe7XUUSEUSEbKXJeRPqE6GnurFkmBAL9ee7j0hKFSqwcbX0EVe7t7vGZPe757rHu/EUCCB0kUe7t7q3FaCBEFQxuMvMQIkkgM6BNLgvAfMBV5JzsHC5hzswncMbbLvxga5dMMqKu+vDU2g6nGmsi0nMGLZRWsjkU3PQ1tmyWMhCiDyRXS+hBdgnNdEQxO14vCXYuLkwlM40cHuA0zuQn1AiOVXEkPEuLXPQyELrXSU0EHuaUogwHciidOh6zSPRCSvKgjvpmyC6SOgdGch7OjGNod+CU039OHLAJMrNwJq8fysIeko5nsVA9XB7wlnQe679FV2WqBAyL1loemJZ4Ho+/Rh700ivkKzxVxtTiGhdAbuB685qsHNq2ZcYLeTNc/qYQMoG8SGpmA34mdU1NkrOKWx7+jU2SpfKZ5HknGlyJ1lcetp1rHormeZYiKg3KXeZ6Kj3KJL5VOzp2KtSvTJWPSdY+Nzicbpx9BvnSgeRj/MYDMTzjdRLOcuc6wocVNeE7pXBQltyyMxyUXFJUtncHUQxxtz9mYuYZRlM6ZwoxNiLwhHQhAxKem0DxkV7WTAQ++lklbJ64snfsc5MoaGyCtw7HMC56UI5qnCXYpQoGdKCLIWqHXF6epHUYuQSey3K6lgksnp6B8BI6R4oMnql2bKLVdjVyHJw5VT/qhp6ODipdQ/LU0saUMsReZmt2IVpBNi2eva7Pkg5YXmYCnupUDUpvMq+6ow93Bqs4eZ7GAwCaPnYUnsZbKE4XpnGe267eUwqXUn0yWgiezx7jTR+e1zpm5kXHfx7AXoOmccE4tIse+9SzHqA/L2ZLHrCG4rZKtihy0MMTHrUC9jrw9iv6PlUaZnk2LtwwkGyXShJb5zhUzH0gCBa6DIjKONtKXNFqhtvUG/QWYwClaggAWn6UaDrSRJ1ycFI85U3qZEoO3K6In5AEFlCe31QuJBCeyJ7t5lzKAJ75lmhe+jjAnsJI9x7enskekto0TAMHSDoT5IGqnHYQynoTHqhnj1CVVI0YJocs2U9Al2H0ANUZ1n/jcwdfMgV0XBDasDKnRTaW6tKLTXjIXsaLdDS5NiB2S300XpRe1drjrUq2E4b8tmg9M4bg9h9GwdqvXvkDfZ13XpE1Yx73Xs7u3vhu7oS4eNBo3jUkUOhB7rbEX4g64OfutRgNYEAoEe7v7vvu9UUTXn2sUe65wEhJRxVPkRkZCyQ9/hJwL2hQwCeWDP4qBGLersI2xEQoXN6T7saKw/4s2GIsL/ZT7oDFa/YU3v8gInBI3vje7+6BDG1FUIQo3pPulCjoGWU3TN7u3tLe7kQa3tf2OsMEhCKZJ+6qsFX0NsRTmHLe/Whu8BOZUMAJ3rne58Lp3sEQRt6N3vDU0qQRdQHuuEBE3qsELt6Y3r8RC5BrdATehd6M1kve1N7r7plEG5TL7tTe7N7JSS3ETdF83u7FZxNtKi/2CaInkDXe5hA83sAa4cVt3vfelAIYPiIQ2t7CyD7ert6D7pbei97Q6Fg+66gnzi6pAqAC0UDEcSJx4xhAFv55LkYCd+6YgmEQbvoTwB/utBUlwER/RfMgHt91bK7qvTAe/Ckoxq3De5oYUq+e+2cOpIQejh77ZyP5FB6eHvL/EfQO1AEe+FQCFhIe2vRQCGqHH1YBymBxIXjhBtIekRRyVIg3A+UgUHqEQRZVHviMSMF4dyMtTMp7pnXHXpQVPvfWHRNR9BxjNQp2tiKybOy8Iz4+zCUZ3JuMER6hPsQQCItRPv4+kWKLPqqiIJYgqJgSSh66zpvm1nolPo83Fj6NHsWlEfYvetYcLK7/xrC6o5qwQWFAoHqoHpTDEtI/i00MCCxPcmoaMcYj9wAGP193PQRExBMAQhsaAEiCXSxoFXdKJmf6MFUBPkilMdBMu1tM3S0ma0Ew/JLjMhJ3VYpDm3HSymVcJj+em0dBrDyOE+z4oWrELaDoll49TdJZnEYIwdpl4DVmcLanTA6WIUo+KhrgnLrovpSybLRdHtC+uj6sB3F6317sY0zIrF77XoZ6Rb6l80ceuG1HlFBe3O7xx3LySJ6FvoXPDx70JqaIA76TMq3mYjY4Vh8es76KdOhnM0lb+v3TWTweXtBMZdwbHqBek5phljg1db63vuaMpb64XpO9Vb7rXude4tZfHs36xF6370Ret17fXoh+yrYwfvmWEH66tiJNJRj0no6e+XKNalu2aZ7XJBx0fp7xnuC6eglhnv6QNPJ80mnAWgjkXGWMJeBk5XurCmaySkLURKgZ9T4QeRNtB0K8SALN5wAc+rVuqLsGfibe1ltGorr7Ax7meDhdGkQjc+YgNOhTb2skjF+2HgZJkH4WxL7YvRUO8qcx1XMsb3LCSy/6PdR1m1G6VqdDBlgozv1j5KBOA9bTz2Z1IBoLKIvWcqVWhmkVUboYNkraTgs3km22TFMHIRg6ahYIGoO+pWYCSExTQUd9+soy6V1ZzsfmhRVWhjiKVFYiFgNHTBQBNiYO0oszyqt2SxNKCgozATZG1H33P1lweJkTa2oWvMgWo86CCl/TM4pLaFYXdUiUdzgg3l6Cfs7KIn6gi1x+r57qnA4wN+oBnrcOgoipnp7OIdY8FHfje565QPV4Ek9lnp2cU9Qtu3OeovDSUiOem38ynq27fZ7X5G+cjv6Nqyr4/7j1noQjc5Kqjkb+2J1xSrme5H6bfWj4Cv7DsgaSW9s+OPPsRcqz3C5ap3isfsRNapwtIuSe9a8rOHiyUyZa/qC7GhjmnsdnHxB3g34Ee9TqbtOEZOYantQusFgdlmt2aeRskxv+7Z6iTxz6+p6hi36MPPCJc3H+uUCeOmwlWv64fsvq4ManXsDe/16Stim+0Fg0m1UPCL6KtUBUfz7K1MMVFUcoxgX2ZIQT1HREGBIppKMLFX6QA3+SVBSVPprGWUD45DqQNsc7TtiXbbqRcjkUwRppKGZXXxz2GhbtGIwCiIKlHlD70gxczybpfxC+qAGZvvTOzeo7c08lEgNu1AcDIGVMkz+LAKzXLuRIq6MreiCWH+wdtW4ggzIglRjcfUZ/XDC4FeVHtgOKjyx6NhTod+DKqH8aQz7flBnSpS0wnCCOquMYslBmfQGvCO30TYxflAwQlR6gETwMDQHOjFc+zCUvPSYdHlz5AdOq6pxbCBhKmQHXAYKM8zclNvXKPCJ61TvKTiILG1NwyFBBAcsBhl7tzqJcOQozAcgBqBtJzo1tb/4wT3qi0b6SwnSGDwU7iMyUzEaJ/TeTCQj80hL0HwwI83naNXCT1A1ICHQ9frULAfMyOzxypY76+yl7SQi2XSenGFw2AcHaJr6o9Hd9RI0ihG59BlSUVASB+RskgbF6kAGNyiC81dtBJF5mfUZk/wTg5VczikL2S7ryYDg1eYG9ZlNCj81gYuxjCYGYjBo2cYHlV0S2fxqfFD5mc+ZBOwNzQ4GtgfWBhhT3v2o2c4GpVHW6/eQzAa3KcIgLB1Uu3Dhk2j1vVJhr8j6OUyYAQk5GLEiRFx9GXxYZDWTmKFwPlLEM1LZ1pDvmU9FFrxwoO+bvf0fkQX69yxycEPMgQePSRZzb+MU7B1cNlFEwbCVvga2PBuyHJneB43csSBkVEu7K+iGMGLwAgA1yqrzCTncMQVqSFwyVILYkAfPQVcRfs2QkS9RBtArmfx7qhq5cJeRgVg8XFZI0GobUUMDOKBh0G/6a9WBdNfEYVHfydFZBKwXMYbxYMsxTQjouBmyioLKbSoZA2TgaS3dgxYtTtngaEWqSFjfsFJV9ZiAUj2QYqX3ksghZ1St+meSJRAVafRlCSJUOplw7PSGGTYGiH3m0WbVkXFrjZmDpXTV/IWZxUAuVAa05NmaM/7Kl/wE2VF88ML1VJxYeuCQXDqYrdhJe7/oa0FsWIgQRUn+/bJdUvIpObSJ83XvS9OopQaZSXdhf1H+kQFb4fvgdVuydIh22LjI6hxf5HZKL2owEqWoGBEXgp+RaEhbSxxSyQdG6PPAj4J4u4kGK7uCtFnZ+AeJ3Mqy3Fro9XEHx2m8GR9wjdgPWqmtOnKGOH5grnqA5Io9gmn+4i2QUyhKTQ/Kl6gMyGKkrdgjByFI36KXBzvogLW4wJlZ5wcNPRWVVdmnBmK7ZkAS6TLgcFggID7oPKincq9IWGqqwp4R/pWcK0wGDBnhcV38zgcxCi4GipXmsK77TgaXzZYGDgbLDQeYpgdRKLbplxx5VZP9Iw1GBhNL/OuZIXbNFzV9GqCGfJkBdRCHEKIUDWCGxge9esMwUIdOtbj9sIcQ9Yx68IaMe/Z0UIbpbA7REbAe+bgHzdAxhKdRMb1z7MSYjyjvDC39UxMVAdtJHKXrmePBEgLsCmQK7AvNrdpgvSxbmSvQEEkzkJuzCBk5IPBYrDR10jiVOGk3kamKf2G1mOiHLfXp0WiGNClIhzChyIeI+hy6lruLaZvDW5vkhn2VaOJSWv8MqZRNYkAYKEjYhvdjxdEKSVCIxWP3/XEt+Ia1Y3qSwIw22qdio+SCzKdjm2HtlFFJaWICaPhV9Zn546yNacwQ5FSHAvpHO4ewyIaMsCiGhge06Pf589rifNaq15Bihnl8vRRwGoA5iZhFzHAajQQRcO91vrNFnRozk5iZ4yUo6pRv+879XIv+wdtZ33HkSLgb7khyh6HQy2V5VdEQGEiKhtG6lN0WS5osgzKrU49IaZW9zOeRUob90PxMUobYNPqHC6UA1ZQ8LpoPpEaHBPCrWowrGHEmeQcIRhnJ2hKGxipt1PYsy9FGhqtasdNcKNaGIZrGLBhR2oBa6IKVGQxp0PaG1urmehyjFoc4NMqU1QOvsRKGnE39mHqHZy02Yqva5fTeJSBZ5zUmHOeQXofCIMeZ3ofmm0DTLofLVB6bTcm1cQcMHprTuC6Zt0XX0VZhRQs6W+ub5ptCUa4wwhnRAzY6E3kE1ZmtJj3bkBGJPE1tKKYt5pqs9Zg1Rjqimg45M41c8EDEEWxgcEy8zpsVAHo03Gg4beabq6O+SBEQoprAy+domH1Cmkm40tu9AAwIHpqQQLRVWDl2m3ZI8nD9vJmHODAQSWhoopuWsyPodYz9If8du9CPoZoDQwEc+8Ow51shh3nINHC5yNX6KVtg7UVQfFKimrBRnfHeMEgj/5o6o+xcSbsJhrCwgTA77KKayxCGfExt+VT9ICDTn2gXLOmHaMosg/F8/SD+WWhIf9Ez0aWH4RBZ2tBQ2YZa0xhpWVTXekQDOpxVh7TAWgzrG/+by6EySHdt5pqvgjxxqN3jhk2kPukQY3abuoAKO/GCVYaSEK6MqC12mpHi+5041K2GslGGTaLwVYfs0jM1kXDZhnCgfmzNlIhCmYf/qf6HoDrXkT6Ga8qaSOX0boeOtH6GzprIlFTUDFhVh3uHGqkNh+abEIG6PNtKNVsMs/XN8xihoAUzO2j2iihRivDZM+uKP3CuKb1z8Uiiu/K7z3IjqC7ccMvM8tcsH5Fx/fozVcE16M0pcaAc8sSDNi0JwL4zE8jcTIuHXjJvh/nIsxzIMk/A+W0VAf4zfrLgjdP8R5u6IyGU1MHd87jZB0k/nFCZIRBg4jo8t9JZnY49mB2n8kmS6xwXm0DJErr0cBPyFHiBMSbpm0rHsk98Vgp984bpJcj+IBeadKCVdaeV3fMpOc0aQhlEMkm6nCq8s3nQc9RS5NXSj3rqvG/My5oJouhIHRtFWhiZV0KVdFDRc5qc8O39a0sN0z9d7v3AqU6iNsiNVFNcddKyMc3JE9C309Wr2zhYXDSrH8hGMcpDZNUPwfRocDAJ0sLgptQzKMm7jRK4kqCMJ+DOmZqggTGaodnpEMv2m8L5Gw11SlhKoKiLioyZE1kySLwazphXsDxx5ay30pZRbnteYPHdCBkmqDo0Oa24mKyl4T3KKwGFpT2ZOstltAqEU3q6uKrzwUso2JVhiptbVlB3OgDL49v0WXFtq6jZXcGHZjqd6X6ZGk1r7LYLRYEQbaxsBNQumbMgDfU9G7GGSoJG9U6h8YZ0bAFV5MtLUEQjxplHQxpIJIdIGT2bzMjicD+Zqnwgu3ugHotFQ7LqMDwHXD0AJZtR6KfzQMrfTKd0Iz0amXQwlGkPfaupl4FFh/F9mssjh1wcepkrEkYwcvBi02LKlYcURsOYG/Nlh+FCl0PU8CvREQprJAANh4ebTd7pRulNhwOYH1UdhnyTxpnf/ArN7IaMmPaJOWidh5pGatC2rdKbmke6jVewvYZ6mIoI/Ydv2lacQcMFG7LSwhDmMWXcw5k3ScUoId2NsoNpi0rXQ3dB6dpQLFctJQqN2xoZEQrgETOHplBV2loDiVus6KdaWvWlDQuGzofGmFLJRnphdQbStlm0VEVYq4dBCi5B47XrhsNDCqkeKAGHU4sSR57ZaYZimWJGzXHiR3VKBukWcJmB9qlOwZs6FFmcjBk4OnS0WWlGW5mP0hlHpNIWomC9LqlczJXScHlQm4QQt9LslJHIoEZdmskgUukPwuqzrkfZGHGHH70pQWF1TvMzTHBb6zTLmwzZNVOnkCmHxXKoR5bwroevhiTxTocA1IKQL4e7sBEZ+jKKEJxaa1sRk8UQcj1vS8VzTjFRG/zNYvK5aJdVPTUssvSgBiOx0aLdHTJTo2bwkOLdMwnB0mpuKHqD9TMBQO45v9xQs1TDUrXZMFMzgMhUmmZ7Xuigs3jIKpn7hlKaySBpWStHdoYehruH4odMATuHvocbRjuxeBPxRiM8L0Mm6u56SUZ5NDzTaex64HHIAIOHlKVGhMwbKfN1u+gPbNi6WUebhhtqE3SRW5JHKK2LjFeDW9qEzOAcskdhhtZtiAwSPfrq9Yw8GAaCJLzvBUpGeByaIQrswDCqR/b0R4LqRi3R/WmYNJpG0qgc4nxI2kdIyrvgq9EZhhbpqdD+mVmGtgLbrIZHSK0sMQTpZDmIK1bipkYeu8JV7jBx2HgdqrQ2XGc5cPAP/OWHZ9jdXTZGM5uxjaXZ1YYrCxh1E7B1h18LKTHQlU5GqjUx6i5HMEYcrO9b5y1uR8FqutgeRnAauSx6jNEBXkfGjLBxXYZ4HAlIE9NUmva7UhEVOAFp/YaxQjl0kRXr2bgMHXNnRo8LaYKjh7mMihw+IVrx8gvYlNG9LujINCH8TTkdVbo4a9WxcBxjyDUzsq+ZQNr0yArzQTBB9NScPEdJ9XTG59DBOw+UKvFZaYzHoilMx8K689RXYCmU8NpB0M3JzMiDKWdJUNwd6JEb6X2pTQLBGzqXsQBwPBnDLRR16EbEWUOc9Mmy6nLDKzoV0QECl1BessdRhWrDAqLH+jEWRoscwUsz/C66kscBAhriO1WZzaM5pUM1cC8sVVSAPY1xgbV7WQUqztzlQbpZRu30bNiGstk99SDxjNT9mVc0jdhpS9GwCoa3Arm85vDIBoIxse1KMLRN9GxS7STx+Ns9lZ8bpMjV3bDdO129GA7IqS0nw+roK00r0EZLnSGmxvDbmour27eU0FwcPPzaDVuvw7SC6RgeaanV8zgtKC/riik7MDXdzgxeGK787piGusq1P+KX6JWNQ5Krh1j6Xuy9Yv6YTKolMl/Ieti5h97xasbbwmAcCOqIuvub4v1ctM3bt9CjdVj0Xgz3qJ+r7xvPtT27/BnmDVxtdRttaOPJSjHzY+FM9i3q1DIz+3HD/Ml90ionyDN5GIJ64BhClFX3SFFxmKMbi72DTzQCTZdGVdU1pP7sQFqBqCzDwWytmFewqe1GSkmbyD0W1ZYaoammET/bU9CBqCxRniPmbY41JRoWQpaDWyzdMEyyzFrTHVktk2JADDmN2EPMHZ1qVdubCGVlmslH3XJplqmdlM+R48mHDKvQ6MHmtDKZVWnj804ZJWplaVQdcmgGmfbIJrK5Ghq6szj0MxcI72SmKAnkKQ0gWKPRyvDdMTk0wEybAhVbb2ub6oJVOtWLvGwb8SwVAJXtzB08ysvNxoN1LdcY9xngU9uo5NWaaQab8hj/63wZtsdh3ePU1sZIKObGRwOMxj2RbHFdRjtUK/2zx/zHcTX48CRZ2ocdvBtas9HWkTZ1bD0JkK80aUbM3KlxzMv248IHeLi0WyVxWUfVUOY5k93N4dYcs8fZGSH80zUbfIQxnZmsNYwtxlDzhseRm0ds1buHTAFbhhtHfvVImd/6Hi0JTaGEN31CxojYlHC4LdOYPcOzExdMa8fHWlfBqzqOQRlHGJJAlBzJW8YrWw6jWDBBhxyiEP3X6dJGztX3AkpVskenWzFEwVXyRyzCLFDUSIpHxsLAop2pdciRogT5SAJB2j3IPwggnMd9uVkdHHBsaEaM28Y5/GmfRx2rgf2NWsyjf2ua/P7HGJNBQq8M3sd8kq3Qmhj5h4OrYDpFyaZHGJJccJPJ5qKSSJJ8WzkjWa7d+jGxGKNMEXGfNZWHxsO5LFeG9kdWo2OxkxgUxjMTPZtAlfDHF1nZMDYxJJog2UIKYEiBXakFnzTw2kQmt0n6xhTZhBFXrLdDFjt8UMHrDkeY2ygEhoYOEEzs0drP05ep1ayT24SpJcizqp0hRFENmO7jAdu12Qd0Cpr7kaKBzkBgtV/HXQAI+7dq0YersZQ8ZBsNRkqDkiEHePv8L0ZsJvf7xRzqR5aBobWtBmAcTLkw6bYZOUabR/ECxXy6R/Ow7SAoBs1qUCdCJ3owqoc5h4ZG4iZMUdXIgMfMJrzAMIkk6AgnQibhWVjsGRTHxnYcyCfp1bvBn11WR6gmKYHZTLgYtkdCJtIYa1K4GZgm+xSvKRQmCiY0amUN8MZVIWfovDEuRzwnMoKEVejGKYGMm22Hn5EBFfj1+idnuWb1nMhf0TIgMelFqSp4CieCkNXHuMfSJ2a8PDtsUWghmQMEx/Ex+GDnm0TGeia1ss1rmfTYYEIbkUeUccfH2PvYJzwmySHrdfLzKlChYAsoCUymJ7m7l8adR5YnM+nXxsuGCibCnVFIc0fmJ4BUGUYDPKwQpaJnRrYmvX0zh9LGCic0zNRIIYYKJowr5jntSIxILCY4TI8ZrCbR2kwnMbzMJrHa0Sbzx2naKvFr/FfHAdtxJz9NFawJJ3Uo9egmqRY7Ak2pdXrGCSZ+SUzqVdpDIJwRhGjn2QHbX1A2VcsaYQafoDabjxtp2hro+FSN/FkmDlgBDWxwBSeMGp0oBl1p2/pRqYaf+pKLTmEuUm3ViSYlJhpTkqmowfExOGRex1npmSdp2zFhRtXjA/HbYutZaWhatSf1J7EmsdtyRiq0XidNJrjI0vCZPRY6MAYkR0TdTmC6qG3JsMax2o8s4IyqutHbgjwtfSjGWSdvUUQn5vJ5JwIBjjxdJ0+zpCa5g9dapCeSx/eUbOLZwMHq8NppEXxNYsfHW6ghdCeMxlxjzDoYRmzi3QYjjLpxWEcVO3iHkbU3RqrYRvoVDXhH+2I4EwAC0bWdiIBxhTVERxPjxdH9JgQ5gbm0LLgYHbs3Y7eUFEYzmujzycFfPVRGSuLR4PDGybsymtkmqzuUcK7AxoI1J74xAdpwsujVjsUqUBIIQce7GaxGFycTG+xHadtYkllNnEbxYnWY9Mej4/pA2sNOw9MTE+JrQC6ZzFq1Ykn6SlTo2PdiUpR7NLzHiOJ4qoLIFCGnJmCT4T15RrHabJnsG/Waf2KaIOmt7hGCYlDEPMYwafyHoSF7ym4oVNinY5LKIims+mbjkzXm2tVG4mLpoTVHDGiZRNIRdUfmMBpiGX2cJ5Fj+aKnyohpcFsiYiKrJ4MLXQeioyaTJ/eywyakOWM6zjUUcNrJ3hJY0c5JD4bHoipRLQwEMfRjCshgtO8mwuXGOLuacnrQYKlgSlT8x7TZ5IEtxg+x1MaEpwocc539W2QTM5HDNQVGJBPSDeO1jZrHotiLj1VHR0+zfCuTLIAnRUg8vOjZIzth5QmsWtzim3jZN8GNOvMx0tnr+GRwcvD0pqT4tFX4Jz07BCZTx2LDOCbwx1w6ONmKc8kHuidWo7o1WWnoxwGFhhh6qR5Gw03SNXymMiYmJ7as8rRkWcapfkbAJ4pd3miWJ6dbb9z4xgtbhVHBR2dGubJFmtsAIdwgwzYcJMfrWPhAZHCThjjZz1OQTXvGMxOWUa4nB8YzEzARc4YJR6fGW0d+9OqnitknxrWEFnSsxgxLICl2MENTw6zl5NQpIDwzrMhA/1tYUKZpYv1VaR3sjtR0ocqbvA0a/EkCtzSIOD+9a+IElTNYRU2aoPZIF/RMc6wos9HtSbKTUp3zm7eZ+sGrI/bLUeJKhvpohatdrarH4Rn/bQeZ57Gg2qDUezuI2RPHg3SuGWd8ntTZiRfMqjiZfBBC6XMYOnJ7mOERcGFwbtlMQ8c0RTvYSvJK0LLGnEsM6aHNisNbAKExkqasY2lbDX4Jnxq5cD3DIVQ9EXRsdhpODGQrnU1cBR4NrjGjJ2ZpMFBc25bGCafJUKZVWFnUQnM0uDjtRurTA+lPkPyihHxK9QoN38YgfVxLUJ1aaOLA/ZvCx6Da/1V2VMq63ez+WbpwsjHRWa1ZTG13DGFZ4GEsNfCilH2atP1JnxmtkvCMgVxapjnbiabHkRqm4od+9cfH1aeuh+tHJlneh1SHeLgihjSGCrpJ6447HYFeGzMmU0et4stbXmChmtXl1cg3cjG9+PUEipeG8Lz3qIm6YPOLEaENqqULR8tH1uhEhrDzfaYd6DRbuzKNU+tbrjvA0hQaTnr//LdTaukw28Vtg3OgcvUplXyPc9excgdEOQrzzaafbCzpJFC6SEAAAADMxAEQARwAa4E7gAgBZFBwAHiBDLlFuOWwCLk6gVMEPYFC4WuICqgrgHcJa6ZPCHOyGfEnQfiIkfBbp2m4yyiKYQuJL9irMfumU7k/AKG5W6ZxodcIMYAbpkwha4h+BXunQ7mRgbSI6wFfOT2xh6egiSiwoEAXpp24w7XleTsIDfGXpptjtOG3ppu4UtEPp5WJl/HpgFjQhmHQibu5LYFbpg3B26c+iLumGoi5scfxrQkvEHnA9zzBsXKBP6dAsb2QT6erpxiwMIg9IQem8AhAZrVdQEB0AQBny7l8ga+mBbg9IK+mN6f3pmBm9rkvCc+nnzGtuEzR4GcwZ8ene7gAQLxZdYBDEK+n+ABXpohnsLnfpvunkGdTiIenhtBwZuUAx6dQZ665LrAwZhhnoGd/p0hmj6bEYphn0bhrp7H4n6Znp+WRX6Z4Zjm59LEeAJumMgCQZyvoBGatsD+nOGdziOBQPYAIZhRnL9koZgGx2IGcAFPxxGdwZqRnCZBzaEu4H/Fbpmi5dzCLiefw1oE2YyPERGc1uM+n5GZQZjhnrMQjuKjpnQg/p8l4EGacZ4enXGbsZrHw5GYcZyyw8kCUZvem/GZ/p7xmqGekZmKJJGd/pgGBmqqbYO+mEoB8Zlen+MAPp6hnEmasZkeIBLFYZnQwZ4CQZyyB9GaFuTjQdwmUZmEBGGfsZhJmoGYhNNRmd6YaaWxnY7ncZoCxCmZqZvBnF6bMAVhmZgG1oAJntaHmAUGJUmbPOHwBzGY9MDfBn6eThNeI36cMZ/BnAmc1iWhmztHqZuFZ2GZCZppnwQBywQngwGavpmKAlmbYZ8pnRmfmZhppqGassJ9D16ZyZuAJ6fAqZ9hwNGa0ZoZnwmY7piqwo+HXCeenZGd7uPpmTGdViTunH6cagUe5SoAKZwJm7rhIZ3xmvmbuZrZmIQG0ZyPtIUAbpqLQZGbmZypmAWcnp4Rn9YDbp15nGmYhZiBnVoAI6q+nSrC1XY+m/mYRZ1Zm+umRocBmsWauiIdBumahCKpnfGblZeu59mZvp3W567mOZoBmEzGuZx5mXYjO0XH5fIluZ8FnT6f2gOlmLmefp/hmuIh5WQlm+wggIDpnjmrhAb5mV6fyeWJmpgA/pqJmL6eBZmFnQWaBZ465qWdgZzcx6mZxZ9pnbmPRZ1lmaWfZZ85mysQbpl5nTzCeZxVm0GZT8aZmjmCjuYlmEmbNZvlnQwlYZ35nW/BaZrpmMWbZZ76BXRDoACG5u8m5sV1nelSOZzZmEWeqZgtElWk9Z5JmZMWtZ4KJ6mdaZtNIGfHqZu1nnGb7p6pndmeruUPVAmYTZ0Nn0GeqZ/2RzWaTZwVmM2cAZru6lYCnuOZFfyEBkDH5HdG9wGbGn4Ba6YxQBsQdwBYAJ4ErZ/TYvECRi/hBK2erEMdAF4CbZo4hK2eoyvfgkpjxQStmgUMyQbMSnpLrZ94BPmGWs03ACMDhQStmdpgckbwIZMBHZm+gNg0HZm+Fc0GLZ+YLaEEkuMKcF2bHZjOIZgk6nbuAojChAPuAIkA7ZvtnUeADsISRT2ZHZqBBlQ2HgXtnr2fWGWtiy2eHZmShvLI/k7nBJ2eNQV9n89y7EIPTAqAfZn9nl2bfUMZBX2btOPfgxSLV/B9nLCe/EbRjLUFfZy/I22a2wGww2MEPZ3KChJE3Z5tmMuHb1CJAMOc7Zo5hejAqkDlEdDBHZrhhYsuhwAwi8SEPZ8RjNpAg5m7BD2dKI2hBzRBgUkjmtrjs47nBqPkzwKjmo0k2kBajN9BY5nYS4kCHZwghD2afcGtAa2bPZxChsOfbZqlZ/6FfZlFwQMFNwdtLoiFfZg6DGOexMEdn3vjI5gzRkzUw5v8wUbOk5nTm8OcxAGiq72fU55aofuSfZoTnlOYcYdZIe2cITKdmbOedWBxA52bWwczn+wu/EESTb9AfZhR5AZGhwXWKjOYtud9ncOZkAA9mm2BM8f+ArOYrZ9thASj1ke9mLiGHYc5HtOei4PDnJCBNOE+Ar2fi51p7mxDi5giJ1Soi5SLm62YIicOMPOfs5r9miueRVZdmS0txwAOQX+UQ5zznV2ciYK1092a3ZmrniucyQYLmD2briU9QV+CY5kDmn8C4kCJBeuZJQOmhswRlIAznkub7ZjcJ2Vgi5DLmNwihEd9mcuaXx39m22mE5jcI521nZ0rmK2Y3CbiDBucZQsRBphCJc3bngOY4QA7n1uYcQWjnJcAO59lQsSHI5xfxKObm5kVxwOa25FDmpuar44eBgucK5r64xkr85zqdPucwoY9nocGQ5leARuaLerxBYOfu5g6I0UOhwEPJLuYCwHkNBOfDEPrmBwi05v9n9uYCwSxYKpF45qdmAsFB55XAVueU5nHmcTV25+gw/uaXYy9mZOddYawxczAW52EcckCp5/1oguesE2TmSyEUJ9Lnd0he5suJEucHoqi7CuZxaRwTucECAP9BOufSQLnnEeZO55ygpJgoQIbnviSFWDzkbFEU58tnCuetZNLnxOaV5hrRLIiS5lrnaKAK6ByRZufe+HNTVeZAZxTB0VGfZ1bm0WTgWKXnNucK583mgjSq0OXodcCN5hyNTcFAyVdnaKENksHmmec7Zsvx2UIoQDrmQGY03CqRZueRQKLYKECD5vAUNeeC5+LEC2Z7unuAcdBJCuwkGFNXZ7+7uNgrwAiI78FSQOPn8FCESdPm8EEz589hBk1gQMFB7KLwoGhUk+c+EIrxxsSglOjnk+ewR/zAEUHIQKPmBmWmoeSAdEo7wT3gzZMvgF6g5BGz4MMDf4Eb5lVgi2e/u2gNmcRniRrA4+Z9YiPFR+YIQfvnMhV7gU6Az4mmYXrQrKDzgadRGEXL5wDACeHAmLFFR2fwEdBACeEf0xtgl+f8IAnhPfVo4CaRSsBP5p05auBDIeKhL+fVYJHwI6BP5tuKbmFOYDrCp4H354UUpWEdJ+ihN+dzRRDhgZBdIAng8HDOBQUQPJDzgT+Rr+YbmS/B5+ZYxF/nXyltwefmi0S/5uBRBMDpATe5F+dLDavAYBbZYKSJABaNRFvhm8Pf5pkSMsE74RU4iBaj1Atg6PI352DD1WGbwufnsYUW4UdngllbwOngJhEWYe6RBEHoF9AWuuCoFvfmD9KsYG+hcXvIFv5Rk2CP5/dACeDTqNfn20M9QVgW6mHX50+g1oAX5rrh5BZkF4hgBBfI8xgg1oE9W2dhMhE8Qd/mx4i04DgWJUDWgLgq3uCMFlgWyjIUwUdmaYonZSlBuBeQFjbZxBcFYz9B3Yl351QWpwPY4FQX9BZnge/n1uGP5wciQWEEFrBBvBdP5uAWVoFhwcxmr+eaYdJAKMG8F0wWdmFf5wcQtBfyFf/miUNWQRQWkBeiFhCJOOQegLTw56B35r3hxBafoSpgd+bIF3IW5VithLwXchdCFrIXHBYfQCUID+eQFzLgcCAaFoDEl2Bv5swhWhdFYAAWG8AaFz/mshc1ovtgJQhqF92IbBYtwCUIKhcnhcwWdkAlCZ7sBKCYFsFgWBahh/IXdBdfgOfnh0W7YKoXH7gFYXgXokDfuNoWshZYavnBSnkYFlQX1hd/AFHhphff5jYXWEQf5qxA5+fGYXwXmBZmFx4WrBbOF71B9VIPYK4WPhckFqYXJuEIoXx51MAKF5fmF7mNYLYX0EW6F6QX3+d+IQIW/BfEF14X0uHP5rqhvOBEF/rhvhZRF2AXmmAAETgW8uDIYNlhVhYQF+V502HRF0ixnhWEhEkWKBbbYAkW1SATgRoWBhYIoXtAE4BGF0dnlmF6F815YRc41NihaRf6F92JmhdCIWkWDhdcFwoX6hdJFgVhwRc+FqQW3BehFvEXRBbhFsgAZ+enuRDAaufddLh5OmGY5m1wB8B75/Vwh4AVFwtnm+Yy4BTF8qUZkr+BD2eR0WJlLZmAQETnX0CKwd1AGuf1Ia8hbRcL53ZhOhlNpQCB4sEPZoOYI6QG0VzndmE2KQWhSrHOEyjndmChOQTEy/DIQJARD2ZDFrWlYBGTwD0WwKhoocVkg6A9FqFFIaRIEp0XloEqYT6lJ4EPZ/TwpGCzAO0XVuF6wfMX0xe30jLAsxZY58BTJGTqoyIBQuYCpTMXHRdz575gUxdKsC0Xsxe+YeMXLqWNFtFBQOazYJok1UCQoKLnxoEw4Uqwq+uB59sXDyCPMBkWAOebFx8w20FfZl0XJGSp4r9mZmFzF0ukenIc5rakixa1E/bmZmEXdDukYxdkQV9nQdBcYEcXQHW850Ag+xa9gXihX2b3FuqkuxYfZ+OY7CSZFd0WVxegIS6lxZUbFusXU6BbFxU5Quex+NPBx6EWFqLn/xebwS6hOBfM5uFZm8FnFncWbzAnF9cXlxYnpPshAJbJRcznVxf8pbcXOOYcYUuaCsUnFqtA3OetFy6lRxY05wsWKyH7F68WsJfdYTsXK+BNFrCW3xfypVsXiJaT6TXEGxeIlv0Xx6VNgBrmQJYoZVsXQub38OchteaAlkdm+JdT5sCWlRXi5/LwDGQwlh3nImGYIdmlBJfi5lKJIaSXFqLnzqCQlqSWhJd5yOehaKGUEQ8W52Dol08WCiHi5tCXLqW+s6zmzOBcF1FnqJe7F25sT0HfF4UWNJcUln8WGudpAWSX6JbIF8SW/UX8wZ8WheZq5xyXvJctFgiI2JYdpD8XCuYK6kSWOJadFs4UsURbF+yX4udpHYfEJ6WCFuKXCGEIl1aJmcEy5uRg+qH6cNHmwpckl5SXQpYiB/0XkJex5hPQspb0F3yXu8x/pVYj0pYIiBcXraWnQZKX0WFoZfJByuRq5ysX3xfcluuJDRYEl8CWupe/Frm5DJYIiO70RGR0l7sWhpZSlyGlspc45tPm/2HQl/KWNRfWlNellJc65qHluWCclwvmAsEgl7iXfxZG5piWvRZCl3aXbJZqZTqXsYmepXkwNpZUQoqWMBCTFzaXXJe15m+AQuap5xaWisGLF3PnP6BnFiKW3pctRTMX0qGzFlchAGDOl0jAqeeMlpSX5JcrIfSWbzFiFqnnlKi0lxKXXOZZ5yqW7JfdF96XFuHWlr6XO9BzwNGXC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"))
///////////////////////////////////////////////
///////////////////////////////////////////////
/* Utility functions */
var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
pcbdata.metadata.revision + '__#';
var storage;
function initStorage(key) {
try {
window.localStorage.getItem("blank");
storage = window.localStorage;
} catch (e) {
// localStorage not available
}
if (!storage) {
try {
window.sessionStorage.getItem("blank");
storage = window.sessionStorage;
} catch (e) {
// sessionStorage also not available
}
}
}
function readStorage(key) {
if (storage) {
return storage.getItem(storagePrefix + key);
} else {
return null;
}
}
function writeStorage(key, value) {
if (storage) {
storage.setItem(storagePrefix + key, value);
}
}
function fancyDblClickHandler(el, onsingle, ondouble) {
return function() {
if (el.getAttribute("data-dblclick") == null) {
el.setAttribute("data-dblclick", 1);
setTimeout(function() {
if (el.getAttribute("data-dblclick") == 1) {
onsingle();
}
el.removeAttribute("data-dblclick");
}, 200);
} else {
el.removeAttribute("data-dblclick");
ondouble();
}
}
}
function smoothScrollToRow(rowid) {
document.getElementById(rowid).scrollIntoView({
behavior: "smooth",
block: "center",
inline: "nearest"
});
}
function focusInputField(input) {
input.scrollIntoView(false);
input.focus();
input.select();
}
function copyToClipboard() {
var text = '';
for (var node of bomhead.childNodes[0].childNodes) {
if (node.firstChild) {
text = text + node.firstChild.nodeValue;
}
if (node != bomhead.childNodes[0].lastChild) {
text += '\t';
}
}
text += '\n';
for (var row of bombody.childNodes) {
for (var cell of row.childNodes) {
for (var node of cell.childNodes) {
if (node.nodeName == "INPUT") {
if (node.checked) {
text = text + '✓';
}
} else if (node.nodeName == "MARK") {
text = text + node.firstChild.nodeValue;
} else {
text = text + node.nodeValue;
}
}
if (cell != row.lastChild) {
text += '\t';
}
}
text += '\n';
}
var textArea = document.createElement("textarea");
textArea.classList.add('clipboard-temp');
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
if (document.execCommand('copy')) {
console.log('Bom copied to clipboard.');
}
} catch (err) {
console.log('Can not copy to clipboard.');
}
document.body.removeChild(textArea);
}
function removeGutterNode(node) {
for (var i = 0; i < node.childNodes.length; i++) {
if (node.childNodes[i].classList &&
node.childNodes[i].classList.contains("gutter")) {
node.removeChild(node.childNodes[i]);
break;
}
}
}
function cleanGutters() {
removeGutterNode(document.getElementById("bot"));
removeGutterNode(document.getElementById("canvasdiv"));
}
var units = {
prefixes: {
giga: ["G", "g", "giga", "Giga", "GIGA"],
mega: ["M", "mega", "Mega", "MEGA"],
kilo: ["K", "k", "kilo", "Kilo", "KILO"],
milli: ["m", "milli", "Milli", "MILLI"],
micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
nano: ["N", "n", "nano", "Nano", "NANO"],
pico: ["P", "p", "pico", "Pico", "PICO"],
},
unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
unitsLong: [
"OHM", "Ohm", "ohm", "ohms",
"FARAD", "Farad", "farad",
"HENRY", "Henry", "henry"
],
getMultiplier: function(s) {
if (this.prefixes.giga.includes(s)) return 1e9;
if (this.prefixes.mega.includes(s)) return 1e6;
if (this.prefixes.kilo.includes(s)) return 1e3;
if (this.prefixes.milli.includes(s)) return 1e-3;
if (this.prefixes.micro.includes(s)) return 1e-6;
if (this.prefixes.nano.includes(s)) return 1e-9;
if (this.prefixes.pico.includes(s)) return 1e-12;
return 1;
},
valueRegex: null,
}
function initUtils() {
var allPrefixes = units.prefixes.giga
.concat(units.prefixes.mega)
.concat(units.prefixes.kilo)
.concat(units.prefixes.milli)
.concat(units.prefixes.micro)
.concat(units.prefixes.nano)
.concat(units.prefixes.pico);
var allUnits = units.unitsShort.concat(units.unitsLong);
units.valueRegex = new RegExp("^([0-9\.]+)" +
"\\s*(" + allPrefixes.join("|") + ")?" +
"(" + allUnits.join("|") + ")?" +
"(\\b.*)?$", "");
units.valueAltRegex = new RegExp("^([0-9]*)" +
"(" + units.unitsShort.join("|") + ")?" +
"([GgMmKkUuNnPp])?" +
"([0-9]*)" +
"(\\b.*)?$", "");
if (config.fields.includes("Value")) {
var index = config.fields.indexOf("Value");
pcbdata.bom["parsedValues"] = {};
for (var id in pcbdata.bom.fields) {
pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
}
}
}
function parseValue(val, ref) {
var inferUnit = (unit, ref) => {
if (unit) {
unit = unit.toLowerCase();
if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
unit = 'r';
}
unit = unit[0];
} else {
ref = /^([a-z]+)\d+$/i.exec(ref);
if (ref) {
ref = ref[1].toLowerCase();
if (ref == "c") unit = 'f';
else if (ref == "l") unit = 'h';
else if (ref == "r" || ref == "rv") unit = 'r';
else unit = null;
}
}
return unit;
};
val = val.replace(/,/g, "");
var match = units.valueRegex.exec(val);
var unit;
if (match) {
val = parseFloat(match[1]);
if (match[2]) {
val = val * units.getMultiplier(match[2]);
}
unit = inferUnit(match[3], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[4],
}
}
match = units.valueAltRegex.exec(val);
if (match && (match[1] || match[4])) {
val = parseFloat(match[1] + "." + match[4]);
if (match[3]) {
val = val * units.getMultiplier(match[3]);
}
unit = inferUnit(match[2], ref);
if (!unit) return null;
else return {
val: val,
unit: unit,
extra: match[5],
}
}
return null;
}
function valueCompare(a, b, stra, strb) {
if (a === null && b === null) {
// Failed to parse both values, compare them as strings.
if (stra != strb) return stra > strb ? 1 : -1;
else return 0;
} else if (a === null) {
return 1;
} else if (b === null) {
return -1;
} else {
if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
else if (a.val != b.val) return a.val > b.val ? 1 : -1;
else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
else return 0;
}
}
function validateSaveImgDimension(element) {
var valid = false;
var intValue = 0;
if (/^[1-9]\d*$/.test(element.value)) {
intValue = parseInt(element.value);
if (intValue <= 16000) {
valid = true;
}
}
if (valid) {
element.classList.remove("invalid");
} else {
element.classList.add("invalid");
}
return intValue;
}
function saveImage(layer) {
var width = validateSaveImgDimension(document.getElementById("render-save-width"));
var height = validateSaveImgDimension(document.getElementById("render-save-height"));
var bgcolor = null;
if (!document.getElementById("render-save-transparent").checked) {
var style = getComputedStyle(topmostdiv);
bgcolor = style.getPropertyValue("background-color");
}
if (!width || !height) return;
// Prepare image
var canvas = document.createElement("canvas");
var layerdict = {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
bg: canvas,
fab: canvas,
silk: canvas,
highlight: canvas,
layer: layer,
}
// Do the rendering
recalcLayerScale(layerdict, width, height);
prepareLayer(layerdict);
clearCanvas(canvas, bgcolor);
drawBackground(layerdict, false);
drawHighlightsOnLayer(layerdict, false);
// Save image
var imgdata = canvas.toDataURL("image/png");
var filename = pcbdata.metadata.title;
if (pcbdata.metadata.revision) {
filename += `.${pcbdata.metadata.revision}`;
}
filename += `.${layer}.png`;
saveFile(filename, dataURLtoBlob(imgdata));
}
function saveSettings() {
var data = {
type: "InteractiveHtmlBom settings",
version: 1,
pcbmetadata: pcbdata.metadata,
settings: settings,
}
var blob = new Blob([JSON.stringify(data, null, 4)], {
type: "application/json"
});
saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}
function loadSettings() {
var input = document.createElement("input");
input.type = "file";
input.accept = ".settings.json";
input.onchange = function(e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = readerEvent => {
var content = readerEvent.target.result;
var newSettings;
try {
newSettings = JSON.parse(content);
} catch (e) {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
if (newSettings.type != "InteractiveHtmlBom settings") {
alert("Selected file is not InteractiveHtmlBom settings file.");
return;
}
var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
if (metadataMatches) {
for (var k in pcbdata.metadata) {
if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
metadataMatches = false;
}
}
}
if (!metadataMatches) {
var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
if (!confirm(
`Settins file metadata does not match current metadata.\n\n` +
`Page metadata:\n${currentMetadata}\n\n` +
`Settings file metadata:\n${fileMetadata}\n\n` +
`Press OK if you would like to import settings anyway.`)) {
return;
}
}
overwriteSettings(newSettings.settings);
}
reader.readAsText(file, 'UTF-8');
}
input.click();
}
function overwriteSettings(newSettings) {
initDone = false;
Object.assign(settings, newSettings);
writeStorage("bomlayout", settings.bomlayout);
writeStorage("bommode", settings.bommode);
writeStorage("canvaslayout", settings.canvaslayout);
writeStorage("bomCheckboxes", settings.checkboxes.join(","));
document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
for (var checkbox of settings.checkboxes) {
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
}
writeStorage("markWhenChecked", settings.markWhenChecked);
padsVisible(settings.renderPads);
document.getElementById("padsCheckbox").checked = settings.renderPads;
fabricationVisible(settings.renderFabrication);
document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
silkscreenVisible(settings.renderSilkscreen);
document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
referencesVisible(settings.renderReferences);
document.getElementById("referencesCheckbox").checked = settings.renderReferences;
valuesVisible(settings.renderValues);
document.getElementById("valuesCheckbox").checked = settings.renderValues;
tracksVisible(settings.renderTracks);
document.getElementById("tracksCheckbox").checked = settings.renderTracks;
zonesVisible(settings.renderZones);
document.getElementById("zonesCheckbox").checked = settings.renderZones;
dnpOutline(settings.renderDnpOutline);
document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
setRedrawOnDrag(settings.redrawOnDrag);
document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
setDarkMode(settings.darkMode);
document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
setHighlightPin1(settings.highlightpin1);
document.getElementById("highlightpin1Checkbox").checked = settings.highlightpin1;
showFootprints(settings.show_footprints);
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
initDone = true;
prepCheckboxes();
changeBomLayout(settings.bomlayout);
}
function saveFile(filename, blob) {
var link = document.createElement("a");
var objurl = URL.createObjectURL(blob);
link.download = filename;
link.href = objurl;
link.click();
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}
var settings = {
canvaslayout: "default",
bomlayout: "default",
bommode: "grouped",
checkboxes: [],
checkboxStoredRefs: {},
darkMode: false,
highlightpin1: false,
redrawOnDrag: true,
boardRotation: 0,
renderPads: true,
renderReferences: true,
renderValues: true,
renderSilkscreen: true,
renderFabrication: true,
renderDnpOutline: false,
renderTracks: true,
renderZones: true,
columnOrder: [],
hiddenColumns: [],
}
function initDefaults() {
settings.bomlayout = readStorage("bomlayout");
if (settings.bomlayout === null) {
settings.bomlayout = config.bom_view;
}
if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
settings.bomlayout = config.bom_view;
}
settings.bommode = readStorage("bommode");
if (settings.bommode === null) {
settings.bommode = "grouped";
}
if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
settings.bommode = "grouped";
}
settings.canvaslayout = readStorage("canvaslayout");
if (settings.canvaslayout === null) {
settings.canvaslayout = config.layer_view;
}
var bomCheckboxes = readStorage("bomCheckboxes");
if (bomCheckboxes === null) {
bomCheckboxes = config.checkboxes;
}
settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
document.getElementById("bomCheckboxes").value = bomCheckboxes;
settings.markWhenChecked = readStorage("markWhenChecked") || "";
populateMarkWhenCheckedOptions();
function initBooleanSetting(storageString, def, elementId, func) {
var b = readStorage(storageString);
if (b === null) {
b = def;
} else {
b = (b == "true");
}
document.getElementById(elementId).checked = b;
func(b);
}
initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
if ("tracks" in pcbdata) {
initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
} else {
document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
tracksVisible(false);
zonesVisible(false);
}
initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);
initBooleanSetting("highlightpin1", config.highlight_pin1, "highlightpin1Checkbox", setHighlightPin1);
var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
var hcols = JSON.parse(readStorage("hiddenColumns"));
if (hcols === null) {
hcols = [];
}
settings.hiddenColumns = hcols.filter(e => fields.includes(e));
var cord = JSON.parse(readStorage("columnOrder"));
if (cord === null) {
cord = fields;
} else {
cord = cord.filter(e => fields.includes(e));
if (cord.length != fields.length)
cord = fields;
}
settings.columnOrder = cord;
settings.boardRotation = readStorage("boardRotation");
if (settings.boardRotation === null) {
settings.boardRotation = config.board_rotation * 5;
} else {
settings.boardRotation = parseInt(settings.boardRotation);
}
document.getElementById("boardRotation").value = settings.boardRotation / 5;
document.getElementById("rotationDegree").textContent = settings.boardRotation;
}
// Helper classes for user js callbacks.
const IBOM_EVENT_TYPES = {
ALL: "all",
HIGHLIGHT_EVENT: "highlightEvent",
CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}
const EventHandler = {
callbacks: {},
init: function() {
for (eventType of Object.values(IBOM_EVENT_TYPES))
this.callbacks[eventType] = [];
},
registerCallback: function(eventType, callback) {
this.callbacks[eventType].push(callback);
},
emitEvent: function(eventType, eventArgs) {
event = {
eventType: eventType,
args: eventArgs,
}
var callback;
for (callback of this.callbacks[eventType])
callback(event);
for (callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
callback(event);
}
}
EventHandler.init();
///////////////////////////////////////////////
///////////////////////////////////////////////
/* PCB rendering code */
var emptyContext2d = document.createElement("canvas").getContext("2d");
function deg2rad(deg) {
return deg * Math.PI / 180;
}
function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
var point = [
linepoint[0] * text.width + offsetx,
linepoint[1] * text.height + offsety
];
// This approximates pcbnew behavior with how text tilts depending on horizontal justification
point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
return point;
}
function drawText(ctx, text, color) {
if ("ref" in text && !settings.renderReferences) return;
if ("val" in text && !settings.renderValues) return;
ctx.save();
ctx.fillStyle = color;
ctx.strokeStyle = color;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.lineWidth = text.thickness;
if ("svgpath" in text) {
ctx.stroke(new Path2D(text.svgpath));
ctx.restore();
return;
}
ctx.translate(...text.pos);
ctx.translate(text.thickness * 0.5, 0);
var angle = -text.angle;
if (text.attr.includes("mirrored")) {
ctx.scale(-1, 1);
angle = -angle;
}
var tilt = 0;
if (text.attr.includes("italic")) {
tilt = 0.125;
}
var interline = text.height * 1.5 + text.thickness;
var txt = text.text.split("\n");
// KiCad ignores last empty line.
if (txt[txt.length - 1] == '') txt.pop();
ctx.rotate(deg2rad(angle));
var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
for (var i in txt) {
var lineWidth = text.thickness + interline / 2 * tilt;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
lineWidth += fourSpaces - lineWidth % fourSpaces;
} else {
if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
}
lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
}
}
var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
var inOverbar = false;
for (var j = 0; j < txt[i].length; j++) {
if (txt[i][j] == '\t') {
var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
offsetx += fourSpaces - offsetx % fourSpaces;
continue;
} else if (txt[i][j] == '~') {
j++;
if (j == txt[i].length)
break;
if (txt[i][j] != '~') {
inOverbar = !inOverbar;
}
}
var glyph = pcbdata.font_data[txt[i][j]];
if (inOverbar) {
var overbarStart = [offsetx, -text.height * 1.4 + offsety];
var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];
if (!lastHadOverbar) {
overbarStart[0] += text.height * 1.4 * tilt;
lastHadOverbar = true;
}
ctx.beginPath();
ctx.moveTo(...overbarStart);
ctx.lineTo(...overbarEnd);
ctx.stroke();
} else {
lastHadOverbar = false;
}
for (var line of glyph.l) {
ctx.beginPath();
ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
for (var k = 1; k < line.length; k++) {
ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
}
ctx.stroke();
}
offsetx += glyph.w * text.width;
}
offsety += interline;
}
ctx.restore();
}
function drawedge(ctx, scalefactor, edge, color) {
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
ctx.lineCap = "round";
ctx.lineJoin = "round";
if ("svgpath" in edge) {
ctx.stroke(new Path2D(edge.svgpath));
} else {
ctx.beginPath();
if (edge.type == "segment") {
ctx.moveTo(...edge.start);
ctx.lineTo(...edge.end);
}
if (edge.type == "rect") {
ctx.moveTo(...edge.start);
ctx.lineTo(edge.start[0], edge.end[1]);
ctx.lineTo(...edge.end);
ctx.lineTo(edge.end[0], edge.start[1]);
ctx.lineTo(...edge.start);
}
if (edge.type == "arc") {
ctx.arc(
...edge.start,
edge.radius,
deg2rad(edge.startangle),
deg2rad(edge.endangle));
}
if (edge.type == "circle") {
ctx.arc(
...edge.start,
edge.radius,
0, 2 * Math.PI);
ctx.closePath();
}
if (edge.type == "curve") {
ctx.moveTo(...edge.start);
ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
}
if("filled" in edge && edge.filled)
ctx.fill();
else
ctx.stroke();
}
}
function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
// chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
var path = new Path2D();
var width = size[0];
var height = size[1];
var x = width * -0.5;
var y = height * -0.5;
var chamfOffset = Math.min(width, height) * chamfratio;
path.moveTo(x, 0);
if (chamfpos & 4) {
path.lineTo(x, y + height - chamfOffset);
path.lineTo(x + chamfOffset, y + height);
path.lineTo(0, y + height);
} else {
path.arcTo(x, y + height, x + width, y + height, radius);
}
if (chamfpos & 8) {
path.lineTo(x + width - chamfOffset, y + height);
path.lineTo(x + width, y + height - chamfOffset);
path.lineTo(x + width, 0);
} else {
path.arcTo(x + width, y + height, x + width, y, radius);
}
if (chamfpos & 2) {
path.lineTo(x + width, y + chamfOffset);
path.lineTo(x + width - chamfOffset, y);
path.lineTo(0, y);
} else {
path.arcTo(x + width, y, x, y, radius);
}
if (chamfpos & 1) {
path.lineTo(x + chamfOffset, y);
path.lineTo(x, y + chamfOffset);
path.lineTo(x, 0);
} else {
path.arcTo(x, y, x, y + height, radius);
}
path.closePath();
return path;
}
function getOblongPath(size) {
return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}
function getPolygonsPath(shape) {
if (shape.path2d) {
return shape.path2d;
}
if ("svgpath" in shape) {
shape.path2d = new Path2D(shape.svgpath);
} else {
var path = new Path2D();
for (var polygon of shape.polygons) {
path.moveTo(...polygon[0]);
for (var i = 1; i < polygon.length; i++) {
path.lineTo(...polygon[i]);
}
path.closePath();
}
shape.path2d = path;
}
return shape.path2d;
}
function drawPolygonShape(ctx, scalefactor, shape, color) {
ctx.save();
if (!("svgpath" in shape)) {
ctx.translate(...shape.pos);
ctx.rotate(deg2rad(-shape.angle));
}
if("filled" in shape && !shape.filled) {
ctx.strokeStyle = color;
ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.stroke(getPolygonsPath(shape));
} else {
ctx.fillStyle = color;
ctx.fill(getPolygonsPath(shape));
}
ctx.restore();
}
function drawDrawing(ctx, scalefactor, drawing, color) {
if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
drawedge(ctx, scalefactor, drawing, color);
} else if (drawing.type == "polygon") {
drawPolygonShape(ctx, scalefactor, drawing, color);
} else {
drawText(ctx, drawing, color);
}
}
function getCirclePath(radius) {
var path = new Path2D();
path.arc(0, 0, radius, 0, 2 * Math.PI);
path.closePath();
return path;
}
function getCachedPadPath(pad) {
if (!pad.path2d) {
// if path2d is not set, build one and cache it on pad object
if (pad.shape == "rect") {
pad.path2d = new Path2D();
pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
} else if (pad.shape == "oval") {
pad.path2d = getOblongPath(pad.size);
} else if (pad.shape == "circle") {
pad.path2d = getCirclePath(pad.size[0] / 2);
} else if (pad.shape == "roundrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
} else if (pad.shape == "chamfrect") {
pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
} else if (pad.shape == "custom") {
pad.path2d = getPolygonsPath(pad);
}
}
return pad.path2d;
}
function drawPad(ctx, pad, color, outline) {
ctx.save();
ctx.translate(...pad.pos);
ctx.rotate(deg2rad(pad.angle));
if (pad.offset) {
ctx.translate(...pad.offset);
}
ctx.fillStyle = color;
ctx.strokeStyle = color;
var path = getCachedPadPath(pad);
if (outline) {
ctx.stroke(path);
} else {
ctx.fill(path);
}
ctx.restore();
}
function drawPadHole(ctx, pad, padHoleColor) {
if (pad.type != "th") return;
ctx.save();
ctx.translate(...pad.pos);
ctx.rotate(deg2rad(pad.angle));
ctx.fillStyle = padHoleColor;
if (pad.drillshape == "oblong") {
ctx.fill(getOblongPath(pad.drillsize));
} else {
ctx.fill(getCirclePath(pad.drillsize[0] / 2));
}
ctx.restore();
}
function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) {
if (highlight) {
// draw bounding box
if (footprint.layer == layer) {
ctx.save();
ctx.globalAlpha = 0.2;
ctx.translate(...footprint.bbox.pos);
ctx.rotate(deg2rad(-footprint.bbox.angle));
ctx.translate(...footprint.bbox.relpos);
ctx.fillStyle = colors.pad;
ctx.fillRect(0, 0, ...footprint.bbox.size);
ctx.globalAlpha = 1;
ctx.strokeStyle = colors.pad;
ctx.strokeRect(0, 0, ...footprint.bbox.size);
ctx.restore();
}
}
// draw drawings
for (var drawing of footprint.drawings) {
if (drawing.layer == layer) {
drawDrawing(ctx, scalefactor, drawing.drawing, colors.pad);
}
}
// draw pads
if (settings.renderPads) {
for (var pad of footprint.pads) {
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, colors.pad, outline);
if (pad.pin1 && settings.highlightpin1) {
drawPad(ctx, pad, colors.outline, true);
}
}
}
for (var pad of footprint.pads) {
drawPadHole(ctx, pad, colors.padHole);
}
}
}
function drawEdgeCuts(canvas, scalefactor) {
var ctx = canvas.getContext("2d");
var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
for (var edge of pcbdata.edges) {
drawDrawing(ctx, scalefactor, edge, edgecolor);
}
}
function drawFootprints(canvas, layer, scalefactor, highlight) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3 / scalefactor;
var style = getComputedStyle(topmostdiv);
var colors = {
pad: style.getPropertyValue('--pad-color'),
padHole: style.getPropertyValue('--pad-hole-color'),
outline: style.getPropertyValue('--pin1-outline-color'),
}
for (var i = 0; i < pcbdata.footprints.length; i++) {
var mod = pcbdata.footprints[i];
var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
var h = highlightedFootprints.includes(i);
var d = markedFootprints.has(i);
if (highlight) {
if(h && d) {
colors.pad = style.getPropertyValue('--pad-color-highlight-both');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
} else if (h) {
colors.pad = style.getPropertyValue('--pad-color-highlight');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
} else if (d) {
colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
}
}
if( h || d || !highlight) {
drawFootprint(ctx, layer, scalefactor, mod, colors, highlight, outline);
}
}
}
function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
var ctx = canvas.getContext("2d");
for (var d of pcbdata.drawings[layername][layer]) {
if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
drawedge(ctx, scalefactor, d, edgeColor);
} else if (d.type == "polygon") {
drawPolygonShape(ctx, scalefactor, d, polygonColor);
} else {
drawText(ctx, d, textColor);
}
}
}
function drawTracks(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.lineCap = "round";
for (var track of pcbdata.tracks[layer]) {
if (highlight && highlightedNet != track.net) continue;
ctx.lineWidth = track.width;
ctx.beginPath();
if ('radius' in track) {
ctx.arc(
...track.center,
track.radius,
deg2rad(track.startangle),
deg2rad(track.endangle));
} else {
ctx.moveTo(...track.start);
ctx.lineTo(...track.end);
}
ctx.stroke();
}
}
function drawZones(canvas, layer, color, highlight) {
ctx = canvas.getContext("2d");
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineJoin = "round";
for (var zone of pcbdata.zones[layer]) {
if (!zone.path2d) {
zone.path2d = getPolygonsPath(zone);
}
if (highlight && highlightedNet != zone.net) continue;
ctx.fill(zone.path2d);
if (zone.width > 0) {
ctx.lineWidth = zone.width;
ctx.stroke(zone.path2d);
}
}
}
function clearCanvas(canvas, color = null) {
var ctx = canvas.getContext("2d");
ctx.save();
ctx.setTransform(1, 0, 0, 1, 0, 0);
if (color) {
ctx.fillStyle = color;
ctx.fillRect(0, 0, canvas.width, canvas.height);
} else {
if (!window.matchMedia("print").matches)
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
ctx.restore();
}
function drawNets(canvas, layer, highlight) {
var style = getComputedStyle(topmostdiv);
if (settings.renderTracks) {
var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
drawTracks(canvas, layer, trackColor, highlight);
}
if (settings.renderZones) {
var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
drawZones(canvas, layer, zoneColor, highlight);
}
if (highlight && settings.renderPads) {
var padColor = style.getPropertyValue('--pad-color-highlight');
var padHoleColor = style.getPropertyValue('--pad-hole-color');
var ctx = canvas.getContext("2d");
for (var footprint of pcbdata.footprints) {
// draw pads
var padDrawn = false;
for (var pad of footprint.pads) {
if (highlightedNet != pad.net) continue;
if (pad.layers.includes(layer)) {
drawPad(ctx, pad, padColor, false);
padDrawn = true;
}
}
if (padDrawn) {
// redraw all pad holes because some pads may overlap
for (var pad of footprint.pads) {
drawPadHole(ctx, pad, padHoleColor);
}
}
}
}
}
function drawHighlightsOnLayer(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.highlight);
}
if (markedFootprints.size > 0 || highlightedFootprints.length > 0) {
drawFootprints(canvasdict.highlight, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, true);
}
if (highlightedNet !== null) {
drawNets(canvasdict.highlight, canvasdict.layer, true);
}
}
function drawHighlights() {
drawHighlightsOnLayer(allcanvas.front);
drawHighlightsOnLayer(allcanvas.back);
}
function drawBackground(canvasdict, clear = true) {
if (clear) {
clearCanvas(canvasdict.bg);
clearCanvas(canvasdict.fab);
clearCanvas(canvasdict.silk);
}
drawNets(canvasdict.bg, canvasdict.layer, false);
drawFootprints(canvasdict.bg, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom, false);
drawEdgeCuts(canvasdict.bg, canvasdict.transform.s * canvasdict.transform.zoom);
var style = getComputedStyle(topmostdiv);
var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
var textColor = style.getPropertyValue('--silkscreen-text-color');
if (settings.renderSilkscreen) {
drawBgLayer(
"silkscreen", canvasdict.silk, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
edgeColor = style.getPropertyValue('--fabrication-edge-color');
polygonColor = style.getPropertyValue('--fabrication-polygon-color');
textColor = style.getPropertyValue('--fabrication-text-color');
if (settings.renderFabrication) {
drawBgLayer(
"fabrication", canvasdict.fab, canvasdict.layer,
canvasdict.transform.s * canvasdict.transform.zoom,
edgeColor, polygonColor, textColor);
}
}
function prepareCanvas(canvas, flip, transform) {
var ctx = canvas.getContext("2d");
ctx.setTransform(1, 0, 0, 1, 0, 0);
var fontsize = 1.55;
ctx.scale(transform.zoom, transform.zoom);
ctx.translate(transform.panx, transform.pany);
if (flip) {
ctx.scale(-1, 1);
}
ctx.translate(transform.x, transform.y);
ctx.rotate(deg2rad(settings.boardRotation));
ctx.scale(transform.s, transform.s);
}
function prepareLayer(canvasdict) {
var flip = (canvasdict.layer == "B");
for (var c of ["bg", "fab", "silk", "highlight"]) {
prepareCanvas(canvasdict[c], flip, canvasdict.transform);
}
}
function rotateVector(v, angle) {
angle = deg2rad(angle);
return [
v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
];
}
function applyRotation(bbox) {
var corners = [
[bbox.minx, bbox.miny],
[bbox.minx, bbox.maxy],
[bbox.maxx, bbox.miny],
[bbox.maxx, bbox.maxy],
];
corners = corners.map((v) => rotateVector(v, settings.boardRotation));
return {
minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
}
}
function recalcLayerScale(layerdict, width, height) {
var bbox = applyRotation(pcbdata.edges_bbox);
var scalefactor = 0.98 * Math.min(
width / (bbox.maxx - bbox.minx),
height / (bbox.maxy - bbox.miny)
);
if (scalefactor < 0.1) {
scalefactor = 1;
}
layerdict.transform.s = scalefactor;
var flip = (layerdict.layer == "B");
if (flip) {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
} else {
layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
}
layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
for (var c of ["bg", "fab", "silk", "highlight"]) {
canvas = layerdict[c];
canvas.width = width;
canvas.height = height;
canvas.style.width = (width / devicePixelRatio) + "px";
canvas.style.height = (height / devicePixelRatio) + "px";
}
}
function redrawCanvas(layerdict) {
prepareLayer(layerdict);
drawBackground(layerdict);
drawHighlightsOnLayer(layerdict);
}
function resizeCanvas(layerdict) {
var canvasdivid = {
"F": "frontcanvas",
"B": "backcanvas"
} [layerdict.layer];
var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
recalcLayerScale(layerdict, width, height);
redrawCanvas(layerdict);
}
function resizeAll() {
resizeCanvas(allcanvas.front);
resizeCanvas(allcanvas.back);
}
function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
var A = x - x1;
var B = y - y1;
var C = x2 - x1;
var D = y2 - y1;
var dot = A * C + B * D;
var len_sq = C * C + D * D;
var dx, dy;
if (len_sq == 0) {
// start and end of the segment coincide
dx = x - x1;
dy = y - y1;
} else {
var param = dot / len_sq;
var xx, yy;
if (param < 0) {
xx = x1;
yy = y1;
} else if (param > 1) {
xx = x2;
yy = y2;
} else {
xx = x1 + param * C;
yy = y1 + param * D;
}
dx = x - xx;
dy = y - yy;
}
return dx * dx + dy * dy <= d * d;
}
function modulo(n, mod) {
return ((n % mod) + mod) % mod;
}
function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
var dx = x - xc;
var dy = y - yc;
var r_sq = dx * dx + dy * dy;
var rmin = Math.max(0, radius - d);
var rmax = radius + d;
if (r_sq < rmin * rmin || r_sq > rmax * rmax)
return false;
var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
var dx1 = xc + radius * Math.cos(angle1) - x;
var dy1 = yc + radius * Math.sin(angle1) - y;
if (dx1 * dx1 + dy1 * dy1 <= d * d)
return true;
var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
var dx2 = xc + radius * Math.cos(angle2) - x;
var dy2 = yc + radius * Math.sin(angle2) - y;
if (dx2 * dx2 + dy2 * dy2 <= d * d)
return true;
var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
if (angle1 > angle2)
return (angle >= angle2 || angle <= angle1);
else
return (angle >= angle1 && angle <= angle2);
}
function pointWithinPad(x, y, pad) {
var v = [x - pad.pos[0], y - pad.pos[1]];
v = rotateVector(v, -pad.angle);
if (pad.offset) {
v[0] -= pad.offset[0];
v[1] -= pad.offset[1];
}
return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}
function netHitScan(layer, x, y) {
// Check track segments
if (settings.renderTracks && pcbdata.tracks) {
for (var track of pcbdata.tracks[layer]) {
if ('radius' in track) {
if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
return track.net;
}
} else {
if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
return track.net;
}
}
}
}
// Check pads
if (settings.renderPads) {
for (var footprint of pcbdata.footprints) {
for (var pad of footprint.pads) {
if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
return pad.net;
}
}
}
}
return null;
}
function pointWithinFootprintBbox(x, y, bbox) {
var v = [x - bbox.pos[0], y - bbox.pos[1]];
v = rotateVector(v, bbox.angle);
return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}
function bboxHitScan(layer, x, y) {
var result = [];
for (var i = 0; i < pcbdata.footprints.length; i++) {
var footprint = pcbdata.footprints[i];
if (footprint.layer == layer) {
if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
result.push(i);
}
}
}
return result;
}
function handlePointerDown(e, layerdict) {
if (e.button != 0 && e.button != 1) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
layerdict.pointerStates[e.pointerId] = {
distanceTravelled: 0,
lastX: e.offsetX,
lastY: e.offsetY,
downTime: Date.now(),
};
}
function handleMouseClick(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var x = e.offsetX;
var y = e.offsetY;
var t = layerdict.transform;
if (layerdict.layer == "B") {
x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
} else {
x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
}
y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
var v = rotateVector([x, y], -settings.boardRotation);
if ("nets" in pcbdata) {
var net = netHitScan(layerdict.layer, ...v);
if (net !== highlightedNet) {
netClicked(net);
}
}
if (highlightedNet === null) {
var footprints = bboxHitScan(layerdict.layer, ...v);
if (footprints.length > 0) {
footprintsClicked(footprints);
}
}
}
function handlePointerLeave(e, layerdict) {
e.preventDefault();
e.stopPropagation();
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
delete layerdict.pointerStates[e.pointerId];
}
function resetTransform(layerdict) {
layerdict.transform.panx = 0;
layerdict.transform.pany = 0;
layerdict.transform.zoom = 1;
redrawCanvas(layerdict);
}
function handlePointerUp(e, layerdict) {
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
e.preventDefault();
e.stopPropagation();
if (e.button == 2) {
// Reset pan and zoom on right click.
resetTransform(layerdict);
layerdict.anotherPointerTapped = false;
return;
}
// We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
var ptr = layerdict.pointerStates[e.pointerId];
ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);
if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
if (Object.keys(layerdict.pointerStates).length == 1) {
if (layerdict.anotherPointerTapped) {
// This is the second pointer coming off of a two-finger tap
resetTransform(layerdict);
} else {
// This is just a regular tap
handleMouseClick(e, layerdict);
}
layerdict.anotherPointerTapped = false;
} else {
// This is the first finger coming off of what could become a two-finger tap
layerdict.anotherPointerTapped = true;
}
} else {
if (!settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
layerdict.anotherPointerTapped = false;
}
delete layerdict.pointerStates[e.pointerId];
}
function handlePointerMove(e, layerdict) {
if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
return;
}
e.preventDefault();
e.stopPropagation();
if (!e.hasOwnProperty("offsetX")) {
// The polyfill doesn't set this properly
e.offsetX = e.pageX - e.currentTarget.offsetLeft;
e.offsetY = e.pageY - e.currentTarget.offsetTop;
}
var thisPtr = layerdict.pointerStates[e.pointerId];
var dx = e.offsetX - thisPtr.lastX;
var dy = e.offsetY - thisPtr.lastY;
// If this number is low on pointer up, we count the action as a click
thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);
if (Object.keys(layerdict.pointerStates).length == 1) {
// This is a simple drag
layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
} else if (Object.keys(layerdict.pointerStates).length == 2) {
var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];
var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));
var scaleFactor = newDist / oldDist;
if (scaleFactor != NaN) {
layerdict.transform.zoom *= scaleFactor;
var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
}
}
thisPtr.lastX = e.offsetX;
thisPtr.lastY = e.offsetY;
if (settings.redrawOnDrag) {
redrawCanvas(layerdict);
}
}
function handleMouseWheel(e, layerdict) {
e.preventDefault();
e.stopPropagation();
var t = layerdict.transform;
var wheeldelta = e.deltaY;
if (e.deltaMode == 1) {
// FF only, scroll by lines
wheeldelta *= 30;
} else if (e.deltaMode == 2) {
wheeldelta *= 300;
}
var m = Math.pow(1.1, -wheeldelta / 40);
// Limit amount of zoom per tick.
if (m > 2) {
m = 2;
} else if (m < 0.5) {
m = 0.5;
}
t.zoom *= m;
var zoomd = (1 - m) / t.zoom;
t.panx += devicePixelRatio * e.offsetX * zoomd;
t.pany += devicePixelRatio * e.offsetY * zoomd;
redrawCanvas(layerdict);
}
function addMouseHandlers(div, layerdict) {
div.addEventListener("pointerdown", function(e) {
handlePointerDown(e, layerdict);
});
div.addEventListener("pointermove", function(e) {
handlePointerMove(e, layerdict);
});
div.addEventListener("pointerup", function(e) {
handlePointerUp(e, layerdict);
});
var pointerleave = function(e) {
handlePointerLeave(e, layerdict);
}
div.addEventListener("pointercancel", pointerleave);
div.addEventListener("pointerleave", pointerleave);
div.addEventListener("pointerout", pointerleave);
div.onwheel = function(e) {
handleMouseWheel(e, layerdict);
}
for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
element.addEventListener("contextmenu", function(e) {
e.preventDefault();
}, false);
}
}
function setRedrawOnDrag(value) {
settings.redrawOnDrag = value;
writeStorage("redrawOnDrag", value);
}
function setBoardRotation(value) {
settings.boardRotation = value * 5;
writeStorage("boardRotation", settings.boardRotation);
document.getElementById("rotationDegree").textContent = settings.boardRotation;
resizeAll();
}
function initRender() {
allcanvas = {
front: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("F_bg"),
fab: document.getElementById("F_fab"),
silk: document.getElementById("F_slk"),
highlight: document.getElementById("F_hl"),
layer: "F",
},
back: {
transform: {
x: 0,
y: 0,
s: 1,
panx: 0,
pany: 0,
zoom: 1,
},
pointerStates: {},
anotherPointerTapped: false,
bg: document.getElementById("B_bg"),
fab: document.getElementById("B_fab"),
silk: document.getElementById("B_slk"),
highlight: document.getElementById("B_hl"),
layer: "B",
}
};
addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/*
* Table reordering via Drag'n'Drop
* Inspired by: https://htmldom.dev/drag-and-drop-table-column
*/
function setBomHandlers() {
const bom = document.getElementById('bomtable');
let dragName;
let placeHolderElements;
let draggingElement;
let forcePopulation;
let xOffset;
let yOffset;
let wasDragged;
const mouseUpHandler = function(e) {
// Delete dragging element
draggingElement.remove();
// Make BOM selectable again
bom.style.removeProperty("userSelect");
// Remove listeners
document.removeEventListener('mousemove', mouseMoveHandler);
document.removeEventListener('mouseup', mouseUpHandler);
if (wasDragged) {
// Redraw whole BOM
populateBomTable();
}
}
const mouseMoveHandler = function(e) {
// Notice the dragging
wasDragged = true;
// Make the dragged element visible
draggingElement.style.removeProperty("display");
// Set elements position to mouse position
draggingElement.style.left = `${e.screenX - xOffset}px`;
draggingElement.style.top = `${e.screenY - yOffset}px`;
// Forced redrawing of BOM table
if (forcePopulation) {
forcePopulation = false;
// Copy array
phe = Array.from(placeHolderElements);
// populate BOM table again
populateBomHeader(dragName, phe);
populateBomBody(dragName, phe);
}
// Set up array of hidden columns
var hiddenColumns = Array.from(settings.hiddenColumns);
// In the ungrouped mode, quantity don't exist
if (settings.bommode === "ungrouped")
hiddenColumns.push("Quantity");
// If no checkbox fields can be found, we consider them hidden
if (settings.checkboxes.length == 0)
hiddenColumns.push("checkboxes");
// Get table headers and group them into checkboxes, extrafields and normal headers
const bh = document.getElementById("bomhead");
headers = Array.from(bh.querySelectorAll("th"))
headers.shift() // numCol is not part of the columnOrder
headerGroups = []
lastCompoundClass = null;
for (i = 0; i < settings.columnOrder.length; i++) {
cElem = settings.columnOrder[i];
if (hiddenColumns.includes(cElem)) {
// Hidden columns appear as a dummy element
headerGroups.push([]);
continue;
}
elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
if (elem.classList.contains("bom-checkbox")) {
if (lastCompoundClass === "bom-checkbox") {
cbGroup = headerGroups.pop();
cbGroup.push(elem);
headerGroups.push(cbGroup);
} else {
lastCompoundClass = "bom-checkbox";
headerGroups.push([elem])
}
} else {
headerGroups.push([elem])
}
}
// Copy settings.columnOrder
var columns = Array.from(settings.columnOrder)
// Set up array with indices of hidden columns
var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
var dragIndex = columns.indexOf(dragName);
var swapIndex = dragIndex;
var swapDone = false;
// Check if the current dragged element is swapable with the left or right element
if (dragIndex > 0) {
// Get left headers boundingbox
swapIndex = dragIndex - 1;
while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
swapIndex--;
if (!hiddenIndices.includes(swapIndex)) {
box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
swapElement = columns[dragIndex];
columns.splice(dragIndex, 1);
columns.splice(swapIndex, 0, swapElement);
forcePopulation = true;
swapDone = true;
}
}
}
if ((!swapDone) && dragIndex < headerGroups.length - 1) {
// Get right headers boundingbox
swapIndex = dragIndex + 1;
while (hiddenIndices.includes(swapIndex))
swapIndex++;
if (swapIndex < headerGroups.length) {
box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
swapElement = columns[dragIndex];
columns.splice(dragIndex, 1);
columns.splice(swapIndex, 0, swapElement);
forcePopulation = true;
swapDone = true;
}
}
}
// Write back change to storage
if (swapDone) {
settings.columnOrder = columns
writeStorage("columnOrder", JSON.stringify(columns));
}
}
const mouseDownHandler = function(e) {
var target = e.target;
if (target.tagName.toLowerCase() != "td")
target = target.parentElement;
// Used to check if a dragging has ever happened
wasDragged = false;
// Create new element which will be displayed as the dragged column
draggingElement = document.createElement("div")
draggingElement.classList.add("dragging");
draggingElement.style.display = "none";
draggingElement.style.position = "absolute";
draggingElement.style.overflow = "hidden";
// Get bomhead and bombody elements
const bh = document.getElementById("bomhead");
const bb = document.getElementById("bombody");
// Get all compound headers for the current column
var compoundHeaders;
if (target.classList.contains("bom-checkbox")) {
compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
} else {
compoundHeaders = [target];
}
// Create new table which will display the column
var newTable = document.createElement("table");
newTable.classList.add("bom");
newTable.style.background = "white";
draggingElement.append(newTable);
// Create new header element
var newHeader = document.createElement("thead");
newTable.append(newHeader);
// Set up array for storing all placeholder elements
placeHolderElements = [];
// Add all compound headers to the new thead element and placeholders
compoundHeaders.forEach(function(h) {
clone = cloneElementWithDimensions(h);
newHeader.append(clone);
placeHolderElements.push(clone);
});
// Create new body element
var newBody = document.createElement("tbody");
newTable.append(newBody);
// Get indices for compound headers
var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));
// For each row in the BOM body...
var rows = bb.querySelectorAll("tr");
rows.forEach(function(row) {
// ..get the cells for the compound column
const tds = row.querySelectorAll("td");
var copytds = idxs.map(i => tds[i]);
// Add them to the new element and the placeholders
var newRow = document.createElement("tr");
copytds.forEach(function(td) {
clone = cloneElementWithDimensions(td);
newRow.append(clone);
placeHolderElements.push(clone);
});
newBody.append(newRow);
});
// Compute width for compound header
var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
draggingElement.style.width = `${width}px`;
// Insert the new dragging element and disable selection on BOM
bom.insertBefore(draggingElement, null);
bom.style.userSelect = "none";
// Determine the mouse position offset
xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
yOffset = e.screenY - compoundHeaders[0].offsetTop;
// Get name for the column in settings.columnOrder
dragName = getColumnOrderName(target);
// Change text and class for placeholder elements
placeHolderElements = placeHolderElements.map(function(e) {
newElem = cloneElementWithDimensions(e);
newElem.textContent = "";
newElem.classList.add("placeholder");
return newElem;
});
// On next mouse move, the whole BOM needs to be redrawn to show the placeholders
forcePopulation = true;
// Add listeners for move and up on mouse
document.addEventListener('mousemove', mouseMoveHandler);
document.addEventListener('mouseup', mouseUpHandler);
}
// In netlist mode, there is nothing to reorder
if (settings.bommode === "netlist")
return;
// Add mouseDownHandler to every column except the numCol
bom.querySelectorAll("th")
.forEach(function(head) {
if (!head.classList.contains("numCol")) {
head.onmousedown = mouseDownHandler;
}
});
}
function getBoundingClientRectFromMultiple(elements) {
var elems = Array.from(elements);
if (elems.length == 0)
return null;
var box = elems.shift()
.getBoundingClientRect();
elems.forEach(function(elem) {
var elembox = elem.getBoundingClientRect();
box.left = Math.min(elembox.left, box.left);
box.top = Math.min(elembox.top, box.top);
box.width += elembox.width;
box.height = Math.max(elembox.height, box.height);
});
return box;
}
function cloneElementWithDimensions(elem) {
var newElem = elem.cloneNode(true);
newElem.style.height = window.getComputedStyle(elem).height;
newElem.style.width = window.getComputedStyle(elem).width;
return newElem;
}
function getBomTableHeaderIndex(elem) {
const bh = document.getElementById('bomhead');
const ths = Array.from(bh.querySelectorAll("th"));
return ths.indexOf(elem);
}
function getColumnOrderName(elem) {
var cname = elem.getAttribute("col_name");
if (cname === "bom-checkbox")
return "checkboxes";
else
return cname;
}
function resizableGrid(tablehead) {
var cols = tablehead.firstElementChild.children;
var rowWidth = tablehead.offsetWidth;
for (var i = 1; i < cols.length; i++) {
if (cols[i].classList.contains("bom-checkbox"))
continue;
cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
}
for (var i = 1; i < cols.length - 1; i++) {
var div = document.createElement('div');
div.className = "column-width-handle";
cols[i].appendChild(div);
setListeners(div);
}
function setListeners(div) {
var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;
div.addEventListener('mousedown', function(e) {
e.preventDefault();
e.stopPropagation();
curCol = e.target.parentElement;
nxtCol = curCol.nextElementSibling;
startX = e.pageX;
var padding = paddingDiff(curCol);
rowWidth = curCol.parentElement.offsetWidth;
curColWidth = curCol.clientWidth - padding;
nxtColWidth = nxtCol.clientWidth - padding;
});
document.addEventListener('mousemove', function(e) {
if (startX) {
var diffX = e.pageX - startX;
diffX = -Math.min(-diffX, curColWidth - 20);
diffX = Math.min(diffX, nxtColWidth - 20);
curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
}
});
document.addEventListener('mouseup', function(e) {
curCol = undefined;
nxtCol = undefined;
startX = undefined;
nxtColWidth = undefined;
curColWidth = undefined
});
}
function paddingDiff(col) {
if (getStyleVal(col, 'box-sizing') == 'border-box') {
return 0;
}
var padLeft = getStyleVal(col, 'padding-left');
var padRight = getStyleVal(col, 'padding-right');
return (parseInt(padLeft) + parseInt(padRight));
}
function getStyleVal(elm, css) {
return (window.getComputedStyle(elm, null).getPropertyValue(css))
}
}
///////////////////////////////////////////////
///////////////////////////////////////////////
/* DOM manipulation and misc code */
var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var footprintIndexToHandler = {};
var netsToHandler = {};
var markedFootprints = new Set();
var highlightedFootprints = [];
var highlightedNet = null;
var lastClicked;
function dbg(html) {
dbgdiv.innerHTML = html;
}
function redrawIfInitDone() {
if (initDone) {
redrawCanvas(allcanvas.front);
redrawCanvas(allcanvas.back);
}
}
function padsVisible(value) {
writeStorage("padsVisible", value);
settings.renderPads = value;
redrawIfInitDone();
}
function referencesVisible(value) {
writeStorage("referencesVisible", value);
settings.renderReferences = value;
redrawIfInitDone();
}
function valuesVisible(value) {
writeStorage("valuesVisible", value);
settings.renderValues = value;
redrawIfInitDone();
}
function tracksVisible(value) {
writeStorage("tracksVisible", value);
settings.renderTracks = value;
redrawIfInitDone();
}
function zonesVisible(value) {
writeStorage("zonesVisible", value);
settings.renderZones = value;
redrawIfInitDone();
}
function dnpOutline(value) {
writeStorage("dnpOutline", value);
settings.renderDnpOutline = value;
redrawIfInitDone();
}
function setDarkMode(value) {
if (value) {
topmostdiv.classList.add("dark");
} else {
topmostdiv.classList.remove("dark");
}
writeStorage("darkmode", value);
settings.darkMode = value;
redrawIfInitDone();
}
function setShowBOMColumn(field, value) {
if (field === "references") {
var rl = document.getElementById("reflookup");
rl.disabled = !value;
if (!value) {
rl.value = "";
updateRefLookup("");
}
}
var n = settings.hiddenColumns.indexOf(field);
if (value) {
if (n != -1) {
settings.hiddenColumns.splice(n, 1);
}
} else {
if (n == -1) {
settings.hiddenColumns.push(field);
}
}
writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));
if (initDone) {
populateBomTable();
}
redrawIfInitDone();
}
function setFullscreen(value) {
if (value) {
document.documentElement.requestFullscreen();
} else {
document.exitFullscreen();
}
}
function fabricationVisible(value) {
writeStorage("fabricationVisible", value);
settings.renderFabrication = value;
redrawIfInitDone();
}
function silkscreenVisible(value) {
writeStorage("silkscreenVisible", value);
settings.renderSilkscreen = value;
redrawIfInitDone();
}
function setHighlightPin1(value) {
writeStorage("highlightpin1", value);
settings.highlightpin1 = value;
redrawIfInitDone();
}
function getStoredCheckboxRefs(checkbox) {
function convert(ref) {
var intref = parseInt(ref);
if (isNaN(intref)) {
for (var i = 0; i < pcbdata.footprints.length; i++) {
if (pcbdata.footprints[i].ref == ref) {
return i;
}
}
return -1;
} else {
return intref;
}
}
if (!(checkbox in settings.checkboxStoredRefs)) {
var val = readStorage("checkbox_" + checkbox);
settings.checkboxStoredRefs[checkbox] = val ? val : "";
}
if (!settings.checkboxStoredRefs[checkbox]) {
return new Set();
} else {
return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
}
}
function getCheckboxState(checkbox, references) {
var storedRefsSet = getStoredCheckboxRefs(checkbox);
var currentRefsSet = new Set(references.map(r => r[1]));
// Get difference of current - stored
var difference = new Set(currentRefsSet);
for (ref of storedRefsSet) {
difference.delete(ref);
}
if (difference.size == 0) {
// All the current refs are stored
return "checked";
} else if (difference.size == currentRefsSet.size) {
// None of the current refs are stored
return "unchecked";
} else {
// Some of the refs are stored
return "indeterminate";
}
}
function setBomCheckboxState(checkbox, element, references) {
var state = getCheckboxState(checkbox, references);
element.checked = (state == "checked");
element.indeterminate = (state == "indeterminate");
}
function createCheckboxChangeHandler(checkbox, references, row) {
return function () {
refsSet = getStoredCheckboxRefs(checkbox);
var markWhenChecked = settings.markWhenChecked == checkbox;
eventArgs = {
checkbox: checkbox,
refs: references,
}
if (this.checked) {
// checkbox ticked
for (var ref of references) {
refsSet.add(ref[1]);
}
if (markWhenChecked) {
row.classList.add("checked");
for (var ref of references) {
markedFootprints.add(ref[1]);
}
drawHighlights();
}
eventArgs.state = 'checked';
} else {
// checkbox unticked
for (var ref of references) {
refsSet.delete(ref[1]);
}
if (markWhenChecked) {
row.classList.remove("checked");
for (var ref of references) {
markedFootprints.delete(ref[1]);
}
drawHighlights();
}
eventArgs.state = 'unchecked';
}
settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
updateCheckboxStats(checkbox);
EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
}
}
function clearHighlightedFootprints() {
if (currentHighlightedRowId) {
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
currentHighlightedRowId = null;
highlightedFootprints = [];
highlightedNet = null;
}
}
function createRowHighlightHandler(rowid, refs, net) {
return function () {
if (currentHighlightedRowId) {
if (currentHighlightedRowId == rowid) {
return;
}
document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
}
document.getElementById(rowid).classList.add("highlighted");
currentHighlightedRowId = rowid;
highlightedFootprints = refs ? refs.map(r => r[1]) : [];
highlightedNet = net;
drawHighlights();
EventHandler.emitEvent(
IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, {
rowid: rowid,
refs: refs,
net: net
});
}
}
function entryMatches(entry) {
if (settings.bommode == "netlist") {
// entry is just a net name
return entry.toLowerCase().indexOf(filter) >= 0;
}
// check refs
if (!settings.hiddenColumns.includes("references")) {
for (var ref of entry) {
if (ref[0].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
}
// check fields
for (var i in config.fields) {
var f = config.fields[i];
if (!settings.hiddenColumns.includes(f)) {
for (var ref of entry) {
if (pcbdata.bom.fields[ref[1]][i].toLowerCase().indexOf(filter) >= 0) {
return true;
}
}
}
}
return false;
}
function findRefInEntry(entry) {
return entry.filter(r => r[0].toLowerCase() == reflookup);
}
function highlightFilter(s) {
if (!filter) {
return s;
}
var parts = s.toLowerCase().split(filter);
if (parts.length == 1) {
return s;
}
var r = "";
var pos = 0;
for (var i in parts) {
if (i > 0) {
r += '<mark class="highlight">' +
s.substring(pos, pos + filter.length) +
'</mark>';
pos += filter.length;
}
r += s.substring(pos, pos + parts[i].length);
pos += parts[i].length;
}
return r;
}
function checkboxSetUnsetAllHandler(checkboxname) {
return function () {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (checkboxnum >= settings.checkboxes.length) {
return;
}
var allset = true;
var checkbox;
var row;
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
if (!checkbox.checked || checkbox.indeterminate) {
allset = false;
break;
}
}
for (row of bombody.childNodes) {
checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = !allset;
checkbox.indeterminate = false;
checkbox.onchange();
}
}
}
function createColumnHeader(name, cls, comparator, is_checkbox = false) {
var th = document.createElement("TH");
th.innerHTML = name;
th.classList.add(cls);
if (is_checkbox)
th.setAttribute("col_name", "bom-checkbox");
else
th.setAttribute("col_name", name);
var span = document.createElement("SPAN");
span.classList.add("sortmark");
span.classList.add("none");
th.appendChild(span);
var spacer = document.createElement("div");
spacer.className = "column-spacer";
th.appendChild(spacer);
spacer.onclick = function () {
if (currentSortColumn && th !== currentSortColumn) {
// Currently sorted by another column
currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
if (currentSortColumn && th === currentSortColumn) {
// Already sorted by this column
if (currentSortOrder == "asc") {
// Sort by this column, descending order
bomSortFunction = function (a, b) {
return -comparator(a, b);
}
currentSortColumn.childNodes[1].classList.remove("asc");
currentSortColumn.childNodes[1].classList.add("desc");
currentSortOrder = "desc";
} else {
// Unsort
bomSortFunction = null;
currentSortColumn.childNodes[1].classList.remove("desc");
currentSortColumn.childNodes[1].classList.add("none");
currentSortColumn = null;
currentSortOrder = null;
}
} else {
// Sort by this column, ascending order
bomSortFunction = comparator;
currentSortColumn = th;
currentSortColumn.childNodes[1].classList.remove("none");
currentSortColumn.childNodes[1].classList.add("asc");
currentSortOrder = "asc";
}
populateBomBody();
}
if (is_checkbox) {
spacer.onclick = fancyDblClickHandler(
spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
}
return th;
}
function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
while (bomhead.firstChild) {
bomhead.removeChild(bomhead.firstChild);
}
var tr = document.createElement("TR");
var th = document.createElement("TH");
th.classList.add("numCol");
var vismenu = document.createElement("div");
vismenu.id = "vismenu";
vismenu.classList.add("menu");
var visbutton = document.createElement("div");
visbutton.classList.add("visbtn");
visbutton.classList.add("hideonprint");
var viscontent = document.createElement("div");
viscontent.classList.add("menu-content");
viscontent.id = "vismenu-content";
settings.columnOrder.forEach(column => {
if (typeof column !== "string")
return;
// Skip empty columns
if (column === "checkboxes" && settings.checkboxes.length == 0)
return;
else if (column === "Quantity" && settings.bommode == "ungrouped")
return;
var label = document.createElement("label");
label.classList.add("menu-label");
var input = document.createElement("input");
input.classList.add("visibility_checkbox");
input.type = "checkbox";
input.onchange = function (e) {
setShowBOMColumn(column, e.target.checked)
};
input.checked = !(settings.hiddenColumns.includes(column));
label.appendChild(input);
if (column.length > 0)
label.append(column[0].toUpperCase() + column.slice(1));
viscontent.appendChild(label);
});
viscontent.childNodes[0].classList.add("menu-label-top");
vismenu.appendChild(visbutton);
if (settings.bommode != "netlist") {
vismenu.appendChild(viscontent);
th.appendChild(vismenu);
}
tr.appendChild(th);
var checkboxCompareClosure = function (checkbox) {
return (a, b) => {
var stateA = getCheckboxState(checkbox, a);
var stateB = getCheckboxState(checkbox, b);
if (stateA > stateB) return -1;
if (stateA < stateB) return 1;
return 0;
}
}
var stringFieldCompareClosure = function (fieldIndex) {
return (a, b) => {
var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
if (fa != fb) return fa > fb ? 1 : -1;
else return 0;
}
}
var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
var compareRefs = (a, b) => {
var ra = referenceRegex.exec(a);
var rb = referenceRegex.exec(b);
if (ra === null || rb === null) {
if (a != b) return a > b ? 1 : -1;
return 0;
} else {
if (ra.groups.prefix != rb.groups.prefix) {
return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
}
if (ra.groups.number != rb.groups.number) {
return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1;
}
return 0;
}
}
if (settings.bommode == "netlist") {
th = createColumnHeader("Net name", "bom-netname", (a, b) => {
if (a > b) return -1;
if (a < b) return 1;
return 0;
});
tr.appendChild(th);
} else {
// Filter hidden columns
var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
var valueIndex = config.fields.indexOf("Value");
var footprintIndex = config.fields.indexOf("Footprint");
columns.forEach((column) => {
if (column === placeHolderColumn) {
var n = 1;
if (column === "checkboxes")
n = settings.checkboxes.length;
for (i = 0; i < n; i++) {
td = placeHolderElements.shift();
tr.appendChild(td);
}
return;
} else if (column === "checkboxes") {
for (var checkbox of settings.checkboxes) {
th = createColumnHeader(
checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
tr.appendChild(th);
}
} else if (column === "References") {
tr.appendChild(createColumnHeader("References", "references", (a, b) => {
var i = 0;
while (i < a.length && i < b.length) {
if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]);
i++;
}
return a.length - b.length;
}));
} else if (column === "Value") {
tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
var ra = a[0][1], rb = b[0][1];
return valueCompare(
pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
}));
return;
} else if (column === "Footprint") {
tr.appendChild(createColumnHeader(
"Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
} else if (column === "Quantity" && settings.bommode == "grouped") {
tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
return a.length - b.length;
}));
} else {
// Other fields
var i = config.fields.indexOf(column);
if (i < 0)
return;
tr.appendChild(createColumnHeader(
column, `field${i + 1}`, stringFieldCompareClosure(i)));
}
});
}
bomhead.appendChild(tr);
}
function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
while (bom.firstChild) {
bom.removeChild(bom.firstChild);
}
highlightHandlers = [];
footprintIndexToHandler = {};
netsToHandler = {};
currentHighlightedRowId = null;
var first = true;
if (settings.bommode == "netlist") {
bomtable = pcbdata.nets.slice();
} else {
switch (settings.canvaslayout) {
case 'F':
bomtable = pcbdata.bom.F.slice();
break;
case 'FB':
bomtable = pcbdata.bom.both.slice();
break;
case 'B':
bomtable = pcbdata.bom.B.slice();
break;
}
if (settings.bommode == "ungrouped") {
// expand bom table
expandedTable = []
for (var bomentry of bomtable) {
for (var ref of bomentry) {
expandedTable.push([ref]);
}
}
bomtable = expandedTable;
}
}
if (bomSortFunction) {
bomtable = bomtable.sort(bomSortFunction);
}
for (var i in bomtable) {
var bomentry = bomtable[i];
if (filter && !entryMatches(bomentry)) {
continue;
}
var references = null;
var netname = null;
var tr = document.createElement("TR");
var td = document.createElement("TD");
var rownum = +i + 1;
tr.id = "bomrow" + rownum;
td.textContent = rownum;
tr.appendChild(td);
if (settings.bommode == "netlist") {
netname = bomentry;
td = document.createElement("TD");
td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
tr.appendChild(td);
} else {
if (reflookup) {
references = findRefInEntry(bomentry);
if (references.length == 0) {
continue;
}
} else {
references = bomentry;
}
// Filter hidden columns
var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
columns.forEach((column) => {
if (column === placeholderColumn) {
var n = 1;
if (column === "checkboxes")
n = settings.checkboxes.length;
for (i = 0; i < n; i++) {
td = placeHolderElements.shift();
tr.appendChild(td);
}
return;
} else if (column === "checkboxes") {
for (var checkbox of settings.checkboxes) {
if (checkbox) {
td = document.createElement("TD");
var input = document.createElement("input");
input.type = "checkbox";
input.onchange = createCheckboxChangeHandler(checkbox, references, tr);
setBomCheckboxState(checkbox, input, references);
if (input.checked && settings.markWhenChecked == checkbox) {
tr.classList.add("checked");
}
td.appendChild(input);
tr.appendChild(td);
}
}
} else if (column === "References") {
td = document.createElement("TD");
td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
tr.appendChild(td);
} else if (column === "Quantity" && settings.bommode == "grouped") {
// Quantity
td = document.createElement("TD");
td.textContent = references.length;
tr.appendChild(td);
} else {
// All the other fields
var field_index = config.fields.indexOf(column)
if (field_index < 0)
return;
var valueSet = new Set();
references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
td = document.createElement("TD");
td.innerHTML = highlightFilter(Array.from(valueSet).join(", "));
tr.appendChild(td);
}
});
}
bom.appendChild(tr);
var handler = createRowHighlightHandler(tr.id, references, netname);
tr.onmousemove = handler;
highlightHandlers.push({
id: tr.id,
handler: handler,
});
if (references !== null) {
for (var refIndex of references.map(r => r[1])) {
footprintIndexToHandler[refIndex] = handler;
}
}
if (netname !== null) {
netsToHandler[netname] = handler;
}
if ((filter || reflookup) && first) {
handler();
first = false;
}
}
EventHandler.emitEvent(
IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, {
filter: filter,
reflookup: reflookup,
checkboxes: settings.checkboxes,
bommode: settings.bommode,
});
}
function highlightPreviousRow() {
if (!currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[0].id == currentHighlightedRowId) {
highlightHandlers[highlightHandlers.length - 1].handler();
} else {
for (var i = 0; i < highlightHandlers.length - 1; i++) {
if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function highlightNextRow() {
if (!currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
if (highlightHandlers.length > 1 &&
highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
highlightHandlers[0].handler();
} else {
for (var i = 1; i < highlightHandlers.length; i++) {
if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
highlightHandlers[i].handler();
break;
}
}
}
}
smoothScrollToRow(currentHighlightedRowId);
}
function populateBomTable() {
populateBomHeader();
populateBomBody();
setBomHandlers();
resizableGrid(bomhead);
}
function footprintsClicked(footprintIndexes) {
var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
for (var i = 1; i <= footprintIndexes.length; i++) {
var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
if (refIndex in footprintIndexToHandler) {
lastClicked = refIndex;
footprintIndexToHandler[refIndex]();
smoothScrollToRow(currentHighlightedRowId);
break;
}
}
}
function netClicked(net) {
if (net in netsToHandler) {
netsToHandler[net]();
smoothScrollToRow(currentHighlightedRowId);
} else {
clearHighlightedFootprints();
highlightedNet = net;
drawHighlights();
}
}
function updateFilter(input) {
filter = input.toLowerCase();
populateBomTable();
}
function updateRefLookup(input) {
reflookup = input.toLowerCase();
populateBomTable();
}
function changeCanvasLayout(layout) {
document.getElementById("fl-btn").classList.remove("depressed");
document.getElementById("fb-btn").classList.remove("depressed");
document.getElementById("bl-btn").classList.remove("depressed");
switch (layout) {
case 'F':
document.getElementById("fl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(1);
}
break;
case 'B':
document.getElementById("bl-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.collapse(0);
}
break;
default:
document.getElementById("fb-btn").classList.add("depressed");
if (settings.bomlayout != "bom-only") {
canvassplit.setSizes([50, 50]);
}
}
settings.canvaslayout = layout;
writeStorage("canvaslayout", layout);
resizeAll();
changeBomMode(settings.bommode);
}
function populateMetadata() {
document.getElementById("title").innerHTML = pcbdata.metadata.title;
document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
document.getElementById("company").innerHTML = pcbdata.metadata.company;
document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
if (pcbdata.metadata.title != "") {
document.title = pcbdata.metadata.title + " BOM";
}
// Calculate board stats
var fp_f = 0,
fp_b = 0,
pads_f = 0,
pads_b = 0,
pads_th = 0;
for (var i = 0; i < pcbdata.footprints.length; i++) {
if (pcbdata.bom.skipped.includes(i)) continue;
var mod = pcbdata.footprints[i];
if (mod.layer == "F") {
fp_f++;
} else {
fp_b++;
}
for (var pad of mod.pads) {
if (pad.type == "th") {
pads_th++;
} else {
if (pad.layers.includes("F")) {
pads_f++;
}
if (pad.layers.includes("B")) {
pads_b++;
}
}
}
}
document.getElementById("stats-components-front").innerHTML = fp_f;
document.getElementById("stats-components-back").innerHTML = fp_b;
document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
document.getElementById("stats-th-pads").innerHTML = pads_th;
// Update version string
document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
/^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}
function changeBomLayout(layout) {
document.getElementById("bom-btn").classList.remove("depressed");
document.getElementById("lr-btn").classList.remove("depressed");
document.getElementById("tb-btn").classList.remove("depressed");
switch (layout) {
case 'bom-only':
document.getElementById("bom-btn").classList.add("depressed");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
document.getElementById("frontcanvas").style.display = "none";
document.getElementById("backcanvas").style.display = "none";
document.getElementById("bot").style.height = "";
break;
case 'top-bottom':
document.getElementById("tb-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.remove("split-horizontal");
document.getElementById("canvasdiv").classList.remove("split-horizontal");
document.getElementById("frontcanvas").classList.add("split-horizontal");
document.getElementById("backcanvas").classList.add("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
direction: "vertical",
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
onDragEnd: resizeAll
});
break;
case 'left-right':
document.getElementById("lr-btn").classList.add("depressed");
document.getElementById("frontcanvas").style.display = "";
document.getElementById("backcanvas").style.display = "";
document.getElementById("bot").style.height = "calc(100% - 80px)";
document.getElementById("bomdiv").classList.add("split-horizontal");
document.getElementById("canvasdiv").classList.add("split-horizontal");
document.getElementById("frontcanvas").classList.remove("split-horizontal");
document.getElementById("backcanvas").classList.remove("split-horizontal");
if (bomsplit) {
bomsplit.destroy();
bomsplit = null;
canvassplit.destroy();
canvassplit = null;
}
bomsplit = Split(['#bomdiv', '#canvasdiv'], {
sizes: [50, 50],
onDragEnd: resizeAll,
gutterSize: 5
});
canvassplit = Split(['#frontcanvas', '#backcanvas'], {
sizes: [50, 50],
gutterSize: 5,
direction: "vertical",
onDragEnd: resizeAll
});
}
settings.bomlayout = layout;
writeStorage("bomlayout", layout);
changeCanvasLayout(settings.canvaslayout);
}
function changeBomMode(mode) {
document.getElementById("bom-grouped-btn").classList.remove("depressed");
document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
document.getElementById("bom-netlist-btn").classList.remove("depressed");
var chkbxs = document.getElementsByClassName("visibility_checkbox");
switch (mode) {
case 'grouped':
document.getElementById("bom-grouped-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = false;
}
break;
case 'ungrouped':
document.getElementById("bom-ungrouped-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = false;
}
break;
case 'netlist':
document.getElementById("bom-netlist-btn").classList.add("depressed");
for (var i = 0; i < chkbxs.length; i++) {
chkbxs[i].disabled = true;
}
}
writeStorage("bommode", mode);
if (mode != settings.bommode) {
settings.bommode = mode;
bomSortFunction = null;
currentSortColumn = null;
currentSortOrder = null;
clearHighlightedFootprints();
}
populateBomTable();
}
function focusFilterField() {
focusInputField(document.getElementById("filter"));
}
function focusRefLookupField() {
focusInputField(document.getElementById("reflookup"));
}
function toggleBomCheckbox(bomrowid, checkboxnum) {
if (!bomrowid || checkboxnum > settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
checkbox.checked = !checkbox.checked;
checkbox.indeterminate = false;
checkbox.onchange();
}
function checkBomCheckbox(bomrowid, checkboxname) {
var checkboxnum = 0;
while (checkboxnum < settings.checkboxes.length &&
settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
checkboxnum++;
}
if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
return;
}
var bomrow = document.getElementById(bomrowid);
var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
checkbox.checked = true;
checkbox.indeterminate = false;
checkbox.onchange();
}
function setBomCheckboxes(value) {
writeStorage("bomCheckboxes", value);
settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e);
prepCheckboxes();
populateMarkWhenCheckedOptions();
setMarkWhenChecked(settings.markWhenChecked);
}
function setMarkWhenChecked(value) {
writeStorage("markWhenChecked", value);
settings.markWhenChecked = value;
markedFootprints.clear();
for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
markedFootprints.add(ref);
}
populateBomTable();
drawHighlights();
}
function prepCheckboxes() {
var table = document.getElementById("checkbox-stats");
while (table.childElementCount > 1) {
table.removeChild(table.lastChild);
}
if (settings.checkboxes.length) {
table.style.display = "";
} else {
table.style.display = "none";
}
for (var checkbox of settings.checkboxes) {
var tr = document.createElement("TR");
var td = document.createElement("TD");
td.innerHTML = checkbox;
tr.appendChild(td);
td = document.createElement("TD");
td.id = "checkbox-stats-" + checkbox;
var progressbar = document.createElement("div");
progressbar.classList.add("bar");
td.appendChild(progressbar);
var text = document.createElement("div");
text.classList.add("text");
td.appendChild(text);
tr.appendChild(td);
table.appendChild(tr);
updateCheckboxStats(checkbox);
}
}
function populateMarkWhenCheckedOptions() {
var container = document.getElementById("markWhenCheckedContainer");
if (settings.checkboxes.length == 0) {
container.parentElement.style.display = "none";
return;
}
container.innerHTML = '';
container.parentElement.style.display = "inline-block";
function createOption(name, displayName) {
var id = "markWhenChecked-" + name;
var div = document.createElement("div");
div.classList.add("radio-container");
var input = document.createElement("input");
input.type = "radio";
input.name = "markWhenChecked";
input.value = name;
input.id = id;
input.onchange = () => setMarkWhenChecked(name);
div.appendChild(input);
// Preserve the selected element when the checkboxes change
if (name == settings.markWhenChecked) {
input.checked = true;
}
var label = document.createElement("label");
label.innerHTML = displayName;
label.htmlFor = id;
div.appendChild(label);
container.appendChild(div);
}
createOption("", "None");
for (var checkbox of settings.checkboxes) {
createOption(checkbox, checkbox);
}
}
function updateCheckboxStats(checkbox) {
var checked = getStoredCheckboxRefs(checkbox).size;
var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
var percent = checked * 100.0 / total;
var td = document.getElementById("checkbox-stats-" + checkbox);
td.firstChild.style.width = percent + "%";
td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}
document.onkeydown = function (e) {
switch (e.key) {
case "n":
if (document.activeElement.type == "text") {
return;
}
if (currentHighlightedRowId !== null) {
checkBomCheckbox(currentHighlightedRowId, "placed");
highlightNextRow();
e.preventDefault();
}
break;
case "ArrowUp":
highlightPreviousRow();
e.preventDefault();
break;
case "ArrowDown":
highlightNextRow();
e.preventDefault();
break;
default:
break;
}
if (e.altKey) {
switch (e.key) {
case "f":
focusFilterField();
e.preventDefault();
break;
case "r":
focusRefLookupField();
e.preventDefault();
break;
case "z":
changeBomLayout("bom-only");
e.preventDefault();
break;
case "x":
changeBomLayout("left-right");
e.preventDefault();
break;
case "c":
changeBomLayout("top-bottom");
e.preventDefault();
break;
case "v":
changeCanvasLayout("F");
e.preventDefault();
break;
case "b":
changeCanvasLayout("FB");
e.preventDefault();
break;
case "n":
changeCanvasLayout("B");
e.preventDefault();
break;
default:
break;
}
if (e.key >= '1' && e.key <= '9') {
toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
e.preventDefault();
}
}
}
function hideNetlistButton() {
document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
document.getElementById("bom-netlist-btn").style.display = "none";
}
window.onload = function (e) {
initUtils();
initRender();
initStorage();
initDefaults();
cleanGutters();
populateMetadata();
dbgdiv = document.getElementById("dbg");
bom = document.getElementById("bombody");
bomhead = document.getElementById("bomhead");
filter = "";
reflookup = "";
if (!("nets" in pcbdata)) {
hideNetlistButton();
}
initDone = true;
setBomCheckboxes(document.getElementById("bomCheckboxes").value);
// Triggers render
changeBomLayout(settings.bomlayout);
// Users may leave fullscreen without touching the checkbox. Uncheck.
document.addEventListener('fullscreenchange', () => {
if (!document.fullscreenElement)
document.getElementById('fullscreenCheckbox').checked = false;
});
}
window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);
///////////////////////////////////////////////
///////////////////////////////////////////////
///////////////////////////////////////////////
</script>
</head>
<body>
<div id="topmostdiv" class="topmostdiv">
<div id="top">
<div style="float: right; height: 100%;">
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="menubtn"></button>
<div class="menu-content">
<label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
<input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
Dark mode
</label><!-- This comment eats space! All of it!
--><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
<input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
Full Screen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
Fab layer
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
Silkscreen
</label>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
References
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
Values
</label>
<div id="tracksAndZonesCheckboxes">
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
Tracks
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
Zones
</label>
</div>
<label class="menu-label" style="width: calc(50% - 18px)">
<input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
Pads
</label><!-- This comment eats space! All of it!
--><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
<input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
DNP outlined
</label>
<label class="menu-label">
<input id="highlightpin1Checkbox" type="checkbox" onchange="setHighlightPin1(this.checked)">
Highlight first pin
</label>
<label class="menu-label">
<input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
Continuous redraw on drag
</label>
<label class="menu-label">
<span>Board rotation</span>
<span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
<input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Bom checkboxes</div>
<input id="bomCheckboxes" class="menu-textbox" type=text
oninput="setBomCheckboxes(this.value)">
</label>
<label class="menu-label">
<div style="margin-left: 5px">Mark when checked</div>
<div id="markWhenCheckedContainer"></div>
</label>
<label class="menu-label">
<span class="shameless-plug">
<span>Created using</span>
<a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
</span>
</label>
</div>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
title="Front only">F
</button>
<button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
title="Front and Back">FB
</button>
<button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
title="Back only">B
</button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
title="BOM only"></button>
<button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
title="BOM left, drawings right"></button>
<button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
title="BOM top, drawings bot"></button>
</div>
<div class="button-container hideonprint"
style="float: right; position: relative; top: 8px">
<button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
title="Grouped BOM"></button>
<button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
title="Ungrouped BOM"></button>
<button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
title="Netlist"></button>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="statsbtn"></button>
<div class="menu-content">
<table class="stats">
<tbody>
<tr>
<td width="40%">Board stats</td>
<td>Front</td>
<td>Back</td>
<td>Total</td>
</tr>
<tr>
<td>Components</td>
<td id="stats-components-front">~</td>
<td id="stats-components-back">~</td>
<td id="stats-components-total">~</td>
</tr>
<tr>
<td>Groups</td>
<td id="stats-groups-front">~</td>
<td id="stats-groups-back">~</td>
<td id="stats-groups-total">~</td>
</tr>
<tr>
<td>SMD pads</td>
<td id="stats-smd-pads-front">~</td>
<td id="stats-smd-pads-back">~</td>
<td id="stats-smd-pads-total">~</td>
</tr>
<tr>
<td>TH pads</td>
<td colspan=3 id="stats-th-pads">~</td>
</tr>
</tbody>
</table>
<table class="stats">
<col width="40%"/><col />
<tbody id="checkbox-stats">
<tr>
<td colspan=2 style="border-top: 0">Checkboxes</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="hideonprint menu" style="float: right; top: 8px;">
<button class="iobtn"></button>
<div class="menu-content">
<div class="menu-label menu-label-top">
<div style="margin-left: 5px;">Save board image</div>
<div class="flexbox">
<input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
<span>X</span>
<input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
</div>
<label>
<input id="render-save-transparent" type="checkbox">
Transparent background
</label>
<div class="flexbox">
<button class="savebtn" onclick="saveImage('F')">Front</button>
<button class="savebtn" onclick="saveImage('B')">Back</button>
</div>
</div>
<div class="menu-label">
<span style="margin-left: 5px;">Config and checkbox state</span>
<div class="flexbox">
<button class="savebtn" onclick="saveSettings()">Export</button>
<button class="savebtn" onclick="loadSettings()">Import</button>
</div>
</div>
</div>
</div>
</div>
<div id="fileinfodiv" style="overflow: auto;">
<table class="fileinfo">
<tbody>
<tr>
<td id="title" class="title" style="width: 70%">
Title
</td>
<td id="revision" class="title" style="width: 30%">
Revision
</td>
</tr>
<tr>
<td id="company">
Company
</td>
<td id="filedate">
Date
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="bot" class="split" style="height: calc(100% - 80px)">
<div id="bomdiv" class="split split-horizontal">
<div style="width: 100%">
<input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
oninput="updateRefLookup(this.value)">
<input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
oninput="updateFilter(this.value)">
<div class="button-container hideonprint" style="float: left; margin: 0;">
<button id="copy" title="Copy bom table to clipboard"
onclick="copyToClipboard()"></button>
</div>
</div>
<div id="dbg"></div>
<table class="bom" id="bomtable">
<thead id="bomhead">
</thead>
<tbody id="bombody">
</tbody>
</table>
</div>
<div id="canvasdiv" class="split split-horizontal">
<div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
<div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
<div style="position: relative; width: 100%; height: 100%;">
<canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
<canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
<canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
<canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
</div>
</div>
</div>
</div>
</div>
</body>
</html>