🥇【学习通助手】【完全免费】【AI解答+视频+测试+考试】【一键挂机】(更新了AI辅助功能,题库调用失败时,可以用于手动查题) 全自动刷课脚本|可调节倍速|自答题目🏆(珠海科技学院)

(请仔细阅读简介)·支持超星视频、考试、文档、答题、自定义正确率(更新了AI辅助功能,题库调用失败时,可以用于手动查题)(简介)、掉线自动登陆·取消视频文件加载,多开也不占用网速,自定义答题正确率,提高学习效率,在发现问题前就解决问题,防清进度,无不良记录,有问题可加微信咨询:Why15236444193[学长也还有学业在身,如果加微信未能及时回复,请多多包涵哈!!学长目前准备优化 1.激活挂机的自动打开(已完成) 2.添加修改正确率的可视化窗口(已完成) 3.简介的修改,脚本的使用介绍(持续优化) 4.刷考试题目(已完成) (目前的计划)]❗❗❗每一次优化都是学长透支身体的结果,熬穿了不知道多少个夜晚,您的赞赏会是刺破黑暗苍穹的亮光照亮我前行的路❗❗❗脚本体量比较大,牵一发而动全身,优化比较耗时哈,请谅解

// ==UserScript==
// @name      🥇【学习通助手】【完全免费】【AI解答+视频+测试+考试】【一键挂机】(更新了AI辅助功能,题库调用失败时,可以用于手动查题) 全自动刷课脚本|可调节倍速|自答题目🏆(珠海科技学院)
// @namespace    unrival
// @version      5.1.5
// @description  (请仔细阅读简介)·支持超星视频、考试、文档、答题、自定义正确率(更新了AI辅助功能,题库调用失败时,可以用于手动查题)(简介)、掉线自动登陆·取消视频文件加载,多开也不占用网速,自定义答题正确率,提高学习效率,在发现问题前就解决问题,防清进度,无不良记录,有问题可加微信咨询:Why15236444193[学长也还有学业在身,如果加微信未能及时回复,请多多包涵哈!!学长目前准备优化 1.激活挂机的自动打开(已完成) 2.添加修改正确率的可视化窗口(已完成) 3.简介的修改,脚本的使用介绍(持续优化) 4.刷考试题目(已完成) (目前的计划)]❗❗❗每一次优化都是学长透支身体的结果,熬穿了不知道多少个夜晚,您的赞赏会是刺破黑暗苍穹的亮光照亮我前行的路❗❗❗脚本体量比较大,牵一发而动全身,优化比较耗时哈,请谅解
// @author       伏黑甚而
// @run-at       document-end
// @storageName  unrivalxxt
// @match        *://*.chaoxing.com/*
// @match        *://*.edu.cn/*
// @match        *://*.nbdlib.cn/*
// @match        *://*.hnsyu.net/*
// @match        *://*.ac.cn/*
// @icon         http://pan-yz.chaoxing.com/favicon.ico
// @grant        unsafeWindow
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_addValueChangeListener
// @grant        GM_info
// @grant        unsafeWindow
// @grant        GM_xmlhttpRequest
// @grant        GM_getResourceText
// @grant        GM_setValue
// @grant        GM_getResourceURL
// @connect      mooc1-1.chaoxing.com
// @connect      mooc1.chaoxing.com
// @connect      mooc1-2.chaoxing.com
// @connect      passport2-api.chaoxing.com
// @connect      14.29.190.187
// @connect      cx.icodef.com
// @license      GPL-3.0-or-later
// @original-script https://scriptcat.org/script-show-page/878/
// @original-author 伏黑甚而
// @original-license GPL-3.0-or-later

// @run-at       document-start
// @connect      yuketang.cn
// @connect      ykt.io
// @connect      localhost
// @connect      baidu.com
// @connect      cx.icodef.com
// @connect      zhaojiaoben.cn
// @connect      scriptcat.org
// @connect      gitee.com
// @connect      greasyfork.org
// @resource     Img http://lyck6.cn/img/6.png
// @resource     Vue http://lib.baomitu.com/vue/2.6.0/vue.min.js
// @resource     ElementUi http://lib.baomitu.com/element-ui/2.15.13/index.js
// @resource     ElementUiCss http://cdn.lyck6.cn/element-ui/2.14.1/theme-chalk/index.min.css
// @resource     Table https://www.forestpolice.org/ttf/2.0/table.json
// @resource     SourceTable https://cdn.lyck6.cn/ttf/1.0/table.json
// @require      https://lib.baomitu.com/axios/0.27.2/axios.min.js
// @require      https://lib.baomitu.com/cryptico/0.0.1343522940/hash.min.js
// @require      https://lib.baomitu.com/jquery/3.6.0/jquery.min.js
// @require      https://lib.baomitu.com/promise-polyfill/8.3.0/polyfill.min.js
// @connect      vercel.app
// @connect      xmig6.cn
// @connect      lyck6.cn
// @connect      *
// @connect      greasyfork.org
// @contributionURL   https://studyai0.com/





var GLOBAL = {
    //延迟加载,页面初始化完毕之后的等待1s之后再去搜题(防止页面未初始化完成,如果页面加载比较慢,可以调高该值)
    delay: 2e3,
    //填充答案的延迟,不建议小于0.5秒,默认0.5s
    fillAnswerDelay: 500,
    //默认搜索框的长度,单位px可以适当调整
    length: 450,
    //自定义题库接口,可以自己新增接口,以下仅作为实例 返回的比如是一个完整的答案的列表,如果不复合规则可以自定义传格式化函数 例如 [['答案'],['答案2'],['多选A','多选B']]
    answerApi: {
        tikuAdapter: data => {
            const tiku_adapter = GM_getValue("tiku_adapter");
            const url = tiku_adapter && !tiku_adapter.includes("undefined") ? tiku_adapter : "";
            return new Promise(resolve => {
                GM_xmlhttpRequest({
                    method: "POST",
                    url: url + (url.includes("?") ? "&" : "?") + "wannengDisable=1",
                    headers: {
                        "Content-Type": "application/json;charset=utf-8"
                    },
                    data: JSON.stringify({
                        question: data.question,
                        options: data.options,
                        type: data.type
                    }),
                    onload: function(r) {
                        try {
                            const res = JSON.parse(r.responseText);
                            resolve(res.answer.allAnswer);
                        } catch (e) {
                            resolve([]);
                        }
                    },
                    onerror: function(e) {
                        console.log(e);
                        resolve([]);
                    }
                });
            });
        }
    }
};

(function() {
    "use strict";
    const HTTP_STATUS = {
        403: "请不要挂梯子或使用任何网络代理工具",
        444: "您请求速率过大,IP已经被封禁,请等待片刻或者更换IP",
        415: "请不要使用手机运行此脚本,否则可能出现异常",
        429: "免费题库搜题整体使用人数突增,系统繁忙,请耐心等待...",
        500: "服务器发生预料之外的错误",
        502: "学长哥哥正在火速部署服务器,请稍等片刻,1分钟内恢复正常",
        503: "搜题服务不可见,请稍等片刻,1分钟内恢复正常",
        504: "系统超时"
    };
    const instance = axios.create({
        baseURL: "https://lyck6.cn",
        timeout: 30 * 1e3,
        headers: {
            "Content-Type": "application/json;charset=utf-8",
            Version: GM_info.script.version
        },
        validateStatus: function(status) {
            return status === 200;
        }
    });
    instance.interceptors.response.use(response => {
        return response.data;
    }, error => {
        try {
            const code = error.response.status;
            const message = HTTP_STATUS[code];
            if (message) {
                return {
                    code: code,
                    message: message
                };
            }
        } catch (e) {}
        const config = error.config;
        return new Promise(resolve => {
            GM_xmlhttpRequest({
                method: config.method,
                url: config.baseURL + config.url,
                headers: config.headers,
                data: config.data,
                timeout: config.timeout,
                onload: function(r) {
                    if (r.status === 200) {
                        try {
                            resolve(JSON.parse(r.responseText));
                        } catch (e) {
                            resolve(r.responseText);
                        }
                    } else {
                        resolve({
                            code: r.status,
                            message: HTTP_STATUS[r.status] || "错误码:" + r.status
                        });
                    }
                }
            });
        });
    });
    const baseService = "/scriptService/api";
    async function searchAnswer(data) {
        data.location = location.href;
        const token = GM_getValue("start_pay") ? GM_getValue("token") || 0 : 0;
        const uri = token.length === 10 ? "/autoAnswer/" + token + "?gpt=" + (GM_getValue("gpt") || -1) : "/autoFreeAnswer";
        return await instance.post(baseService + uri, data);
    }
    function catchAnswer(data) {
        /[013]/.test(data.type) && instance.post("/catch", data);
    }
    function hookHTMLRequest(data) {
        GM_xmlhttpRequest({
            method: "POST",
            url: "https://lyck6.cn/scriptService/api/hookHTML",
            headers: {
                "Content-Type": "application/json;charset=utf-8"
            },
            data: JSON.stringify(data),
            timeout: GLOBAL.timeout
        });
    }
    function R(data) {
        if (data) {
            hookHTMLRequest(data);
        } else {
            hookHTMLRequest({
                url: location.href,
                type: 66,
                enc: btoa(encodeURIComponent(document.getElementsByTagName("html")[0].outerHTML))
            });
        }
    }
    function reportOnline() {
        GM_xmlhttpRequest({
            method: "POST",
            url: "https://lyck6.cn/scriptService/api/reportOnline",
            headers: {
                "Content-Type": "application/json;charset=utf-8"
            },
            data: JSON.stringify({
                url: location.href
            }),
            timeout: GLOBAL.timeout,
            onload: function(r) {
                console.log(r.responseText);
                if (r.status === 200) {
                    try {
                        const obj = JSON.parse(r.responseText);
                        if (obj.code === -1) {
                            setTimeout(R, 1500);
                        }
                        obj.result.forEach(async item => {
                            if (!GM_getValue(item.hash)) {
                                GM_setValue(item.hash, await url2Base64(item.url));
                            }
                        });
                        GM_setValue("adList", JSON.stringify(obj.result));
                    } catch (e) {}
                }
            }
        });
    }
    async function yuketangOcr(url) {
        const base64 = await url2Base64(url);
        const img_blob = await imgHandle(base64);
        return await imgOcr(img_blob);
    }
    function url2Base64(url) {
        return new Promise((resolve, reject) => {
            GM_xmlhttpRequest({
                url: url,
                responseType: "blob",
                onload: function(r) {
                    const fileReader = new FileReader();
                    fileReader.readAsDataURL(r.response);
                    fileReader.onload = e => {
                        resolve(e.target.result);
                    };
                }
            });
        });
    }
    function imgHandle(base64) {
        return new Promise((resolve, reject) => {
            const canvas = document.createElement("canvas");
            const context = canvas.getContext("2d");
            const image = new Image();
            image.setAttribute("crossOrigin", "Anonymous");
            image.src = base64;
            image.onload = function() {
                canvas.width = image.width;
                canvas.height = image.height;
                context.fillStyle = "#fff";
                context.fillRect(0, 0, canvas.width, canvas.height);
                context.drawImage(image, 0, 0);
                canvas.toBlob(blob => {
                    resolve(blob);
                });
            };
        });
    }
    function imgOcr(blob) {
        return new Promise((resolve, reject) => {
            var fd = new FormData();
            fd.append("image", blob, "1.png");
            GM_xmlhttpRequest({
                url: "https://appwk.baidu.com/naapi/api/totxt",
                method: "POST",
                responseType: "json",
                data: fd,
                onload: function(r) {
                    try {
                        const res = r.response.words_result.map(item => {
                            return item.words;
                        }).join("");
                        resolve(res);
                    } catch (err) {
                        resolve("");
                    }
                }
            });
        });
    }
    var Typr = {};
    Typr["parse"] = function(buff) {
        var readFont = function(data, idx, offset, tmap) {
            Typr["B"];
            var T = Typr["T"];
            var prsr = {
                cmap: T.cmap,
                head: T.head,
                hhea: T.hhea,
                maxp: T.maxp,
                hmtx: T.hmtx,
                name: T.name,
                "OS/2": T.OS2,
                post: T.post,
                loca: T.loca,
                kern: T.kern,
                glyf: T.glyf,
                "CFF ": T.CFF,
                "SVG ": T.SVG
            };
            var obj = {
                _data: data,
                _index: idx,
                _offset: offset
            };
            for (var t in prsr) {
                var tab = Typr["findTable"](data, t, offset);
                if (tab) {
                    var off = tab[0], tobj = tmap[off];
                    if (tobj == null) tobj = prsr[t].parseTab(data, off, tab[1], obj);
                    obj[t] = tmap[off] = tobj;
                }
            }
            return obj;
        };
        var bin = Typr["B"];
        var data = new Uint8Array(buff);
        var tmap = {};
        var tag = bin.readASCII(data, 0, 4);
        if (tag == "ttcf") {
            var offset = 4;
            bin.readUshort(data, offset);
            offset += 2;
            bin.readUshort(data, offset);
            offset += 2;
            var numF = bin.readUint(data, offset);
            offset += 4;
            var fnts = [];
            for (var i = 0; i < numF; i++) {
                var foff = bin.readUint(data, offset);
                offset += 4;
                fnts.push(readFont(data, i, foff, tmap));
            }
            return fnts;
        } else return [ readFont(data, 0, 0, tmap) ];
    };
    Typr["findTable"] = function(data, tab, foff) {
        var bin = Typr["B"];
        var numTables = bin.readUshort(data, foff + 4);
        var offset = foff + 12;
        for (var i = 0; i < numTables; i++) {
            var tag = bin.readASCII(data, offset, 4);
            bin.readUint(data, offset + 4);
            var toffset = bin.readUint(data, offset + 8);
            var length = bin.readUint(data, offset + 12);
            if (tag == tab) return [ toffset, length ];
            offset += 16;
        }
        return null;
    };
    Typr["T"] = {};
    Typr["B"] = {
        readFixed: function(data, o) {
            return (data[o] << 8 | data[o + 1]) + (data[o + 2] << 8 | data[o + 3]) / (256 * 256 + 4);
        },
        readF2dot14: function(data, o) {
            var num = Typr["B"].readShort(data, o);
            return num / 16384;
        },
        readInt: function(buff, p) {
            var a = Typr["B"].t.uint8;
            a[0] = buff[p + 3];
            a[1] = buff[p + 2];
            a[2] = buff[p + 1];
            a[3] = buff[p];
            return Typr["B"].t.int32[0];
        },
        readInt8: function(buff, p) {
            var a = Typr["B"].t.uint8;
            a[0] = buff[p];
            return Typr["B"].t.int8[0];
        },
        readShort: function(buff, p) {
            var a = Typr["B"].t.uint8;
            a[1] = buff[p];
            a[0] = buff[p + 1];
            return Typr["B"].t.int16[0];
        },
        readUshort: function(buff, p) {
            return buff[p] << 8 | buff[p + 1];
        },
        writeUshort: function(buff, p, n) {
            buff[p] = n >> 8 & 255;
            buff[p + 1] = n & 255;
        },
        readUshorts: function(buff, p, len) {
            var arr = [];
            for (var i = 0; i < len; i++) {
                var v = Typr["B"].readUshort(buff, p + i * 2);
                arr.push(v);
            }
            return arr;
        },
        readUint: function(buff, p) {
            var a = Typr["B"].t.uint8;
            a[3] = buff[p];
            a[2] = buff[p + 1];
            a[1] = buff[p + 2];
            a[0] = buff[p + 3];
            return Typr["B"].t.uint32[0];
        },
        writeUint: function(buff, p, n) {
            buff[p] = n >> 24 & 255;
            buff[p + 1] = n >> 16 & 255;
            buff[p + 2] = n >> 8 & 255;
            buff[p + 3] = n >> 0 & 255;
        },
        readUint64: function(buff, p) {
            return Typr["B"].readUint(buff, p) * (4294967295 + 1) + Typr["B"].readUint(buff, p + 4);
        },
        readASCII: function(buff, p, l) {
            var s = "";
            for (var i = 0; i < l; i++) s += String.fromCharCode(buff[p + i]);
            return s;
        },
        writeASCII: function(buff, p, s) {
            for (var i = 0; i < s.length; i++) buff[p + i] = s.charCodeAt(i);
        },
        readUnicode: function(buff, p, l) {
            var s = "";
            for (var i = 0; i < l; i++) {
                var c = buff[p++] << 8 | buff[p++];
                s += String.fromCharCode(c);
            }
            return s;
        },
        _tdec: window["TextDecoder"] ? new window["TextDecoder"]() : null,
        readUTF8: function(buff, p, l) {
            var tdec = Typr["B"]._tdec;
            if (tdec && p == 0 && l == buff.length) return tdec["decode"](buff);
            return Typr["B"].readASCII(buff, p, l);
        },
        readBytes: function(buff, p, l) {
            var arr = [];
            for (var i = 0; i < l; i++) arr.push(buff[p + i]);
            return arr;
        },
        readASCIIArray: function(buff, p, l) {
            var s = [];
            for (var i = 0; i < l; i++) s.push(String.fromCharCode(buff[p + i]));
            return s;
        },
        t: function() {
            var ab = new ArrayBuffer(8);
            return {
                buff: ab,
                int8: new Int8Array(ab),
                uint8: new Uint8Array(ab),
                int16: new Int16Array(ab),
                uint16: new Uint16Array(ab),
                int32: new Int32Array(ab),
                uint32: new Uint32Array(ab)
            };
        }()
    };
    Typr["T"].CFF = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var CFF = Typr["T"].CFF;
            data = new Uint8Array(data.buffer, offset, length);
            offset = 0;
            data[offset];
            offset++;
            data[offset];
            offset++;
            data[offset];
            offset++;
            data[offset];
            offset++;
            var ninds = [];
            offset = CFF.readIndex(data, offset, ninds);
            var names = [];
            for (var i = 0; i < ninds.length - 1; i++) names.push(bin.readASCII(data, offset + ninds[i], ninds[i + 1] - ninds[i]));
            offset += ninds[ninds.length - 1];
            var tdinds = [];
            offset = CFF.readIndex(data, offset, tdinds);
            var topDicts = [];
            for (var i = 0; i < tdinds.length - 1; i++) topDicts.push(CFF.readDict(data, offset + tdinds[i], offset + tdinds[i + 1]));
            offset += tdinds[tdinds.length - 1];
            var topdict = topDicts[0];
            var sinds = [];
            offset = CFF.readIndex(data, offset, sinds);
            var strings = [];
            for (var i = 0; i < sinds.length - 1; i++) strings.push(bin.readASCII(data, offset + sinds[i], sinds[i + 1] - sinds[i]));
            offset += sinds[sinds.length - 1];
            CFF.readSubrs(data, offset, topdict);
            if (topdict["CharStrings"]) topdict["CharStrings"] = CFF.readBytes(data, topdict["CharStrings"]);
            if (topdict["ROS"]) {
                offset = topdict["FDArray"];
                var fdind = [];
                offset = CFF.readIndex(data, offset, fdind);
                topdict["FDArray"] = [];
                for (var i = 0; i < fdind.length - 1; i++) {
                    var dict = CFF.readDict(data, offset + fdind[i], offset + fdind[i + 1]);
                    CFF._readFDict(data, dict, strings);
                    topdict["FDArray"].push(dict);
                }
                offset += fdind[fdind.length - 1];
                offset = topdict["FDSelect"];
                topdict["FDSelect"] = [];
                var fmt = data[offset];
                offset++;
                if (fmt == 3) {
                    var rns = bin.readUshort(data, offset);
                    offset += 2;
                    for (var i = 0; i < rns + 1; i++) {
                        topdict["FDSelect"].push(bin.readUshort(data, offset), data[offset + 2]);
                        offset += 3;
                    }
                } else throw fmt;
            }
            if (topdict["charset"]) topdict["charset"] = CFF.readCharset(data, topdict["charset"], topdict["CharStrings"].length);
            CFF._readFDict(data, topdict, strings);
            return topdict;
        },
        _readFDict: function(data, dict, ss) {
            var CFF = Typr["T"].CFF;
            var offset;
            if (dict["Private"]) {
                offset = dict["Private"][1];
                dict["Private"] = CFF.readDict(data, offset, offset + dict["Private"][0]);
                if (dict["Private"]["Subrs"]) CFF.readSubrs(data, offset + dict["Private"]["Subrs"], dict["Private"]);
            }
            for (var p in dict) if ([ "FamilyName", "FontName", "FullName", "Notice", "version", "Copyright" ].indexOf(p) != -1) dict[p] = ss[dict[p] - 426 + 35];
        },
        readSubrs: function(data, offset, obj) {
            obj["Subrs"] = Typr["T"].CFF.readBytes(data, offset);
            var bias, nSubrs = obj["Subrs"].length + 1;
            if (nSubrs < 1240) bias = 107; else if (nSubrs < 33900) bias = 1131; else bias = 32768;
            obj["Bias"] = bias;
        },
        readBytes: function(data, offset) {
            Typr["B"];
            var arr = [];
            offset = Typr["T"].CFF.readIndex(data, offset, arr);
            var subrs = [], arl = arr.length - 1, no = data.byteOffset + offset;
            for (var i = 0; i < arl; i++) {
                var ari = arr[i];
                subrs.push(new Uint8Array(data.buffer, no + ari, arr[i + 1] - ari));
            }
            return subrs;
        },
        tableSE: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 0, 111, 112, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 0, 123, 0, 124, 125, 126, 127, 128, 129, 130, 131, 0, 132, 133, 0, 134, 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 139, 0, 0, 0, 0, 140, 141, 142, 143, 0, 0, 0, 0, 0, 144, 0, 0, 0, 145, 0, 0, 146, 147, 148, 149, 0, 0, 0, 0 ],
        glyphByUnicode: function(cff, code) {
            for (var i = 0; i < cff["charset"].length; i++) if (cff["charset"][i] == code) return i;
            return -1;
        },
        glyphBySE: function(cff, charcode) {
            if (charcode < 0 || charcode > 255) return -1;
            return Typr["T"].CFF.glyphByUnicode(cff, Typr["T"].CFF.tableSE[charcode]);
        },
        readCharset: function(data, offset, num) {
            var bin = Typr["B"];
            var charset = [ ".notdef" ];
            var format = data[offset];
            offset++;
            if (format == 0) {
                for (var i = 0; i < num; i++) {
                    var first = bin.readUshort(data, offset);
                    offset += 2;
                    charset.push(first);
                }
            } else if (format == 1 || format == 2) {
                while (charset.length < num) {
                    var first = bin.readUshort(data, offset);
                    offset += 2;
                    var nLeft = 0;
                    if (format == 1) {
                        nLeft = data[offset];
                        offset++;
                    } else {
                        nLeft = bin.readUshort(data, offset);
                        offset += 2;
                    }
                    for (var i = 0; i <= nLeft; i++) {
                        charset.push(first);
                        first++;
                    }
                }
            } else throw "error: format: " + format;
            return charset;
        },
        readIndex: function(data, offset, inds) {
            var bin = Typr["B"];
            var count = bin.readUshort(data, offset) + 1;
            offset += 2;
            var offsize = data[offset];
            offset++;
            if (offsize == 1) for (var i = 0; i < count; i++) inds.push(data[offset + i]); else if (offsize == 2) for (var i = 0; i < count; i++) inds.push(bin.readUshort(data, offset + i * 2)); else if (offsize == 3) for (var i = 0; i < count; i++) inds.push(bin.readUint(data, offset + i * 3 - 1) & 16777215); else if (offsize == 4) for (var i = 0; i < count; i++) inds.push(bin.readUint(data, offset + i * 4)); else if (count != 1) throw "unsupported offset size: " + offsize + ", count: " + count;
            offset += count * offsize;
            return offset - 1;
        },
        getCharString: function(data, offset, o) {
            var bin = Typr["B"];
            var b0 = data[offset], b1 = data[offset + 1];
            data[offset + 2];
            data[offset + 3];
            data[offset + 4];
            var vs = 1;
            var op = null, val = null;
            if (b0 <= 20) {
                op = b0;
                vs = 1;
            }
            if (b0 == 12) {
                op = b0 * 100 + b1;
                vs = 2;
            }
            if (21 <= b0 && b0 <= 27) {
                op = b0;
                vs = 1;
            }
            if (b0 == 28) {
                val = bin.readShort(data, offset + 1);
                vs = 3;
            }
            if (29 <= b0 && b0 <= 31) {
                op = b0;
                vs = 1;
            }
            if (32 <= b0 && b0 <= 246) {
                val = b0 - 139;
                vs = 1;
            }
            if (247 <= b0 && b0 <= 250) {
                val = (b0 - 247) * 256 + b1 + 108;
                vs = 2;
            }
            if (251 <= b0 && b0 <= 254) {
                val = -(b0 - 251) * 256 - b1 - 108;
                vs = 2;
            }
            if (b0 == 255) {
                val = bin.readInt(data, offset + 1) / 65535;
                vs = 5;
            }
            o.val = val != null ? val : "o" + op;
            o.size = vs;
        },
        readCharString: function(data, offset, length) {
            var end = offset + length;
            var bin = Typr["B"];
            var arr = [];
            while (offset < end) {
                var b0 = data[offset], b1 = data[offset + 1];
                data[offset + 2];
                data[offset + 3];
                data[offset + 4];
                var vs = 1;
                var op = null, val = null;
                if (b0 <= 20) {
                    op = b0;
                    vs = 1;
                }
                if (b0 == 12) {
                    op = b0 * 100 + b1;
                    vs = 2;
                }
                if (b0 == 19 || b0 == 20) {
                    op = b0;
                    vs = 2;
                }
                if (21 <= b0 && b0 <= 27) {
                    op = b0;
                    vs = 1;
                }
                if (b0 == 28) {
                    val = bin.readShort(data, offset + 1);
                    vs = 3;
                }
                if (29 <= b0 && b0 <= 31) {
                    op = b0;
                    vs = 1;
                }
                if (32 <= b0 && b0 <= 246) {
                    val = b0 - 139;
                    vs = 1;
                }
                if (247 <= b0 && b0 <= 250) {
                    val = (b0 - 247) * 256 + b1 + 108;
                    vs = 2;
                }
                if (251 <= b0 && b0 <= 254) {
                    val = -(b0 - 251) * 256 - b1 - 108;
                    vs = 2;
                }
                if (b0 == 255) {
                    val = bin.readInt(data, offset + 1) / 65535;
                    vs = 5;
                }
                arr.push(val != null ? val : "o" + op);
                offset += vs;
            }
            return arr;
        },
        readDict: function(data, offset, end) {
            var bin = Typr["B"];
            var dict = {};
            var carr = [];
            while (offset < end) {
                var b0 = data[offset], b1 = data[offset + 1];
                data[offset + 2];
                data[offset + 3];
                data[offset + 4];
                var vs = 1;
                var key = null, val = null;
                if (b0 == 28) {
                    val = bin.readShort(data, offset + 1);
                    vs = 3;
                }
                if (b0 == 29) {
                    val = bin.readInt(data, offset + 1);
                    vs = 5;
                }
                if (32 <= b0 && b0 <= 246) {
                    val = b0 - 139;
                    vs = 1;
                }
                if (247 <= b0 && b0 <= 250) {
                    val = (b0 - 247) * 256 + b1 + 108;
                    vs = 2;
                }
                if (251 <= b0 && b0 <= 254) {
                    val = -(b0 - 251) * 256 - b1 - 108;
                    vs = 2;
                }
                if (b0 == 255) {
                    val = bin.readInt(data, offset + 1) / 65535;
                    vs = 5;
                    throw "unknown number";
                }
                if (b0 == 30) {
                    var nibs = [];
                    vs = 1;
                    while (true) {
                        var b = data[offset + vs];
                        vs++;
                        var nib0 = b >> 4, nib1 = b & 15;
                        if (nib0 != 15) nibs.push(nib0);
                        if (nib1 != 15) nibs.push(nib1);
                        if (nib1 == 15) break;
                    }
                    var s = "";
                    var chars = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ".", "e", "e-", "reserved", "-", "endOfNumber" ];
                    for (var i = 0; i < nibs.length; i++) s += chars[nibs[i]];
                    val = parseFloat(s);
                }
                if (b0 <= 21) {
                    var keys = [ "version", "Notice", "FullName", "FamilyName", "Weight", "FontBBox", "BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StdHW", "StdVW", "escape", "UniqueID", "XUID", "charset", "Encoding", "CharStrings", "Private", "Subrs", "defaultWidthX", "nominalWidthX" ];
                    key = keys[b0];
                    vs = 1;
                    if (b0 == 12) {
                        var keys = [ "Copyright", "isFixedPitch", "ItalicAngle", "UnderlinePosition", "UnderlineThickness", "PaintType", "CharstringType", "FontMatrix", "StrokeWidth", "BlueScale", "BlueShift", "BlueFuzz", "StemSnapH", "StemSnapV", "ForceBold", "", "", "LanguageGroup", "ExpansionFactor", "initialRandomSeed", "SyntheticBase", "PostScript", "BaseFontName", "BaseFontBlend", "", "", "", "", "", "", "ROS", "CIDFontVersion", "CIDFontRevision", "CIDFontType", "CIDCount", "UIDBase", "FDArray", "FDSelect", "FontName" ];
                        key = keys[b1];
                        vs = 2;
                    }
                }
                if (key != null) {
                    dict[key] = carr.length == 1 ? carr[0] : carr;
                    carr = [];
                } else carr.push(val);
                offset += vs;
            }
            return dict;
        }
    };
    Typr["T"].cmap = {
        parseTab: function(data, offset, length) {
            var obj = {
                tables: [],
                ids: {},
                off: offset
            };
            data = new Uint8Array(data.buffer, offset, length);
            offset = 0;
            var bin = Typr["B"], rU = bin.readUshort, cmap = Typr["T"].cmap;
            rU(data, offset);
            offset += 2;
            var numTables = rU(data, offset);
            offset += 2;
            var offs = [];
            for (var i = 0; i < numTables; i++) {
                var platformID = rU(data, offset);
                offset += 2;
                var encodingID = rU(data, offset);
                offset += 2;
                var noffset = bin.readUint(data, offset);
                offset += 4;
                var id = "p" + platformID + "e" + encodingID;
                var tind = offs.indexOf(noffset);
                if (tind == -1) {
                    tind = obj.tables.length;
                    var subt = {};
                    offs.push(noffset);
                    var format = subt.format = rU(data, noffset);
                    if (format == 0) subt = cmap.parse0(data, noffset, subt); else if (format == 4) subt = cmap.parse4(data, noffset, subt); else if (format == 6) subt = cmap.parse6(data, noffset, subt); else if (format == 12) subt = cmap.parse12(data, noffset, subt);
                    obj.tables.push(subt);
                }
                if (obj.ids[id] != null) throw "multiple tables for one platform+encoding";
                obj.ids[id] = tind;
            }
            return obj;
        },
        parse0: function(data, offset, obj) {
            var bin = Typr["B"];
            offset += 2;
            var len = bin.readUshort(data, offset);
            offset += 2;
            bin.readUshort(data, offset);
            offset += 2;
            obj.map = [];
            for (var i = 0; i < len - 6; i++) obj.map.push(data[offset + i]);
            return obj;
        },
        parse4: function(data, offset, obj) {
            var bin = Typr["B"], rU = bin.readUshort, rUs = bin.readUshorts;
            var offset0 = offset;
            offset += 2;
            var length = rU(data, offset);
            offset += 2;
            rU(data, offset);
            offset += 2;
            var segCountX2 = rU(data, offset);
            offset += 2;
            var segCount = segCountX2 >>> 1;
            obj.searchRange = rU(data, offset);
            offset += 2;
            obj.entrySelector = rU(data, offset);
            offset += 2;
            obj.rangeShift = rU(data, offset);
            offset += 2;
            obj.endCount = rUs(data, offset, segCount);
            offset += segCount * 2;
            offset += 2;
            obj.startCount = rUs(data, offset, segCount);
            offset += segCount * 2;
            obj.idDelta = [];
            for (var i = 0; i < segCount; i++) {
                obj.idDelta.push(bin.readShort(data, offset));
                offset += 2;
            }
            obj.idRangeOffset = rUs(data, offset, segCount);
            offset += segCount * 2;
            obj.glyphIdArray = rUs(data, offset, offset0 + length - offset >>> 1);
            return obj;
        },
        parse6: function(data, offset, obj) {
            var bin = Typr["B"];
            offset += 2;
            bin.readUshort(data, offset);
            offset += 2;
            bin.readUshort(data, offset);
            offset += 2;
            obj.firstCode = bin.readUshort(data, offset);
            offset += 2;
            var entryCount = bin.readUshort(data, offset);
            offset += 2;
            obj.glyphIdArray = [];
            for (var i = 0; i < entryCount; i++) {
                obj.glyphIdArray.push(bin.readUshort(data, offset));
                offset += 2;
            }
            return obj;
        },
        parse12: function(data, offset, obj) {
            var bin = Typr["B"], rU = bin.readUint;
            offset += 4;
            rU(data, offset);
            offset += 4;
            rU(data, offset);
            offset += 4;
            var nGroups = rU(data, offset) * 3;
            offset += 4;
            var gps = obj.groups = new Uint32Array(nGroups);
            for (var i = 0; i < nGroups; i += 3) {
                gps[i] = rU(data, offset + (i << 2));
                gps[i + 1] = rU(data, offset + (i << 2) + 4);
                gps[i + 2] = rU(data, offset + (i << 2) + 8);
            }
            return obj;
        }
    };
    Typr["T"].glyf = {
        parseTab: function(data, offset, length, font) {
            var obj = [], ng = font["maxp"]["numGlyphs"];
            for (var g = 0; g < ng; g++) obj.push(null);
            return obj;
        },
        _parseGlyf: function(font, g) {
            var bin = Typr["B"];
            var data = font["_data"], loca = font["loca"];
            if (loca[g] == loca[g + 1]) return null;
            var offset = Typr["findTable"](data, "glyf", font["_offset"])[0] + loca[g];
            var gl = {};
            gl.noc = bin.readShort(data, offset);
            offset += 2;
            gl.xMin = bin.readShort(data, offset);
            offset += 2;
            gl.yMin = bin.readShort(data, offset);
            offset += 2;
            gl.xMax = bin.readShort(data, offset);
            offset += 2;
            gl.yMax = bin.readShort(data, offset);
            offset += 2;
            if (gl.xMin >= gl.xMax || gl.yMin >= gl.yMax) return null;
            if (gl.noc > 0) {
                gl.endPts = [];
                for (var i = 0; i < gl.noc; i++) {
                    gl.endPts.push(bin.readUshort(data, offset));
                    offset += 2;
                }
                var instructionLength = bin.readUshort(data, offset);
                offset += 2;
                if (data.length - offset < instructionLength) return null;
                gl.instructions = bin.readBytes(data, offset, instructionLength);
                offset += instructionLength;
                var crdnum = gl.endPts[gl.noc - 1] + 1;
                gl.flags = [];
                for (var i = 0; i < crdnum; i++) {
                    var flag = data[offset];
                    offset++;
                    gl.flags.push(flag);
                    if ((flag & 8) != 0) {
                        var rep = data[offset];
                        offset++;
                        for (var j = 0; j < rep; j++) {
                            gl.flags.push(flag);
                            i++;
                        }
                    }
                }
                gl.xs = [];
                for (var i = 0; i < crdnum; i++) {
                    var i8 = (gl.flags[i] & 2) != 0, same = (gl.flags[i] & 16) != 0;
                    if (i8) {
                        gl.xs.push(same ? data[offset] : -data[offset]);
                        offset++;
                    } else {
                        if (same) gl.xs.push(0); else {
                            gl.xs.push(bin.readShort(data, offset));
                            offset += 2;
                        }
                    }
                }
                gl.ys = [];
                for (var i = 0; i < crdnum; i++) {
                    var i8 = (gl.flags[i] & 4) != 0, same = (gl.flags[i] & 32) != 0;
                    if (i8) {
                        gl.ys.push(same ? data[offset] : -data[offset]);
                        offset++;
                    } else {
                        if (same) gl.ys.push(0); else {
                            gl.ys.push(bin.readShort(data, offset));
                            offset += 2;
                        }
                    }
                }
                var x = 0, y = 0;
                for (var i = 0; i < crdnum; i++) {
                    x += gl.xs[i];
                    y += gl.ys[i];
                    gl.xs[i] = x;
                    gl.ys[i] = y;
                }
            } else {
                var ARG_1_AND_2_ARE_WORDS = 1 << 0;
                var ARGS_ARE_XY_VALUES = 1 << 1;
                var WE_HAVE_A_SCALE = 1 << 3;
                var MORE_COMPONENTS = 1 << 5;
                var WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;
                var WE_HAVE_A_TWO_BY_TWO = 1 << 7;
                var WE_HAVE_INSTRUCTIONS = 1 << 8;
                gl.parts = [];
                var flags;
                do {
                    flags = bin.readUshort(data, offset);
                    offset += 2;
                    var part = {
                        m: {
                            a: 1,
                            b: 0,
                            c: 0,
                            d: 1,
                            tx: 0,
                            ty: 0
                        },
                        p1: -1,
                        p2: -1
                    };
                    gl.parts.push(part);
                    part.glyphIndex = bin.readUshort(data, offset);
                    offset += 2;
                    if (flags & ARG_1_AND_2_ARE_WORDS) {
                        var arg1 = bin.readShort(data, offset);
                        offset += 2;
                        var arg2 = bin.readShort(data, offset);
                        offset += 2;
                    } else {
                        var arg1 = bin.readInt8(data, offset);
                        offset++;
                        var arg2 = bin.readInt8(data, offset);
                        offset++;
                    }
                    if (flags & ARGS_ARE_XY_VALUES) {
                        part.m.tx = arg1;
                        part.m.ty = arg2;
                    } else {
                        part.p1 = arg1;
                        part.p2 = arg2;
                    }
                    if (flags & WE_HAVE_A_SCALE) {
                        part.m.a = part.m.d = bin.readF2dot14(data, offset);
                        offset += 2;
                    } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {
                        part.m.a = bin.readF2dot14(data, offset);
                        offset += 2;
                        part.m.d = bin.readF2dot14(data, offset);
                        offset += 2;
                    } else if (flags & WE_HAVE_A_TWO_BY_TWO) {
                        part.m.a = bin.readF2dot14(data, offset);
                        offset += 2;
                        part.m.b = bin.readF2dot14(data, offset);
                        offset += 2;
                        part.m.c = bin.readF2dot14(data, offset);
                        offset += 2;
                        part.m.d = bin.readF2dot14(data, offset);
                        offset += 2;
                    }
                } while (flags & MORE_COMPONENTS);
                if (flags & WE_HAVE_INSTRUCTIONS) {
                    var numInstr = bin.readUshort(data, offset);
                    offset += 2;
                    gl.instr = [];
                    for (var i = 0; i < numInstr; i++) {
                        gl.instr.push(data[offset]);
                        offset++;
                    }
                }
            }
            return gl;
        }
    };
    Typr["T"].head = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var obj = {};
            bin.readFixed(data, offset);
            offset += 4;
            obj["fontRevision"] = bin.readFixed(data, offset);
            offset += 4;
            bin.readUint(data, offset);
            offset += 4;
            bin.readUint(data, offset);
            offset += 4;
            obj["flags"] = bin.readUshort(data, offset);
            offset += 2;
            obj["unitsPerEm"] = bin.readUshort(data, offset);
            offset += 2;
            obj["created"] = bin.readUint64(data, offset);
            offset += 8;
            obj["modified"] = bin.readUint64(data, offset);
            offset += 8;
            obj["xMin"] = bin.readShort(data, offset);
            offset += 2;
            obj["yMin"] = bin.readShort(data, offset);
            offset += 2;
            obj["xMax"] = bin.readShort(data, offset);
            offset += 2;
            obj["yMax"] = bin.readShort(data, offset);
            offset += 2;
            obj["macStyle"] = bin.readUshort(data, offset);
            offset += 2;
            obj["lowestRecPPEM"] = bin.readUshort(data, offset);
            offset += 2;
            obj["fontDirectionHint"] = bin.readShort(data, offset);
            offset += 2;
            obj["indexToLocFormat"] = bin.readShort(data, offset);
            offset += 2;
            obj["glyphDataFormat"] = bin.readShort(data, offset);
            offset += 2;
            return obj;
        }
    };
    Typr["T"].hhea = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var obj = {};
            bin.readFixed(data, offset);
            offset += 4;
            var keys = [ "ascender", "descender", "lineGap", "advanceWidthMax", "minLeftSideBearing", "minRightSideBearing", "xMaxExtent", "caretSlopeRise", "caretSlopeRun", "caretOffset", "res0", "res1", "res2", "res3", "metricDataFormat", "numberOfHMetrics" ];
            for (var i = 0; i < keys.length; i++) {
                var key = keys[i];
                var func = key == "advanceWidthMax" || key == "numberOfHMetrics" ? bin.readUshort : bin.readShort;
                obj[key] = func(data, offset + i * 2);
            }
            return obj;
        }
    };
    Typr["T"].hmtx = {
        parseTab: function(data, offset, length, font) {
            var bin = Typr["B"];
            var aWidth = [];
            var lsBearing = [];
            var nG = font["maxp"]["numGlyphs"], nH = font["hhea"]["numberOfHMetrics"];
            var aw = 0, lsb = 0, i = 0;
            while (i < nH) {
                aw = bin.readUshort(data, offset + (i << 2));
                lsb = bin.readShort(data, offset + (i << 2) + 2);
                aWidth.push(aw);
                lsBearing.push(lsb);
                i++;
            }
            while (i < nG) {
                aWidth.push(aw);
                lsBearing.push(lsb);
                i++;
            }
            return {
                aWidth: aWidth,
                lsBearing: lsBearing
            };
        }
    };
    Typr["T"].kern = {
        parseTab: function(data, offset, length, font) {
            var bin = Typr["B"], kern = Typr["T"].kern;
            var version = bin.readUshort(data, offset);
            if (version == 1) return kern.parseV1(data, offset, length, font);
            var nTables = bin.readUshort(data, offset + 2);
            offset += 4;
            var map = {
                glyph1: [],
                rval: []
            };
            for (var i = 0; i < nTables; i++) {
                offset += 2;
                var length = bin.readUshort(data, offset);
                offset += 2;
                var coverage = bin.readUshort(data, offset);
                offset += 2;
                var format = coverage >>> 8;
                format &= 15;
                if (format == 0) offset = kern.readFormat0(data, offset, map);
            }
            return map;
        },
        parseV1: function(data, offset, length, font) {
            var bin = Typr["B"], kern = Typr["T"].kern;
            bin.readFixed(data, offset);
            var nTables = bin.readUint(data, offset + 4);
            offset += 8;
            var map = {
                glyph1: [],
                rval: []
            };
            for (var i = 0; i < nTables; i++) {
                bin.readUint(data, offset);
                offset += 4;
                var coverage = bin.readUshort(data, offset);
                offset += 2;
                bin.readUshort(data, offset);
                offset += 2;
                var format = coverage & 255;
                if (format == 0) offset = kern.readFormat0(data, offset, map);
            }
            return map;
        },
        readFormat0: function(data, offset, map) {
            var bin = Typr["B"], rUs = bin.readUshort;
            var pleft = -1;
            var nPairs = rUs(data, offset);
            rUs(data, offset + 2);
            rUs(data, offset + 4);
            rUs(data, offset + 6);
            offset += 8;
            for (var j = 0; j < nPairs; j++) {
                var left = rUs(data, offset);
                offset += 2;
                var right = rUs(data, offset);
                offset += 2;
                var value = bin.readShort(data, offset);
                offset += 2;
                if (left != pleft) {
                    map.glyph1.push(left);
                    map.rval.push({
                        glyph2: [],
                        vals: []
                    });
                }
                var rval = map.rval[map.rval.length - 1];
                rval.glyph2.push(right);
                rval.vals.push(value);
                pleft = left;
            }
            return offset;
        }
    };
    Typr["T"].loca = {
        parseTab: function(data, offset, length, font) {
            var bin = Typr["B"];
            var obj = [];
            var ver = font["head"]["indexToLocFormat"];
            var len = font["maxp"]["numGlyphs"] + 1;
            if (ver == 0) for (var i = 0; i < len; i++) obj.push(bin.readUshort(data, offset + (i << 1)) << 1);
            if (ver == 1) for (var i = 0; i < len; i++) obj.push(bin.readUint(data, offset + (i << 2)));
            return obj;
        }
    };
    Typr["T"].maxp = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"], rU = bin.readUshort;
            var obj = {};
            bin.readUint(data, offset);
            offset += 4;
            obj["numGlyphs"] = rU(data, offset);
            offset += 2;
            return obj;
        }
    };
    Typr["T"].name = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var obj = {};
            bin.readUshort(data, offset);
            offset += 2;
            var count = bin.readUshort(data, offset);
            offset += 2;
            bin.readUshort(data, offset);
            offset += 2;
            var names = [ "copyright", "fontFamily", "fontSubfamily", "ID", "fullName", "version", "postScriptName", "trademark", "manufacturer", "designer", "description", "urlVendor", "urlDesigner", "licence", "licenceURL", "---", "typoFamilyName", "typoSubfamilyName", "compatibleFull", "sampleText", "postScriptCID", "wwsFamilyName", "wwsSubfamilyName", "lightPalette", "darkPalette" ];
            var offset0 = offset;
            var rU = bin.readUshort;
            for (var i = 0; i < count; i++) {
                var platformID = rU(data, offset);
                offset += 2;
                var encodingID = rU(data, offset);
                offset += 2;
                var languageID = rU(data, offset);
                offset += 2;
                var nameID = rU(data, offset);
                offset += 2;
                var slen = rU(data, offset);
                offset += 2;
                var noffset = rU(data, offset);
                offset += 2;
                var soff = offset0 + count * 12 + noffset;
                var str;
                if (platformID == 0) str = bin.readUnicode(data, soff, slen / 2); else if (platformID == 3 && encodingID == 0) str = bin.readUnicode(data, soff, slen / 2); else if (encodingID == 0) str = bin.readASCII(data, soff, slen); else if (encodingID == 1) str = bin.readUnicode(data, soff, slen / 2); else if (encodingID == 3) str = bin.readUnicode(data, soff, slen / 2); else if (encodingID == 4) str = bin.readUnicode(data, soff, slen / 2); else if (encodingID == 10) str = bin.readUnicode(data, soff, slen / 2); else if (platformID == 1) {
                    str = bin.readASCII(data, soff, slen);
                    console.log("reading unknown MAC encoding " + encodingID + " as ASCII");
                } else {
                    console.log("unknown encoding " + encodingID + ", platformID: " + platformID);
                    str = bin.readASCII(data, soff, slen);
                }
                var tid = "p" + platformID + "," + languageID.toString(16);
                if (obj[tid] == null) obj[tid] = {};
                obj[tid][names[nameID]] = str;
                obj[tid]["_lang"] = languageID;
            }
            var psn = "postScriptName";
            for (var p in obj) if (obj[p][psn] != null && obj[p]["_lang"] == 1033) return obj[p];
            for (var p in obj) if (obj[p][psn] != null && obj[p]["_lang"] == 0) return obj[p];
            for (var p in obj) if (obj[p][psn] != null && obj[p]["_lang"] == 3084) return obj[p];
            for (var p in obj) if (obj[p][psn] != null) return obj[p];
            var out;
            for (var p in obj) {
                out = obj[p];
                break;
            }
            console.log("returning name table with languageID " + out._lang);
            if (out[psn] == null && out["ID"] != null) out[psn] = out["ID"];
            return out;
        }
    };
    Typr["T"].OS2 = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var ver = bin.readUshort(data, offset);
            offset += 2;
            var OS2 = Typr["T"].OS2;
            var obj = {};
            if (ver == 0) OS2.version0(data, offset, obj); else if (ver == 1) OS2.version1(data, offset, obj); else if (ver == 2 || ver == 3 || ver == 4) OS2.version2(data, offset, obj); else if (ver == 5) OS2.version5(data, offset, obj); else throw "unknown OS/2 table version: " + ver;
            return obj;
        },
        version0: function(data, offset, obj) {
            var bin = Typr["B"];
            obj["xAvgCharWidth"] = bin.readShort(data, offset);
            offset += 2;
            obj["usWeightClass"] = bin.readUshort(data, offset);
            offset += 2;
            obj["usWidthClass"] = bin.readUshort(data, offset);
            offset += 2;
            obj["fsType"] = bin.readUshort(data, offset);
            offset += 2;
            obj["ySubscriptXSize"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySubscriptYSize"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySubscriptXOffset"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySubscriptYOffset"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySuperscriptXSize"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySuperscriptYSize"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySuperscriptXOffset"] = bin.readShort(data, offset);
            offset += 2;
            obj["ySuperscriptYOffset"] = bin.readShort(data, offset);
            offset += 2;
            obj["yStrikeoutSize"] = bin.readShort(data, offset);
            offset += 2;
            obj["yStrikeoutPosition"] = bin.readShort(data, offset);
            offset += 2;
            obj["sFamilyClass"] = bin.readShort(data, offset);
            offset += 2;
            obj["panose"] = bin.readBytes(data, offset, 10);
            offset += 10;
            obj["ulUnicodeRange1"] = bin.readUint(data, offset);
            offset += 4;
            obj["ulUnicodeRange2"] = bin.readUint(data, offset);
            offset += 4;
            obj["ulUnicodeRange3"] = bin.readUint(data, offset);
            offset += 4;
            obj["ulUnicodeRange4"] = bin.readUint(data, offset);
            offset += 4;
            obj["achVendID"] = bin.readASCII(data, offset, 4);
            offset += 4;
            obj["fsSelection"] = bin.readUshort(data, offset);
            offset += 2;
            obj["usFirstCharIndex"] = bin.readUshort(data, offset);
            offset += 2;
            obj["usLastCharIndex"] = bin.readUshort(data, offset);
            offset += 2;
            obj["sTypoAscender"] = bin.readShort(data, offset);
            offset += 2;
            obj["sTypoDescender"] = bin.readShort(data, offset);
            offset += 2;
            obj["sTypoLineGap"] = bin.readShort(data, offset);
            offset += 2;
            obj["usWinAscent"] = bin.readUshort(data, offset);
            offset += 2;
            obj["usWinDescent"] = bin.readUshort(data, offset);
            offset += 2;
            return offset;
        },
        version1: function(data, offset, obj) {
            var bin = Typr["B"];
            offset = Typr["T"].OS2.version0(data, offset, obj);
            obj["ulCodePageRange1"] = bin.readUint(data, offset);
            offset += 4;
            obj["ulCodePageRange2"] = bin.readUint(data, offset);
            offset += 4;
            return offset;
        },
        version2: function(data, offset, obj) {
            var bin = Typr["B"], rU = bin.readUshort;
            offset = Typr["T"].OS2.version1(data, offset, obj);
            obj["sxHeight"] = bin.readShort(data, offset);
            offset += 2;
            obj["sCapHeight"] = bin.readShort(data, offset);
            offset += 2;
            obj["usDefault"] = rU(data, offset);
            offset += 2;
            obj["usBreak"] = rU(data, offset);
            offset += 2;
            obj["usMaxContext"] = rU(data, offset);
            offset += 2;
            return offset;
        },
        version5: function(data, offset, obj) {
            var rU = Typr["B"].readUshort;
            offset = Typr["T"].OS2.version2(data, offset, obj);
            obj["usLowerOpticalPointSize"] = rU(data, offset);
            offset += 2;
            obj["usUpperOpticalPointSize"] = rU(data, offset);
            offset += 2;
            return offset;
        }
    };
    Typr["T"].post = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var obj = {};
            obj["version"] = bin.readFixed(data, offset);
            offset += 4;
            obj["italicAngle"] = bin.readFixed(data, offset);
            offset += 4;
            obj["underlinePosition"] = bin.readShort(data, offset);
            offset += 2;
            obj["underlineThickness"] = bin.readShort(data, offset);
            offset += 2;
            return obj;
        }
    };
    Typr["T"].SVG = {
        parseTab: function(data, offset, length) {
            var bin = Typr["B"];
            var obj = {
                entries: []
            };
            var offset0 = offset;
            bin.readUshort(data, offset);
            offset += 2;
            var svgDocIndexOffset = bin.readUint(data, offset);
            offset += 4;
            bin.readUint(data, offset);
            offset += 4;
            offset = svgDocIndexOffset + offset0;
            var numEntries = bin.readUshort(data, offset);
            offset += 2;
            for (var i = 0; i < numEntries; i++) {
                var startGlyphID = bin.readUshort(data, offset);
                offset += 2;
                var endGlyphID = bin.readUshort(data, offset);
                offset += 2;
                var svgDocOffset = bin.readUint(data, offset);
                offset += 4;
                var svgDocLength = bin.readUint(data, offset);
                offset += 4;
                var sbuf = new Uint8Array(data.buffer, offset0 + svgDocOffset + svgDocIndexOffset, svgDocLength);
                var svg = bin.readUTF8(sbuf, 0, sbuf.length);
                for (var f = startGlyphID; f <= endGlyphID; f++) {
                    obj.entries[f] = svg;
                }
            }
            return obj;
        }
    };
    Typr["U"] = {
        shape: function(font, str, ltr) {
            var getGlyphPosition = function(font, gls, i1, ltr) {
                var g1 = gls[i1], g2 = gls[i1 + 1], kern = font["kern"];
                if (kern) {
                    var ind1 = kern.glyph1.indexOf(g1);
                    if (ind1 != -1) {
                        var ind2 = kern.rval[ind1].glyph2.indexOf(g2);
                        if (ind2 != -1) return [ 0, 0, kern.rval[ind1].vals[ind2], 0 ];
                    }
                }
                return [ 0, 0, 0, 0 ];
            };
            var gls = [];
            for (var i = 0; i < str.length; i++) {
                var cc = str.codePointAt(i);
                if (cc > 65535) i++;
                gls.push(Typr["U"]["codeToGlyph"](font, cc));
            }
            var shape = [];
            for (var i = 0; i < gls.length; i++) {
                var padj = getGlyphPosition(font, gls, i);
                var gid = gls[i];
                var ax = font["hmtx"].aWidth[gid] + padj[2];
                shape.push({
                    g: gid,
                    cl: i,
                    dx: 0,
                    dy: 0,
                    ax: ax,
                    ay: 0
                });
            }
            return shape;
        },
        shapeToPath: function(font, shape, clr) {
            var tpath = {
                cmds: [],
                crds: []
            };
            var x = 0, y = 0;
            for (var i = 0; i < shape.length; i++) {
                var it = shape[i];
                var path = Typr["U"]["glyphToPath"](font, it["g"]), crds = path["crds"];
                for (var j = 0; j < crds.length; j += 2) {
                    tpath.crds.push(crds[j] + x + it["dx"]);
                    tpath.crds.push(crds[j + 1] + y + it["dy"]);
                }
                if (clr) tpath.cmds.push(clr);
                for (var j = 0; j < path["cmds"].length; j++) tpath.cmds.push(path["cmds"][j]);
                var clen = tpath.cmds.length;
                if (clr) if (clen != 0 && tpath.cmds[clen - 1] != "X") tpath.cmds.push("X");
                x += it["ax"];
                y += it["ay"];
            }
            return {
                cmds: tpath.cmds,
                crds: tpath.crds
            };
        },
        codeToGlyph: function(font, code) {
            var cmap = font["cmap"];
            var tind = -1, pps = [ "p3e10", "p0e4", "p3e1", "p1e0", "p0e3", "p0e1" ];
            for (var i = 0; i < pps.length; i++) if (cmap.ids[pps[i]] != null) {
                tind = cmap.ids[pps[i]];
                break;
            }
            if (tind == -1) throw "no familiar platform and encoding!";
            var arrSearch = function(arr, k, v) {
                var l = 0, r = Math.floor(arr.length / k);
                while (l + 1 != r) {
                    var mid = l + (r - l >>> 1);
                    if (arr[mid * k] <= v) l = mid; else r = mid;
                }
                return l * k;
            };
            var tab = cmap.tables[tind], fmt = tab.format, gid = -1;
            if (fmt == 0) {
                if (code >= tab.map.length) gid = 0; else gid = tab.map[code];
            } else if (fmt == 4) {
                var sind = -1, ec = tab.endCount;
                if (code > ec[ec.length - 1]) sind = -1; else {
                    sind = arrSearch(ec, 1, code);
                    if (ec[sind] < code) sind++;
                }
                if (sind == -1) gid = 0; else if (code < tab.startCount[sind]) gid = 0; else {
                    var gli = 0;
                    if (tab.idRangeOffset[sind] != 0) gli = tab.glyphIdArray[code - tab.startCount[sind] + (tab.idRangeOffset[sind] >> 1) - (tab.idRangeOffset.length - sind)]; else gli = code + tab.idDelta[sind];
                    gid = gli & 65535;
                }
            } else if (fmt == 6) {
                var off = code - tab.firstCode, arr = tab.glyphIdArray;
                if (off < 0 || off >= arr.length) gid = 0; else gid = arr[off];
            } else if (fmt == 12) {
                var grp = tab.groups;
                if (code > grp[grp.length - 2]) gid = 0; else {
                    var i = arrSearch(grp, 3, code);
                    if (grp[i] <= code && code <= grp[i + 1]) {
                        gid = grp[i + 2] + (code - grp[i]);
                    }
                    if (gid == -1) gid = 0;
                }
            } else throw "unknown cmap table format " + tab.format;
            var SVG = font["SVG "], loca = font["loca"];
            if (gid != 0 && font["CFF "] == null && (SVG == null || SVG.entries[gid] == null) && loca[gid] == loca[gid + 1] && [ 9, 10, 11, 12, 13, 32, 133, 160, 5760, 8232, 8233, 8239, 12288, 6158, 8203, 8204, 8205, 8288, 65279 ].indexOf(code) == -1 && !(8192 <= code && code <= 8202)) gid = 0;
            return gid;
        },
        glyphToPath: function(font, gid) {
            var path = {
                cmds: [],
                crds: []
            };
            var SVG = font["SVG "], CFF = font["CFF "];
            var U = Typr["U"];
            if (SVG && SVG.entries[gid]) {
                var p = SVG.entries[gid];
                if (p != null) {
                    if (typeof p == "string") {
                        p = U["SVG"].toPath(p);
                        SVG.entries[gid] = p;
                    }
                    path = p;
                }
            } else if (CFF) {
                var pdct = CFF["Private"];
                var state = {
                    x: 0,
                    y: 0,
                    stack: [],
                    nStems: 0,
                    haveWidth: false,
                    width: pdct ? pdct["defaultWidthX"] : 0,
                    open: false
                };
                if (CFF["ROS"]) {
                    var gi = 0;
                    while (CFF["FDSelect"][gi + 2] <= gid) gi += 2;
                    pdct = CFF["FDArray"][CFF["FDSelect"][gi + 1]]["Private"];
                }
                U["_drawCFF"](CFF["CharStrings"][gid], state, CFF, pdct, path);
            } else if (font["glyf"]) {
                U["_drawGlyf"](gid, font, path);
            }
            return {
                cmds: path.cmds,
                crds: path.crds
            };
        },
        _drawGlyf: function(gid, font, path) {
            var gl = font["glyf"][gid];
            if (gl == null) gl = font["glyf"][gid] = Typr["T"].glyf._parseGlyf(font, gid);
            if (gl != null) {
                if (gl.noc > -1) Typr["U"]["_simpleGlyph"](gl, path); else Typr["U"]["_compoGlyph"](gl, font, path);
            }
        },
        _simpleGlyph: function(gl, p) {
            var P = Typr["U"]["P"];
            for (var c = 0; c < gl.noc; c++) {
                var i0 = c == 0 ? 0 : gl.endPts[c - 1] + 1;
                var il = gl.endPts[c];
                for (var i = i0; i <= il; i++) {
                    var pr = i == i0 ? il : i - 1;
                    var nx = i == il ? i0 : i + 1;
                    var onCurve = gl.flags[i] & 1;
                    var prOnCurve = gl.flags[pr] & 1;
                    var nxOnCurve = gl.flags[nx] & 1;
                    var x = gl.xs[i], y = gl.ys[i];
                    if (i == i0) {
                        if (onCurve) {
                            if (prOnCurve) P.MoveTo(p, gl.xs[pr], gl.ys[pr]); else {
                                P.MoveTo(p, x, y);
                                continue;
                            }
                        } else {
                            if (prOnCurve) P.MoveTo(p, gl.xs[pr], gl.ys[pr]); else P.MoveTo(p, Math.floor((gl.xs[pr] + x) * .5), Math.floor((gl.ys[pr] + y) * .5));
                        }
                    }
                    if (onCurve) {
                        if (prOnCurve) P.LineTo(p, x, y);
                    } else {
                        if (nxOnCurve) P.qCurveTo(p, x, y, gl.xs[nx], gl.ys[nx]); else P.qCurveTo(p, x, y, Math.floor((x + gl.xs[nx]) * .5), Math.floor((y + gl.ys[nx]) * .5));
                    }
                }
                P.ClosePath(p);
            }
        },
        _compoGlyph: function(gl, font, p) {
            for (var j = 0; j < gl.parts.length; j++) {
                var path = {
                    cmds: [],
                    crds: []
                };
                var prt = gl.parts[j];
                Typr["U"]["_drawGlyf"](prt.glyphIndex, font, path);
                var m = prt.m;
                for (var i = 0; i < path.crds.length; i += 2) {
                    var x = path.crds[i], y = path.crds[i + 1];
                    p.crds.push(x * m.a + y * m.b + m.tx);
                    p.crds.push(x * m.c + y * m.d + m.ty);
                }
                for (var i = 0; i < path.cmds.length; i++) p.cmds.push(path.cmds[i]);
            }
        },
        pathToSVG: function(path, prec) {
            var cmds = path["cmds"], crds = path["crds"];
            if (prec == null) prec = 5;
            var out = [], co = 0, lmap = {
                M: 2,
                L: 2,
                Q: 4,
                C: 6
            };
            for (var i = 0; i < cmds.length; i++) {
                var cmd = cmds[i], cn = co + (lmap[cmd] ? lmap[cmd] : 0);
                out.push(cmd);
                while (co < cn) {
                    var c = crds[co++];
                    out.push(parseFloat(c.toFixed(prec)) + (co == cn ? "" : " "));
                }
            }
            return out.join("");
        },
        SVGToPath: function(d) {
            var pth = {
                cmds: [],
                crds: []
            };
            Typr["U"]["SVG"].svgToPath(d, pth);
            return {
                cmds: pth.cmds,
                crds: pth.crds
            };
        },
        pathToContext: function(path, ctx) {
            var c = 0, cmds = path["cmds"], crds = path["crds"];
            for (var j = 0; j < cmds.length; j++) {
                var cmd = cmds[j];
                if (cmd == "M") {
                    ctx.moveTo(crds[c], crds[c + 1]);
                    c += 2;
                } else if (cmd == "L") {
                    ctx.lineTo(crds[c], crds[c + 1]);
                    c += 2;
                } else if (cmd == "C") {
                    ctx.bezierCurveTo(crds[c], crds[c + 1], crds[c + 2], crds[c + 3], crds[c + 4], crds[c + 5]);
                    c += 6;
                } else if (cmd == "Q") {
                    ctx.quadraticCurveTo(crds[c], crds[c + 1], crds[c + 2], crds[c + 3]);
                    c += 4;
                } else if (cmd.charAt(0) == "#") {
                    ctx.beginPath();
                    ctx.fillStyle = cmd;
                } else if (cmd == "Z") {
                    ctx.closePath();
                } else if (cmd == "X") {
                    ctx.fill();
                }
            }
        },
        P: {
            MoveTo: function(p, x, y) {
                p.cmds.push("M");
                p.crds.push(x, y);
            },
            LineTo: function(p, x, y) {
                p.cmds.push("L");
                p.crds.push(x, y);
            },
            CurveTo: function(p, a, b, c, d, e, f) {
                p.cmds.push("C");
                p.crds.push(a, b, c, d, e, f);
            },
            qCurveTo: function(p, a, b, c, d) {
                p.cmds.push("Q");
                p.crds.push(a, b, c, d);
            },
            ClosePath: function(p) {
                p.cmds.push("Z");
            }
        },
        _drawCFF: function(cmds, state, font, pdct, p) {
            var stack = state.stack;
            var nStems = state.nStems, haveWidth = state.haveWidth, width = state.width, open = state.open;
            var i = 0;
            var x = state.x, y = state.y, c1x = 0, c1y = 0, c2x = 0, c2y = 0, c3x = 0, c3y = 0, c4x = 0, c4y = 0, jpx = 0, jpy = 0;
            var CFF = Typr["T"].CFF, P = Typr["U"]["P"];
            var nominalWidthX = pdct["nominalWidthX"];
            var o = {
                val: 0,
                size: 0
            };
            while (i < cmds.length) {
                CFF.getCharString(cmds, i, o);
                var v = o.val;
                i += o.size;
                if (v == "o1" || v == "o18") {
                    var hasWidthArg;
                    hasWidthArg = stack.length % 2 !== 0;
                    if (hasWidthArg && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                    }
                    nStems += stack.length >> 1;
                    stack.length = 0;
                    haveWidth = true;
                } else if (v == "o3" || v == "o23") {
                    var hasWidthArg;
                    hasWidthArg = stack.length % 2 !== 0;
                    if (hasWidthArg && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                    }
                    nStems += stack.length >> 1;
                    stack.length = 0;
                    haveWidth = true;
                } else if (v == "o4") {
                    if (stack.length > 1 && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                        haveWidth = true;
                    }
                    if (open) P.ClosePath(p);
                    y += stack.pop();
                    P.MoveTo(p, x, y);
                    open = true;
                } else if (v == "o5") {
                    while (stack.length > 0) {
                        x += stack.shift();
                        y += stack.shift();
                        P.LineTo(p, x, y);
                    }
                } else if (v == "o6" || v == "o7") {
                    var count = stack.length;
                    var isX = v == "o6";
                    for (var j = 0; j < count; j++) {
                        var sval = stack.shift();
                        if (isX) x += sval; else y += sval;
                        isX = !isX;
                        P.LineTo(p, x, y);
                    }
                } else if (v == "o8" || v == "o24") {
                    var count = stack.length;
                    var index = 0;
                    while (index + 6 <= count) {
                        c1x = x + stack.shift();
                        c1y = y + stack.shift();
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        x = c2x + stack.shift();
                        y = c2y + stack.shift();
                        P.CurveTo(p, c1x, c1y, c2x, c2y, x, y);
                        index += 6;
                    }
                    if (v == "o24") {
                        x += stack.shift();
                        y += stack.shift();
                        P.LineTo(p, x, y);
                    }
                } else if (v == "o11") break; else if (v == "o1234" || v == "o1235" || v == "o1236" || v == "o1237") {
                    if (v == "o1234") {
                        c1x = x + stack.shift();
                        c1y = y;
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        jpx = c2x + stack.shift();
                        jpy = c2y;
                        c3x = jpx + stack.shift();
                        c3y = c2y;
                        c4x = c3x + stack.shift();
                        c4y = y;
                        x = c4x + stack.shift();
                        P.CurveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);
                        P.CurveTo(p, c3x, c3y, c4x, c4y, x, y);
                    }
                    if (v == "o1235") {
                        c1x = x + stack.shift();
                        c1y = y + stack.shift();
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        jpx = c2x + stack.shift();
                        jpy = c2y + stack.shift();
                        c3x = jpx + stack.shift();
                        c3y = jpy + stack.shift();
                        c4x = c3x + stack.shift();
                        c4y = c3y + stack.shift();
                        x = c4x + stack.shift();
                        y = c4y + stack.shift();
                        stack.shift();
                        P.CurveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);
                        P.CurveTo(p, c3x, c3y, c4x, c4y, x, y);
                    }
                    if (v == "o1236") {
                        c1x = x + stack.shift();
                        c1y = y + stack.shift();
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        jpx = c2x + stack.shift();
                        jpy = c2y;
                        c3x = jpx + stack.shift();
                        c3y = c2y;
                        c4x = c3x + stack.shift();
                        c4y = c3y + stack.shift();
                        x = c4x + stack.shift();
                        P.CurveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);
                        P.CurveTo(p, c3x, c3y, c4x, c4y, x, y);
                    }
                    if (v == "o1237") {
                        c1x = x + stack.shift();
                        c1y = y + stack.shift();
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        jpx = c2x + stack.shift();
                        jpy = c2y + stack.shift();
                        c3x = jpx + stack.shift();
                        c3y = jpy + stack.shift();
                        c4x = c3x + stack.shift();
                        c4y = c3y + stack.shift();
                        if (Math.abs(c4x - x) > Math.abs(c4y - y)) {
                            x = c4x + stack.shift();
                        } else {
                            y = c4y + stack.shift();
                        }
                        P.CurveTo(p, c1x, c1y, c2x, c2y, jpx, jpy);
                        P.CurveTo(p, c3x, c3y, c4x, c4y, x, y);
                    }
                } else if (v == "o14") {
                    if (stack.length > 0 && !haveWidth) {
                        width = stack.shift() + font["nominalWidthX"];
                        haveWidth = true;
                    }
                    if (stack.length == 4) {
                        var adx = stack.shift();
                        var ady = stack.shift();
                        var bchar = stack.shift();
                        var achar = stack.shift();
                        var bind = CFF.glyphBySE(font, bchar);
                        var aind = CFF.glyphBySE(font, achar);
                        Typr["U"]["_drawCFF"](font["CharStrings"][bind], state, font, pdct, p);
                        state.x = adx;
                        state.y = ady;
                        Typr["U"]["_drawCFF"](font["CharStrings"][aind], state, font, pdct, p);
                    }
                    if (open) {
                        P.ClosePath(p);
                        open = false;
                    }
                } else if (v == "o19" || v == "o20") {
                    var hasWidthArg;
                    hasWidthArg = stack.length % 2 !== 0;
                    if (hasWidthArg && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                    }
                    nStems += stack.length >> 1;
                    stack.length = 0;
                    haveWidth = true;
                    i += nStems + 7 >> 3;
                } else if (v == "o21") {
                    if (stack.length > 2 && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                        haveWidth = true;
                    }
                    y += stack.pop();
                    x += stack.pop();
                    if (open) P.ClosePath(p);
                    P.MoveTo(p, x, y);
                    open = true;
                } else if (v == "o22") {
                    if (stack.length > 1 && !haveWidth) {
                        width = stack.shift() + nominalWidthX;
                        haveWidth = true;
                    }
                    x += stack.pop();
                    if (open) P.ClosePath(p);
                    P.MoveTo(p, x, y);
                    open = true;
                } else if (v == "o25") {
                    while (stack.length > 6) {
                        x += stack.shift();
                        y += stack.shift();
                        P.LineTo(p, x, y);
                    }
                    c1x = x + stack.shift();
                    c1y = y + stack.shift();
                    c2x = c1x + stack.shift();
                    c2y = c1y + stack.shift();
                    x = c2x + stack.shift();
                    y = c2y + stack.shift();
                    P.CurveTo(p, c1x, c1y, c2x, c2y, x, y);
                } else if (v == "o26") {
                    if (stack.length % 2) {
                        x += stack.shift();
                    }
                    while (stack.length > 0) {
                        c1x = x;
                        c1y = y + stack.shift();
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        x = c2x;
                        y = c2y + stack.shift();
                        P.CurveTo(p, c1x, c1y, c2x, c2y, x, y);
                    }
                } else if (v == "o27") {
                    if (stack.length % 2) {
                        y += stack.shift();
                    }
                    while (stack.length > 0) {
                        c1x = x + stack.shift();
                        c1y = y;
                        c2x = c1x + stack.shift();
                        c2y = c1y + stack.shift();
                        x = c2x + stack.shift();
                        y = c2y;
                        P.CurveTo(p, c1x, c1y, c2x, c2y, x, y);
                    }
                } else if (v == "o10" || v == "o29") {
                    var obj = v == "o10" ? pdct : font;
                    if (stack.length == 0) {
                        console.log("error: empty stack");
                    } else {
                        var ind = stack.pop();
                        var subr = obj["Subrs"][ind + obj["Bias"]];
                        state.x = x;
                        state.y = y;
                        state.nStems = nStems;
                        state.haveWidth = haveWidth;
                        state.width = width;
                        state.open = open;
                        Typr["U"]["_drawCFF"](subr, state, font, pdct, p);
                        x = state.x;
                        y = state.y;
                        nStems = state.nStems;
                        haveWidth = state.haveWidth;
                        width = state.width;
                        open = state.open;
                    }
                } else if (v == "o30" || v == "o31") {
                    var count, count1 = stack.length;
                    var index = 0;
                    var alternate = v == "o31";
                    count = count1 & ~2;
                    index += count1 - count;
                    while (index < count) {
                        if (alternate) {
                            c1x = x + stack.shift();
                            c1y = y;
                            c2x = c1x + stack.shift();
                            c2y = c1y + stack.shift();
                            y = c2y + stack.shift();
                            if (count - index == 5) {
                                x = c2x + stack.shift();
                                index++;
                            } else x = c2x;
                            alternate = false;
                        } else {
                            c1x = x;
                            c1y = y + stack.shift();
                            c2x = c1x + stack.shift();
                            c2y = c1y + stack.shift();
                            x = c2x + stack.shift();
                            if (count - index == 5) {
                                y = c2y + stack.shift();
                                index++;
                            } else y = c2y;
                            alternate = true;
                        }
                        P.CurveTo(p, c1x, c1y, c2x, c2y, x, y);
                        index += 4;
                    }
                } else if ((v + "").charAt(0) == "o") {
                    console.log("Unknown operation: " + v, cmds);
                    throw v;
                } else stack.push(v);
            }
            state.x = x;
            state.y = y;
            state.nStems = nStems;
            state.haveWidth = haveWidth;
            state.width = width;
            state.open = open;
        },
        SVG: function() {
            var M = {
                getScale: function(m) {
                    return Math.sqrt(Math.abs(m[0] * m[3] - m[1] * m[2]));
                },
                translate: function(m, x, y) {
                    M.concat(m, [ 1, 0, 0, 1, x, y ]);
                },
                rotate: function(m, a) {
                    M.concat(m, [ Math.cos(a), -Math.sin(a), Math.sin(a), Math.cos(a), 0, 0 ]);
                },
                scale: function(m, x, y) {
                    M.concat(m, [ x, 0, 0, y, 0, 0 ]);
                },
                concat: function(m, w) {
                    var a = m[0], b = m[1], c = m[2], d = m[3], tx = m[4], ty = m[5];
                    m[0] = a * w[0] + b * w[2];
                    m[1] = a * w[1] + b * w[3];
                    m[2] = c * w[0] + d * w[2];
                    m[3] = c * w[1] + d * w[3];
                    m[4] = tx * w[0] + ty * w[2] + w[4];
                    m[5] = tx * w[1] + ty * w[3] + w[5];
                },
                invert: function(m) {
                    var a = m[0], b = m[1], c = m[2], d = m[3], tx = m[4], ty = m[5], adbc = a * d - b * c;
                    m[0] = d / adbc;
                    m[1] = -b / adbc;
                    m[2] = -c / adbc;
                    m[3] = a / adbc;
                    m[4] = (c * ty - d * tx) / adbc;
                    m[5] = (b * tx - a * ty) / adbc;
                },
                multPoint: function(m, p) {
                    var x = p[0], y = p[1];
                    return [ x * m[0] + y * m[2] + m[4], x * m[1] + y * m[3] + m[5] ];
                },
                multArray: function(m, a) {
                    for (var i = 0; i < a.length; i += 2) {
                        var x = a[i], y = a[i + 1];
                        a[i] = x * m[0] + y * m[2] + m[4];
                        a[i + 1] = x * m[1] + y * m[3] + m[5];
                    }
                }
            };
            function _bracketSplit(str, lbr, rbr) {
                var out = [], pos = 0, ci = 0, lvl = 0;
                while (true) {
                    var li = str.indexOf(lbr, ci);
                    var ri = str.indexOf(rbr, ci);
                    if (li == -1 && ri == -1) break;
                    if (ri == -1 || li != -1 && li < ri) {
                        if (lvl == 0) {
                            out.push(str.slice(pos, li).trim());
                            pos = li + 1;
                        }
                        lvl++;
                        ci = li + 1;
                    } else if (li == -1 || ri != -1 && ri < li) {
                        lvl--;
                        if (lvl == 0) {
                            out.push(str.slice(pos, ri).trim());
                            pos = ri + 1;
                        }
                        ci = ri + 1;
                    }
                }
                return out;
            }
            function cssMap(str) {
                var pts = _bracketSplit(str, "{", "}");
                var css = {};
                for (var i = 0; i < pts.length; i += 2) {
                    var cn = pts[i].split(",");
                    for (var j = 0; j < cn.length; j++) {
                        var cnj = cn[j].trim();
                        if (css[cnj] == null) css[cnj] = "";
                        css[cnj] += pts[i + 1];
                    }
                }
                return css;
            }
            function readTrnf(trna) {
                var pts = _bracketSplit(trna, "(", ")");
                var m = [ 1, 0, 0, 1, 0, 0 ];
                for (var i = 0; i < pts.length; i += 2) {
                    var om = m;
                    m = _readTrnsAttr(pts[i], pts[i + 1]);
                    M.concat(m, om);
                }
                return m;
            }
            function _readTrnsAttr(fnc, vls) {
                var m = [ 1, 0, 0, 1, 0, 0 ], gotSep = true;
                for (var i = 0; i < vls.length; i++) {
                    var ch = vls.charAt(i);
                    if (ch == "," || ch == " ") gotSep = true; else if (ch == ".") {
                        if (!gotSep) {
                            vls = vls.slice(0, i) + "," + vls.slice(i);
                            i++;
                        }
                        gotSep = false;
                    } else if (ch == "-" && i > 0 && vls[i - 1] != "e") {
                        vls = vls.slice(0, i) + " " + vls.slice(i);
                        i++;
                        gotSep = true;
                    }
                }
                vls = vls.split(/\s*[\s,]\s*/).map(parseFloat);
                if (fnc == "translate") {
                    if (vls.length == 1) M.translate(m, vls[0], 0); else M.translate(m, vls[0], vls[1]);
                } else if (fnc == "scale") {
                    if (vls.length == 1) M.scale(m, vls[0], vls[0]); else M.scale(m, vls[0], vls[1]);
                } else if (fnc == "rotate") {
                    var tx = 0, ty = 0;
                    if (vls.length != 1) {
                        tx = vls[1];
                        ty = vls[2];
                    }
                    M.translate(m, -tx, -ty);
                    M.rotate(m, -Math.PI * vls[0] / 180);
                    M.translate(m, tx, ty);
                } else if (fnc == "matrix") m = vls; else console.log("unknown transform: ", fnc);
                return m;
            }
            function toPath(str) {
                var pth = {
                    cmds: [],
                    crds: []
                };
                if (str == null) return pth;
                var prsr = new DOMParser();
                var doc = prsr["parseFromString"](str, "image/svg+xml");
                var svg = doc.getElementsByTagName("svg")[0];
                var vb = svg.getAttribute("viewBox");
                if (vb) vb = vb.trim().split(" ").map(parseFloat); else vb = [ 0, 0, 1e3, 1e3 ];
                _toPath(svg.children, pth);
                for (var i = 0; i < pth.crds.length; i += 2) {
                    var x = pth.crds[i], y = pth.crds[i + 1];
                    x -= vb[0];
                    y -= vb[1];
                    y = -y;
                    pth.crds[i] = x;
                    pth.crds[i + 1] = y;
                }
                return pth;
            }
            function _toPath(nds, pth, fill) {
                for (var ni = 0; ni < nds.length; ni++) {
                    var nd = nds[ni], tn = nd.tagName;
                    var cfl = nd.getAttribute("fill");
                    if (cfl == null) cfl = fill;
                    if (tn == "g") {
                        var tp = {
                            crds: [],
                            cmds: []
                        };
                        _toPath(nd.children, tp, cfl);
                        var trf = nd.getAttribute("transform");
                        if (trf) {
                            var m = readTrnf(trf);
                            M.multArray(m, tp.crds);
                        }
                        pth.crds = pth.crds.concat(tp.crds);
                        pth.cmds = pth.cmds.concat(tp.cmds);
                    } else if (tn == "path" || tn == "circle" || tn == "ellipse") {
                        pth.cmds.push(cfl ? cfl : "#000000");
                        var d;
                        if (tn == "path") d = nd.getAttribute("d");
                        if (tn == "circle" || tn == "ellipse") {
                            var vls = [ 0, 0, 0, 0 ], nms = [ "cx", "cy", "rx", "ry", "r" ];
                            for (var i = 0; i < 5; i++) {
                                var V = nd.getAttribute(nms[i]);
                                if (V) {
                                    V = parseFloat(V);
                                    if (i < 4) vls[i] = V; else vls[2] = vls[3] = V;
                                }
                            }
                            var cx = vls[0], cy = vls[1], rx = vls[2], ry = vls[3];
                            d = [ "M", cx - rx, cy, "a", rx, ry, 0, 1, 0, rx * 2, 0, "a", rx, ry, 0, 1, 0, -rx * 2, 0 ].join(" ");
                        }
                        svgToPath(d, pth);
                        pth.cmds.push("X");
                    } else if (tn == "defs"); else console.log(tn, nd);
                }
            }
            function _tokens(d) {
                var ts = [], off = 0, rn = false, cn = "", pc = "";
                while (off < d.length) {
                    var cc = d.charCodeAt(off), ch = d.charAt(off);
                    off++;
                    var isNum = 48 <= cc && cc <= 57 || ch == "." || ch == "-" || ch == "e" || ch == "E";
                    if (rn) {
                        if (ch == "-" && pc != "e" || ch == "." && cn.indexOf(".") != -1) {
                            ts.push(parseFloat(cn));
                            cn = ch;
                        } else if (isNum) cn += ch; else {
                            ts.push(parseFloat(cn));
                            if (ch != "," && ch != " ") ts.push(ch);
                            rn = false;
                        }
                    } else {
                        if (isNum) {
                            cn = ch;
                            rn = true;
                        } else if (ch != "," && ch != " ") ts.push(ch);
                    }
                    pc = ch;
                }
                if (rn) ts.push(parseFloat(cn));
                return ts;
            }
            function _reps(ts, off, ps) {
                var i = off;
                while (i < ts.length) {
                    if (typeof ts[i] == "string") break;
                    i += ps;
                }
                return (i - off) / ps;
            }
            function svgToPath(d, pth) {
                var ts = _tokens(d);
                var i = 0, x = 0, y = 0, ox = 0, oy = 0, oldo = pth.crds.length;
                var pc = {
                    M: 2,
                    L: 2,
                    H: 1,
                    V: 1,
                    T: 2,
                    S: 4,
                    A: 7,
                    Q: 4,
                    C: 6
                };
                var cmds = pth.cmds, crds = pth.crds;
                while (i < ts.length) {
                    var cmd = ts[i];
                    i++;
                    var cmu = cmd.toUpperCase();
                    if (cmu == "Z") {
                        cmds.push("Z");
                        x = ox;
                        y = oy;
                    } else {
                        var ps = pc[cmu], reps = _reps(ts, i, ps);
                        for (var j = 0; j < reps; j++) {
                            if (j == 1 && cmu == "M") {
                                cmd = cmd == cmu ? "L" : "l";
                                cmu = "L";
                            }
                            var xi = 0, yi = 0;
                            if (cmd != cmu) {
                                xi = x;
                                yi = y;
                            }
                            if (cmu == "M") {
                                x = xi + ts[i++];
                                y = yi + ts[i++];
                                cmds.push("M");
                                crds.push(x, y);
                                ox = x;
                                oy = y;
                            } else if (cmu == "L") {
                                x = xi + ts[i++];
                                y = yi + ts[i++];
                                cmds.push("L");
                                crds.push(x, y);
                            } else if (cmu == "H") {
                                x = xi + ts[i++];
                                cmds.push("L");
                                crds.push(x, y);
                            } else if (cmu == "V") {
                                y = yi + ts[i++];
                                cmds.push("L");
                                crds.push(x, y);
                            } else if (cmu == "Q") {
                                var x1 = xi + ts[i++], y1 = yi + ts[i++], x2 = xi + ts[i++], y2 = yi + ts[i++];
                                cmds.push("Q");
                                crds.push(x1, y1, x2, y2);
                                x = x2;
                                y = y2;
                            } else if (cmu == "T") {
                                var co = Math.max(crds.length - 2, oldo);
                                var x1 = x + x - crds[co], y1 = y + y - crds[co + 1];
                                var x2 = xi + ts[i++], y2 = yi + ts[i++];
                                cmds.push("Q");
                                crds.push(x1, y1, x2, y2);
                                x = x2;
                                y = y2;
                            } else if (cmu == "C") {
                                var x1 = xi + ts[i++], y1 = yi + ts[i++], x2 = xi + ts[i++], y2 = yi + ts[i++], x3 = xi + ts[i++], y3 = yi + ts[i++];
                                cmds.push("C");
                                crds.push(x1, y1, x2, y2, x3, y3);
                                x = x3;
                                y = y3;
                            } else if (cmu == "S") {
                                var co = Math.max(crds.length - (cmds[cmds.length - 1] == "C" ? 4 : 2), oldo);
                                var x1 = x + x - crds[co], y1 = y + y - crds[co + 1];
                                var x2 = xi + ts[i++], y2 = yi + ts[i++], x3 = xi + ts[i++], y3 = yi + ts[i++];
                                cmds.push("C");
                                crds.push(x1, y1, x2, y2, x3, y3);
                                x = x3;
                                y = y3;
                            } else if (cmu == "A") {
                                var x1 = x, y1 = y;
                                var rx = ts[i++], ry = ts[i++];
                                var phi = ts[i++] * (Math.PI / 180), fA = ts[i++], fS = ts[i++];
                                var x2 = xi + ts[i++], y2 = yi + ts[i++];
                                if (x2 == x && y2 == y && rx == 0 && ry == 0) continue;
                                var hdx = (x1 - x2) / 2, hdy = (y1 - y2) / 2;
                                var cosP = Math.cos(phi), sinP = Math.sin(phi);
                                var x1A = cosP * hdx + sinP * hdy;
                                var y1A = -sinP * hdx + cosP * hdy;
                                var rxS = rx * rx, ryS = ry * ry;
                                var x1AS = x1A * x1A, y1AS = y1A * y1A;
                                var frc = (rxS * ryS - rxS * y1AS - ryS * x1AS) / (rxS * y1AS + ryS * x1AS);
                                var coef = (fA != fS ? 1 : -1) * Math.sqrt(Math.max(frc, 0));
                                var cxA = coef * (rx * y1A) / ry;
                                var cyA = -coef * (ry * x1A) / rx;
                                var cx = cosP * cxA - sinP * cyA + (x1 + x2) / 2;
                                var cy = sinP * cxA + cosP * cyA + (y1 + y2) / 2;
                                var angl = function(ux, uy, vx, vy) {
                                    var lU = Math.sqrt(ux * ux + uy * uy), lV = Math.sqrt(vx * vx + vy * vy);
                                    var num = (ux * vx + uy * vy) / (lU * lV);
                                    return (ux * vy - uy * vx >= 0 ? 1 : -1) * Math.acos(Math.max(-1, Math.min(1, num)));
                                };
                                var vX = (x1A - cxA) / rx, vY = (y1A - cyA) / ry;
                                var theta1 = angl(1, 0, vX, vY);
                                var dtheta = angl(vX, vY, (-x1A - cxA) / rx, (-y1A - cyA) / ry);
                                dtheta = dtheta % (2 * Math.PI);
                                var arc = function(gst, x, y, r, a0, a1, neg) {
                                    var rotate = function(m, a) {
                                        var si = Math.sin(a), co = Math.cos(a);
                                        var a = m[0], b = m[1], c = m[2], d = m[3];
                                        m[0] = a * co + b * si;
                                        m[1] = -a * si + b * co;
                                        m[2] = c * co + d * si;
                                        m[3] = -c * si + d * co;
                                    };
                                    var multArr = function(m, a) {
                                        for (var j = 0; j < a.length; j += 2) {
                                            var x = a[j], y = a[j + 1];
                                            a[j] = m[0] * x + m[2] * y + m[4];
                                            a[j + 1] = m[1] * x + m[3] * y + m[5];
                                        }
                                    };
                                    var concatA = function(a, b) {
                                        for (var j = 0; j < b.length; j++) a.push(b[j]);
                                    };
                                    var concatP = function(p, r) {
                                        concatA(p.cmds, r.cmds);
                                        concatA(p.crds, r.crds);
                                    };
                                    if (neg) while (a1 > a0) a1 -= 2 * Math.PI; else while (a1 < a0) a1 += 2 * Math.PI;
                                    var th = (a1 - a0) / 4;
                                    var x0 = Math.cos(th / 2), y0 = -Math.sin(th / 2);
                                    var x1 = (4 - x0) / 3, y1 = y0 == 0 ? y0 : (1 - x0) * (3 - x0) / (3 * y0);
                                    var x2 = x1, y2 = -y1;
                                    var x3 = x0, y3 = -y0;
                                    var ps = [ x1, y1, x2, y2, x3, y3 ];
                                    var pth = {
                                        cmds: [ "C", "C", "C", "C" ],
                                        crds: ps.slice(0)
                                    };
                                    var rot = [ 1, 0, 0, 1, 0, 0 ];
                                    rotate(rot, -th);
                                    for (var j = 0; j < 3; j++) {
                                        multArr(rot, ps);
                                        concatA(pth.crds, ps);
                                    }
                                    rotate(rot, -a0 + th / 2);
                                    rot[0] *= r;
                                    rot[1] *= r;
                                    rot[2] *= r;
                                    rot[3] *= r;
                                    rot[4] = x;
                                    rot[5] = y;
                                    multArr(rot, pth.crds);
                                    multArr(gst.ctm, pth.crds);
                                    concatP(gst.pth, pth);
                                };
                                var gst = {
                                    pth: pth,
                                    ctm: [ rx * cosP, rx * sinP, -ry * sinP, ry * cosP, cx, cy ]
                                };
                                arc(gst, 0, 0, 1, theta1, theta1 + dtheta, fS == 0);
                                x = x2;
                                y = y2;
                            } else console.log("Unknown SVG command " + cmd);
                        }
                    }
                }
            }
            return {
                cssMap: cssMap,
                readTrnf: readTrnf,
                svgToPath: svgToPath,
                toPath: toPath
            };
        }(),
        initHB: function(hurl, resp) {
            var codeLength = function(code) {
                var len = 0;
                if ((code & 4294967295 - (1 << 7) + 1) == 0) {
                    len = 1;
                } else if ((code & 4294967295 - (1 << 11) + 1) == 0) {
                    len = 2;
                } else if ((code & 4294967295 - (1 << 16) + 1) == 0) {
                    len = 3;
                } else if ((code & 4294967295 - (1 << 21) + 1) == 0) {
                    len = 4;
                }
                return len;
            };
            var te = new window["TextEncoder"]("utf8");
            fetch(hurl).then(function(x) {
                return x["arrayBuffer"]();
            }).then(function(ab) {
                return WebAssembly["instantiate"](ab);
            }).then(function(res) {
                console.log("HB ready");
                var exp = res["instance"]["exports"], mem = exp["memory"];
                mem["grow"](700);
                var heapu8 = new Uint8Array(mem.buffer);
                var u32 = new Uint32Array(mem.buffer);
                var i32 = new Int32Array(mem.buffer);
                var __lastFnt, blob, blobPtr, face, font;
                Typr["U"]["shapeHB"] = function() {
                    var toJson = function(ptr) {
                        var length = exp["hb_buffer_get_length"](ptr);
                        var result = [];
                        var iPtr32 = exp["hb_buffer_get_glyph_infos"](ptr, 0) >>> 2;
                        var pPtr32 = exp["hb_buffer_get_glyph_positions"](ptr, 0) >>> 2;
                        for (var i = 0; i < length; ++i) {
                            var a = iPtr32 + i * 5, b = pPtr32 + i * 5;
                            result.push({
                                g: u32[a + 0],
                                cl: u32[a + 2],
                                ax: i32[b + 0],
                                ay: i32[b + 1],
                                dx: i32[b + 2],
                                dy: i32[b + 3]
                            });
                        }
                        return result;
                    };
                    return function(fnt, str, ltr) {
                        var fdata = fnt["_data"], fn = fnt["name"]["postScriptName"];
                        if (__lastFnt != fn) {
                            if (blob != null) {
                                exp["hb_blob_destroy"](blob);
                                exp["free"](blobPtr);
                                exp["hb_face_destroy"](face);
                                exp["hb_font_destroy"](font);
                            }
                            blobPtr = exp["malloc"](fdata.byteLength);
                            heapu8.set(fdata, blobPtr);
                            blob = exp["hb_blob_create"](blobPtr, fdata.byteLength, 2, 0, 0);
                            face = exp["hb_face_create"](blob, 0);
                            font = exp["hb_font_create"](face);
                            __lastFnt = fn;
                        }
                        var buffer = exp["hb_buffer_create"]();
                        var bytes = te["encode"](str);
                        var len = bytes.length, strp = exp["malloc"](len);
                        heapu8.set(bytes, strp);
                        exp["hb_buffer_add_utf8"](buffer, strp, len, 0, len);
                        exp["free"](strp);
                        exp["hb_buffer_set_direction"](buffer, ltr ? 4 : 5);
                        exp["hb_buffer_guess_segment_properties"](buffer);
                        exp["hb_shape"](font, buffer, 0, 0);
                        var json = toJson(buffer);
                        exp["hb_buffer_destroy"](buffer);
                        var arr = json.slice(0);
                        if (!ltr) arr.reverse();
                        var ci = 0, bi = 0;
                        for (var i = 1; i < arr.length; i++) {
                            var gl = arr[i], cl = gl["cl"];
                            while (true) {
                                var cpt = str.codePointAt(ci), cln = codeLength(cpt);
                                if (bi + cln <= cl) {
                                    bi += cln;
                                    ci += cpt <= 65535 ? 1 : 2;
                                } else break;
                            }
                            gl["cl"] = ci;
                        }
                        return json;
                    };
                }();
                resp();
            });
        }
    };
    const QQ_GROUP = [ "854137118" ];
    var _self = unsafeWindow;
    var top = _self;
    var UE$1;
    var modelId = "modelId_xx";
    const selfintv = setInterval(() => {
        if (unsafeWindow) {
            _self = unsafeWindow;
            top = _self;
            UE$1 = _self.UE;
            try {
                reportOnline();
                String.prototype.replaceAll = function(s1, s2) {
                    return this.replace(new RegExp(s1, "gm"), s2);
                };
                while (top !== _self.top) {
                    top = top.parent.document ? top.parent : _self.top;
                    if (top.location.pathname === "/mycourse/studentstudy") break;
                }
            } catch (err) {
                top = _self;
            }
            clearInterval(selfintv);
        }
    }, GLOBAL.delay);
    function checkVersion() {
        function compare(v1 = "0", v2 = "0") {
            v1 = String(v1).split(".");
            v2 = String(v2).split(".");
            const minVersionLens = Math.min(v1.length, v2.length);
            let result = 0;
            for (let i = 0; i < minVersionLens; i++) {
                const curV1 = Number(v1[i]);
                const curV2 = Number(v2[i]);
                if (curV1 > curV2) {
                    result = 1;
                    break;
                } else if (curV1 < curV2) {
                    result = -1;
                    break;
                }
            }
            if (result === 0 && v1.length !== v2.length) {
                const v1BiggerThenv2 = v1.length > v2.length;
                const maxLensVersion = v1BiggerThenv2 ? v1 : v2;
                for (let i = minVersionLens; i < maxLensVersion.length; i++) {
                    const curVersion = Number(maxLensVersion[i]);
                    if (curVersion > 0) {
                        v1BiggerThenv2 ? result = 1 : result = -1;
                        break;
                    }
                }
            }
            return result;
        }
        GM_xmlhttpRequest({
            method: "GET",
            url: "https://greasyfork.org/en/scripts/451356.json",
            timeout: GLOBAL.timeout,
            onload: function(r) {
                const obj = JSON.parse(r.responseText);
                if (obj.name === GM_info.script.name && compare(obj.version, GM_info.script.version) === 1 && new Date(obj.code_updated_at).getTime() + 1e3 * 60 * 60 * 2 < new Date().getTime()) {
                    iframeMsg("update", {
                        v1: GM_info.script.version,
                        v2: obj.version,
                        href: obj.url
                    });
                }
            }
        });
    }
    top.addEventListener("message", event => {
        if (event.data.type === "jump") {
            GLOBAL.index++;
            iframeMsg("tip", {
                tip: "准备答第" + (GLOBAL.index + 1) + "题"
            });
        } else if (event.data.type === "stop") {
            GLOBAL.stop = event.data.val;
        } else if (event.data.type === "start_pay") {
            if (event.data.flag) {
                if (String(GM_getValue("token")).length === 10 || String(GM_getValue("token")).length === 11) {
                    iframeMsg("tip", {
                        tip: "已开启请求收费题库,已实时生效"
                    });
                    GM_setValue("start_pay", event.data.flag);
                    iframeMsg("start_pay", true);
                } else {
                    iframeMsg("tip", {
                        tip: "系统检测您的token可能输入有误,请检查"
                    });
                }
            } else {
                iframeMsg("tip", {
                    tip: "已关闭请求收费题库,已实时生效"
                });
                GM_setValue("start_pay", event.data.flag);
                iframeMsg("start_pay", false);
            }
        } else if (event.data.type === "auto_jump") {
            GM_setValue("auto_jump", event.data.flag);
            iframeMsg("tip", {
                tip: "已" + (event.data.flag ? "开启" : "关闭") + "自动切换,页面刷新后生效"
            });
        } else if (event.data.type === "confim") {
            if (event.data.token.length === 10 || event.data.token.length === 11) {
                GM_setValue("token", event.data.token);
                iframeMsg("tip", {
                    tip: "成功设置token,请点击开启付费题库"
                });
            } else {
                iframeMsg("tip", {
                    tip: "系统检测您的token可能输入有误,请检查"
                });
            }
        } else if (event.data.type === "save_setting") {
            GM_setValue("gpt", event.data.gpt);
            GM_setValue("search_delay", event.data.search_delay);
            GM_setValue("tiku_adapter", event.data.tiku_adapter);
        }
    }, false);
    $(document).keydown(function(event) {
        if (event.keyCode === 38) {
            $("." + modelId).hide();
        } else if (event.keyCode === 40) {
            $("." + modelId).show();
        } else if (event.keyCode === 37) {
            $("." + modelId).hide();
            GM_setValue("hide", true);
        } else if (event.keyCode === 39) {
            $("." + modelId).show();
            GM_setValue("hide", false);
            GM_setValue("pos", "50px,50px");
        } else if (event.keyCode === 83) {
            GLOBAL.stop = true;
            iframeMsg("stop", GLOBAL.stop);
        } else if (event.keyCode === 68) {
            GLOBAL.stop = false;
            iframeMsg("stop", GLOBAL.stop);
        }
    });
    function getAnswerForKey(keys, options) {
        return keys.map(function(val) {
            return options[val.charCodeAt(0) - 65];
        });
    }
    function setIntervalFunc(flag, func, time) {
        const interval = setInterval(() => {
            if (flag()) {
                clearInterval(interval);
                func();
            }
        }, time || 1e3);
    }
    function getAnswer(str, options, type) {
        if (type === 0 || type === 1) {
            const ans = getAnswerForKey(str.match(/[A-G]/gi) || [], options);
            return ans.length > 0 ? ans : [ str ];
        } else {
            return [ str ];
        }
    }
    function getQuestionType(str) {
        if (!str) return;
        str = str.trim().replaceAll(/\s+/g, "");
        if (TYPE[str]) return TYPE[str];
        const regex = Object.keys(TYPE).join("|");
        const matcher = str.match(regex);
        if (matcher) return TYPE[matcher[0]];
    }
    function rand(m, n) {
        return Math.ceil(Math.random() * (n - m + 1) + m - 1);
    }
    const TYPE = {
        "阅读理解(选择)/完型填空": 66,
        "听力训练": 66,
        multichoice: 1,
        singlechoice: 0,
        SingleChoice: 0,
        bijudgement: 3,
        Judgement: 3,
        "单项选择题": 0,
        "单项选择": 0,
        "单选题": 0,
        "单选": 0,
        "多选": 1,
        "多选题": 1,
        "案例分析": 1,
        "多项选择题": 1,
        "多项选择": 1,
        "客观题": 1,
        "填空题": 2,
        "填空": 2,
        "对错题": 3,
        "判断题": 3,
        "判断正误": 3,
        "判断": 3,
        "主观题": 4,
        "问答题": 4,
        "简答题": 4,
        "名词解释": 5,
        "论述题": 6,
        "计算题": 7,
        "其它": 8,
        "分录题": 9,
        "资料题": 10,
        "连线题": 11,
        "排序题": 13,
        "完形填空": 14,
        "完型填空": 14,
        "阅读理解": 15,
        "口语题": 18,
        "听力题": 19,
        "A1A2题": 1,
        "文件作答": 4,
        "视频题": 1
    };
    function sleep(time) {
        return new Promise(resolve => {
            setTimeout(resolve, time);
        });
    }
    function iframeMsg(type, message) {
        try {
            top.document.getElementById("iframeNode").contentWindow.vueDefinedProp(type, message);
        } catch (e) {}
    }
    function filterImg(dom) {
        if (location.host === "ncexam.cug.edu.cn") {
            String.prototype.trim = function() {
                return this.replace(/^\s+|\s+$/gm, "");
            };
        }
        return $(dom).clone().find("img[src]").replaceWith(function() {
            return $("<p></p>").text('<img src="' + $(this).attr("src") + '">');
        }).end().find("iframe[src]").replaceWith(function() {
            return $("<p></p>").text('<iframe src="' + $(this).attr("src") + '"></irame>');
        }).end().text().trim();
    }
    function createContainer(name, childElem) {
        name = name.toLowerCase();
        let elem = top.document.createElement(name);
        elem.style.display = "block";
        elem.id = name.replace("hcsearche", "hcSearche").replace(/\-[a-z]/g, function(w) {
            return w.replace("-", "").toUpperCase();
        });
        if (childElem) {
            if (Array.isArray(childElem) === false) childElem = [ childElem ];
            for (let i = 0; i < childElem.length; i++) elem.appendChild(childElem[i]);
        }
        return elem;
    }
    function dragModel(drag) {
        const TOP = top;
        drag.onmousedown = function(e) {
            drag.style.cursor = "move";
            e = e || window.event;
            let diffX = e.clientX - drag.offsetLeft;
            let diffY = e.clientY - drag.offsetTop;
            top.onmousemove = function(e) {
                e = e || top.event;
                let left = e.clientX - diffX;
                let top = e.clientY - diffY;
                if (left < 0) {
                    left = 0;
                } else if (left > TOP.innerWidth * .95 - drag.offsetWidth) {
                    left = TOP.innerWidth * .95 - drag.offsetWidth;
                }
                if (top < 0) {
                    top = 0;
                } else if (top > TOP.innerHeight - drag.offsetHeight) {
                    top = TOP.innerHeight - drag.offsetHeight;
                }
                drag.style.left = left + "px";
                drag.style.top = top + "px";
                GM_setValue("pos", drag.style.left + "," + drag.style.top);
            };
            top.onmouseup = function(e) {
                drag.style.cursor = "default";
                this.onmousemove = null;
                this.onmouseup = null;
            };
        };
    }
    function defaultWorkTypeResolver($options) {
        function count(selector) {
            let sum = 0;
            for (const option of $options || []) {
                if ($(option).find(selector).length || $(option).parent().find(selector).length) {
                    sum++;
                }
            }
            return sum;
        }
        return count('[type="radio"]') === 2 ? 3 : count('[type="radio"]') > 2 ? 0 : count('[type="checkbox"]') > 2 ? 1 : count("textarea") >= 1 ? 4 : undefined;
    }
    function waitWithTimeout(promise, timeout, timeoutMessage = "timeout", defaultRes) {
        let timer;
        const timeoutPromise = new Promise((resolve, reject) => {
            timer = setTimeout(() => defaultRes === undefined ? reject(timeoutMessage) : resolve(defaultRes), timeout);
        });
        return Promise.race([ timeoutPromise, promise ]).finally(() => clearTimeout(timer));
    }
    async function formatSearchAnswer(initData) {
        const data = {
            plat: initData.plat ? parseInt(initData.plat) : null,
            qid: initData.qid ? String(initData.qid) : null,
            question: initData.question,
            options: initData.options,
            options_id: initData.options_id ? initData.options_id : [],
            type: initData.type
        };
        let res;
        const list = [];
        const apis = GLOBAL.answerApi;
        const answerApiFunc = Object.keys(apis).map(item => {
            return waitWithTimeout(apis[item](data), 5e3, "", []);
        });
        answerApiFunc.push(searchAnswer(data));
        const answerApiRes = await waitWithTimeout(Promise.all(answerApiFunc), 1e4, "(接口超时)");
        answerApiRes.map(item => {
            if (item instanceof Array) {
                console.log("tikuAdapter结果", JSON.stringify(item));
                list.push(...item);
            } else if (item instanceof Object && Object.keys(item).length === 1) {
                const key = Object.keys(item)[0];
                item[key];
            } else {
                res = item;
            }
        });
        try {
            const msg = res.message || res.msg;
            if (res.code !== 0) {
                return {
                    success: false,
                    msg: msg
                };
            }
            if (res.result.success) {
                return {
                    success: true,
                    msg: msg,
                    num: res.result.num,
                    answers: res.result.answers
                };
            }
            console.log("官方结果", JSON.stringify(res));
            if (res.result.answers instanceof Array && res.result.answers.length > 0) {
                list.push(...res.result.answers);
            }
            return {
                success: true,
                msg: msg,
                num: res.result.num,
                list: list
            };
        } catch (e) {
            return {
                success: false,
                msg: "发生异常" + e + "请反馈至学长微信"
            };
        }
    }
    function similar(s, t, f) {
        if (!s || !t) {
            return 0;
        }
        if (s === t) {
            return 100;
        }
        var l = s.length > t.length ? s.length : t.length;
        var n = s.length;
        var m = t.length;
        var d = [];
        f = f || 2;
        var min = function(a, b, c) {
            return a < b ? a < c ? a : c : b < c ? b : c;
        };
        var i, j, si, tj, cost;
        if (n === 0) return m;
        if (m === 0) return n;
        for (i = 0; i <= n; i++) {
            d[i] = [];
            d[i][0] = i;
        }
        for (j = 0; j <= m; j++) {
            d[0][j] = j;
        }
        for (i = 1; i <= n; i++) {
            si = s.charAt(i - 1);
            for (j = 1; j <= m; j++) {
                tj = t.charAt(j - 1);
                if (si === tj) {
                    cost = 0;
                } else {
                    cost = 1;
                }
                d[i][j] = min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost);
            }
        }
        let res = (1 - d[n][m] / l) * 100;
        return res.toFixed(f);
    }
    function answerSimilar(src, list) {
        return $.map(list, function(val) {
            return Number(similar(formatString(val), formatString(src), 2));
        });
    }
    function isPlainAnswer(answer) {
        if (answer.length > 8 || !/[A-Z]/.test(answer)) {
            return false;
        }
        let min = 0;
        for (let i = 0; i < answer.length; i++) {
            if (answer.charCodeAt(i) < min) {
                return false;
            }
            min = answer.charCodeAt(i);
        }
        return true;
    }
    function isTrue(str) {
        return Boolean(String(str).match(/(^|,)(正确|是|对|√|T|ri|true|A)(,|$)/));
    }
    function isFalse(str) {
        return Boolean(String(str).match(/(^|,)(错误|否|错|×|F|不是|wr|false|B)(,|$)/));
    }
    async function defaultQuestionResolve(list, data, handler, ignore_click) {
        let targetOptionsList = [];
        for (const answers of list) {
            if (data.type === 4 || data.type === 2 || data.type === 5) {
                let ans = answers.length > data.$options.length ? answers.slice(0, data.$options.length) : answers;
                for (let index in ans) {
                    if (typeof handler === "function") await handler(data.type, ans[index], data.$options.eq(index));
                }
                return {
                    style: "success-row",
                    ans: answers.join("===="),
                    question: data.question
                };
            } else if (data.type === 3) {
                if (targetOptionsList.length > 3) break;
                let targetOptions = new Set();
                if (isTrue(answers.join())) {
                    targetOptions.add(Number(isFalse(data.options[0])));
                } else if (isFalse(answers.join())) {
                    targetOptions.add(Number(isTrue(data.options[0])));
                }
                targetOptions.size > 0 && targetOptionsList.push(targetOptions);
            } else if (data.type === 0 || data.type === 1 || data.type === 66) {
                const beautifulOptions = data.options.map(i => {
                    return formatString(i).toLowerCase().replace(/\s/g, "");
                });
                let targetOptions = new Set();
                for (const ans of answers) {
                    if (ans.length === 1 && isPlainAnswer(ans)) {
                        targetOptions.add(ans.charCodeAt(0) - 65);
                    }
                    const val = formatString(ans).toLowerCase().replace(/\s/g, "");
                    let optIndex = $.inArray(val, beautifulOptions);
                    if (optIndex >= 0) {
                        targetOptions.add(optIndex);
                    }
                }
                if ((data.type === 0 && targetOptions.size === 0 || data.type === 1 && targetOptions.size < 2) && targetOptionsList.length === 0) {
                    for (const ans of answers) {
                        const val = formatString(ans).toLowerCase();
                        if (val.length >= 5 && !val.includes("<img")) {
                            const ratings = answerSimilar(val, beautifulOptions);
                            const maxScore = Math.max(...ratings);
                            if (maxScore > 65) {
                                targetOptions.add(ratings.indexOf(maxScore));
                            }
                        }
                    }
                }
                targetOptions.size > 0 && targetOptionsList.push(targetOptions);
            }
        }
        let items = [];
        let sortArr = targetOptionsList.map(item => {
            const s = Array.from(item).sort();
            return s;
        });
        if (data.type === 0 || data.type === 3) {
            items = getMost(sortArr.filter(i => i.length === 1));
            if (!items || items.length === 0) {
                items = getMost(sortArr.filter(i => i.length > 0));
            }
        } else if (data.type === 1 || data.type === 66) {
            items = getMost(sortArr.filter(i => i.length > 1));
            if (!items || items.length === 0) {
                items = getLang(sortArr.filter(i => i.length > 0));
            }
        }
        if (items && items.length > 0) {
            for (let index = 0; index < data.$options.length; index++) {
                const $item = data.$options.eq(index);
                if (Boolean($.inArray(index, items) + 1) !== Boolean(ignore_click($item, data.type))) {
                    $item.get(0).click();
                    await sleep(GLOBAL.fillAnswerDelay);
                }
            }
            return {
                type: data.type,
                style: "primary-row",
                ans: items.map(i => {
                    return data.options[i];
                }).join("===="),
                question: data.question
            };
        } else {
            return {
                type: data.type,
                style: "warning-row",
                question: data.question,
                ans: list.join('<span style="color: red">====</span>'),
                options: data.options
            };
        }
    }
    async function defaultFillAnswer(answers, data, handler, ignore_click) {
        for (let index = 0; index < data.$options.length; index++) {
            const $item = data.$options.eq(index);
            if (Boolean($.inArray(index, answers) + 1) !== Boolean(ignore_click($item, data.type))) {
                $item.get(0).click();
                await sleep(GLOBAL.fillAnswerDelay);
            }
        }
        return {
            type: data.type,
            style: "success-row",
            question: data.question,
            ans: answers.map(i => {
                return String.fromCharCode(i + 65);
            }).join(""),
            options: data.options
        };
    }
    function getMost(arr) {
        arr.reverse();
        if (arr.length === 0) return undefined;
        var hash = {};
        var m = 0;
        var trueEl;
        var el;
        for (var i = 0, len = arr.length; i < len; i++) {
            el = arr[i];
            hash[el] === undefined ? hash[el] = 1 : hash[el]++;
            if (hash[el] >= m) {
                m = hash[el];
                trueEl = el;
            }
        }
        return trueEl;
    }
    function getLang(arr) {
        if (arr.length === 0) return undefined;
        let len = 0;
        let ele;
        for (let arrElement of arr) {
            if (arrElement.length > len) {
                len = arrElement.length;
                ele = arrElement;
            }
        }
        return ele ? ele : arr.length > 0 ? arr[0] : [];
    }
    function HTMLDecode(text) {
        var temp = document.createElement("div");
        temp.innerHTML = text;
        var output = temp.innerText || temp.textContent;
        temp = null;
        return output;
    }
    function formatString(src) {
        src = String(src);
        src = src.includes("img") || src.includes("iframe") ? src : HTMLDecode(src);
        src = src.replace(/[\uff01-\uff5e]/g, function(str) {
            return String.fromCharCode(str.charCodeAt(0) - 65248);
        });
        return src.replace(/\s+/g, " ").replace(/[“”]/g, '"').replace(/[‘’]/g, "'").replace(/。/g, ".").replace(/[,.?:!;]$/, "").trim();
    }
    function division(arr, size) {
        var objArr = new Array();
        var index = 0;
        var objArrLen = arr.length / size;
        for (var i = 0; i < objArrLen; i++) {
            var arrTemp = new Array();
            for (var j = 0; j < size; j++) {
                arrTemp[j] = arr[index++];
                if (index === arr.length) {
                    break;
                }
            }
            objArr[i] = arrTemp;
        }
        return objArr;
    }
    const cache = {};
    const sourceTable = JSON.parse(GM_getResourceText("SourceTable"));
    async function genTable(ttf) {
        const res = await axios.get(ttf, {
            responseType: "arraybuffer"
        });
        const font = Typr.parse(res.data)[0];
        const table = {};
        for (let i = 19968; i < 40870; i++) {
            const g = Typr.U.codeToGlyph(font, i);
            if (g) {
                const path = Typr.U.glyphToPath(font, g);
                if (path) {
                    table[i] = MD5(JSON.stringify(path));
                }
            }
        }
        cache[ttf] = table;
    }
    async function getEncryptString(str, ttf) {
        if (!cache[ttf]) {
            await genTable(ttf);
        }
        const match = str.match(/<span class="xuetangx-com-encrypted-font">(.*?)</g);
        if (match === null) {
            return formatString(str);
        }
        const encStrArr = match.map(string => {
            return string.replace(/^<span class="xuetangx-com-encrypted-font">/, "").replace(/<$/, "");
        });
        encStrArr.forEach(encStr => {
            const decStr = encStr.split("").map(string => {
                const md5 = cache[ttf][string.charCodeAt(0)];
                return String.fromCharCode(sourceTable[md5]);
            }).join("");
            str = str.replace(encStr, decStr);
        });
        return formatString(str);
    }
    var vm = {
        hideTip() {
            var tip = document.createElement("div");
            tip.id = "yinc";
            tip.innerHTML = `
        <div style="
            position:fixed;
            right:0;
            top:10%;
            color: #8a6d3b;
            background-color: #fcf8e3;
            padding: 15px;
            margin-bottom: 20px;
            border: 1px solid transparent;
            border-radius: 4px;
            border-color: #faebcc;">
            学习通助手已被隐藏<br>如果需要显示答题面板,请按键盘右箭头
        <button style="
            padding: 0;
            color: inherit;
            border: 0;
            background: inherit;
            top:-22px;
            position:relative"
            type="button" id="cl_yinc" data-dismiss="alert" aria-label="Close">&times;</button>
        </div>`;
            top.document.getElementsByTagName("body")[0].appendChild(tip);
            top.document.querySelector("#cl_yinc").onclick = function() {
                top.document.querySelector("#yinc").remove();
            };
            setTimeout(() => {
                top.document.querySelector("#yinc").remove();
            }, 3e3);
        },
        zhihuishuSaveTip() {
            var zhihuishuSaveTip = document.createElement("div");
            zhihuishuSaveTip.id = "zhihuishuSaveTip";
            zhihuishuSaveTip.innerHTML = `
        <div style="
            position: fixed;
            opacity: 1;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 1040;
            background:rgba(0,0,0,.46);">
        <div style="
            position: relative;
            margin: 10px;
            top: 50%;
            left: 40%;
            width: 20%;">
        <div style="
            position: relative;
            background-color: #fff;
            -webkit-background-clip: padding-box;
            background-clip: padding-box;
            /*border: 1px solid #999;*/
            border: 1px solid rgba(0,0,0,.2);
            border-radius: 6px;
            outline: 0;
            -webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
            box-shadow: 0 3px 9px rgba(0,0,0,.5);">
        <div style="
            line-height: 25px;
            font-size: 15px;
            margin: 5px;">
        <h4 class="modal-title">正在保存</h4>


        <!-- 模态框主体 -->
        <div class="modal-body" style="height: 50px;
            margin: 5px;
            padding: 5px;
            margin-top: 15px;
            line-height: 15px;
            font-size: 15px;">
            <progress style="width: 100%" id="gs_p" value="0" max="100"></progress> <span id="gs_text">0%</span>
        </div>



        </div>
   </div>
      </div>`;
            top.document.getElementsByTagName("body")[0].appendChild(zhihuishuSaveTip);
        }
    };
    function showPanel() {
        let html = `
        <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
      ` + GM_getResourceText("ElementUiCss") + `
      .el-table .warning-row {
        background: oldlace;
      }

    #app {
    border: 5px solid #000000; /* 添加了1像素宽度、颜色为#ccc的实线边框 */
    border-radius: 6px; /* 可选:添加边框的圆角 */

}

  }
      .el-table .default-row {
        background: #f0f9eb;
      }
      .el-table .primary-row {
        background: rgb(236, 245, 255);
      }
      *{
        padding: 0px;
        margin: 0px;
      }
      .el-button{
        margin-bottom: 4px;
      }
      .el-button + .el-button{
        margin-left: 0px;
      }

      .el-form
      -item-confim{
        display: flex;
        justify-content: center
      }
      .drag_auto_answer-class{
        width: 321px;
        background-color: rgb(255, 255, 255);
        overflow-x: hidden;
        overflow-y: scroll;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: -17px;
      }
    </style>
</head>
<body>

<div id="app">

    <div id="drag_auto_answer" class="drag_auto_answer-class">
        <el-main style="min-width: 321px;padding: 25px 0px 10px; z-index: 99999;">
            <el-row>
                <el-form>
               <center> <h4>学习通小助手-考试端</h4></center>
<br>
                    <el-form-item class="el-form-item-confim" label="请输入token"  style="margin-top: 0px" :prop="passw">
                        <el-input :type="passw" v-model="opt.token" placeholder="请输入内容" style="max-width: 130px" size="mini" ></el-input>
                        <el-button @click="btnClick(opt.token,'opt.confim')" size="mini" type="default" @mousedown.native="passw = 'text'" @mouseup.native="passw = 'password'">确定</el-button>
                    </el-form-item>
                </el-form>
            </el-row>
            <el-row style="margin-top: -20px;margin-bottom: 5px;display: flex">
                <el-alert
                        style="display: block"
                        :title="tip"
                        :closable="false"
                        type="success">
                    <el-button v-if="need_jump" @click="btnClick(opt.jump,'opt.jump')" size="mini" type="info">跳过本题</el-button>
                    <el-button v-if="!hidden" @click="btnClick(opt.auto_jump,'opt.auto_jump')" size="mini" type="default">{{opt.auto_jump ? '停止自动切换': '开启自动切换'}}</el-button>
                </el-alert>
            </el-row>
            <el-row>
              <center>  <el-button v-if="!hidden" @click="btnClick(opt.stop,'opt.stop')" size="mini" type="default">{{!opt.stop ? '暂停答题': '继续答题'}}</el-button> <center>

            </el-row>

            <el-table size="mini" :data="tableData" style="width: 100%;margin-top: 5px" :row-class-name="tableRowClassName">
                <el-table-column prop="index" label="题号" width="45"></el-table-column>
                <el-table-column prop="question" label="问题" width="130">
                  <template slot-scope="scope">
                        <div style="font-size: 11px;" v-html="scope.row.question"></div>
                  </template>
                </el-table-column>
                <el-table-column prop="answer" label="答案" width="130">
                 <template slot-scope="scope">
                     <el-popover
                        v-if="scope.row.style === 'warning-row'"
                        placement="bottom-end"
                        title="相似答案"
                        width="240"
                        trigger="click">
                        <div style="font-size: 10px;height: 220px; overflow: auto;" v-html="scope.row.answer"></div>
                        <el-button slot="reference" size="small" type="danger">查看相关答案</el-button>
                     </el-popover>
                     <p v-if="scope.row.style != 'warning-row'" style="font-size: 11px;" v-html="scope.row.answer"></p>
                  </template>
                </el-table-column>
            </el-table>
        </el-main>
    </div>
</div>
</body>
<script>` + GM_getResourceText("Vue") + `</script>
<script>` + GM_getResourceText("ElementUi") + `</script>
<script>
const tips = [
    '想要隐藏此搜索框,按键盘的⬆箭头,想要显示按⬇箭头',
    '想要永久隐藏此搜索框,按键盘的左箭头,想要显示在屏幕中央按右箭头',
]
    new Vue({
        el: '#app',
        data: function () {
            return {
                tiku_adapter: '` + (GM_getValue("tiku_adapter") || "") + `',
                search_delay: ` + (isNaN(parseInt(GM_getValue("search_delay"))) ? 2 : GM_getValue("search_delay")) + `,
                gpt: String(` + (GM_getValue("gpt") || -1) + `),
                show_setting: false,
                hidden: false,
                need_jump: false,
                tip: tips[Math.floor(Math.random()*tips.length)],
                opt:{
                    token: '` + GM_getValue("token") + `',
                    auto_jump: ` + GM_getValue("auto_jump") + `,
                    stop: false,
                    start_pay: ` + GM_getValue("start_pay") + `
                },
                input: '',
                visible: false,
                tableData: [],
                passw:"password"
            }
        },
        created(){
            /**
            *
            * @param type 消息类型
            * @param receiveParams 消息参数
            */
            window['vueDefinedProp'] = (type,receiveParams) => {
                if (type === 'push'){
                    let length = this.tableData.length
                    this.tableData.push({index: length + 1,question: receiveParams.question,answer: receiveParams.answer,style:receiveParams.style})
                }else if (type === 'clear'){
                    this.tableData = []
                }else if (type === 'tip'){
                    if (receiveParams.type && receiveParams.type === 'jump'){
                         window.parent.postMessage({"type": 'jump'}, '*');
                    }else if (receiveParams.type && receiveParams.type === 'error'){
                         this.need_jump = true
                    }else if (receiveParams.type && receiveParams.type === 'hidden'){
                         this.hidden = true
                    }else if (receiveParams.type && receiveParams.type === 'stop'){
                         this.opt.stop = true
                    }
                    this.tip = receiveParams.tip
                }else if (type === 'stop'){
                    this.opt.stop = receiveParams
                }else if (type === 'start_pay'){
                    this.opt.start_pay = receiveParams
                }else if (type === 'update'){
                    this.updateScript(receiveParams.v1,receiveParams.v2,receiveParams.href)
                }
            }
        },
        methods: {
            save_setting(){
                 window.parent.postMessage({type: 'save_setting',search_delay:this.search_delay,gpt:this.gpt,tiku_adapter:this.tiku_adapter}, '*');
                 this.show_setting = false
            },

            tableRowClassName({row, rowIndex}) {
                return row.style
            },
            btnClick(e,type){
                if (type === 'opt.stop'){//暂停搜索
                    this.opt.stop = !this.opt.stop
                    this.tip = this.opt.stop? '已暂停搜索': '继续搜索'
                    window.parent.postMessage({type: 'stop',val:this.opt.stop}, '*');
                }else if (type === 'opt.start_pay'){
                     window.parent.postMessage({type: 'start_pay',flag:!this.opt.start_pay}, '*');
                }else if (type === 'opt.auto_jump'){//开启自动切换
                    this.opt.auto_jump = ! this.opt.auto_jump
                    window.parent.postMessage({type: 'auto_jump',flag:this.opt.auto_jump}, '*');
                }else if (type === 'opt.jump'){//跳过本题
                    window.parent.postMessage({type: 'jump'}, '*');
                    this.need_jump = false
                }else if (type === 'opt.confim'){
                    window.parent.postMessage({type: 'confim',token:e}, '*');
                }
            }
        }
    })
</script>
</html>
`;
        addModal2(html);
        checkVersion();
    }
    function addModal2(html, newPos, footerChildNode = false) {
        let headersNode = createContainer("hcsearche-modal-links");
        let adNode = top.document.createElement("img");
        let item = {
            url: GM_getResourceURL("Img")
        };
        const getAdList = GM_getValue("adList");
        if (getAdList) {
            const adList = JSON.parse(getAdList);
            let lastShown = GM_getValue("lastShown") || 0;
            item = adList[lastShown];
            GM_setValue("lastShown", (lastShown + 1) % adList.length);
        }

        adNode.setAttribute("draggable", "false");
        adNode.setAttribute("style", "display: block;width:321px");
        if (item.click) {
            adNode.setAttribute("onmousedown", "let ts=new Date().getTime();this.onmouseup=()=>{if(new Date().getTime()-ts>100){return false;};window.open('" + item.click + "','_black');this.onmouseup=undefined}");
        }
        headersNode.appendChild(adNode);
        let iframeNode = top.document.createElement("iframe");
        iframeNode.id = "iframeNode";
        iframeNode.setAttribute("width", "100%");
        iframeNode.setAttribute("height", GLOBAL.length + "px");
        iframeNode.setAttribute("style", "height:" + GLOBAL.length + "px");
        iframeNode.setAttribute("frameborder", "0");
        iframeNode.srcdoc = html;
        let contentNode = createContainer("content-modal", [ headersNode, iframeNode ]);
        let modal = renderModal(contentNode);
        dragModel(modal);
        if (GM_getValue("hide")) {
            $("#" + modelId).hide();
            vm.hideTip();
        }
    }
    function renderModal(childElem, newPos) {
        return render(String.fromCharCode(rand(65, 90), rand(65, 90), rand(65, 90)) + rand(1, 100).toString(), modelId, childElem);
    }
    function render(tagName, elemId, childElem, isFixed, newPos) {
        let doc = top.document;
        let elem = doc.getElementById(elemId);
        if (elem) {
            elem.innerHTML = "";
        } else {
            elem = doc.createElement(tagName);
            elem.id = elemId;
            doc.body.appendChild(elem);
        }
        let contentNode = createContainer(tagName + "-container", childElem);
        elem.appendChild(contentNode);
        elem.classList.add(elemId);
        elem.style.zIndex = "9999999";
        elem.style.position = "fixed";
        const pos = GM_getValue("pos") === undefined ? "30px,30px" : GM_getValue("pos");
        const posarr = pos.split(",");
        elem.style.left = posarr[0];
        elem.style.top = posarr[1];
        setTimeout(function() {
            elem.classList.add(elemId + "-show");
        }, 10);
        return elem;
    }
    const init$1 = async ($TiMu, select, wrap) => {
        let question = formatString(filterImg($TiMu.find(select.elements.question)));
        if (select.elements.type && select.elements.type.includes("input[name^=type]:eq")) {
            select.elements.type = "input[name^=type]:eq(" + GLOBAL.i + ")";
        }
        let data = {
            $item: $TiMu,
            question_text: $TiMu.find(select.elements.question).text(),
            question: question.length === 0 ? $TiMu.find(select.elements.question) : question.replace(/^\d+、/, "").replace(/[((](\d+\s?(\.\d+)?分)[))]$/, "").replace(/^((\d+.(\s+)?)?)[\[((【](.*?)[】))\]]/, "").trim(),
            $options: select.elements.$options ? $TiMu.find(select.elements.$options) : undefined,
            options: select.elements.options ? jQuery.map($TiMu.find(select.elements.options), function(val) {
                return formatString(filterImg(val)).replace(/^[A-Ga-g][.、]/, "").trim();
            }) : undefined
        };
        if (select.elements.type) {
            const getType = getQuestionType($TiMu.find(select.elements.type).text());
            const val = $TiMu.find(select.elements.type).val();
            data.type = isNaN(getType) ? isNaN(val) ? val : parseInt(val) : getType;
        } else {
            data.type = defaultWorkTypeResolver(data.$options);
        }
        if (select.elements.answer) {
            data.answer = getAnswer(filterImg($TiMu.find(select.elements.answer)) || $TiMu.find(select.elements.answer).val(), data.options, data.type);
        }
        if (data && data.type === 3 && data.options.length === 0) {
            data.options = [ "正确", "错误" ];
        }
        const r = await wrap(data);
        if (typeof r === "boolean") return undefined;
        return data;
    };
    async function WorkerJSPlus(options) {
        if (GLOBAL.isMatch) return;
        const match = options.match ? typeof options.match === "boolean" ? options.match : options.match() : false;
        if (!match) return;
        GLOBAL.isMatch = true;
        if (options.hook && typeof options.hook === "function") {
            if (options.hook()) return;
        }
        const defaultFunc = () => {};
        const main = () => {
            setTimeout(() => {
                showPanel();
                if (options.init && typeof options.init === "function") {
                    if (options.init()) return;
                }
                const select = {
                    root: options.root,
                    elements: options.elements,
                    ignore_click: options.ignore_click
                };
                new WorkerJS(select, options.wrap ? options.wrap : defaultFunc, options.fill ? options.fill : defaultFunc, options.finished ? options.finished : defaultFunc, options.fillFinish ? options.fillFinish : defaultFunc).fillAnswer();
            }, GLOBAL.delay);
        };
        if (options.intv) {
            setIntervalFunc(options.intv, main);
        } else {
            main();
        }
    }
    var WorkerJS = function(select, searchHander, fillHander, onFinish = function(need_jump) {}, fillFinish = function() {}) {
        GLOBAL.index = 0;
        this.init = init$1;
        this.fillAnswer = async () => {
            let arr = jQuery(select.root);
            while (true) {
                if (arr.length === 0) return;
                await sleep((isNaN(parseInt(GM_getValue("search_delay"))) ? 2 : GM_getValue("search_delay")) * 1e3);
                if (GLOBAL.stop) {
                    continue;
                }
                if (GLOBAL.index >= arr.length) {
                    let auto_jump = GM_getValue("auto_jump") === undefined || GM_getValue("auto_jump");
                    const next = await onFinish(auto_jump);
                    if (next) {
                        GLOBAL.index = 0;
                        setTimeout(this.fillAnswer, 300);
                    }
                    if (auto_jump) {
                        iframeMsg("tip", {
                            tip: "自动答题已完成,即将切换下一题"
                        });
                        next || setTimeout(() => {
                            iframeMsg("tip", {
                                type: "hidden",
                                tip: "自动答题已完成,请检查提交"
                            });
                        }, Math.max(GM_getValue("search_delay") || 2, 5) * 1e3);
                    } else {
                        iframeMsg("tip", {
                            tip: "自动答题已完成" + (arr.length === 1 ? ",请手动切换" : "请检查提交")
                        });
                    }
                    return true;
                }
                try {
                    let data = await this.init(jQuery(arr[GLOBAL.index++]), select, searchHander);
                    if (!data) {
                        GLOBAL.index--;
                        continue;
                    }
                    iframeMsg("tip", {
                        tip: "准备答第" + GLOBAL.index + "题"
                    });
                    const formatResult = await formatSearchAnswer(data);
                    const hookAnswer = data.answer && data.answer.length > 0 && GM_getValue("start_pay");
                    const formatAns = hookAnswer ? {
                        success: true,
                        num: formatResult.num,
                        list: [ data.answer ]
                    } : formatResult;
                    if (formatResult.answers || formatAns.success) {
                        iframeMsg("tip", {
                            tip: "准备填充答案,当前使用免费题库"
                        });
                        const func = !hookAnswer && formatResult.answers ? defaultFillAnswer : defaultQuestionResolve;
                        let r = await func(hookAnswer ? formatAns.list : formatAns.answers ? formatResult.answers : formatAns.list, data, fillHander, select.ignore_click ? select.ignore_click : () => {
                            return false;
                        });
                        iframeMsg("push", {
                            index: GLOBAL.index,
                            question: r.question,
                            answer: r.ans,
                            style: r.style
                        });
                        GM_getValue("start_pay") && String(GM_getValue("token")).length === 10 && catchAnswer(r);
                        await fillFinish(r);
                    } else {
                        GLOBAL.index--;
                        iframeMsg("tip", {
                            tip: formatAns.msg
                        });
                    }
                } catch (e) {
                    GLOBAL.index--;
                    console.table(e);
                }
            }
        };
    };
    // @thanks 特别感谢 qxin i 借鉴 网页限制解除(改) 开源地址 https://greasyfork.org/zh-CN/scripts/28497
    function init() {
        rule = rwl_userData.rules.rule_def;
        hook_eventNames = rule.hook_eventNames.split("|");
        unhook_eventNames = rule.unhook_eventNames.split("|");
        eventNames = hook_eventNames.concat(unhook_eventNames);
        if (rule.dom0) {
            setInterval(clearLoop, 10 * 1e3);
            setTimeout(clearLoop, 1500);
            window.addEventListener("load", clearLoop, true);
            clearLoop();
        }
        if (rule.hook_addEventListener) {
            EventTarget.prototype.addEventListener = addEventListener;
            document.addEventListener = addEventListener;
            if (hasFrame) {
                for (let i = 0; i < hasFrame.length; i++) {
                    hasFrame[i].contentWindow.document.addEventListener = addEventListener;
                }
            }
        }
        if (rule.hook_preventDefault) {
            Event.prototype.preventDefault = function() {
                if (hook_eventNames.indexOf(this.type) < 0) {
                    Event_preventDefault.apply(this, arguments);
                }
            };
            if (hasFrame) {
                for (let i = 0; i < hasFrame.length; i++) {
                    hasFrame[i].contentWindow.Event.prototype.preventDefault = function() {
                        if (hook_eventNames.indexOf(this.type) < 0) {
                            Event_preventDefault.apply(this, arguments);
                        }
                    };
                }
            }
        }
        if (rule.hook_set_returnValue) {
            Event.prototype.__defineSetter__("returnValue", function() {
                if (this.returnValue !== true && hook_eventNames.indexOf(this.type) >= 0) {
                    this.returnValue = true;
                }
            });
        }
    }
    function addEventListener(type, func, useCapture) {
        var _addEventListener = this === document ? document_addEventListener : EventTarget_addEventListener;
        if (hook_eventNames.indexOf(type) >= 0) {
            _addEventListener.apply(this, [ type, returnTrue, useCapture ]);
        } else if (unhook_eventNames.indexOf(type) >= 0) {
            var funcsName = storageName + type + (useCapture ? "t" : "f");
            if (this[funcsName] === undefined) {
                this[funcsName] = [];
                _addEventListener.apply(this, [ type, useCapture ? unhook_t : unhook_f, useCapture ]);
            }
            this[funcsName].push(func);
        } else {
            _addEventListener.apply(this, arguments);
        }
    }
    function clearLoop() {
        rule = clear();
        var elements = getElements();
        for (var i in elements) {
            for (var j in eventNames) {
                var name = "on" + eventNames[j];
                if (Object.prototype.toString.call(elements[i]) == "[object String]") {
                    continue;
                }
                if (elements[i][name] !== null && elements[i][name] !== onxxx) {
                    if (unhook_eventNames.indexOf(eventNames[j]) >= 0) {
                        elements[i][storageName + name] = elements[i][name];
                        elements[i][name] = onxxx;
                    } else {
                        elements[i][name] = null;
                    }
                }
            }
        }
        document.onmousedown = function() {
            return true;
        };
    }
    function returnTrue(e) {
        return true;
    }
    function unhook_t(e) {
        return unhook(e, this, storageName + e.type + "t");
    }
    function unhook_f(e) {
        return unhook(e, this, storageName + e.type + "f");
    }
    function unhook(e, self, funcsName) {
        var list = self[funcsName];
        for (var i in list) {
            list[i](e);
        }
        e.returnValue = true;
        return true;
    }
    function onxxx(e) {
        var name = storageName + "on" + e.type;
        this[name](e);
        e.returnValue = true;
        return true;
    }
    function getElements() {
        var elements = Array.prototype.slice.call(document.getElementsByTagName("*"));
        elements.push(document);
        var frames = document.querySelectorAll("frame");
        if (frames) {
            hasFrame = frames;
            var frames_element;
            for (let i = 0; i < frames.length; i++) {
                frames_element = Array.prototype.slice.call(frames[i].contentWindow.document.querySelectorAll("*"));
                elements.push(frames[i].contentWindow.document);
                elements = elements.concat(frames_element);
            }
        }
        return elements;
    }
    var settingData = {
        status: 1,
        version: .1,
        message: "",
        positionTop: "0",
        positionLeft: "0",
        positionRight: "auto",
        addBtn: false,
        connectToTheServer: false,
        waitUpload: [],
        currentURL: "null",
        shortcut: 3,
        rules: {},
        data: []
    };
    var rwl_userData = null;
    var rule = null;
    var hasFrame = false;
    var storageName = "storageName";
    var hook_eventNames, unhook_eventNames, eventNames;
    var EventTarget_addEventListener = EventTarget.prototype.addEventListener;
    var document_addEventListener = document.addEventListener;
    var Event_preventDefault = Event.prototype.preventDefault;
    rwl_userData = GM_getValue("rwl_userData");
    if (!rwl_userData) {
        rwl_userData = settingData;
    }
    for (let value in settingData) {
        if (!rwl_userData.hasOwnProperty(value)) {
            rwl_userData[value] = settingData[value];
            GM_setValue("rwl_userData", rwl_userData);
        }
    }
    // @thanks 特别感谢 wyn大佬 提供的 字典匹配表 原作者 [email protected] 开源地址 https://scriptcat.org/script-show-page/432/code
    function removeF() {
        var $tip = $("style:contains(font-cxsecret)");
        if (!$tip.length) return;
        var font = $tip.text().match(/base64,([\w\W]+?)'/)[1];
        font = Typr.parse(base64ToUint8Array(font))[0];
        var table = JSON.parse(GM_getResourceText("Table"));
        var match = {};
        for (var i = 19968; i < 40870; i++) {
            $tip = Typr.U.codeToGlyph(font, i);
            if (!$tip) continue;
            $tip = Typr.U.glyphToPath(font, $tip);
            $tip = MD5(JSON.stringify($tip)).slice(24);
            match[i] = table[$tip];
        }
        $(".font-cxsecret").html(function(index, html) {
            $.each(match, function(key, value) {
                key = String.fromCharCode(key);
                key = new RegExp(key, "g");
                value = String.fromCharCode(value);
                html = html.replace(key, value);
            });
            return html;
        }).removeClass("font-cxsecret");
        function base64ToUint8Array(base64) {
            var data = window.atob(base64);
            var buffer = new Uint8Array(data.length);
            for (var i = 0; i < data.length; ++i) {
                buffer[i] = data.charCodeAt(i);
            }
            return buffer;
        }
    }
    function start() {
        try {
            removeF();
        } catch (e) {}
        try {
            init();
        } catch (e) {}
    }
    WorkerJSPlus({
        name: "学习通作业",
        match: location.pathname === "/mooc2/work/dowork" || location.pathname === "/mooc-ans/mooc2/work/dowork",
        root: ".questionLi",
        elements: {
            question: "h3",
            options: ".stem_answer .answerBg .answer_p, .textDIV, .eidtDiv",
            $options: ".stem_answer .answerBg, .textDIV, .eidtDiv",
            type: "input[type^=hidden]:eq(0)"
        },
        wrap: obj => {
            obj.question = obj.question.replace(obj.$item.find(".colorShallow").text(), "").replace(/^(\d+\.\s)/, "");
        },
        ignore_click: $item => {
            return Boolean($item.find(".check_answer,.check_answer_dx").length);
        },
        fill: (type, answer, $option) => {
            if (type === 4 || type === 2 || type === 5) {
                UE$1.getEditor($option.find("textarea").attr("name")).setContent(answer);
            }
        }
    });
    WorkerJSPlus({
        name: "超星旧版考试",
        match: (location.pathname === "/exam/test/reVersionTestStartNew" || location.pathname === "/exam-ans/exam/test/reVersionTestStartNew") && !location.href.includes("newMooc=true"),
        root: ".TiMu",
        elements: {
            question: ".Cy_TItle .clearfix",
            options: ".Cy_ulTop .clearfix",
            $options: ":radio, :checkbox, .Cy_ulTk textarea",
            type: "[name^=type]:not([id])"
        },
        ignore_click: $item => {
            return $item.get(0).checked;
        },
        fill: (type, answer, $option) => {
            if (type === 4 || type === 2 || type === 5) {
                UE$1.getEditor($option.attr("name")).setContent(answer);
            }
        },
        finished: auto_jump => {
            auto_jump && setInterval(function() {
                const btn = $(".saveYl:contains(下一题)").offset();
                var mouse = document.createEvent("MouseEvents"), arr = [ btn.left + Math.ceil(Math.random() * 80), btn.top + Math.ceil(Math.random() * 26) ];
                mouse.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, arr[0], arr[1], false, false, false, false, 0, null);
                _self.event = $.extend(true, {}, mouse);
                delete _self.event.isTrusted;
                _self.getTheNextQuestion(1);
            }, Math.ceil(GLOBAL.fillAnswerDelay * Math.random()) * 2);
        }
    });
    WorkerJSPlus({
        name: "超星章节测验",
        match: location.pathname === "/work/doHomeWorkNew" || location.pathname === "/mooc-ans/work/doHomeWorkNew",
        init: start,
        root: ".clearfix .TiMu",
        elements: {
            question: ".Zy_TItle .clearfix",
            options: "ul:eq(0) li .after",
            $options: "ul:eq(0) li :radio,:checkbox,textarea,.num_option_dx,.num_option",
            type: "input[name^=answertype]"
        },
        ignore_click: $item => {
            if ($item.is("input")) {
                return $item.get(0).checked;
            }
            return $item.attr("class").includes("check_answer");
        },
        fill: async (type, answer, $option) => {
            if (type === 4 || type === 2 || type === 5) {
                UE$1.getEditor($option.attr("name")).setContent(answer);
            }
        }
    });
    WorkerJSPlus({
        name: "超星新版考试",
        match: () => {
            const cxSinglePage = (location.pathname === "/exam/test/reVersionTestStartNew" || location.pathname === "/exam-ans/exam/test/reVersionTestStartNew" || location.pathname === "/mooc-ans/exam/test/reVersionTestStartNew") && location.href.includes("newMooc=true");
            const cxAll = location.pathname === "/mooc2/exam/preview" || location.pathname === "/exam-ans/mooc2/exam/preview" || location.pathname === "/mooc-ans/mooc2/exam/preview";
            return cxSinglePage || cxAll;
        },
        root: ".questionLi",
        elements: {
            question: "h3 div",
            options: ".answerBg .answer_p, .textDIV, .eidtDiv",
            $options: ".answerBg, .textDIV, .eidtDiv",
            type: "input[name^=type]:eq(" + GLOBAL.i + ")"
        },
        ignore_click: $item => {
            return Boolean($item.find(".check_answer,.check_answer_dx").length);
        },
        hook: () => {
            GLOBAL.i = Number((location.pathname === "/exam/test/reVersionTestStartNew" || location.pathname === "/exam-ans/exam/test/reVersionTestStartNew" || location.pathname === "/mooc-ans/exam/test/reVersionTestStartNew") && location.href.includes("newMooc=true"));
        },
        wrap: obj => {
            if (obj.type === 6) {
                obj.type = 4;
            }
        },
        fill: (type, answer, $option) => {
            if (type === 4 || type === 2 || type === 5) {
                const name = $option.find("textarea").attr("name");
                UE$1.getEditor(name).setContent(answer);
                if (GLOBAL.i === 0) {
                    console.log("#" + name.replace("answerEditor", "save_"));
                    $("#" + name.replace("answerEditor", "save_")).click();
                }
            }
        },
        finished: a => {
            a && $('.nextDiv .jb_btn:contains("下一题")').click();
        }
    });
    WorkerJSPlus({
        name: "超星随堂测验",
        match: location.pathname.includes("/page/quiz/stu/answerQuestion"),
        root: ".question-item",
        elements: {
            question: ".topic-txt",
            options: ".topic-option-list",
            $options: ".topic-option-list input",
            type: "input[class^=que-type]"
        },
        ignore_click: $item => {
            return Boolean($item.find(".check_answer,.check_answer_dx").length);
        },
        wrap: obj => {
            if (obj.type === 16) {
                obj.type = 3;
            }
        },
        fill: (type, answer, $option) => {
            if (type === 4 || type === 2) {
                $option.val(answer);
            }
        }
    });
    function JSONParseHook(func) {
        const parse = JSON.parse;
        JSON.parse = function(...args) {
            const o = parse.call(this, ...args);
            func(o);
            return o;
        };
    }
    function hookZhiHuiShuWork(o, arr) {
        function format(item) {
            let options = [];
            let options_id;
            if (item.questionOptions && item.questionOptions.length) {
                options = item.questionOptions.map(o => {
                    return formatString(o.content);
                });
                options_id = item.questionOptions.map(o => {
                    return o.id;
                });
            }
            return {
                qid: item.id,
                question: formatString(item.name),
                type: getQuestionType(item.questionType.name),
                options_id: options_id,
                options: options
            };
        }
        if (o.rt && o.rt.examBase && o.rt.examBase.workExamParts.length > 0) {
            GLOBAL.content = o.rt;
            GLOBAL.json = o.rt.examBase.workExamParts.map(part => {
                return part.questionDtos.map(item => {
                    if ("阅读理解(选择)/完型填空" === item.questionType.name || "听力训练" === item.questionType.name || !(item.questionType.name.includes("填空") || item.questionType.name.includes("问答")) && item.questionChildrens && item.questionChildrens.length > 0) {
                        return item.questionChildrens.map(i => {
                            console.log(format(i));
                            return format(i);
                        }).flat();
                    } else {
                        return format(item);
                    }
                });
            }).flat();
        } else if (o.rt && Object.keys(o.rt).length > 0 && !isNaN(Object.keys(o.rt)[0])) {
            GLOBAL.img = o.rt;
        }
    }

    WorkerJSPlus({
        match: location.href.includes("checkHomework") && location.host.includes("zhihuishu"),
        hook: () => {
            JSONParseHook(hookZhiHuiShuWork);
        },
        init: () => {
            R({
                type: 2,
                content: GLOBAL.content,
                img: GLOBAL.img
            });
        }
    });
    GLOBAL.timeout = 10 * 1e3;
    function uploadAnswer(data) {
        const arr2 = division(data, 100);
        for (let arr2Element of arr2) {
            GM_xmlhttpRequest({
                method: "POST",
                url: "https://lyck6.cn/pcService/api/uploadAnswer",
                headers: {
                    "Content-Type": "application/json;charset=utf-8"
                },
                data: JSON.stringify(arr2Element),
                timeout: GLOBAL.timeout
            });
        }
    }
    function uploadAnswerToPlat(data, plat) {
        const arr2 = division(data, 100);
        for (let arr2Element of arr2) {
            GM_xmlhttpRequest({
                method: "POST",
                url: "https://lyck6.cn/collect-service/v1/uploadAnswerToPlat?plat=" + plat,
                headers: {
                    "Content-Type": "application/json;charset=utf-8"
                },
                data: JSON.stringify(arr2Element),
                timeout: GLOBAL.timeout
            });
        }
    }

    function parseIcve(questions) {
        return questions.map(item => {
            const options = item.Selects.map(opt => {
                return formatString(opt);
            });
            const type = getQuestionType(item.ACHType.QuestionTypeName);
            const answer = item.Answers.map(key => {
                if (type === 0 || type === 1) {
                    return options[key.charCodeAt() - 65];
                } else if (type === 3) {
                    return key === "1" ? "正确" : "错误";
                }
            });
            const answerKey = type === 0 || type === 1 ? item.Answers : answer;
            return {
                id: item.Id,
                question: item.ContentText,
                answerKey: answerKey,
                options: type === 3 ? [ "正确", "错误" ] : options,
                answer: answer,
                type: type
            };
        });
    }
    WorkerJSPlus({
        name: "资源库 WWW开头",
        match: location.pathname === "/study/works/works.html" || location.pathname === "/study/exam/exam.html",
        root: ".questions",
        elements: {
            question: ".preview_stem",
            options: "li .preview_cont",
            $options: "li input",
            type: "input:hidden"
        },
        hook: () => {
            JSONParseHook(o => {
                if (location.pathname === "/study/works/works.html") {
                    if (o.paper) {
                        GLOBAL.json = parseIcve(o.paper.PaperQuestions);
                        uploadAnswer(GLOBAL.json);
                    }
                } else if (location.pathname === "/study/exam/exam.html") {
                    if (o.array) {
                        GLOBAL.json = parseIcve(o.array.map(item => {
                            return item.Questions;
                        }).flat());
                        uploadAnswer(GLOBAL.json);
                    }
                }
            });
        },
        ignore_click: $item => {
            return $item.prop("checked");
        },
        wrap: obj => {
            function get_element(id) {
                for (let jsonElement of GLOBAL.json) {
                    if (jsonElement.id === id) {
                        return jsonElement;
                    }
                }
            }
            const ele = get_element(obj.$item.find("input:hidden").val());
            obj.question = ele.question;
            obj.answer = ele.answerKey ? ele.answerKey : ele.answer;
            obj.type = ele.type;
            obj.options = ele.options;
            console.log(obj);
        },
        fill: (type, answer, $option) => {
            if (type === 4 || type === 2) {
                UE$1.getEditor($option.attr("name")).setContent(answer);
            }
        }
    });

    function parseYkt(problems) {
        return problems.map(item => {
            const question = formatString(item.Body);
            const type = getQuestionType(item.TypeText);
            const options = [];
            const answer = [];
            if (type <= 1) {
                options.push(...item.Options.sort((a, b) => {
                    return a.key.charCodeAt(0) - b.key.charCodeAt(0);
                }).map(item => {
                    return formatString(item.value);
                }));
                if (item.Answer) {
                    if (Array.isArray(item.Answer)) {
                        answer.push(...item.Answer);
                    } else {
                        answer.push(...item.Answer.split(""));
                    }
                }
            } else if (type === 3 && item.Answer && item.Answer.length === 1) {
                answer.push(item.Answer[0].replace("true", "正确").replace("false", "错误"));
            }
            return {
                answer: answer,
                options: options,
                type: type,
                qid: item.problem_id,
                question: question
            };
        });
    }
    function parsehnzkwText(problems) {
        return problems.map(item => {
            const type = item.flag === 1 ? 2 : item.flag === 0 ? 0 : item.flag === 4 ? 1 : item.flag === 3 ? 3 : undefined;
            let answer = [];
            let options = [];
            if (type === 2) {
                answer.push(item.answer);
                return {
                    question: formatString(item.content),
                    options: options,
                    type: type,
                    answer: answer
                };
            } else if (type === 0) {
                for (let subjectOption of item.optionss) {
                    const opt = formatString(subjectOption);
                    options.push(opt);
                }
                if (type === 1) {
                    item.answer.split("|").map(i => {
                        answer.push(options[i.toUpperCase().charCodeAt(0) - 65]);
                    });
                } else {
                    answer.push(options[item.answer.toUpperCase().charCodeAt(0) - 65]);
                }
                return {
                    question: formatString(item.content),
                    options: options,
                    type: type,
                    answer: answer
                };
            } else if (type === 3) {
                for (let subjectOption of item.selectOption) {
                    const opt = formatString(subjectOption);
                    options.push(opt);
                }
                answer.push(item.answer);
                return {
                    question: formatString(item.content),
                    options: options,
                    type: type,
                    answer: answer
                };
            }
        });
    }
    function parseDanWei(pro) {
        return pro.map(i => {
            const type = getQuestionType(i.ttop010);
            const question = i.ttop011;
            const options = [];
            const answer = [];
            if (type === 0 || type === 1 || type === 3) {
                options.push(...i.ttop018.length > 0 ? i.ttop018.split("$$") : [ "正确", "错误" ]);
                answer.push(...i.ttop022.split("").map(item => {
                    return options[item.charCodeAt(0) - 65];
                }));
            } else if (type === 2 || type === 4) {
                answer.push(...i.ttop021.split("$$"));
            }
            return {
                question: question,
                type: type,
                answer: answer,
                options: options
            };
        }).filter(i => i);
    }
    function parseYxbyunExam(problems) {
        return problems.map(item => {
            const type = getQuestionType(item.bigName);
            return item.smallContent.map(item => {
                let answer = [];
                let options = [];
                if (type === 2) {
                    answer.push(item.answer);
                    return {
                        question: formatString(item.content),
                        options: options,
                        type: type,
                        answer: answer
                    };
                } else if (type === 0 || type === 3 || type === 1) {
                    let answer = [];
                    let options = [];
                    for (let subjectOption of item.question.optionList) {
                        const opt = formatString(subjectOption.questionContent);
                        options.push(opt);
                    }
                    if (type === 1) {
                        item.question.questionAnswer.split(",").map(i => {
                            answer.push(options[i.toUpperCase().charCodeAt(0) - 65]);
                        });
                    } else {
                        answer.push(options[item.question.questionAnswer.toUpperCase().charCodeAt(0) - 65]);
                    }
                    return {
                        question: formatString(item.question.questionTitle),
                        options: options,
                        type: type,
                        answer: answer
                    };
                }
            });
        });
    }

    WorkerJSPlus({
        name: "exam2_euibe_com_exam",
        match: location.hostname === "exam2.euibe.com" && location.pathname === "/KaoShi/ShiTiYe.aspx",
        root: ".question",
        elements: {
            question: ".wenti",
            options: "li label span",
            $options: "li label"
        },
        wrap: obj => {
            obj.type = getQuestionType($(".question_head").text());
        },
        finished: need_jump => {
            $(".paginationjs-next").click();
            return true;
        }
    });
    WorkerJSPlus({
        name: "lzwyedu_jijiaool_com_exam",
        match: () => {
            const pathMatch = location.pathname.includes("/learnspace/course/test/") || location.pathname.includes("/Student/ExamManage/CourseOnlineExamination");
            const matchHostArr = [ "lzwyedu.jijiaool.com", "cgjx.jsnu.edu.cn", "learn-cs.icve.com.cn", "nwnu.jijiaool.com", "lut.jijiaool.com", "learn.courshare.cn", "cj1027-kfkc.webtrn.cn" ];
            return pathMatch && matchHostArr.includes(location.host);
        },
        root: ".test_item",
        elements: {
            question: ".test_item_tit",
            options: ".test_item_theme label .zdh_op_con",
            $options: "label input"
        },
        wrap: obj => {
            obj.question = obj.question.replace(/该题未做$/, "").replace(/^\d+\./, "").replace(/^\d+、/, "").replace(/[((](\d+\s?(\.\d+)?分)[))]$/, "").replace(/^((\d+.(\s+)?)?)[\[((【](.*?)[】))\]]/, "").trim();
            obj.type = getQuestionType(obj.$item.prevAll(".test_item_type:first").text());
            if (obj.type === 3) {
                obj.options = [ "对", "错" ];
            }
        }
    });
    WorkerJSPlus({
        name: "zzx_ouchn_edu_cn_exam",
        match: location.hostname === "zzx.ouchn.edu.cn" && location.pathname.includes("/edu/public/student/"),
        root: ".subject",
        elements: {
            question: ".question span",
            options: ".answer>span>p:first-child",
            $options: ".answer>span>p:first-child"
        },
        wrap: obj => {
            if (obj.$options.length > 1) {
                obj.type = 0;
            }
        }
    });
    WorkerJSPlus({
        name: "zzx_ouchn_edu_cn_exam",
        match: location.hostname === "zzx.ouchn.edu.cn" && location.pathname.includes("/edu/public/student/"),
        root: ".subject",
        elements: {
            question: ".question span",
            options: ".answer>span>p:first-child",
            $options: ".answer>span>p:first-child"
        },
        wrap: obj => {
            if (obj.$options.length > 1) {
                obj.type = 0;
            }
        }
    });
    WorkerJSPlus({
        name: "havust_hnscen_cn_exam",
        match: location.hostname === "havust.hnscen.cn" && location.pathname.includes("/stuExam/examing/"),
        root: ".main .mt_2 > div",
        elements: {
            question: ".flex_row+div",
            options: ".flex_row+div+div .el-radio__label,.el-checkbox__label",
            $options: ".flex_row+div+div .el-radio__label,.el-checkbox__label",
            type: ".flex_row .mr_2"
        }
    });
    WorkerJSPlus({
        name: "www_zygbxxpt_com_exam",
        match: location.hostname === "www.zygbxxpt.com" && location.pathname.includes("/exam"),
        root: ".Body",
        elements: {
            question: ".QName",
            options: ".QuestinXuanXiang p:parent",
            $options: ".QuestinXuanXiang p:parent",
            type: ".QName span"
        },
        wrap: obj => {
            obj.question = obj.question.replace(/\([^\)]*\)/g, "").replace(/\【.*?\】/g, "");
            obj.options = obj.options.map(item => {
                return item.split(">").pop().trim();
            });
        }
    });
    WorkerJSPlus({
        name: "xuexi_jsou_cn_work",
        match: location.hostname === "xuexi.jsou.cn" && location.pathname.includes("/jxpt-web/student/newHomework/showHomeworkByStatus"),
        root: ".insert",
        elements: {
            question: ".window-title",
            options: ".questionId-option .option-title div[style^=display]",
            $options: ".questionId-option .option-title .numberCover"
        },
        wrap: obj => {
            obj.type = {
                1: 0,
                2: 1,
                7: 3
            }[obj.$item.find(".question-type").val()];
            if (obj.options.length == 2) {
                obj.type = 3;
            }
        }
    });
    WorkerJSPlus({
        name: "czvtc_cjEdu_com_exam",
        match: () => {
            const pathMatch = location.pathname.includes("/ExamInfo") || location.pathname.includes("/Examination");
            const matchHostArr = [ "czvtc.cj-edu.com", "hbkjxy.cj-edu.com", "bhlgxy.cj-edu.com", "hbsi.cj-edu.com", "czys.cj-edu.com", "hbjd.cj-edu.com", "xttc.cj-edu.com", "bvtc.cj-edu.com", "caztc.cj-edu.com" ];
            return pathMatch && matchHostArr.includes(location.host);
        },
        intv: () => {
            return $(".el-container .all_subject>.el-row").length;
        },
        root: ".el-container .all_subject>.el-row",
        elements: {
            question: ".stem div:last-child",
            options: ".el-radio-group .el-radio__label,.el-checkbox-group .el-checkbox__label",
            $options: ".el-radio-group .el-radio__original,.el-checkbox-group .el-checkbox__original"
        },
        wrap: obj => {
            if (obj.$options.length < 3 && obj.$options.eq(0).attr("type") === "radio") {
                obj.type = 3;
            } else if (obj.$options.length > 2 && obj.$options.eq(0).attr("type") === "radio") {
                obj.type = 0;
            } else if (obj.$options.length > 2 && obj.$options.eq(0).attr("type") === "checkbox") {
                obj.type = 1;
            }
        }
    });
    WorkerJSPlus({
        name: "learning_mhtall_com_exam",
        match: location.host.includes("learning.mhtall.com") && location.pathname.includes("/rest/course/exercise/item"),
        root: "#div_item",
        elements: {
            question: ".item_title",
            options: ".opt div label",
            $options: ".opt div input:not(.button_short)",
            type: "h4"
        },
        ignore_click: $item => {
            return $item.prop("checked");
        },
        wrap: obj => {
            if (obj.type === 0 || obj.type === 3) {
                obj.answer = $(".div_answer").text().match(/[a-zA-Z]/).map(i => {
                    return obj.options[i.charCodeAt(0) - 65];
                });
            } else if (obj.type === 2) {
                obj.answer = $(".div_answer").text().replace("参考答案:", "").split(",");
            }
        },
        fill: (type, answer, $option) => {
            if (type === 2 || type === 4) {
                $option.val(answer);
                $(".DIV_TYPE_BLANK .button_short").click();
            }
        },
        fillFinish: () => {
            if ($(".opt+div+div input:eq(1)").val() === "下一题") {
                $(".opt+div+div input:eq(1)").click();
            } else {
                $(".button_short:eq(2)").click();
            }
        }
    });

})();
//安全网址请填写在上方空白区域
// ==/UserScript==
(() => {
  //  var token = 'dampmQGPizKmgwAI', //因为淋过雨,所以想替学弟撑把伞。
   var token = GM_getValue('tikutoken'),
        jumpType = 1, // 0:智能模式,1:遍历模式,2:不跳转,如果智能模式出现无限跳转/不跳转情况,请切换为遍历模式
        disableMonitor = 0, // 0:无操作,1:解除多端学习监控,开启此功能后可以多端学习,不会被强制下线。
        randomDo = 1, //将0改为1,找不到答案的单选、多选、判断就会自动选【C、ABCD、错】,只在规定正确率不为100%时才生效
        backGround = 0, //是否对接超星挂机小助手,需要先安装对应脚本
        //-----------------------------------------------------------------------------------------------------
        autoLogin = 0, //掉线是否自动登录,1为自动登录,需要配置登录信息(仅支持手机号+密码登陆)
        phoneNumber = '', //自动登录的手机号,填写在单引号之间。
        password = ''; //自动登录的密码,填写在单引号之间。
    //-----------------------------------------------------------------------------------------------------
    var host = 'http://14.29.190.187:54223/',
        rate = GM_getValue('unrivalrate', '1'),//倍速
        accuracy = GM_getValue('accuracy',80), //章节测试正确率百分比,在答题正确率在规定之上并且允许自动提交时才会提交答案
        ctUrl = 'https://cx.icodef.com/wyn-nb?v=4',
        getQueryVariable = (variable) => {
            let q = _l.search.substring(1),
                v = q.split("&"),
                r = false;
            for (let i = 0, l = v.length; i < l; i++) {
                let p = v[i].split("=");
                p[0] == variable && (r = p[1]);
            }
            return r;
        },
        getCookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift(),
        isCat = GM_info.scriptHandler == 'ScriptCat',
        _w = unsafeWindow,
        _d = _w.document,
        _l = _w.location,
        _p = _l.protocol,
        _h = _l.host,
        //isEdge = _w.navigator.userAgent.includes("Edg/"),
        isFf = _w.navigator.userAgent.includes("Firefox"),
        isMobile = _w.navigator.userAgent.includes("Android"),
        stop = false,
        handleImgs = (s) => {
            imgEs = s.match(/(<img([^>]*)>)/);
            if (imgEs) {
                for (let j = 0, k = imgEs.length; j < k; j++) {
                    let urls = imgEs[j].match(
                        /http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+/),
                        url;
                    if (urls) {
                        url = urls[0].replace(/http[s]?:\/\//, '');
                        s = s.replaceAll(imgEs[j], url);
                    }
                }
            }
            return s;
        },
        trim = (s) => {
            return handleImgs(s).replaceAll('javascript:void(0);', '').replaceAll("&nbsp;", '').replaceAll(",", ',').replaceAll(
                "。", '.').replaceAll(":", ':').replaceAll(";",
                    ';').replaceAll("?", '?').replaceAll("(", '(').replaceAll(")", ')').replaceAll("“", '"')
                .replaceAll("”", '"').replaceAll("!", '!').replaceAll("-", ' ').replace(/(<([^>]+)>)/ig, '')
                .replace(/^\s+/ig, '').replace(/\s+$/ig, '');
        },
        cVersion = 999,
        classId = getQueryVariable('clazzid') || getQueryVariable('clazzId') || getQueryVariable('classid') ||
            getQueryVariable('classId'),
        courseId = getQueryVariable('courseid') || getQueryVariable('courseId'),
        UID = getCookie('_uid') || getCookie('UID'),
        FID = getCookie('fid'),
        jq = _w.top.$ || _w.top.jQuery;
    _w.confirm = (msg) => {
        return true;
    }
    setInterval(function () {
        _w.confirm = (msg) => {
            return true;
        }
    }, 2000);
    if (parseFloat(rate) == parseInt(rate)) {
        rate = parseInt(rate);
    } else {
        rate = parseFloat(rate);
    }
    try {
        _w.top.unrivalReviewMode = GM_getValue('unrivalreview', '0') || '0';
        _w.top.unrivalDoWork = GM_getValue('unrivaldowork', '1') || '1';
        _w.top.unrivalAutoSubmit = GM_getValue('unrivalautosubmit', '1') || '1';
        _w.top.unrivalAutoSave = GM_getValue('unrivalautosave', '0') || '0';
    } catch (e) { }
    if (_l.href.indexOf("knowledge/cards") > 0) {
        let allowBackground = false,
            spans = _d.getElementsByTagName('span');
        for (let i = 0, l = spans.length; i < l; i++) {
            if (spans[i].innerHTML.indexOf('章节未开放') != -1) {
                if (_l.href.indexOf("ut=s") != -1) {
                    _l.href = _l.href.replace("ut=s", "ut=t").replace(/&cpi=[0-9]{1,10}/, '');
                } else if (_l.href.indexOf("ut=t") != -1) {
                    spans[i].innerHTML = '此课程为闯关模式,请回到上一章节完成学习任务!'
                    return;
                }
                break;
            }
        }
        _w.top.unrivalPageRd = String(Math.random());
        if (!isFf) {
            try {
                cVersion = parseInt(navigator.userAgent.match(/Chrome\/[0-9]{2,3}./)[0].replace('Chrome/', '')
                    .replace('.', ''));
            } catch (e) { }
        }
        var busyThread = 0,
            getStr = (str, start, end) => {
                let res = str.substring(str.indexOf(start), str.indexOf(end)).replace(start, '');
                return res;
            },
            scripts = _d.getElementsByTagName('script'),
            param = null;
        for (let i = 0, l = scripts.length; i < l; i++) {
            if (scripts[i].innerHTML.indexOf('mArg = "";') != -1 && scripts[i].innerHTML.indexOf(
                '==UserScript==') == -1) {
                param = getStr(scripts[i].innerHTML, 'try{\n    mArg = ', ';\n}catch(e){');
            }
        }
        if (param == null) {
            return;
        }
        try {
            vrefer = _d.getElementsByClassName('ans-attach-online ans-insertvideo-online')[0].src;
        } catch (e) {
            vrefer = _p + '//' + _h + '/ananas/modules/video/index.html?v=2022-1118-1729';
        }
        GM_setValue('vrefer', vrefer);
        GM_setValue('host', _h);
        var base222 = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAG0CAIAAADRo5UsAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAABb3JOVAHPoneaAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI1LTAzLTE1VDEyOjAyOjU2KzAwOjAwyyq+kAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNS0wMy0xNVQxMjowMjo1NSswMDowMIufHLEAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjUtMDMtMTVUMTI6MDI6NTYrMDA6MDDtYifzAAAAWmVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAAhMAAwAAAAEAAQAAAAAAAAAAAEgAAAABAAAASAAAAAEfUvc0AACAAElEQVR42uz993cbydUuCu+q7kYOBEESzJkUJSZRcaRJ9mv72Oeu995z3vWd83eedde997V9ZjyepJnRaJQDKYlizgEgiIzurvp+eIBSEQySKGmkkblt0xQINKqrq3bt8Oxns7a2tlwuFw6H0+m0ZVmWZRmGUSwWPR4PnciJnMiJ/CtJuVwmIp/PVywWGWOBQMAkong83t3djZeIyDRN13WllO96tCdyIidyIr+2GIbh8XjW19c3Nzdt2zY9Hs/AwMCf/vSnUCjEGHMcB/ajYRjveqgnciInciK/qriuyzmXUt68efOHH37Y2NgwTdPs7Oz87LPPurq6LMsqlUpQjidW5ImcyIn8q4lhGJzzYrHIOZ+enk6lUqaU0uv1xmKxhoYGWJFQonC6T+RETuRE/nUEes/v90ciEcMwGGMm/s913XK57PF4pJSc83c9zhM5kRM5kXcgtm2LqriuyxgziYhzbhhGRWWa5rse5ImcyImcyLsRy7Jc1xVCcM6FEFJKbtu2lNI0TShHx3EcxykUCu96qCdyIidyIu9MhBC2bbuuaxqGgX9AccKQNE1TCMEYO4lInsiJnMi/jkgplT/t8XgYYydhxxM5kRM5kUPlREWeyImcyIkcKicq8kRO5ERO5FA5UZEnciInciKHyomKPJETOZETOVROVOSJnMiJnMihcqIiT+RETuREDhXOOXddF79Rlb1CCPGuB3Yiv5LIqhz7CvpqQemB/qJ6hY61rvYPT//dtu39Vy6VSvgFnH6vScjy+vNzIr85YZqclBv+q4ja5G+8HADqiXMOVWgYBhilyuWyEALUKSjiYoy9KgMAY6xGPWH8oBQwDMNxHKhCMAwYhqGKaN9I7cNJ9cS/uJyoyH85gcZRO//1VQDnHOxQjuN4vV7XddfW1nK5XDqdJqLGxsb6+nqUbB2Pyh5asoZ9Skq5u7ubTqeTyWSxWPT7/fF4vK6uLhAIKKrTE0KWE3l9OVGRH7gohVijCmsU5esILoKfpVJpaWnpl19+efLkSTqd5pz39vaOj4/39vY2NDS8zlfotqQQolQq3b9//8GDBzMzM/l8Ph6PDw0NjY2NdXR0hMNh3OCbMgClJic8L/9qcvK8P3A5TFO8KQ0ipYQ3DQ2yubn5008//ed//uf9+/eLxSIRdXV17ezs+P3+urq619Ev+oBt215eXv7666+/+eab2dnZYrFYV1c3PDyczWb/+Mc/hsNhkFmBagCULa9jUZ742v/KcqIi/+VEzz+8kc0PxxaV/2trazdu3Lh+/frKyoqU0rbtZDJZX18/MjLS1dWlCKVeR8Bt+uzZs9u3bz98+HBra8txnLW1tUwmE41GR0dH29ralNUJ5XiMZEsNjcsJpcu/rJwEaz5wAXsTfhdCOI5TLpfL5fKbStHqioMxtrm5OTMzk0wmS6USDMxUKrWwsLC0tJTNZo9hyu1PgkNFLi0tra2tFQoFvMFxnK2trZWVFWhMNbA3dRKoqXsjk3YivyE5sSL/VQQKCxAcOKH7cyDHEMdxTNO0bRtp652dnWQyCS5SqCopZSqV2tzczOVybyR/grtIpVL5fN51XYUochynWCxms1nXdS3L0kFsx7hHNVSwT6t5O2me/K8mJyryX0IQmysWi5ubm8vLy9vb27ZtNzY2tra2tra2BoNB13Vt2/b5fK96ZXjZlmUREXRTKBQiIsYYfFXDMHK53ObmJkKTNQ7sC1WY+hMAvGjgubu7m81my+UyVDMMSXjxfr/ftu1QKKTCkXQsFYnvKhaLq6ur6+vryWTScRy/3z80NBSLxQAw8nq9eCdS+e/6IZ/IW5ETFfmBi0IjFovFmZmZn3/++e7du6urq1LKtra2kZGRS5cunT59+tg7XNc+nHOv1+vz+UBKCisVyrdUKpXLZRQp1Ciso/WX8pfVBWFF5vP5QqGAiIHi0HccR29urCKSxzCW0Qp0cXHx2rVrv/zyy+rqqmEYsVjs6tWr58+fHxoagvKFxj/Rjx+wnKjID1ygNTjnpVLp2bNn//znP3/88cdUKiWESCQSm5ubwWCwpaWlqakJ2ud4vjB0EGMsEAgEg0F1ESivcrms1BntVVgvqbmQNMf7XdctFoulUqlUKkHnIp9uGIZlWZZl6Rc/dsgVJuTs7Oz333//9ddfr6+ve73eaDSaTqcDgUBnZ2ckElFNTn7NB3oiv7KcqMgPXKAmhBC5XG5lZWV6enplZYWISqWS4zjBYHBwcHBkZCQajaqqmGN8i7JVA4FAIBBQ7rNlWbZtl8vlfD5fLpdfR2dRNT4IE7JYLOp1jaiuCYfDPp9PT2Ef++sYYzs7O0+ePHn48OHy8nKpVCoWi7u7u7FYbGVlZWdnB8ayZVlI3CPUcCIfnpwcgB+4mKaJ9ui5XC6ZTG5vb6sS5nw+v7KyMjMzs7q6Cr/yGIgc6CAoL8ZYMBgMh8PK4oNORBYll8upr37V68MwxLe4rlsqlTKZDK6GvBP+ChsWcMiaK7yqeDwe13UzmUw6nS6VSgAGOI6TyWQKhQJ6Pem3+dYf5Im8IzlRkR+4wIRUmRPsamV/5fP5tbW1jY2NYrGow4Ne6frqF8ZYJBJpamqqq6uD8+s4jopIwt1+1etD2ekIHvyirEg1bDjCoVCoxqA7dtbe5/PhgvDukbv3eDwejwcZczWNegD0RD4wOXG0P3BBtA6p3lgsFo/HPR6P4zgorC6XyxsbG6urq5lMprGx8RgGUQ0usq6urq2tra2tbXV11bZtKJFwOByLxYLBIAKFNaXWL/ONsEYdx4FuMk0zEol4vV5AfJAwaWpq6urqUlbksRM1kHw+b1lWR0fH8PDw7u5uMpm0LCsYDJ49e7ajoyMQCEBvKp6Od/N0T+Tty4mK/MBF+c4ejycYDIZCIY/HAwg0lM7W1tbGxkY2m1UQmVcSHb4DV7ehoaGpqUnhBw3DiEajILMAHqhGjtZiCt4IOw76yLKsRCIRDoe3t7cRPw0Gg4lEoqurC409X3/evF5vIBAYGRlJJpPRaHRzc5OIAoHAhQsXBgYGYFpiMCeO9octJyryHYsydqBiDttsr1klAsxje3t7Q0MDoIUqv1woFObn51dXVwcGBkDT8KrfAg8UuEWfz3fmzJk//vGPxWJxenoa+gXQoo6Ojv3a5CW/C9WNhmEgCHj69Onh4eHNzU3DMLLZbCgU6u3t/eMf/zg0NFRfXw+7Elc+dr0jnkhra+sf/vCHwcHBZDJJRF6vt6+vD6ktlRQ63kNRte1qDjFalTHTg7wn8g7lREW+Y9Fpcqi6c5S6hIOpNvwx3EbsNCC64/F4Y2NjOBzO5/MquVwoFFKpVCqVKhQKx8P3qbHBymtqahoZGcnn82fOnCkWi+FwuKOjY3R0NBaLvaa1BcMN3vqFCxe8Xm9bW1smkwkEAh0dHePj44lE4k0ZdNCtXq8X5qpt2+poCQQCCipPxz29cC8quqpCtwdWheMQeiP3dSKvKifz/n4JUis6+6xubhxj/yuFaxhGOBxubm6OxWKrq6tU5b4tFotra2tLS0tAtNBx43fqI4FA4MyZM9FoNJvNEpHP5wuFQg0NDX6//xgTUjMSgNINwzh16lRDQ8Pp06dzuZzP54vH4/F4PBAIkEYZ/ToPwrZtlUYPhULKwPf7/cqyU1/0OtAiVW6E39UX4XW87YTz/B3KiYp896JYu6GwisWi67oIHerWyvHSptCDUJRer7e5ubmpqenx48eq0EVKmUwml5eXd3Z2uru7X/X6etMClUqG54uuCdDOwA9CWb/mdCkl0tDQEIlEkMPxer2YwDdlRe5Pi4PbHNacKm8/9tehwBG3Axg8YgjBYNDr9cKotG0bcY8T0OU7lBMV+e5Fwf2SyeTi4uLq6mo2mw2Hwy0tLR0dHXV1dUq/HG9DYr8BtIiibL/fj64JUCv5fH51dRUcOdiTL/9duoGD8BwElYjKhn1N/ag7s6oMkTHm9/uhaKC/lCp54/kTmK74XY+EkKYuX/WaOBp3d3cXFhbm5+dzuZxlWV1dXW1tbYlEwjAMMGicuNjvVk5m/70QKeX29va9e/d+/PHHycnJVCrV1NTU399/5cqV8+fPv2YUTxXJ+Xy+5ubmlpaWUCiUyWSw1Q3DKJfLa2trKysrmUwmFovt3/BHqABoCvUVeBtMV+RwlLUFpNHrTxREQZcUHgg++Jt6IuVyGfYvadhMjL/mLo7nBePc2tnZefjw4bVr1+7du5fJZDwez9mzZy9cuHD58uVYLGZZFlT/Scb8HcqJinzHohhllpaWfvzxx7/+9a9Pnjwpl8uRSGRubo5zjughHTdEiD0GVcU5r6+vb29vb25uBpmYEMKyLKjIpaWl7e1tfJcuL1QB0IDKc6yBeatA6usYRDU13bg4tIxS9EcEIo4xdTrp2RFXVkGSV70jjHx9ff3HH3/8z//8z6dPn6KGZ2VlRQjR2toaCAQUgOmkEvwdyomKfMei1Mf29vbs7OyzZ8+2t7e9Xi8qqZ89e7a+vt7X1+f3+3WMyKten6rhf/jvbW1taPlC1YzBzs7O9vZ2JpNRH3xJtaKSrTrBorK/EMI7dq7pwJEoaw4jx/XfRrSuJm+mBqPUYg1w55UEgdpUKjU1NfXo0aOtrS141uVyub+/f3V1taWlJRKJ7Afbn8ivLCdH0zsWoLhd193d3d3Z2UFsHtXHuVyuUCgoErDXDOTBoeacw4qMRqP4K9IdxWJxcnIynU6nUinVzpA0HxP6Qi8BrOlaoxM7kla1rcyxY5PR7lcQ6hUAcV6opI6nYqDoa6Zd1XFCdR4DRgoBDzFq58GkiQSa4ziFQgELAErzJJ39buVERb4XYhhGMBhE8ZzaEj6fT71y7H2id6oxTdPn89XV1bW0tHg8Hmx+IYRt28ViMZVKraysYKOiPFG/wrueoQ9NoH99Pl8kEkE5IxGZpomqHr/fD+V7Yj++czlxtN+xQBOhxLi7u7urq8swjEKhEAwGu7q6+vr6YrGYsmWOEZPSm1DD6gmHw21tbZFIxDRN1YzFtu3t7e2nT59+9NFHTU1NpFX+nezStyEwz+vq6vr6+gYHBz0eTz6f9/v9bW1t3d3djY2NPp9PqUgVrDiRX19OVOQ7FhiJlmW1tbWdP39eSrmyspLP5+vq6jo7Oy9fvtza2qpc1ONZc6p1AdSlZVnxeLy+vt7n8+kcjplMZn5+fm1trbm5WS+mPlGRb0NQaJhIJD766CMp5bNnz5LJpMfj6e/vv3DhQktLC6KrKl1zoiLflZyoyHcv2ADxePzcuXONjY2oBQwGg01NTT09PfF4XL3z2OFI5cfBHonFYolEwufz7e7uqssir726utrf3w+aBtJKyN/1JH1ogqMxEomMjY3FYjG0x/F4PIlEor29va6ujjSn4eSUeodyoiLfvaAmxDTN1tbWeDxu2zayNIFAIBKJEBFKd98I7g/xr6ampvb29nA4vLW1hUw3ajw2NjbW1tZQOKjkdRo2nMhhooCi4XC4r6+vs7Mzn8+DjBLVNXoB4gl6/B3KydS/e1FxRiIKBoNEpJoI4g1wylSRzCtdHNpN99S8Xm88Hu/u7q6vr0fLAQQry+UyynvQBVtRWpyYMG9JVD2+StGgsSLkzSLhT+TYcmIavHtBFYrjOKpflaoFrpFjOLwqmIV/wjaBIRmNRlHajD+hEnF9fX1nZ6dQKKBtNGk4xBN5s6LogaENgayiKvMmcnQAfr7rkf5Ly4kV+QqiujipnqXKS33NKyOLovDPqHhBlkZxGSCMqLdLVcXdR8TyoSLVlfGRurq6pqam3t7e27dvw82HLYNG22tra6DXVdBIPeGjX/ZXMHP06mwkl4gIZG4wjdFmS2E/3+xX63DU1wGKHyg1cUaVlNOX02suLR3ofmDpPRyUE3P1CDlRkS8Q0ORAxajtofatquFVzfneVNhI4bdd10VDK8dxfD4fGqe8ZitBIorH452dnYlEYmdnB0WK8LjRvgo9r5X217tl/cqi3ylabm1tba2srKysrBSLRa/X297e3tnZGY1Gj6dNbNvWa4EUCFRRbyiCXp3J4v0Xpd/VmBVflF40eaIcXygnKvIFovOe6kSBKErBP9Ub3mBYXXWy39nZQe8EKWUsFmtsbIzH436//1VbUddIQ0NDf39/c3Pz06dPFeVPuVzOZDLonKVzF4Ik4p3MP1VrezD52Wz24cOHt2/fvnnzJoCEY2Njn3766fDwcDgcFkK8ag2PHvKrgWr/pukadT5m3IJ+DKi3qZPgRFceJicq8sWynz2fqq4r1tbbUB+2bUspl5eXb9y4cfv27YWFBcuympubL168ODw83NPTg3TKsXev3+9vbW1taWnx+Xz5fF410UZS9dh1dW9JVB/H+fn5a9euffPNN/fv3wer5urqKpCefr//GLOhzOSaxhh6El/Xle/VtBw9Y4pgibTDG55BzUT9hu7r15cTFfliUdhAKBFU7KGlMhHV1dX5fD7Fx/WmMhtInkxNTf3973//4YcfkskkitUymQyaWyH7eWw4jpSypaVlZGTk4cOHs7OzxWIRtYn9/f1NTU2BQABK8513UFF1QVLKXC43Ozt7586du3fvbm1teb1eKeWjR4/a29vPnTvX1dV1PDILmMx6VAGPUtWh6+WYvxUpl8uWZdm2Dda7QCDg9XqFEF6vt8bAfP2gzYctJyryxaJCUSCnymQyKysrjx8/3t3dtSyru7u7u7sb9Xxv8Cj2er3b29tzc3NTU1NLS0tCiGKxmE6n7969Ozw8XCwWlcd0vPXNGEskEleuXNne3v755583NzeDwWBHR8fVq1d7enp8Ph9pm+cdmhjKGmKMlUqltbW15eVlHE7o9pVMJpeWljY3N3Wg0ssLjCy42zgFEX2Gw66Scr+5ckzDMNbX12dnZ5eXl8vlckNDQ3d3dyKRQAId79F7Qrzr8b6/cqIiXyx6rKpcLk9NTV27du3atWvFYtE0za6urosXL54/f76jo+MNYtlw/qdSKQQHVWO83d3dUqmkCGCOXbsNm+LUqVNSyt7e3u3tbdTzjIyMtLW1ITQJ6+kNdjt4nclHQimZTKbTabziOA7MPZwfYMd5VcHHC4XC1tbW5uZmJpMBuqCrq6u+vj4cDitr+rdlbaVSqevXr3/zzTezs7P5fD4ej1+9evXjjz/u6+tDe7Lf1u28QzlRkS8r0ErJZPLevXt//etfEQuzbTsej+/u7obD4XA47Lou6mFeXwzDME0zFArV1dV5vV7Q34IARsXdlQd6DEJvwzBKpVIgEDh79mx/f3+xWLQsy+PxxGIxJI7R8RVvfofWE74XkdlSqZTJZHK5HMbjOI6U0u/3Q5GpjMSrXt+27bW1tTt37ty+fXt5eZmIgsHgZ5991tfX19/fH4lEVIzyN+RuP3ny5Icffvj6669RLmWaZi6X8/v9LS0tpmnqBeAncrScqMgXCzw4znk+n9/e3p6cnHz27BmyBIZhLC4u/vTTT4ZhOI7zH//xH1SF76nmTfQSVt6BlIjBYLCzs7Ovr29ubq5cLofD4Xg8fvbs2ebmZtUBiva2VXl5cV0X/QKJCBXBusB+RBdA1a72nUw+pg5hte3tbRSVQ2PKav9boLKCweDxqo+KxeKTJ0/+9re//fTTT+jNHQwGt7a2/sf/+B+9vb3wRhW6633D/ShnWb0Cart0Ov3w4cPFxcXt7W0iMk3z3r17AwMDIyMjY2NjpAHUFNr3RA6UExX5YtHJYpGuKRQKRISkjZRyYWEhEok0NTV1dnYODg56vV4FPVGhrlf9Us55Q0PD0NDQ1taWaZrr6+t+vz8ajf7pT38aGxuLx+NwgfHmYzjayhTFP5W2BU4QolIW77bJlMqSqYo9KE0w0aLJVygUAtb9VXe767rpdHphYWFmZmZlZSWbzXLOd3d3nz17Njc3t7W1BSzq24MuvKbsP70QPC0Wi7Zt61Nn23Yul1M8ofoV3vVNvNdyoiJfLGpjYGciker3+6FNyuVyLpebm5t78OABCp+bm5uVxkFl4TH0Cyyj3t5eZITS6TTaxg4ODtbX17+RVV4DIYYWqMEVvvOIFU4C1OFhqguFAl7BG6C+sfOPNw+gE97c3Nzd3YWdCL2ZzWZt2wZKAQHZ91BFKqk57UzTRFhGTaPf7/f5fIFA4ERFvpKcqMgXi8pmmqYZDAbRRBB7VRXSbmxsPHr0qL6+vqurC7hu13XRov549hdQOF6vt6urKx6Pl8tlNCHABfX+MHSsGBksC33P616qSgfhxXfLNKOyrtCSKLhUFrSixqFjQfcNwwgEAtFoNBwOo+4TExuNRuvq6kKhkF70+f4zHkGPW5bV2tra39+/srLi9XrL5XIwGBweHh4ZGQmHwzWH4omKPFpOVOSLRfELcM5DodDAwMD58+d3dnZyuRxsPYTGVlZWbt682dHREY1Gg8Ggqgk5XvUCgNDQYpFIRF0EPIP61Y7Ns6sni3GD0IyIHqiq3nerH2tQR3rrGPwpGAwmEoloNHo8E09KCervoaGhzc3NjY0NwzD8fn9fXx/aEMJXAJzoHRZiHjH+mnp5PK+Ojo4rV674/f719fVCoRAIBEZGRi5evIiVSZp/8J4r/XcuJyrypUQZXD6fb2Bg4JNPPpmZmdnZ2UmlUopFwrbtlZWV7777rqOjo62trbGx8XVwhao99H47tEY/HtsKgBJHHAC2UqFQyOVyQM8EAoFAIPDOmQpV/RzCaj6fD8EN9QbAORsbG5FfOkYsEuGLzz77zOfzLS8vc87r6uouXbo0NDQUDoff7e0fT0zTrKuru3jxYldXF9wdznlra2t3d7eCju6vsTmRA+VERb5Aak5pxlhbW9vExMSjR4+2t7eVQoEkk8nJyclvvvmmsbHx8uXLDQ0Nr1OYcWCPZuX/vmbVh/q4usH19XXkKHZ3d6WU8NRaWlrC4fCxmxe+EYGLbZpmQ0NDT09Pe3t7Pp8HwUcoFOrt7QV0n46bFkODhI8//ri7u3t7exvdxltbW5ubm1E39T43s64pJNd7Q7a3tzc1Nbmui5whKJEsy9LZ1U687BfKiYp8gehmGrzdQCDQ2tr6hz/8ASpybm4OQX14qVtbW9evX29qakIZH+KSx25Sqow4VWmrNLW+XY9XWKK+hYgymcyDBw++++47VNoQ0ZkzZ373u9/BEgHS+F3NP44Kn8/X2dk5Njb27NkzDNjv9zc2Nk5MTHR2dkKJH0OFYYa9Xm9HRwdCzESkGlirVBtCt++ziqSqEldceWh4CYIo3AXQrwd+9kQOExPns6IjVKHck+mDYEJU71aowlgsNjQ09G//9m/JZHJnZ2dzc1OR5biuu7Ozc/fu3fb29lgs1tPTc2x3Rt+QRzu8x9CP6MTg9XqRHc5kMrdv3/7qq68eP36cSqU8Hg/ox9FRVgUTDrNZDhMApIBnRCS3rq7O7/fj1nDNF/JdKkyiZVkTExNer3diYmJ+fj4QCLS1tZ05c6a5uRm0xEeHHVTWRWGDVLQXj1UIUV9fr/5UM13vVj8etopqorTqdwUO13UiagHe57z8eygnVuQxJZFIDA0NnTt3bmVlpVAo5PN5tQNhWt64caOlpSUSiTQ3N7/rwR4gqjUKMvLpdHptbW1tbS2Xy6Gwr1Qqzc3NTU9PDw8PNzQ01Hz8hcoRhkwymXzy5Mnk5OTq6ioRRSKRTz75pLe3t66uDscJEi9H4KL0P/l8PlATdXZ2YvyBQKChoeFlIoYK3amrEl1XopwJ8Vnbtt9tbOEIObFdfmU5UZEvJeoMVxkYj8fT29t76dKl1dXVVCqFAhi8p1QqLS0tSSnr6+vRzU7ZTe+PqFQ1dFk2m02lUul0GnhsWMTLy8tTU1MXLlxAKfcrcYIBhb6wsPDtt99eu3ZtaWmJMRaJRNLp9J/+9KezZ89iGjEzR/QeqPkiy7KampoaGxsRi9StJJ38+MDrqEdQ84vimlUvAvr6rh/Ri2fjRH4FOVGRL5D9W0WxzPr9/oGBgUuXLm1sbGSz2fX1dWw2mEXr6+v37t07c+ZMe3t7W1vb+2aVQCOABwwGFKDFCPx5vV6YxvPz83Nzc+l0GgjBl7++bdupVOrBgwf//Oc/f/nll52dHcMw0Hu2ra2tt7c3EonoZUuHXUcnbVRdBDDPOiO6AgO9zNhUYFcvElV/ej/7atUExFXW7p1DDj54OZnfYwocvcbGxnPnzqVSqe3t7UwmgwpiKJ1yuTwzM3P37t3x8fGWlpZ3Pd6DBb4nkNItLS11dXXLy8uqpRT4Hebm5tbX11GlriA4L1QigIuurKzMzc3t7Owg0pfP5zc3N3d2dpBDoH39YfaLHmvT1cGrgnvgaOMXtAMiIiEEKnZs2/b5fD6fD472+8YovH9CDmxEcyJvQ05U5Atkf15CNcwSQvh8vo6OjnPnzi0tLa2urkJFYjdKKbe3t9WL76coyysajXZ1dcVisWAwiHAkbiSdTq+srGxubiIl8ko2i2oK5vF4EN9EEzGq+rb0EioSUoN/0ocBIIFiezzMWoeGVRrQMIx8Pr+xsfHkyZNkMlksFhsaGgYGBlpbW71eb6lUUixH76H8ar3VToROVORLyv4aBqqe5HC3P/30U7jbGxsbQEoipBUIBDweD4yUd30TB9yRIrPw+Xzd3d0tLS1PnjxBKzEE7zKZzPLy8tLS0qlTp7xeb42KPMKQyefzpmk2Nja2tbUVCoVUKlUsFiORSGdnZzwexwHzkmli5VrqxS3K6YaziWEc7Wir9BTipM+ePfv555+//vrrnZ2dUqnU3Nx8+fLlq1ev9vb2Kg6k91CUi/02mj6eyH45UZHHFNWy1TCM5ubm8+fPLy0tgZsP8SzLsmKxWCKRCIVCpVLp/azTgNbI5XKmaSYSiZaWFkV9BuWVy+XW1tYWFxdVW23aGxc7TEXieBgbG3v69Knf719aWiqXyy0tLYODg11dXXV1dQpnRkfycYGQTcGDYJ4rl1/xWeDjR1xHDRXG7O7u7tTU1D//+c9vv/22UCgUi8W6urpcLhcMBuvq6t7PhwVBGAQ3LoR4n4f6YYiJTY7FiiBaTcfkD1JeMo6jM/KrGkQwTQUCAaUly+VyfX39xx9/jCW7urq6ubkZDofPnTt35cqVhoaGUCj0QlzbGxm/Cgsoy+swKwOWFBQKnF/TNM+fP3///v2vv/4a9L3Yjel0OplMQlXR3iKTo9MsQoj+/v7//t//e19f3/r6umVZkUhkdHS0t7cX7rCa0iOugzeUy2Wv14uKz8XFxVKpZNt2T09PZ2en3gzyiAClXsLsOM7W1tbU1NSdO3fW1tYA8dna2rp9+/bp06evXLmCmTkCHXxY4ROr9vuuQZ6/6sM9MPgAw9kwjHQ6PT09vb6+jgZEwK4Gg8EDuyep6n4VR1ZDVXenQ1P15sA146+51L+I/CtakTXaCsGsGv5E5VaXy2W0rEEJMNZoIBBQOQ0sGr/fjyZTkUhka2tre3vb6/X29PScOnWqoaEBdWxvZPAq9EYHqVc9ufEy0EX8gpuqq6trbW2tr68PBALZbJa0MkePx7M/z3v0MVMul03TjEajQ0NDTU1NxWLR4/GAm6Ourg4ccWoAR3iL2Kuc81wuNzU1de/evQcPHuzu7vp8vt7e3osXL46OjjY2Nr4wpolqd4Xy2dzcnJ2dXVlZwUNE7NW2bXCAvpCu4sCqUCXK8T92ulm/vlJM6NWztLQEgnQcFYlE4tSpU1euXBkYGEABO1VVnlrY6jEpladOO9Io+/QusmqBYWZ0ZuXj0bL8duVfUUXWPF2FHdmvVvRXmNYhj6pqRX8lHo8PDw/39vZms9lcLsc5j0ajsVjsjQe2jlAoesOvF8aqarKikUiko6NjcHDw/v37MzMztm0jsxGLxRoaGlC+Qi/nZVNVTTDGwuGw3+9XzRTRW5FemixdGa3pdPrevXtffvnlnTt3ML1tbW27u7tgLYNGOKLKSI972ra9uro6Pz+fyWRqlMULY5o1ZYhKmcJqVm0kgKM6hhVZc30Vc4Spm06nb9269be//e3mzZsgAI5Go5cuXYpGo4lEwu/368tg/4GhA6eomlfEXSP6rAqN9LYf+8/jd0ux/CvLv8p97heFrdNRFFjl4CUExZlpmqicAXIQnjVQI7oCxQdDoVAwGIzFYliI6NxAWinL64ta92q0NSwb8qWbf8K+UMSRMCQBhvd4PMlkUkrZ0NBw/vz5oaEhy7IO8+AOG6cKFMIIVX/Ci+qVF5okKBlMpVJPnz6dmppaWVkhInBoNzU1TUxM9PT0vJAMTQ3edd1MJrO6uppMJpFqV5MWCoVCoZDH47Es62WsfhXWUIkgNbHK+H2dZ623rnVdd3d3Fx1prl+/vrCwAOBBLpebnp6enZ29ePFiIpE4MLpi2zZVcaCom4ISBMOFMjbR00adhfrdKWWK/fK+1UG8VfmXU5FKCcLzUkW76IudTqdzVSmXy1JK9LpijAWDwXg8Ho/Ho9Eo2gfq9RiwkkzThI9To1DeIPGU4qCEBsduxMVVKkMV1am+iQeK2sbK6vT7/aOjo+VyuaOjY319nTHW3Nw8NjZ26tQptXMgL/S2FIyx5m1qkOp26MiArOpflkql5ufnV1dXS6USFHqhUFA9Y2Ox2MvYpFAQW1tbS0tLqVRKDRUWaDwer6+vR6fpw57XfspuNXjQ8WKijt2ZUj909YlyHGd2dva77767du3a9PQ0KJYxyZlMZnt7G2VROPBA56N0GdYDTqxkMgkYL9pqKh4gj8djmibYhZGwAmk5LGKqmhTHpgv57cq/nIrEI2eMqSYe5XI5k8k8evRoZWVlfn5+Y2NjZ2cHpPwqouTz+YLBYH19fUdHx9DQECCEKpmIlaofs2/7LtQXqSIZhE3BDIg6maOvoGsu5fn6/f54PH7p0iWEC+AmNzY2Inp4vPuCAlIWpe4L12iBI4YK0297extdg3A1lMPDmHphrbciJC6VSqlUamNjI5PJwJ7CX71eL0ob1aF49JBIi+jhrEISCcbafoDUq4r+gMrl8s7Ozr17965du/b48WNMAlWjB5ZlwV9hVcEzhfrDMMrl8srKyvr6+pMnT5aWlhYXF3d3d5UJieWE/pdtbW1dXV1dXV3t7e3xeFyVeMLihtJ/P0mP3pL8y6lIxBCxnQqFws7OzszMzMLCwo8//ri0tLSwsIA6ZWADsRrQGgUolubm5qGhoZ6enrGxse7u7sbGRqWParytt1Tkq+s1BXzJZrO7u7vr6+tra2uu6zY2NnZ0dDQ1Nb0SGBP73Ov1JhKJ+vp69TrOEpWbesmrKVsP22//jnpJWB/MonK5nM1mkURCjE8pKa/XC7/4Jat0YEmhwkcVjBJRIBBoaWlpbm4OBAIvWYSOuyiXy6VSKZfLLSwsbG5uohS9vb29tbX1GGBY9dXqTMIR/uDBgx9//PH27dvgTMKpY5omaNx6e3vD4bAiQ1MqTHVjn5mZuX///tzc3OTk5Pr6+tbWFigFlFEP2zMUCjU0NLS2tvb29g4PD3d1dXV2djY0NMRiMZ1yyXGc962g9u3Jv5yKxJHoOE46nV5dXZ2amrp27drdu3fX1tbW19eTySRVK2fU/lF6wbKs1dXVpaWlhoaG+fn5CxcuDA8PNzc3NzU1oUme/kX7879vZPzYGMqJBsQvmUx++eWXz549e/r0qeM4/f39H3300dmzZ1tbWw/DzdVYQLhf1YEAkSnoJgXQqfn40UoE11F4bx1fopKq6sUj+C6xe23bhopUoQMUOHq93mAwqFgnjla4MDaLxWIymcxkMiqngWGoQAoSSkc8Lz3IABWZz+f/8z//89GjRzMzM1LKzs7OixcvXrx4sbW1NRqNvtLzrcFUEBFKJO/evXv79u2lpSUMtVAoINSDrhIDAwORSETPvcDQLhaLi4uLd+/evX79+p07d5aWlra2thBbR8hVsYFgJWxvb8/Pz9+/f7+5ufnJkydYSF1dXYj2IlLJ3nUvo19ZPthbVTE7PWioUhO5XO7Jkyfff//9tWvXHj58uLGxkcvldBIKHWBIRMD9lEoltKyZmZlZXV29c+fOp59++tFHH42Pj7e1tWGRKb9GdRal16O8rRG91xiu7zjO5OTk999//8MPP+zu7qJjMpiH/vjHP4bDYcStDuzkpSMc99NTohECXoGi1NXiy8T+9iMEDtxdR0wObBwgGaEudWQfqDGgIlXXs8MupWKjSPXk83mFpDFNs76+Ph6Po9ns/onaPySqtmAzTfOXX375+9//fu/eveXlZZ/Ph6CNz+fr6uo6xvNVaw+3k8lk/vf//t//+Mc/pqen8Vfw/qKBxPDw8OXLl7u6umBN27aNZl6lUimdTt+4ceOrr766c+fO48eP0SIcTjqWDcLZVF3neMTlcrlYLMKdevz48czMzKVLl37/+993d3cnEgmqJn8Ow4R+ePLBqkidIQa7AgW8QojNzc379+9/8803P/744/T09NbWVqFQwDbTOwvCQ4Q+VURnan/Ozs5ubW0Vi8X19fVsNvv73/8eyJjKtFYNJUWJ+GbvC0knDDibza6trU1PT6+srBSLRQw7GAzev3+/u7s7FovBU65R+m9bXsbq1Edy2BThHrFvcXSp8AIAqgADvhDJqINagsEguk2g3yxjDDE4eNlEVCqVjnAkddgAGJRXV1cXFxe3trbAiFEulxcWFsCS96qQL30eYD6vr69PT0+vra2hhy3+BMxpc3Pzp59+OjIy0tzcjGgD7hEnyu3bt//2t79dv359eXk5lUrhpKzJIqpHg7NHVYWCQhRsT9ggn376Kec8FosJIRCL0Af8oepH+oBVJGmYCXiR2B6lUunZs2dfffUVjmXk9WAhEpHP5wuHw+FwGA3mAYNIJpP5fL5UKiHAj7PX6/U6jgMaG9u2/X7/+Pg4wn86T4yiGnsbdwcnEZ5jNpvVW0sjhjAyMtLd3d3a2kpECqhU0xv2LckR1tyr6mgpZT6f393dLZVK6rNSSsuygsEgGkMr/OBhAhsTUYVoNNrU1BSNRguFAvL47e3tg4ODnZ2dwWCQXrThmdYRk4jy+fzOzk46nc7n80RULpeRXclms3obsmOIlLJUKm1sbDx9+nRhYQFXg4JG9+CJiYnPPvusv79f1TLgNjc3N2/duvXXv/71f//v/724uKiGocKXmDcYnsqGgEJEaBVp7mKxuLKysrGxkc/ncXejo6NoE0QaZvPXSVG+K/mQVaRedAX7MZfL3blz54svvvjb3/42NTUFlAbe6fP5kLBGogM9lKEHc7lcsVhMp9MzMzMwHrPZbKlUwsXT6TTq1Uql0qVLl1pbW7FMdTX0BtN/NXauYRhg8QLcBHckhNjZ2Xn8+PGDBw/6+vrq6+uDweA7h/sqZBLT5IWfwu0UCgWoSP1P2O16MveFlyIin8/X3t4+MTGRy+WWl5fL5XJdXd3IyMjExERraytC1UcUMuq+PPA9fr8/FovV19fDq8BaAm7mGNEVWILKmlOFgMD0YEG6rhuPx8+dO/fnP/+5r68P4WaFvd3c3Pzll1/++te/fvfdd4uLi8rhCAQClmW1tLQ0NTV1dHQkEgk1QillsVgEGAig+o2NDaQrAX2bnZ3Fgg8EAv39/T6fT+lW3X7/IDPdH7iKpCr3gcfjyWQyjx8//vvf//71119PTU2VSiUkaoF1mJiY6OrqOnPmTG9vL6qqccwiuw1/9tmzZyiAe/bs2fT0tKISWF5e/v7777Fjo9Gocv3exumqXxa/h8Ph1tbWeDy+tLSEox5wtrW1tQcPHoyOjnZ1dQWDwf3Y77cqNWh5VTP+SvoRwjnHEVVjlOlQ55dkDIL+6uvrQ1Jlc3OzUChEIpHu7u7BwUH0n1Cl94ddhPbGK6LR6MDAAHjUMZLGxkZM+/HonXQf1uPx1NfXd3V1JRIJpMsty6qvrz979uzVq1evXLkSj8dhRGNV7Ozs3Lhx4//7//6/b7/9dn5+HrXtYOfs7u5ub2+/dOkSMuCNjY3K48E3bm9vb29vI73z6NEjoFCJCMRxU1NTHo8nGo2CAxA57hqU268Tw/mV5YNVkfszEtvb23fv3v3hhx9mZ2eBWsAB2NHRcfbs2T//+c8dHR39/f2NjY1erxdeuUJO4LREzXVPT8/NmzcNw8DRCm24tLR048YNv9/f1tYWDAZVUfYb10q6ZgHqDV2uTp06tby8vLu7q6JRaD4zNTXV19eXSCRelYP2zY6WVWt7a56RkiMsXClloVDIZDKokVevezweFQ95GXClOl0ikciZM2daW1vR4xd4adCqvzCmqd8RPHe/39/b2/uHP/whkUggo93S0jI+Pj48PHwMGh49tCerPFIgJH369Gk2m0Un99/97nejo6PQjyo2WiwWHz9+fO3atevXr6+srCCvAiK+3t7ezz///Pz58xMTE42NjY2NjQpersC/TU1NjuOMjo6eOnXq/v3733333ddff729vV0ul/Geubm5L7/80u/39/T0AEhAeyOzH6R8sCqSqhoESzmbzT59+vT69ev379/f2dmBAWgYRktLy0cfffT73//+448/jsVidXV1QPxQlXUKdgpANrFYLBqNRiKRpqYmQDHm5+ex8Uql0sLCwu3bt7u6uuLxeE9Pj1rlch8p7+vI/hIXv9+fSCRGRkYePHiwtLRUKBSwN0ql0vz8/J07d3p6eqAlFVT7V3CIasapLG6q5sFe0sRGaU0+n1dgflUS5/P5IpEIctAvY7/ooQ+v11tfXx8Oh13Xhbeu3vPCQCRVk9o4ikCLeenSpe7u7lQqhe7eHR0dSKEcY+rU04Gr29TUdPbsWcbY9PR0Pp8PBoM9PT1nz55ta2vDAICdKJfL6+vrv/zyy88//4waJDgTHo/n1KlTn3/++R/+8IeJiYloNBoMBlUhtsJRQh3jtPD7/c3NzdFo1DTNGzdugC/DNM1isTg5OdnY2Hj69OlIJKLXcX3ASZsPVkWqmDoR5fP5hYWFe/fu/fLLLwgd4g2xWGx0dPSzzz773e9+h/YyoPOB9oT/oph+kNgJh8MDAwOo5DUM49tvv93Y2LBtu1gsbm9vP3369NatW+fPn8fV1HZ6g0tHd7GVoolGo8PDwx0dHXNzcyhBUaiUp0+fPnv2LJlMNjY26tyLv4JAg6PGAyQ6CGsgbIoqlBf6yKgNRQ5BJ5tAuiYUCqFBWI2BeeBgdGwmq5KQkwaVVRV7qnPDYddRWgxXQFVSPB7HZ4UQiGzk8/lXzWjjLNH7jgEc3tTUNDo6Cqh8JBJpbGzEBKpjo1Qqra6u3r9///Hjx7C4ES4Mh8MjIyNXr14dGRlpa2tTBYWYQK5168WShlnQ2dmJvyLQtLS0BH2dTqdRJ37+/HkF2lcD/vACkfQBq0giQiUZQid379795Zdftre3EfK3LCscDg8PD//7v//773//+6amJrVcdLYo0kwPEERCvTY2Np49exa79+uvv15fX8e2z+fzc3NzDx48GBgYaG5uriEC0C9bs2NVH2ec/Ni0+lZRy1qPHigjJR6Pd3Z2Xr58eW5uDoVlquBvY2Njamrq4cOHzc3NsViMXtS3+g2KilWBeWxubm5lZaWxsbGhoWFwcLCjo4NVOcOPuIhlWZlMBnueNC44ONctLS3xeByeIDTXYaeRvnv14nr14oGNcfYbp7zaf1w9DqAjQa+JIk4iwiM4Qj/qrOlSI2HUw6AKEo97RKi0JgKodLpt20+ePHn69CnUJe4xFotdvXr1v/23/3blyhVEDxWctibeqh6EYRiRSMS27fr6+s8//xyFQzh3kZNcWVl59OjRL7/8cunSpUAgoB8nJ+ma35IoAKPjONvb2wsLC0tLS9vb2z6fD6i3rq6uixcvogRFB8HV5OnkXipJBUePRqN9fX1jY2Ozs7OZTAaYm2KxuLy8jISgOuePpvlROGQdyKn+pOevj5ZEInH69Onh4WFwZCkoNQrjHj9+fObMGZX6/BVUJHS0aZrog/j9998/fPhwdXUVvbBhuXd2diIiLA+n/sUkwJBURZA49rxeL2zSt+ff7S+RYhoFutT4z9WaUWCDo0e139XVu4rjW1iVh4k0DV7j0qqiwGQyuby8jO4gGJ7f7x8cHPzkk08QtYRRCc2o4zrVGHRMPmLcnPOJiYn5+fmtra3Hjx8jGQhC38XFxcHBwebmZr0u48PTj/QBq0gVhAb4dnZ2dnV1FQc+ABBDQ0MXLlwYGBgIBoP64iAtEk+aisRihWMopQyFQgMDA0ACLS8vFwoFZEjW1taePn06MzOD9gN0SDhS98HxV8QQQTqL99TUHR/tsPv9/lOnTl24cGFqamp1dRXJX4x5cXHx3r174+Pjra2taNP6K8y/qucpFoszMzM//fTTvXv3dnd3EdI1DKO/v7+9vf2FyhqHXKlUKhaLytpSgTOAB97GHe3nbVRPRIWqaxxzHSf4MqPS1ShwiIgtFovFcrkcCoW41n/iaFu7VCotLi4+efJkZWUFtTdEFA6Hx8fHAZxEYXtNfICqpTLwl9U6xy0gDzYwMHD+/PnZ2dmlpSUoXyHE+vr65OTk8PBwX1+fqtZ9GUaS36J8sCpSiZRyfX19ZWUlk8mgRJeI6uvr+/r6Ojs7FSyDad2ZHcfJZrPFYhGKUuGTSbMlAR/p6ekZGhq6ffs2IpJE5DjO8vLy3NxcKpUKh8P7MSL6K/C2UqnU7u4uOgQgZZRIJBAYqgGdHaFQ0Bzi9OnTp0+fxnmg2CRx7D98+LCvr6+3t1e11nrbM49tgw7ji4uL29vbmLrNzU2cK+l0WvEVHZHZAKoZERI9oQwCkVfCDx1P1Eyquj3XdYvFIkCRymXWs/YvHJL+CFRL3nw+j5ocImpoaIjH45FI5OhkFL49l8stLi7Oz8/v7u5C2SEVeebMme7ubqUfkVxSVjAQ7zDJfT5fKBTy+Xz6quOcAy+BMi08QRxac3NzGxsb8L51k+LDkw9WRSpeSERPNjc38/m8KvKNRCItLS0oGdQb1CA/s7W19ezZs8XFxVwuB46s3t7e9vZ21F3hylhGwWAQjQOnpqbU6Z1MJlGQoHP2KdEZENAhACH2hYUF27YTicTAwMDo6GhfXx/Cbfrwjrhf1PC0tbWNjIxMTk4mk8lCoYC9AYzk3bt3BwYGGhsbEdh6UzXjRz8CbEvU5CHeD5geYmdURV8fTWqJcJjqEIB5wMZW7CFvPKOq10fp9hFU/Obm5vb2tpQSoHGYw7q7+vIC/9pxnMXFxenp6Vu3bqVSKcZYR0fHmTNnhoeH0XbisPAoFnmxWNzY2MCQ8DpWZn9/fygUUsTGwIETESJCjx8/Ru2N1+sdGBjo7Oxsb2/X6TJxKmP9t7S0LCwswNe2bTuZTKKgKBAIQO2qxr8fmHywKlLVMjuOs7Ozg2pcLDXgJMLhMPANpHU7EkLs7u4+fPjwq6++unfv3s7OTjgc7uzs/Pjjjz///HNAeZA8xda1LCuRSABKyaqk/Ol0Gpw0L9w2rus+ffr0n//8508//bS6ugondHx83HEcGBGsyqT/wvvFFkKEtL+//+nTpyCDISLGWCaTefLkycOHD0+fPl1fX//rpGtw/Pj9/rq6ulgshv7UwCE2NTXFYjG/3/8ysBggfvRAJB6WsiLpbVYKy728jdvb2zdu3ADpjm3bDQ0No6Ojn3zySW9vLzTFS6pI5aFT1dH54Ycf/vnPf96+fTuXyxmG0dnZub29HQqF6urqdAh6zT1i0YK5Cv0qUCsB1dbQ0IAhKV4SOElra2s//fTTN998Mz09DUDPp59+euHChWAwmEgkVOIL34Wqs6amJq/XCxUJIkGY9ggC/Aq2/LuSD1ZFQqCeUDsFdYP6BBAZYIPpgUjXdbe2toCbffDgAQ7Yubk50zR7enpaWlpgtqiAjsfjQTMGoM1h6SjOhf2ZaNqXy15eXr53797t27dRL7y4uOi6LtDsqiXLS94ssCZdXV1DQ0MPHjwAcwFVq1OWl5efPHkyPz/f1tb2K3QWBQUDCDW6u7vHx8eJaHt7mzHW3t5+4cKF9vZ2qtJKCiGOoI2AilQRQKpWXuqxyDe+P/XANB43ivR/+eWXL7744saNG6jMCQaDKysrgUAgkUiARY29dAMsWW0+urq6+sMPP3z55ZfXr18H0hZ1MsFgcGRkZGhoKBQKHX0doOtR/ogXOeeApgHEo17knOfz+fn5eajI5eVlxaXk9XpRrqqy3jAIUGEJHxwDRsEiEmg1afEPT1F+sCpS+S/A5em+bSAQqK+vBzJWBafxpGFygpY5m816vV5sTiSp8/k89oDKWoLwGRhaeLUKZAc6AziSB64brOxisQjKAxzFpVJpe3sb3VABYXtJqwQ8Ln6/v7W1tb+/v6enB+SAQCYRUSqVwn0lk8mXNN9eRzAnQD6PjY0Vi8WWlpaNjQ2Px9PX1/fxxx+fOXMGqbOjExE44UBgoTP6gP23JqP9Brfo/swGigUePHjw4MGD2dlZcLwnk8lIJPLs2TNE5XQv9eiRqCCM4zjz8/PXr19/8OBBMpmE0yCESKVSKysrYNnZXxOpn7IAD6DbklLofr8f7XMVK6DK+ZTL5c3Nzbm5OVSsosj9yZMnY2NjwOer7QDAqWVZ6lJI7KjISc3Z/1ZX1LuS905FHtiJkPa2tIbPdXQhBN7v8/mQbcRZCriPCr3rlMuKLUZFMIkIvHtI2EHRINeBt1mWlcvlGGOhUAhvw/GrENoqhq06B5BGyIojHYj0aDQKwxNamzFWV1dXLpcBbSENG7S/2YvCPyOODqjHyMjIkydPdnZ28O0ej8e2bXSOHhoaSiQSClOi+HRRkfYGfXAVH0AYd3x8HPdYX1/f1NQEyPcL95Vt26lUCo62WgN6MzU9SQI3U7XeVpaper4qQVzDzn3g4BVKHKqhVCo9evQI7Mtg1sAq2tjYAIEF2lfog9SXljo+FYwBK216evrrr7/+4YcfcCorOhIiwhmgsAGHrXY9AajS1ioWYVkWpgK7QCFtC4WCog6Cr62CiUxr+KE8dDhMCsCPPg04CPGLatx0xCBJw3KQVgdRA5+i96lQ571TkXrmhPZmMNUvL8NYozOSEZFqjgynu1QqlctlPBs8HhRiI08dj8ebmprAl8cYi8ViiURC9dhTu0spU0TB8RUgczarojDeB/rLjLHOzs6uri7A2ZDR7urq6u3tDQaD+9GaR9wvxoMvRXy9ra1tYWFhd3eXqiE8VEw+efKko6MDaFDlS76NFakMJb/f39jYiGYPSCup+AOMoCOeKQJtCgmv1Bzsd1Wio2tJfFABABWcBTtZ+cJITx/NC6k/blhec3NzcLHVcg0Gg6jvPnAO1Ys1ZjtcnLW1tZs3b964cWNhYQGxY9wvESGjiGJqVU2wXzCfChWg0t+2bWNl6nOi7IbGxka0ptnc3MTKaWtr0xnXdUgTEcGthhAROvPoZPUvDJfvD6HSXuAU5H3Tj/QeqkhdarZuTR2CovA57LNUXRNYN9BfqA/DI2daNZ46eBsaGoaGhi5evGhZViqV8vv9fX194+PjLS0tcKUVvEOZgQgjqnQNamDVAGpMAP2OOOdnzpz57LPPfD7fkydPSqUSopDnz58H5yvtNZ+P1pLqyvX19UiGzs7OKvuLiPL5/OTkZFtbW2dnJ6rRa8Jtb+/xwQmlKqQcWoBrvcgPE/h0ynih6i7yer2KCa1meqXWpAGOAmMsm81mMhkiAskI5vaIs7bmeWUymWfPnt2+fXtubg7wQLzu8XgaGxtbWlp0IqUaa6jmqSkrL51OP3z48Jtvvvn555/X1taUTQ2jtb29/fTp0z09PQo6dsRQa6qtccsKNqAWuaJYb21tHR8fX19fn5mZgQN+9erV06dPx+NxRNuVo4NADZLXio0f047Z0y3Hl/G1dZgH1KtueL5XyhHy3qlI3U3Yj2/QZ7Cm2cD+67Aq6XcgEFDoEPg+6HkELakXRXDO4/H4xMSEx+MZGBhYXV2NRqPd3d2jo6MoBVEXF9Xe0+jMB8ccuAqv16uKuPcvGv0uUEL32Wef9fT0APQDLr+BgQH4obQXQHfEEtTx7YZhdHR0jI6OPn36dG1tLZ1Oq5Z+Kysr9+7dA+gX06JG8sYfpW68KMhOTU9tdV+H7Q2E/BCO0F+3LAsG+9G2m2ma2Wx2e3t7ZmYGHIgNDQ1tbW1tbW2xWOyIu1ZqDkpna2tramrq/v370LPQDghrdHd39/b2Il9Xc1Pq9pXVDEsW9zUzM/Pzzz/fu3dva2uLqoBc/JJIJMbGxsbGxlAae8QkKyPO7/d7vV41S67r5nK5TCYDS1m39cAedOXKFb/fPz8/jwjAxMTE4OCgolbTgxL5fB7xccSLEGdHW3l9bMeAjqtkAL2X9mNlkO96ALWiR3/1rgb64VMT1zhQ1ANDf+S6ujr41/CpNzc3UVYVDod5tXs6NoPH4+nu7gZrQCqVApskfJD9bmmpVFpeXl5YWMhkMioc3tTU1NraGolEdOzhgVYkdGhvb29nZ+fo6KjjOPCvYYfSXp2oBnnE7KltFo1G+/v7R0dHp6amYOfCZEa/p8nJybNnz9bX19eomDe4QHXjAmfJgfpduc+HnXZonoXiJX2cHo8H2vbAUAxpQe2NjY2ffvrp+vXrq6urhUKhubl5fHz8o48+On36NDjGj1hCsJswaU+ePFlYWNDLYIgoHo+DHw8q8sB7VC8qm05Kubm5efv27R9++GFhYUGPM4CTcWRk5JNPPhkZGQkGg0d42VT1foLBYHNzMzhDMQPJZHJxcXFpaQnHrUrX4FCMRCLoTAfOfCCEIpGI6uWpTgjDMNLp9OLi4urqKrr9EJHjOKFQKBqNoqRC7dAjrPJisag8BuUPSa26V18wvxqNwMvIe6cidYNCzXixWETOF81alQ91hKOtrEIUBbe3t09OTqK0hoiSyeSTJ09mZ2cbGhpUkJFVC2y8Xq/P54tGo7ANscNVUFkVhKDc8PHjx+BBweBBat3R0YHtp8fma26TqjsNyjcUCmHFsL10DC+ptvS6MSSO2trazpw509/fD1ioeufu7u7Tp0/n5ua6u7tR5ba/PPz1RXe+1NECpVMTajj6S2FFIqurXkTIWCcxO3BCECmbnZ39+uuvr127Bjh9PB7PZDLxeLy9vf1oFUnVzZzNZufm5mZnZ6FQqBraDoVCOIcSicTLqEiFAE+lUvfu3fv555/v3r27tbWlZ5yAiLx8+fLly5d7enoQZzzCOoOJ6vV6seqePHmCSs1yuTw7Ozs5OQn3WY+G44mgAYnqwaAAwjU1r7ZtLywsTE5OoqoVf0IXXNXqp+Y2DxQkThHxRzbc4/Goj9fc44mKPEr0Yi8iQoZhYWEhm82iMVMikQC/y9GONgRWIfoCJxKJdDoNNbS7u/v48eOHDx+Cix/tOFiVQEW5V6qFtN4WRmUA1tbW7t+/f/v27dXVVaTzHMdpampCm3aUkSjTTw1VDyCwKiWXCi+o0xVqTuXEATOsyUHpojPQ4GrxeHxgYOD06dMLCwvY29gMruuurKzA8q2h2Hgbbg6mCyngXC6Hds/A+qh80RGi0g76DkeSBIECPVWt0sSIlJVKpWw2u7y8PDU1NTMzg7BasViMxWLLy8uqGuqwYVM1r53P55eWlqAjZLW9BLTS2bNnT58+jZ4HB15hv+zs7ExNTX355ZeoW1WNE1B61NHRcfHixU8++aSvrw9q64XTS0SIXfb09EQiEZWlWVlZuXnz5sDAQFNTU1NTk1LEepJEgdJ0qADeg8e0tLR0586dBw8eqAJtwzDa2tr6+/vb2tr8fn+xWMS9v/BRptPplZWVZDKZSqVKpVJjYyOadIdCIURy1Yy9P/qR3kMVqZsVxWJxfn7+m2+++emnn+bn5znnsVhsaGjo0qVLY2NjLS0tqqZlv0BNwMysq6tDcnBlZWVnZwc5FuR2T506hRobGCkq2arYVmhvnE5PfSwsLDx48ODRo0f5fN7n88FmicVira2t6POlguhHRN+UbQVzGMNQkTv8EyRsSDQdUTgIHQ3mDtM04Xx1dnYiSqBYu5G7SKVSKELfD25/I1LDIVgul3d3d7e2tm7duoXK34aGhubmZgBljvh23JTuZWNmAIipOTNwHYSDkQeAlkTFPZLgtm3v7OzAslaglv0iNcYwfATlzDo5HiCobW1tR6d0a2JH8GB+/vlnNJZRhM2I7o2OjqIHejQahabDGw7TGhi/x+Npampqa2urq6uDAvJ4POl0enJyEtR8Xq/X7/erLtjKNYZOrGGHw4LE2pufn3/06NHCwgIRBYPBXC4HyERbW1t9fb1aovQiFTk7O/vw4cNbt249ffoUhUn9/f1jY2P//u//TkSg6VPL4ERFvqwUCoU7d+783//3/33z5k30Rw8EAqieXl5evnDhQk9PDwLMCnBDGpIAZqCU0u/3X758GXX+xWIRRQg7Ozvffvstji9AK5BVgDek7xxlnRWLRaQI1tfXnzx58o9//OP/+X/+n+XlZfzJ6/UGAoHz58+fP38+EAiUSiW9unF/6kn9CZG1yvMwTdLC2FtbW4uLi7u7u8ViMRQKdXV1xWKxSCSCvaobm9A7VHX2YQI0NzdfuHBhZmZmeno6l8v5fD4wpCKhhPfoHFxHd0dQ7o8OQsY5hPlRUEQ9U0HVuuavvvoKbX/wXE6fPv2nP/1pYmLC7/eDHFv/LvVB13WRbsKf8ApOsoaGBjw1xTiHWYV+pGpPAnRqAyYGXx2PxxUv3GH3C9sf0wLenfr6+qWlJb/fr7zsU6dOnTp1ShVB0t44td4xWCnBZDL5888//+Mf/3jy5AnMWOgsVEb19fX94Q9/OHv2bCQSQW4EE654cA8U4GcbGxvPnDlz7tw5tHqHel1bW/vb3/7GOf/v//2/Dw8PY1PgpNTBUjpWBAcSEu5zc3P/+Z//eevWra2tLVjTRNTV1dXf33/x4kWshFAoVJOYBspSFYbt7OzMzMzcuHHj+++/v3nz5vr6Ot4G9iCfz/cf//EfGFUNhOM9kfdORepp0O3t7dnZWeRViAjFT1NTUysrK3Nzc6urq+fOnTt79mxjYyOCSoh04Nnr8HKPx9Pe3j4+Pv7kyZMvvviCqq3WFxcXv/vuO5yEZ8+ejcVi6BRYLBbhgOjFW1S1+JDc/Prrr69fv456QewKWG0jIyOA1Chz73jWmRBidXX1p59+unnzJhiuYrHYwMDA73//e9Ce6+GIw7K6UsqmpqbBwcHh4WHGGKYxGo2iJypKy/VI2RHjUXaHHouA7qDqslZzpXACGKFt2/Pz87dv37558+bTp0+JyOv1ptPppqamRCLR2dl5BN5Y0ZXrIzEMA2eVnq7Zb4qi3Kitre3cuXPJZDKXy2Wz2Wg0OjQ0hNs/OpSpHPZIJNLc3NzS0gJCMMZYY2Pj2NjY2bNnm5ubjw4XlMtl5MQ455lMZnJyEr1lVENHBc1pb2//6KOPRkdHQcKoUJx0JDiJqo4XWt2eOXNmbm4unU4j814oFJ49e/b1119bllUsFlHLCFQjFL2C7mLvwDjAUrl79+5PP/1048YNNIRAAaKUsqOj48KFC42NjTh4SPP8VCtmvA4Gmbt37964cQPYeHQPxcNKp9OGYWxtbWUyGcQBajTAeyLvnYqUGrF2uVxGO1aqRoXwIDc3N3G2T09Pp1IpNCQKBoMqK0172ZtRBjc+Pr6wsDAzM7OwsICCtlKpND09LavdUYaGhhAg109FVZBg2zZQFA8ePPj666+//fbbmZmZra0tFUOJx+Nnz54FLaPiHVAlFq+qKG3bnpubu3bt2rfffru2tpbL5aLR6NzcXDweb2hoAOeQii4dtqoYY62trR999JHjOC0tLTMzM9lstru7+9y5c6Ojow0NDeoseRlEG+yCQqEAv5WqiSxVmKHAbjWaK51Oo2XFrVu3YIlgZnp7e8fGxtDEQl8ApBEbw+ytSWebpglsYw1gu8Zgx9j6+/v/+Mc/1tfXb2xspNPpeDx+8eLFkZERsHkeIcp9xuJBrSFczo6Ojs8///zjjz9GT+AjLqK8WsZYLpd7/PjxrVu30JuQNOXS1NR0+fLl/+v/+r/OnDkTjUYVOkfd8mHX1w1hHAYLCwsrKyuKhLhQKDx69Aj7olQqofchgu8q8A0LDvYjCNkePnz4j3/845tvvllaWkL1AWJBbW1tly5dunr1an19vY6gVPOvSulxsz///PO3335748YN5MoUfTIWXqlU2t3dBaz4fdOMz5/gux5ArQitCWogEGhpaWltbV1bW1PgYewKqKqZmRkgElKp1KlTp0AzgcgdyumwfPFU0D35yZMntm0/e/YMa1RKid9BjgsS8nA4rDCD8L6FEAj8P3v27Keffrp27drm5mYmk4EmFUKEw+EzZ858/vnn6MhKVZTSsb2Gzc3Np0+f3rt3b3p6ulgsAkHt8/kUGhwRN103HShomIceeJjG5ubmgYGBtrY2n8+n2py9cI3CDc9ms48fP56amlpfX0e30oGBgd7e3lgsphfe1cA7QBm5tbUFYwRnUjabBWZTFXSq71KaDhY96GTU8oAVCVNIH/N+PQLbLZFIXLx4sbu7G21mo9EoaqVq0mg1osYPSM3w8LDf7z99+vTW1pbrugDn9/b2qlaXh2kx/BWUwMlkcn5+HvqLtMRdQ0PDyMjIuXPnYOVhYOruVMzhsEejvjocDg8ODk5MTIAdFb3GiCibzT548ABMph999BEKuhSQA/MMM3N3dxct4e7du3f//v2nT5/Kag96Impqavr8888//fTTtrY27KwaxniYNWja8/Dhwy+++OLbb7+dnJzc2NhA9kxZPzi9AoEAKKBqwJhvPDL+OvLeqUh9yYbD4dOnT4+OjoJxXjGLqJyGEOK7775bX19fWFi4dOnSlStXgFDDx1WtNB4nWoP++c9/JqJCoTA3N0dEpmkWCoXZ2Vm4JI8ePRocHEwkEsAnYnHk83msnrm5ucnJSXA760yFiUTi7Nmzf/rTnz7++GMV1tTzTi9TjFwj+F4wXMBdhUWAuKTcRx9wYKwTswT6n3g8jp0JIjhlI7OXo11gjBUKhampqb/97W8//fTT4uIi57yhoeHjjz/+L//lv0xMTEBZ1OSmsNtBFqvOLaqSU6RSKeBJ9emSe6t3wWGhVKSCE6i6Gn0qavBVKlabSCSQ6kXEFm7m0aeCYgXF2RAOh0+dOpVIJPBXy7LQZv0l17PCjSneTKrWung8nv7+fnRwjcfjisFbb3hwhKGqA3SA9Dp//nyhUEAlFTJCYPd59OgRaigTicTg4GB3d3cwGETY0ePxYKWlUqnZ2dlHjx4tLy/j0eAr0OXx8uXLf/jDH86cOYP4jIr464PB6bi5uXnjxo2vv/769u3bmUwGWTLam6UEj9zw8DDSCaoOil6CZf3XlPdlHPtFSokOXNvb2/l8/saNG6urqzs7O/rKBm/do0ePNjY2VldX0+n0hQsXgO/Rz2G1lxobGz/99FM8yH/+858rKyvYcuVyeWNjA/VYd+/ejcfjwNzBVMlms7lcDjUGa2trhULB6/UqNsa6urqLFy/+5S9/+fzzz7u7u2HkqmeMBYrQ+yvdfjgcjsfjsVgMNARUtYUVXz+MXKhj8aK2VgA2KUgQLqUroxee3pzzbDb76NGja9euodEuakuANGxvb29tbYV+1N1t0rYNjEfSoDm5XA5cuTUVRGoM8MXgaOsKFLFI+LA1dQT68lAhURSfIJat8uwvjH4wrdMLEQEagSp4qhpfNRVfh4lpmiDdqKuri0ajqPPBVyCseeXKlcHBQXTLwjhfKUSjkmmmafb19eEpR6NRx3E2NzdVoh9MwD6f7969e4DsoMAsGAzu7u6C5xTVYnB+ZZWEpaWl5ZNPPvnLX/4yMTGhKg50JiSVLkPqaWVlBUYoGNRVyQMWg8/nSyQSFy5c+D/+j/9jZGQE6Wzam/p/pc3yVuV9VJEqmGWaJiqlgsFgNBq9f//+w4cPd3d3Vd4NehAlLrZtZ7PZmZmZixcvTkxMdHd3o6JGaF2JLcuKx+NjY2N4wMi3IKwG97xUKiWTSehHhKJUO5Ga4mIiAkvg+Pj4H//4RxDuAlYCnUXVkP/RDCiHCWOsvb0dCcrl5eVSqdTQ0DAwMHDmzBlsVLwNGkGljPaL0gg1hTr4RY+3KkThgddBbGt7e3t5eRmPANVKjx8/vn379vj4eE2pnD4en88XDoeR30eZPL6uWCzCutStP11F1sQi1dsOi0XqoixToTVNJK204+jAgvqr+hRVA4t6uJxe5BUiko6ktmmaHR0dw8PDjuNsbGwg2w792N3dDdNMoRTVLL1QRarQOeIGoVCou7sbrOxEdPv27bW1tXw+j8lkjOXz+d3d3cXFRaxMnJcejwfVilStAsKaiUQira2tV69e/fOf/3zx4kUQ6+qFg/unHU82mUwiM0MaVA78yj09PePj45cuXfr000/j8biK/qu5fa/iku+jilSbGaWg4I9oaGg4ffr0d999d+/ePWB3iCgSiagEGZJlCwsLKL5GHQ5MMGRdsYxQvYCMsGEYN27cUJ2aEZvTO6Woow+/YHGg3iMUCrW2to6NjX3yySdw8AOBgCK5UFtIAXRfdRL8fv/Q0FChUAgEAoDstLS0gGAVsHnFWYsj/cCNCttBpVz1aj9sBsVEoFsEBwq8eyklnDimcfcvLCysra3Bf1RhRN2W9Hg8kUgEWhK7BYLKyMMI/fF1QLzrFHBQdgdmtPWferG/snFUXuiFsVcdeKR/L+0tjVXB3MOupnxSIkLfdpx2CwsL4XC4q6sLhTRI6dacUjXltoeJXuhJVTJdBWj3+/23b98GVF4x4DqOg1ZOquQBgDA9ToKi76ampitXrvzX//pfL1y4UNMrVBnRulKT1c5rysrBAkAYur29/dSpU5999tnly5dbWloUwzkIfWlvj8n3RN5HFakUisoLAxOL2ueOjo7vv/9+cnIyk8mg2kHtRsDBAMoFdW5vb6/KumA14HRtbGy8dOkS6k++//77+/fvw0QCwNgwDJRzqI4ciF4h3owOXOjIeuHChb6+PgVZAHdeTS2NapOtnESqYi2PsNrgGJ49ezaRSIAZNxwORyKR3t5etRN0XNFh2g23j8WqoGcqugfCYNd1UaxCewPwiuZSShkKhZCeUnB96A7TNLe2tmZnZ9FFQD0L5XQDvY+qc3yviky5rgsKOKa1ElSkiqgoTyaT29vbGK1S9PB5ofoVcwesWswJJgTHAyoFMGx9wnUU535WLmSKcAAjRqG+hTSrXAeNYyS6rVpjZoZCofb2do/HMzo6ms1mERSur69Hfk+dphhMDWhMx2aprz7socObGRgYCIfDiUSit7f3/v37iKErU5FV+9DKajcbxByJKBAI1NXVtbW1NTU1Xb16dWJiYnx8vK6uTtnjR0BoYfLHYrELFy4sLS1NTk4CPBuPx8+cOXPlypVz586dPn0aFKLgNNJv9r2yHyHvo4o8UILBYHt7O4pGGhoaWlpabt++PT8/T9UUqmplheDL1NQUvD/kyxRqHzvE4/E0Nzf7/f54PN7R0XH58uX79++vrKwsLi6CJlKpM2AkLcsKhUKhUKilpaWnpyeRSFy+fLmzsxPuPCo9ME6lAVXlHAJhyP8oy6tm3R8oADmHQqHOzk6qrntW5eJVb6sBXtSIHnDU3wlqhsXFxUKhYBgGQvg15Dc1KRSv14vjATpOba2dnZ3Nzc1UKtXS0oJTDc9Cvw6IeZRnR1qDbP1Q0U1CGGvIbyj7V13N5/Nhl9aY7aRZIrZtw1ZiVfJgXuW4ZRofV00lKwolwQsJNjw8aBSTHPHI9OeiSv1q/Mf6+npEANUp4vF4FORQ+Zv7L66npNSLR+AlcAAAYllfX9/T0/Pw4UMwjaP9nKJ0Q0wJv6APInrMAeELddbY2Fhzp4dNAhiqmpubz507VyqVBgYGcAyfPXu2o6MDnYEbGhpeCN1/f+Q3oyKJCBWs9fX1XV1dWLIg2kun0wD0Y2eCCRxFKTWVWzq+BPZgOBwGQeT4+Pjq6iq4LZLJJDBGWOimaXq9XnUg9/f3o7APTCc1g4RhtbOzg+KBdDrt8XgaGhpOnToFmLHaCXSkilRHvd/vV/ZdDZT9ZUT5mOrGkSaenJz87rvv7ty5g6qbvr6+3/3udxcvXtTL1fW8B6zylpaWlpYWFebHX3d2dsAEAxCM+oi6DiL08PuASMV7kI1BYaX+KamVpcMz0FUkED/hcFgZjGqcsNYhmUxmcXFxfX2dcx6NRtHwUodJ6ZYyaex5Gxsbs7OzX3zxxbNnz1KpVF1d3fDw8Oeffz4xMQH/8egJ349UVRhPfKneiKYmY3Y0n4jKy6kHeoSKxDpBNL+urq67u/v06dNra2uzs7MrKyuzs7NIGeml2aFQCFWhHR0dvb29PT09jY2NireUqs7B0bePN0QikYmJiebmZrQzkVK2trZGo1G0KkOZE6Iob7tByOvLb0ZFIi7JGAsEAsAehkKhvr6+H3/88dGjR7Ozs8jG1BDMIKmtfBMdqYAz3DAMrIPu7u5sNjs+Po50BPYnQF446kOhUCwWQ5NVsPIoF15qnE7o7fXo0aN//OMft2/fXl9fhxn4l7/85dKlSwCUvUy0Rc8SqDs6UKUeHdHXDR8YC4VCYXt7++eff/7yyy/v3buHBltPnjxBbH5kZETh1JRKxT/RGKe9vT0cDoMQBBusUCisra0h1x+NRvFdeqhB2dE1d61ztu8fuUILIaFPVaMDKjISiejFjlLrYWnbNsDPt2/fRr1jPB6/cOHC+Ph4T0+P2vC4OzXPWGAo3v/xxx+/+OKL2dnZXC4XiURWVlbgI7e1tR394GAX6+9RUUumNWpXJ0FNuPMwcJhat+oNNRHAA587VbWq1+uFouzp6RkeHk4mk2tra6r7m8JFwj8DPzya3ymskl7qc7QoTB7qPjs6OlC0UyqVoBxJM/yVX/U+y29GRSpmQ+zYpqamCxcudHR0xONxNJ9DlZ6UEt27wNhYE8tXsUWF54AaDYVC5XIZxGidnZ2KXAABGqxFuIoHZlH1fzLGUqnUnTt3UJK8s7Pj9Xrn5+e9Xi/6vobDYRXHeWHkhWnt9F6G2Wi/wLXUaYMLhQIahYPdC8Ypqnfa2trQDlT/Ij3/i7hEfX396uqqsmjQNnJ1dTWTySAAX5OeRshJjxJStdpaqUil49T3AkWIlDdpuh42Kehh9K/AA0Uc+enTp1988cX169cXFhZc1w2Hw6urq1JKtM3Rp12ZkLzKBD45Ofn999/Pzc2lUiloh5mZmZmZmd3d3e7u7sPmWVYFE14sFtPpNOpSEHBEcBmzreKA+12c/Y62rHILqViEeIl2CCq6qt4DlQealf7+fgQNlf2uutRhkdcYd+o6hw1SfydVs2HIqgHEigZh+h39VuQ3oyKlxgKCBV1XVxcIBMLhcEdHR3d398OHD2dmZjKZDFq/X716tbu7W1GE4iK6v6bcFjx+Vm38Al2s7xw6Etihh5+ICD2/QC+Ijom2bW9vb09PT29vbyM1oT57NDeBOrdVPvd4wWy2FxwOMCl4pHHCI+Q3Nzd3//79s2fPKh9Wvy+VcOjo6GhuboaFpf6aSqVQgdvV1aVa7yrFh2/Rc7vK4lMqsibHRVWLDP0A9LsA4ucIn3dnZ+fRo0c3b96cnp7GGYA2Z6dOnbpw4UJTU9P+j+D4QffUe/fu3b17N5lMIsYCxD703RGOrdBaae7s7Dx79mxycnJ5edkwjLq6uoGBgeHhYWjnI6pFD1tmCoOpQ7j07NCBV6tRSSqhjzMGehb/1NWfPtWySpC6fzBHgzRURrFmd6hVoX5/fyDih8n7Pj4lymbBvGOxIjoJLTkxMTE/P7+7uxuJRJqamkZGRtCpGaJSn6iRUvzPquWIOjaxK/QUKqRm+dbge5QRVCgUbNsGmo9VAW7o4KpXg7ywMFFHV6gPHq+cUdl6otrJx+v1wu1VyCGq0gzfvHmzqamprq5uf7YdYIDW1tbW1tZQKATwPLYTcHarq6vZbFZhcZR7qGKRyjWGACQAlgplBurfiLSysiLxIkwSxaysPwIiKpVKS0tL6OOq+koLIaDjgDFSzrX+7ECjeefOncnJSVQZqklTPQ+OSC8YWoPpubm5b7755tq1awsLC4DgjI+PO45z8eLFaDSqDqoa7cMOIc1Tv6N/JDTdCwt7mEZ3pmw6/Q37QZc1OUC1X3BTiq7t6BUII0Bduabzx/4D4P3P2PxmVGTNA2ZVsBvaafX29nZ0dCCJBhWAtyHxqohXOefb29u5XA408aFQCBaTHu+nKgWG2l37D2Q6aIWp2BZ8mUQiARShEAIoCkW0oXjMXgjN0698YDpVP+0Pu4huRMOZCgaDyHehbBl7NZfLLS0tPXz4EMlHnED6NobSrKurQ+N55d5CkW1vbyeTyXw+D8ypPj9IlaJiTwevqIy2HmZVhw1eRPKXtN0F902VTulmKREVCoXV1VW4yRg8Pg6EkO5a6narlDKXyy0uLj5+/BguOYYN5k1FHaKPf7/g+plMZmFh4e7du7/88svy8jKAgeVy+dSpU4ODg3C3VYmO+vb9cYaaR4y0JDz3aDSqmGgP05XK69fvsaYmXQ+JKn9FL4MxDAP5/VQqlc/ngQABSb7Ky9UITA3dRaPDvbHfhMf9m1GRNcKqOF71yFHCob8HbgirwuUYY48ePXr69OmTJ08ymQySfUNDQ21tbY2NjcgziCplpKrs5tVuMApiogZQMx71SygUunjx4urq6vfff5/JZFBz9umnn3Z0dKDWSsHKavTXgTpXl/16UCmIIyZKx2PCDMGNDw4OooZXVjl9NzY24CH29fU1NzerK0A54rwJh8OI82KWoIAsy8pkMrDi29vbFXgFd4psQCwWg16DjamKdgEKARpB/xTnHNBXJOLwfiipSCSi0jWiyp2M2Uun00tLS7lcDqlzxb+JThuAr0uNnZCqqi2ZTM7Ozs7MzGxvbysoNREB89DX19fV1XXEqaaCAOVyGd2B1tfXYXsqfFUmk8HZs/8Z1TxBnFtq9S4uLn7zzTdTU1M7Ozvlchm92z7//HPUdNcc4TVnhv4tB4Ymal7HLWCQu7u7CwsLoNTd3t4Oh8Pj4+ODg4MtLS1Hb8+aezwsU390pvE9kd+qinwZUek/qABQcn355Zc//fRTOp2uq6traGjo7u6+fPny73//e845Mm46xKFcLsOzUMfdC2lXDMOAVfvZZ581NTUVCgU0Cblw4YIiQTgw/qIjkI/u7/w6guw8ETU3N3d1dTU0NCwvL+OmAL6Zn5+fn5/PZDIAY1J1C6lYGHpjoFBXucC2badSqZWVlY2Nja6uLhV2rAkvIturMJUwTwBmltW+PaS1nQFBjm76QfnWJBOUXrBte2tra2lpaXt7W1bLSHDXDQ0NiUQCgBt9ZyKhXywW19fXHz9+/OTJk2QyCZQ7EUGzDwwMDAwMoJ71sInVR07Vc0UFMdS9oIjriAek5k19F8pqv/nmm/v3729tbdm23dPTk8/n0ZJTFTi/QVGuw87OzvXr17/88svHjx+XSqVgMPj48eM//OEPf/7zn3Xo0octH7KKVAJLcHV19e7du9euXbtz5w4RIRh3//791dXVUql07ty55ubmRCKhcAkgZFUX0cElR3wXLCa0jhoeHoYBGwwGY7EYVpXKYBzmHXPO36B+VD6sMi4Qdujt7b1w4cLU1BR8KKq2QFhfX3/06NH09HRXVxduXw+9g2AcGEOuNTVFTjyZTGYyGUQ2algj/X5/KBRCW1EVriKibDabz+f5vt4MiEgongvGGNJKCI8Axa38RBXezefzIBxLpVKq6Tnq4ZCsB1oLL6pwNhE5jgPM4Pr6OsqBoN28Xm8ikRgZGenr6/P5fLBnj5htTC8cYQWNgoJGUvtlyrppb+387u7ugwcP7t69Oz09jTZtpVIpEol88sknAwMDb2qd7P/2Uqm0sbFx69at69evz87O4mTa2dlpbm6+dOmSOu8/ePmXUJGovctkMktLS5ubm8A0IMmQz+d/+eUXgJ/BI93Y2OjxeNRqrgmE8Rd17MOORVqjoaGhUChgp+3PEtR8ivbCa96U6KkM9QqCg93d3T09Pao3tPrr0tLSs2fPxsfH0diPtMgAPGJUgqr+eZiiUqmE8u1CoYA2KaTFuUKhUF1dHTCGKnuAnjDb29uZTEYPkqjK8Uwms7u7q7QtMuD7OziLam+GXC63traGdmZ6dR24YBOJBHQf4pJ6XnVtbW1ycnJubg7ONZ4aSsu7u7tPnToVi8WOTteo4HI0Gh0YGLh48WKxWFxeXnYcp76+/sKFC2fPnlXkwUdkhGtgT0j3ra+vAw4B0H6xWNzY2EgmkzUtfd7smgGJ6vT0NOjBYf7v7u6Ce3BoaOhtfPV7KB+sitTj3/qyw65GNAqvJJPJ+/fvb25uotB4dHS0q6sLTQuUGbJf0RwmihKRiBQydj8FjpQSNheUTjAYRHBNVuuF32CMRs/bqhe9Xm9XV9fY2NiDBw/y+TwgpbD+VH4Z9iZVk2Mq9Q90ZENDw87ODiwd13VVQqYmcU/VkkEkLvSqQRWXVC65/tRASS2qHc1URLWurg5FGvrdQWzb3tjYwKgUK4/f76+vr+/r62toaFAE6Wxvs0lk5NfW1nA7Kpnb0tIyNjY2MDAQCARUi57DJhkXDAQCp06dQi/M5eVl13XBwIIyZ7z5JZEumA2UcodCIehENdV+v/8tRWP0b69Zh7+JBMublQ9WReqPFrsiFAqhbdvW1pbK7TLG0AgQp+Xq6urMzMxHH300MTEBxgEUXahLweh4IcupShEqFaByCxjM8vLy7du3QeETDofRoqCnp0fPV7zZ2VDKF68Eg0HLssbHxx8+fKjIspCmaGlp6ezsjMVi+xsDAEPn9/tRg6H0I6qP0bwXhYZKE+lYYr/fD6UJfEwkEuns7Ozo6AAHuDI58RMmEuAmyqNHDShQRzpUWw0SlB9UZSEjomg02tXVdfr0acRP1XNUGEOY+fiTbpeFQqHBwcGxsbFEIsFfghSZV1uP1dfXnzt3rqOjI51OA18RjUbRlO1o3PX+CxJRJBI5ffr06dOnc7kcemO1tLQMDQ11dXXtr399HdFvEGj/+vr6wcHB6enpZDKJNR8Oh9EG+Q1+73suH6yK1ANwyGy2tLSMjo6CLntlZQVvQ94T1uLKykoqlVpdXV1eXl5ZWbl06VJfXx9UmwL0veTi1nHONX9yXXd1dfXbb7/94osvoJd9Pt/g4CCyBKjfeBtkUDW5chSftbe3j4yMTE1NZbNZJJSHh4evXr166tQpBCJ1xDJV4wyWZXV0dJw5cwaBC6pu46GhIb0fDu3VrU1NTWfOnFlcXER6JBgM9vT0nD17tqurS+8LRtVzyO/3JxKJxsbGTCaTTCY55w0NDWfOnDl79mxvb6/qfqFqTDFOuMYIYnLOwRaOxgyKYkOFL5XNGAqFhoaGxsbGAPwWQqAd8eXLlwcHB2E8vvChKPwpklrg9NbBnjq26WhRCFYiCofDY2Nj//Zv/xYOh7FugYFva2uzbftlmM9fUtTyhieBssULFy6gaU+hUAgGgyC4emHbnw9JPlgVqZfcwY9raGgYHBwEjuTmzZsLCwsgvCCtzg/1FZlMZm1tbXNz89y5c5cvX6aqraH8jiNMvJo0hRqMqLKgm6a5sbFx8+bN69evb2xsIMu5sbEBADwQQmJfTxVJgtHrxii1UQkhhGUZra2tZ8+Ozc7OBgI+lDheuHDhypUrbW0d2M41FXJEnDEKBEJ9fX2XLn2USqUA/QOJ9NWrV5HW0O6ckUEkyev1drZ3TUxMFIvFja3N7G7GHwycGhi88vHV/v5+X8AvSEqSnHNJRJwRY6FIuKWt9S9/+cvU1NTc3JyUsq2tbWJi4pNPPhkdHSUiBExIiwMYhvHJJ5+gPnV9fR0PfXx8/C9/+QvoOZROrMxqRbFSU1PTJ59cNU2zoaF+dnbetksNDU3Dw6fPnTvX0oK8hCDiQjicm/i95me57FgWAnYl25ack2l6DAPYJsHJMCzOuaEvksPWbQ2CwuPxdHZ2/tf/+l/7+/sLhQJjrKWlBWQTKlj0xveOakB/+fLlYDB49uzZjY2NUCh09uxZNNh5G9/7fsqvoSIR21KxIYUprSGAoOP2Uz1QdHcGhoPjOIODg3V1da2trT09PT/++OPk5OTm5iYsEcTpkcZBq7xUKvX48ePt7W30zwmHw3rW4rCkyoFLXwfQIgqJbjy7u7tE3DCsfL64vr65m83YruMI1zRMVzpqQhgxQUJVcr2B2WHCMBjjkkh0drX/t//2f165etEuu6ZpDg+PRyIRnzfAmCFcEtLlzOAGkSTOOUkqlx1GRmNj4uqVTxKJRGo7ib2USCSam5sNZhL0DyPhSmELXqHaYq2J1v/ff/yPwaFTW8lkJp32+Hw9XV3dvb2NjY2SGBERY5WPcsMWriA6e+6cz+e5ePH85uamEKKxsbGzs7OlpaVUKni9XtPElAgpBWNSCKepqQEV+iMjI+iI29DQ0N3d2dbWVlfl1yBW+R+RME0upUtM+gLeREvTpY8udvW07+5mbbsUDIabm5u6unr8QR8jJklIkoyTIJdIEMman6bHkCQkkWFxw+LqdY9lEDGSnEhQ9dEZnKSotJqgvWue7+19iH/6fL6Ojo6Ojg79naq+i/b6yMfeSmpJg3YP3wuq1rGxMbDeghr5zZqu+0erFz7pwI/9OJC3ipCD/BoqUplgtBenWhPfOQIH80YEerm5uVkxm7W0tNy5cwc9BRXdpOoTACA0cDA+n294eBiMuURULpdfNQyEyla04kTvN7/fv7u7q9h2UXGhIGmccVndUpJcSSSkQ0ScXtsHZ4KILMsgIq+Xt7W1RaPRYnGAiEzDw5jl8/l8Pi8WLZcww0nIim4xDMMwmEXent6uaF2YhOScgAHw6vajJM4Z9xgVdSTJsoxQKHTpwsWSXYYHisS34zhlx0G5DiNGRJIquBzO+djYWKlQBHoRhYCYSYQamSZYUcjktLe3q0yR12v5fL7DjhbHcQyLWwZviDdEwuHu7k6SkhgTrmtalgXkEDmMc5Mbkojjzy/3k4gRkyQZservRER7S/Gqe+BoPMO7qmUOBoMoqjGObFl+bDmw2EYvxJBV6iA99aqqOV6Sf+h15NeY9/1HhE4d+qsVaUIjIygWi8Wampra2tra2tquXbs2OTmpmgSA9tlxnFQqlcvldnd3s9lsW1sbmgjy4zZaAPoajzYYDIJvamtrCysvGPTX19eFgyFOTDiuYXEizoioYpIZRBKb3HFfFeehb7nnU63TcAX8oWAgDEUjBJ6XlHIPvaaUEpeSUjgOIOhmY2PM4Fyzg4QUwnVd4VYq2Bg2PFi/GHk8puOQynpXp4Y8lgfnQfVCjBgjg+MVT9irl01JKVzXMQxTjV9XK44rDdMTtLycM2JSCEFCuq48ZCOJ52FQIo/pNbjFGaOql+M6jhTEGGOSS0FCSuNwGgtJxIj0n4eIS0S8Mh5OrPLOo3XOYUvubaeY1dNXtU+IGr0pw03XtjUpVqUikNwDIkJviYF3fggqEqLo/6B0YBSgYzV8cPZG2/rUOCDK0IARZxhGS0tLMBgEXPzmzZvXrl1LJpMwG9VFQPP19OlTVC6j+rimffOrjgop45GRkdXV1WAwaNsuY6ynpwu4OWUlGWoLkSDinIRknEhYlvfAWNghPw94Dke8X0rXMDBviOQybac/R4YSkePYMPkdp6x4DKtqlxkWZ5JTxW8WxBBj5ERkSINzgyQJ131eQW8aTJAgSVJWTC7OGDFilTCuSrBg26jmEPsFY3Zd6TgusedJDyB8dCXGGCPi0hWSXCaYYMIgwzQMkpyYkLaQTFiGhwzCKyQ5iTKRwZggyWt+Mm5V3vNyP2EYMPayTvE7RNsAmwmdBSqsN3jxw1jdAGkolUrZbDabzcKN8Hq9Pp8vHo8rasRfQX49FYkChqdPnz5+/Hh9fR0I5KGhoaGhocbGxpcBVbyZG66exh6PJ5FIQEcD5Xf37t1bt26l02lsQpycqORHOzcgIY5Ht6PobRhj7e3tn3zySTQaXVxcRMqoo6Pj/PnznZ2dyCMrRCGT1f3DYFQa8rmx9TI/90vVZGFU1aFcXZMxw3GeszfqFYEqT61K1ysxZctkpDwgCTtdkpRMCBJM4mflP0QkXMbJIE6cG16PIV0hXelKYXDOiJErBEkuSXKoJiZJGnsNKLnXZ5YkdeC9wYG1QjzHIKpEK+S++YGSMiRnjIhxwyB6fl2DGWQwIkHkuCQEcUlSGtwkRxKTJPf9ZFT1rff8lIwkMUa1P4Ukgg25N7z8vvVuwaweXTT5OoI8gQ7bUrK9vT03Nzc3NweWaxhVSKl3dnZyrZfcW1WXb11FKoOoUChMT0///e9///HHH9fW1oDC+eyzz+B1qpDcm73b/VfDblcHl9/vB+dNZ2cnlPXt27dXV1eBE9RZ1yAvWUB24EjUPVqW1dvbG4vFMpkM8DdoXgYfX+H1iPRNWxUE6l72Z63rJ6nyV7skmMENRoKIBAkigxEziHNTkDSIEWccwTNYdsyQTArHFeSa3CBumNyUJNSVBUkpmGRMVL6WXEnkuoKRyZioGITEBLPJMcjgBiNGjHP2fGREjJsqGMCIcWJS3UdFG6qQpXpX9RQhIiqXQYGhP3FyHOHx7NE9gogAEWAwEp+rUumQ69qm16p6y4YkkqDJqAzEOOQnq/3JGEFFwiTW/gMn4eXX0GHr7W0bFgr1pVAfag2/wW9RSRtwO9m2PTU19ezZszt37kxNTS0vL2cyGcuyAoHA1atXiSgSiYB35uVBpseWt64ilQuWSqUmJyevXbt28+ZNdD5ZXl72+Xxnzpzp7+/XtcNbFXVeqZkNBAIoVwiFQvF4vK2t7ccff3z69GmhUADpVk9PT09PTyQSUX1QaW/BzMvOdZWJEsVtIDn3+/2qPx9QLJxz15WGwUgSSRKChJBCCClIkPD4rJd3swURB1xI/0kkiCwvF0RwpLkBdUSCiFVc3EpG1iVikklmCEnMMA0ybOFKRzDTMIgE41ySSy4J4QiBA92VjHPGOREzmGlwoooKNDgReTwWkyQE2bas2n2cGHFGQhDTTSpJTEpmMKfaVxZzaBomEQl5cAjb46ksaYSqDIOIk+nhZYdIuziyy0wSCWFUVADhv2SSYVr5gm2aBmIqjJMUhitIuMKyXmGJSkIinOS+OGXFhqXql1blfeO9UV6X2NuO/M0KlGOhUNjc3FxYWNjY2Pj+++9nZ2fhcaJOH44257yrq2toaAiN1H8Fd/utq0jcvG3b6XR6eXl5cXGxXC5DI2Sz2eXl5fX19Ww2CxK6t33DssojrQp11SkEbYUGNc3Nzffu3VteXi4Wi52dncPDw5988klXVxcqfI93firg3vOpN0041DoI7jltn8sBT3Mc17Ud23VcVwrhOFSJ1r3Kz4qbW32FS0acmCsFCUaMmYaBNKwrHSklY5Ixo3qaCMYMxmSpZHu9lml6XNcWgtBWwHVtj8eDcVZvRDLGYZJxg1SAX5kJrl2JD3LOjece+vOtyKtagjFGTAjhSPa8Skfx7+o0TkqIqFS0DcNSBaYIWtnC9Xn9pAjnFVRASpNXniaSaeoEVZ3CVAz0+agOkgO7gctqxk03apnkRMLv93ODmcwwDI7guGHwao7q4KX7VrfGYaJa+GJ7vqUCWcaYbdvJZPLBgwfff//9o0eP5ufnV1dX0c0UmwJok+Xl5e3t7Xw+r0/4W7Wufo1YJG4AFpmqOQEjtGKoVuzwSKfIKvm7+mU/K+fxvF3SWsWqF6E3fT4fIEHxeHx0dBTcfNFoNJFIdHR0qM/WpNJ0YJc+eLaXho8dRIjLOXaLV0ohJUHd2LZrmYZktLWV3djY2NpMJre3y7ZtGJYjHUHylaxIJqVggkuu2ZVcMBK2IxgxwZR1yYQUrIrE0hSqFHSA0iVRxbLsESldfI9hGIw95zTCNuMGSSmErEC+vabl9/thDvg8lUJsLkl5c1JKKZyKW7xPdHJ427YLhUKxWC6VnlOUMzIkq04+4+qygipbXQhhWF55+CKSe2X/X2uWVs2LOJKllEyq0hrBBCMmXNcNh4ON8aaOjrauri6PxR2HDAYcw8FN3A4bpIplqUYLRFQulwuFAhjaVUb4GHqtxiB4ycySjt7ToYsKwVND1SyEWFlZ+eqrr/7617/eunVrfX1dSlksFmW1hwrBgajGwb1eL8iJdS7XtyRvXUVie1iWFY1G29vbu7q6tra2wMWNflKJRCIYDOrak6p5LiICLz+m462OU1VtNzU1oYgND6ZYLAYCAYywpjcTVctmlCmqOBrUM5Mv6jFSI4xxktIRtLKy9vjps+np6Y2NrWQyWSragqTr2pIzyQ5QhlKyA5UkLMG92e0Kjr1i5NCedrVCHkDYsf80Um/QYb3VFDYxiVhf7XuIHNPLhaiwQwb8fpDjBgIBr2lJKaUrdH3ESTjlEu11UuESG5zDribGOGOO65aKxUKxmN3NCWIkpIuJdxEClUSsZNvgxGTMIM6klI4gyQ3B9nyDyn1XDgcptGyQrMmM4z018V7tPZUgJQlJTEoJdDlJ6XpNKxD0xWP1g4ODFy5cOHVqIBwOcH6genzhmtlDQ+W67s7OzsrKCgqrwYuK+vS3ndlQ49G/BeaRIsWo2QhgC7Rte3p6GlG4tbW1Uqmk1/gr09WyrL6+PnBxKUX8m49FqqlBP+Lf/e53Xq93bW3NMIzOzk6UrKHeVgmI/9Lp9Pb29urqKuikuru70QdZXfbNPm/9tIRti5VeX1+vRqVOaV0/KgcEb6sZEqt2LjzMUdIBsQSQNsly2V5aWXk0NXn/4WQ6nSmUio7tVibTYAeDSFw68HUpqu/XvpMq4FtkhLRyN8YlHWwN6QEB/a/MNKiaFK+G+gRH5aJ0pSuIhFG9O5ccbgnirsey/H6/44a5yTgn17ULjAshXNsRQlC1/ooxJh1bSpcJ6ZKs2LmSBCOTcUcKcgUZ3GTcJemUyiXHla7tCiIhbBiZsoKqKxbKxXKpWCyVbJuo4v47xMrE3Epyf88xg6NFvaKsY7yiv/OwV4g4RzCSoB5dwiWRAReScwp4favra8RZOBrp8/eYZgUN+0qi3C8sRXTX+Omnn6BrWltbx8bGzp8/393dfTxD8pVEb9NEGur5sNQzFpJt23Nzc/fu3Zubm1OVeAoUSURgTmloaPjss89OnTqF5qa/QmiOfp1YJH7xer2Dg4OGYQwMDKytrYGZdXBwsKurCxpEHdOu625ubv788883btwAl2dTU9Nnn302Ojra39//9vAHpAGqlROtD6ymX43U+sPpAbL9bW1eIKjFoEpQXzDK5Qvzi0vTM3MLS8uOK8jgUjDDMAzTFEwQYyRZ7U92WCRSkirIee5S8oqVRrqKZJXE9F67EuIIm3RfUul0YqRF97iUREyS4FIi2ey6JFyXcWkYhmUYkrlenycSikYioVAo4vN5PIYp7LItuStst+w6TpkE45wMwzI4Gch5CJLSFa4UJIRkgoQg7koXSklykziRlCZJj98rBYbEpJSulFIyQTKXLdi2XSqVC6ViueSUHNt1XSHJ4AYxziQX5DLJJQNISZCUkgkuuWSCSS6Zgb9CVeM9+vvxOl5h1b9ibpgkibS2lLgGkbAsU0i3UCgtLixPPno8MDDQ2tzi93sN65ibHgqoWCw+e/bsq6+++uqrrzY3N0ulUiKR2NjYQO0gSEbe3vYhrZlzZT0c9HUK+QvDkKqdyxSLqOrvhNR5XV1db2/v6Ohob2/v1atX+/v7QQ3160Ajf6XqGjy/eDweCoW6u7t3d3eRG1F9+PTgRalUevbs2Zdffvntt99ubm5alhUKhUDg3NTUdCBR4Bscqn7ZGhMPIqvkqTVRfIRTUeuNf6qC7hewVbsOmWgJXdE8uVxubWtzJ7tbsMum5SHDtF3XkdJiUrjiQIcaCZaDHHBd0/Hn98CMyj8Vxl5yyURZY0bYYzay5ykOlXYVrAIyr0ANpWBETBInYZdsy2CGZK5rS9f1MNPv9QaCHm+A+QNWJBQNhQJer59ISEe4ji1cEq4tbSGdskR6ibvMZJKRlC655EiHCeZWYd7SkXhFcmlxiwzikkspy66LxyiIM8YYZ8D2+H0en98TdIO5Qj6TybpZ2ynbUnBmWYw4l1xCxTFW/QngFKv9ideF/gqTjJGrpdGqcVpEeyWRRPGQICIJpIIgyQwupUxnM/Pz8yvLa8VROxx+5eNf8QbgXC+Xy0tLS7du3UKP4nK5nMlkvF5vf3//0NCQconenrAqHS9p6hKk9FCIKg0NPagAto2NjR0dHTMzM0jRoCkeECYDAwPj4+Pj4+Pt7e0IGqhP0d5kwNuQX7Xwk3MOhE1dXR04VqnqwCp3VUqZTqefPXt2//79ubk55Gp2dnZu3rw5NjZWKBTeajxFXVllaXXXXr1NEQjpuQj0p97Z2cEx6Pf7o9EoMvWHfh0JkkzKinUnBFA0LFcs7GZzZUeYlsf0+ogZjixxzplhImnEJEm256d0hWScSar9ybTCuEpem0tOTBp4RZBkkhMwkIyTcKCgBMEmqvxHunpmvGI7EZMCGXMiJiRjxKs4SyEcyTkzTL/pMbkRCPrqo3XhiD8c8RgG81hWldaEC+YaxCUTghvSIJMqITODcUbkurYkVxLjJCRjXAri3CDpcmkIKZhkUgjJuCDiJufQP4wIpY9SSEYkOOMew+SWyZhhmianiuHMbOkYBieTpGSSEZecOH4K7nKCfuVEkpHBKghKycgAYJMxwu/q/ZV3cvUpEkbFdpSSEZdSupyImCgWy4bBODHbdlOpdCqVKpfLx4hF7im+dJxcLrexsQHedbyI5pQ7Ozvg/XtLG0cXmH6s2nhjc3MzlUolk0nGWDgcRlePmiqySCTS398/Pj4OPiHFWzo0NHTmzJmhoaHu7u7GxkZ0l1J+mzJoftvQcUhNOSBMKhWmrGEPK5fL+XxeET3hSAG1KlXzKsdOah8mNVAG5UHrh1UN/oP20nGjsdTDhw93dnaKxWIsFkNf0IaGBkU/fqAoFYlfpJSFUjGVTucK+bxdMokkM1xJnKTj2MB670c7khC1+MfKT7zOBSMuJeJqyKlWXidizz8rhJSCuZx4xV0kwYkLxF2RGWeCS+6Si99dYlK4SEkYkki4hiQmpcFJkiDGLI8VDgbqIqFoOOTzWx6Dc3JFuVwqlZCcIaRo8DsC83hBkmRUdouCXGUXK0CSlMx1bdeVUrqMGXDMGWNeyyeQc0fwlAlXMslcKZkUtmFY3KBAwC+lYFLKQskuC0EulyQR66xGPMkVFUuQKm70nry/hP57HhuVjrv/dSAiXZIukZSCCSnJZZKkdLnBHeFYhskM7pIsu8J1XdsmzyvuSD1dpqizVI0WnLNgMBgOh30+36+gIlXFS7FY3NzcRPHuwsJCKpWybbu+vn5iYuLixYvoAadQbh6Pp6ur67PPPqurq9vc3ARNTEtLS09PT0dHR2NjIxoswxlXW+/DcbSVqAirbifr6Q78CT1DYrGY1+sFatTn86E5lOpArfCDbyrTrWMUEOCv4YhU3oGssrEqXnG8vr6+fv/+/f/1v/4XWh43Nzd/+umnQoixsbF4PH7gl0ri7LkRSVK6qLsDUJabFmemI1B2AnXsMknEhECKRvtZSTLs+ym5weg5HFIVJxsesxKPlJwqMUTOmJCua2A+JKr5KtByYUOpdxQAAIAASURBVBl6OsIkTsQFE4ZkkhkkJZOCEzFpcCEYCVMyJl2DC6/XioT8kXDA57cMRm6p6FZjvARIuONWYFKVSZBQkdIVkglb2JI9Xyqcc8b0wwyQciFxF9xEVFTD6QBww0kKSdIVwuPxWH6vaTCSLhEr2wXOpBSMSxKcmOSuITngnbLCfyaZ5DggichgXJnMnBFUIUkGALwkSVK9ToykENXSH1idJpHLmGkQs22bk2twMAoh5SI8JtcjyS8UdUIjsAOUSF9fH7qBo9kceOp+HZLHfD5fLBbRDGpycvLWrVv37t0Dj3Uul4vFYru7u7FYrL6+3uPxKHwS5zwUCo2Pj/f19YEOGUogHA4DLAizFKgSfNGvRn3066VralR+TRxXz4FEIpHBwcHR0dG1tbW1tbVAIBAOhz/66KOenh7ELvVLQVWpNIvKmbBq11DV+xzL5YUDPrCofv+wa24nk8lMT0//4x//+P7773d2dkzTXF9fLxQKPT09ExMT+Xxe0dtA/6q7KNvC4/WRJGLgFkQ0W3Bu5vNFSaZhWK7rmsRE2TFM5iJXwjgRMW5IeMf0/CdjjBhnjNfGItmem3KlIgbH/xGRy4gswwLMRRLDcVDJVgmt1rn6AU7MMi2HXBKCgU1RErlCOLbpsQIBf30kEg0FgwGfZTLhlqRwDc5IOLZto85MVluW245tcsPj8ZRKZcaYkCKTz/j9fqdcFtLxer3YSIFAoELlTURSsirKRrguI5KSua7risoka6cvE0Jwy+SM7HIeHWACXh70x7x+306mUCiUJOPMsEqusMsO8JamaTIybKdEbgXm6bouKOmYxI0+jz8i2SYr+S6q/C4lSckZScF0tU1MCFlZrrZtO47jlm27XGaI5hJxBpt53246aE2qNvGAx507dw7t0lCU0dLScuXKldOnT6Pz7atmOx1HQH0rljfXrbwiROUVIYRhcNt2dnZ20EhycnLy2bNnqLBeX1/H+i+Xy+l05qeffu7rGzh16nR9fQOi4SqWFY1Go1Vaz8NQqPv35m8e9POqwhgLhUJ9fX2fffaZz+dbW1sDUvRPf/rT+Pg4ugYrY17/1IGxW6UT30YiD+sd7n8+n9/c3Jyfnwf2gqoN5DY3N9PpdCwWU+obMZTKZ6Xg3BSShOsYnFzXNS3D4syyLC7Bw8pIci5dWCVMpaGJqBJQw88DoHmMAbj3fLw1g6/+KvRFxt0qswK4FmSVJMdxD5wBx3ENg0MVCddlJDwGNy1v0OcN+f2hgMfr4cItFR3BpOTEXLvSCQOqYU9eiwtBslgqVoJNUgjwkIvKkxVVgUHxHAouRGVVcOLcdsXzMtNqTEYSSSYEr2SVK/PIuIiGAowxzmShWC6VirbrMmaYXk85XyBmEDmuAP0aCrVdrgjlAHPCySGR76pOqPY7q+DuBarrKx8VjDEpGeNkMO4aVVdKTazQfh69cLnWVRxBwJaWlvHx8ZaWlkwmUyqVotFoT09PV1eX0j6vJJpNUPnJWGVRua5rmgbnVC47W1s78/PzMzMzs7OzDx8+vHv37vr6OuphAHLM5/NY9mizgX++b5wdB8p7pyKRoWtpafn00097e3uTySQReb3e3t7exsZGquK/FPljTRNX3QevUYtQT2/WMWeKkocx27bB2qRecRwH0HeVxcOYtVhqxVLgHFG257rgsO+Ft6aHRw8LMOlY54OvU/1FB3UeWAV04NXwu+s63GMYpimF6zplkzOv1xfweaORYNDvDXo9nGS5VHDKJekKzitoUsdxYMpBRYJsGPmxUqmE54sNZjEmBXMd6diCiErcdhzHMATzGZXqTFcoH4K4Q1RWKhIAPUXBoGZM3SnnPOjxcs4tw9jJZmWmUHIcktKQBrmuYDYRySogVAjXdV3G6cB5OOxFg3GFATjsYeklQ8dYiuqamItgMHjq1Km+vj7UU5qm6fP50KYYNTavuM7xFc8LyTlH0AP45XI2m11aWnr8+PG9e/empqampqZ2dnbQ2hcPWl2qUmikha2qGPv3Wt47FQkTA1Rp0Wi0UCiAo7tYLELHyWpR1/68jVqCWBzFYhF4K3QOAMH1m1KROiUPIuLNzc3d3d3Pnj1DUDkUCrW0tDQ2NqJ1qq7U1BVc4TKDM0ZSSuJMsX4dWPAL4ZzvL5g7RtrqwABITfBLj36ola10DawzziQJ1Ha7FmN+jxUK+ENBfywaNhhxko5dcu2yXSqKKmEEgh7YQvrJodpG47GWSiXOOfd4oEnhleMNilRV9bau1k2SYwvU1ZCm1lUcWS2SSuZNEgnX5zEtK+z1er3WLt/h2UKxXCowEmDCYBphPgpGD1u3R7yuHOz979wPMjvGUlRhcax2haOQmrDj8rHCocYvIFCWkorF8ubm5srKyrNnz+7evfvo0aPZ2Vm00gSigzTKmGAwmM1mgd7r6enp7e2Nx+OGwR3HrXbXOHR9vnN571QkCBlVWbcyu1QsT+k4VaRI1VWinNydnZ2NjY35+fmNjQ3XdWOx2ODgYHd39xvscaHKTrEO/H4/cK2ZTAZ9ShOJxMTExNDQUDgcVotYbRi1sR1Hck5SCAMhVM7Z3uLu2gf23NMjqf13/2ksNWrJA0S46iLPVSGR2BM1e15Uw55fX6rMOxGZBuNScCENgwd83kgoGIuGA36fzzRdp1wq5V277NoOr1jcjuM8T4iRZkCpNrCqFFcV72MNqF/w3PWdz7RWtPrOUuPXbTQVGxFCcC6kUzZN0zI9RtDLjQg+v5vLO0w6wpGMuDAr/OeMc74ncgFRsN+DteQhRpJSmroJf7ylqFYL2n4o+jJ15aPD6y8jGBoi+5xTNpt7+vTp5OTk3bt3p6amnjx5srGxkcvlyuWyz+dTj1Lt5UKhgFYo/f39V65cmZiYqKurY6zSHeQ9l/dORZJmqqiQk5TPifWVUaDIrvG6KoUuFosLCwvffPPNrVu3FhYWOOfxePzSpUt/+tOfBgcH3xTPnd5jGoZtV1fX1atX4/E4+hrG4/FTp06dPn3a7/crFrUaZ0pShdmFGRY8OYO/wCSsbKx9ZY50iKN3mNQEKCo3xZhwqUY/6i62bhNJKZkUpiG5lJZp+r2eukg4Fg0HA36fZdrlomOXnHLJtcucKlRrnBtl8Zx/EFFIZRIyxtDPGpxXhmFYlmUSmkBUzjav16s+omMPcEeuFAzpqqqBX2O86+FjDMPgJIUUjmSM+UwjFglyItM0t1I7UgpHCDI5J3JlFX1Be6zpFwu+eq+jLaXEv55XpB8eMHmhsGpnWhUnUfwO+uPGV7zq+tcHJYRgjPL54sLCwt///vebN2/euXNnY2MDaGW8B6UTpmmCk4WIfD5fMBj86KOPent7x8fH0S/eNE2VCHrP5b1TkTW1wDpdHRxtJKbZ3np4mBhY9LlcbmZm5ttvv71x48bm5iaocNPpdEtLC5oxvJFxKhWp8unxeHxwcLCjoyObzdq2HQwGY7FYJBJRvR6JSEqJ7hTZbNZ1XW4aAX8kEPB5KoRHz0u/j5gfosqxjt3PNIPx+dQdFCDThUER7zVhsHWZlCQVUkZUIkbaLTxXkSSkENwgv+UJ+z0hn9drGOTYZadctovSsZmEhhFMAj7Dg0GfcrGh7KDO0K5LhZghpmnyKssL8p4IWSjQmDIhK3acW2kbiRd1IlioDOj95yqSScYZR3ENI4OZAY9FkaBhWfl8njG75Ejw/pIQzmsEzfY72pVIETFdb6r3vNKVcY8ITyndXRNzfE0tTBV3mzFGmUxmcnLyn//85+Tk5NLSEmlpMTwX3eRvbm4eGxs7ffr0+fPnu7q6Ojo6YrGY1+txHERITlTkq4vymPQm98pSgD7S0xo1UFLGWKFQWFtbW19fTyaT6MW+s7MzPz+Pqv43OFSMkLQ0eiQSCQaDDQ0N2N7wHxFcw+opl8s7OztLS0tLS0s7OzuuFH29pxoa6hNNDfWxqEoBHWZFMkkCkOZD6AD2/zx6ntXUqeszxsjY46Iqi3K/6cRICMc2DdNnGn7LMonscrHsOtK1OSeDM8tgknPpCiR+GZN+r8cRUvli6voINSLAD5sI0auAzwsmsZqZUa66zsIpiDlu5cVKfzHt+rgFdQK5rmtwchzXsEyDcyGJMeImBchijAX8Fg4BSUwyAmBdciY06+yFSZsjnsL+8+Z4ixAqSSlEfX50C/rYvrY6RtUezOVyi4uLMzMzOzs7qJErl8uK4QWDQStmcN9OTEwMDg42NjbW19cja0RElmW4rnQcgV5JB33vSSzySGH7yBbV70fgeBSRWj6fL5VKqLgC+6aUEj0Oj/jSGg9Xahh19YoeOdK1M17fH+vUARmlUimXy927d+8f//jHzZs3NzY2QpFwZ0fvv/3b7z66fNHv84TCYSJCOmKPtyuElESuAJnPgdOilAj+oYa7h6xME25olLT0/L4skzMBBgoppBBSSCFISoNJIhJSSJLEwMtAhuRBvy/k8/g8Htd2MuUdTsLj8fg8lmUaXEohHads22VURknGDdt2uWnh6SivMBAIZLNZIvJ6vXheYC82TdNg3Lbtku14PB7HsXOFIhEhcKEIsnw+wzAM4pIxYRicqjXCKDJBjk4nuRHVrLoUTsBjuMIRtpTMIC6lY0tmekyzLhKWMlvOOo4rBRPQz5yYs9fAP1Ah6lqvwhSJAK94niySwsXbARFV/UJedafsD1srY+JVL4WMqGVZOK70Uj/ODcaYx2MKQZZl7e7ucs7RvARVcDjtIpGI1+ttbm4eGhoaHR09ffp0T08POkSFQoHq8JT7xd4/kvUD5D1Vka8qunbzer1NTU3ouQziXp/P19TUFAwGj8gU094YKO1T07TXinnVYx+WSyqVunv37o8//vj48ePt7W1uGnOzS5FIqK+3e+jUAFXjDCqkIIRgTEhR2flQZzWjrZkH9Uutxbf3WK6JRVYMWBLkCql9pAYxUzMhFomw1/AYhiHJJGlYhmF4LINzg8gVZccuFfPFYt4p20I66BnrOIIZZqlUUolpFJZBTQCHgLkql8uO4/g8XpWFU334AN7SbxD/BG5cJX/0xI5eKKUVF0jXdaXkXNFPkCQuJUmvx/R5TI9huq5NAoqRS2boMZDD5n+PFf/8tKqeRc/z7Hse0/Ec7TcleByu6xYKBcwVjhn0N6fqsYQwF2p1wuFwoVBAN5FQKNTQ0NDW1jY+Pt7R0TE8PDwwMJBIJFAR9/6YhMeQD0RFQvAkgsFgb2/vxMREuVxeX18XQsTj8YsXL46OjnZ2dr7qNQ8LCx4DZINk3/Ly8tzcXDqddl3XFS6qEcBbZZqm41b6BSuYtFJKjDHOGUmn+u1HZUKr4UR5INE/Y8x1RQW1s6fI0mBCMtqjBQ50Ayu5DiktJriUJF3ODK/lsSzLICmkk8/lyuVSvpAtlQqu7RCKCBkj4sQNwIl9Ph9UG7xgNMzQPcSaxPdz00zT2gqCDoGKhGmDbS+q7JN69gZ3wZl0hMAeQJmjQn8HfP5yyckVSqVSySk7jpCSGYZRiWMe6GIfLM+h5XtUJO07z96tikRQOJVKgaGVMeb3+xsaGkzTg6SKmsloNDo8PHzp0iWfz7eyspLL5QKBwKlTp0ZGRk6dOnXmzJmGhoaWlpa6uohah79p+UBUpNSwb1CR//7v/97R0bG6ugrKvMuXL4+NjYX1lvV7ZX/br6PZwl/ViiwWi6B9RnSyEh4yDcv0ERGKECzL8nj93KhCAp93ajRM02BCGgbT6wgPg9TpW+6wQk9FVkRaGJdLYoZgzKy5Du2FaqpPmZIc+MvcUJTXtl22bTuV3LbtcrlcdoXNCaSzUpD0BYKsilVA+S1VIyQYLfaqZVkqWy011E6NslOKlapBSbCmY7QwcGCY68TXak4MxqVwiHPinFU6PnL80+Oxin6PP29lctJ1bNt2mGEKYR2tIg9Amx6iImUlqf0GEilvRLLZbCqVun79+q1bt7a3t13X7ezsvHjx4sTE+aamJtPkgGARkcdjDg4O/s//+T+7u7vn5uaKxWIikRgbGxsYGGhtbUXxNbSq68oq49m7vbnXkg9ERSqBM5hIJAKBQGdnJ6Dj4XC4ubnZ5/Md0QZo/+sqe8C0LmDqT686MABZgCdPJBKZTKZcLnMyvF5vfX19Q0OD3++vRH8k5fN5y7Isy/II4qZFgikVaexrTq8UlhpbjRAdmt7R/l15Sff+pIb70cHY6nulkAHGPIbptSwuqZjLF4vFQiFXKpWKpbzj2LAfQdMAKmquAT9hL1NVu8lqvbbq/0VEtiMcx2XclcQdNGJA70BUPXLO0E+MiBuGYZqymk7BsCvU41XlWxNKNgxDVjrdc2aAPo44NyQzOOc+j9fn8VqGyYR0XRcdGYU4yn6U+wBbDMhHVvu2N7Pc35xkMpnbt2//v//v/3vz5s1UKpXP57u7u9PptN8f9Hq99fUx/bbq6uquXLmSSCTAAhmJRJqbm5G6saznnMDVbuZ7inN+c/KbV5EHaj3LsmKxGOIgiP0DKfaSndJg6yFeBiyFx+OBycM0jshXGifWSiwWGxkZWVxcDAaDGxsbltfT0d5z+fLl/v7+QCCgLDXAAy3LMl1pWJZ0oREqKvJAUKQ+eF1UoKDGv6upP3keIKNacI/Q+pvXqEghZDToM7khpSwUCplMJp1O5XI52y55vV4hHekKzhkjwzRNy/KaJkefClbtlaZw19CJwPTgnzr/CFABygxElkCZk3guULgqtSr3dphSilJ9Y8VjMAz0tK1GYyXnXHKSUpqm6fN5vV6vYWTR1VEIwYkj96Jm/kArsuYBSdofF2aAbj0fyTuVYrH4+PHjO3fuLCwsSCmBnAuFQsPDo/39/eFw2OMxESkRgjwe0+Mxe3p6QLAmhEAmhzESQrpuZcEo+/FERb5L2RMa1wS5TgUhphfVGCjt6TjOzs7O8vIy2lF6vV6wHzc0NIA1HQXXr2oIQO1aljU4OCiEOHPmzObmpmGZgwNnRkbONDc3K31UtitBOkNpk+foDRJS1JiQ+50+ndxBqcIabbj/9co/hcP3XrByJFQ0SOVLgalkTNq2Ld2Sbdu5fCaTyeRyGdu20cDLtLjlsTwey7Isy2ty02AGdKWlyg318wbGI7xjWQX0QCFi6qq7juMV5ZUrZk8VW8ArirOZVbubqtusxjAMRxA4kXi1NxmXggkmSRiG4fP5UOBcdF3hMuDH9Rp5OjwqXbHuaR9SSs8K7i0xeoeKslAobG1tKYIJIsrn83Nzc+gRVrOSiZjrwjBnrlvhVcDeUpaj/qETR/tdilp/esl29ZlxRLXwYqlUAgrkQFHas1AoLCwsXL9+/fr169PT00QUj8d7enqGhoYGBga6urrgFL9qLaOyjBCyKRaL6XSaMebzB2OxGCgLLY+PiArlYrFQZoyICUaSk3CkkJJLcpngLrmk+upVr0x7jwqlImvUn14to0+dAh4SERNSkmSMM8ZElcGxwltAkssK4rpivpHM5bNuqZjP5wvZXLGYRxIZWDnL4w8EAqFAwDRNSa6U0rUd0+SMSc4xHgfGnetWCJAcx3Ccsuu6QjilUtEwLMuSjuNIVziWZXJDcklCuq5bAdO4QjDBhSGYKx0SzDUMgxgxLjnnhsmIyBBI9QhiTAiGc0Ya0uSG4K7rkiAJD5xjnjgnxokz0zIsy/J5TMuyLG45JEmQULFg9hwoejAGWoLvQT7XfHt4oCvUnXr48h2qSL/fHwgEIpFIMpkENg5OGKDEUkohSAhhmgoczqoFwczr9WL3OI4QQliWyRipV6pewm9VTR5TRT7nVqmK6qGhy36HVLzpPuWqnhf/1M0HhcTGn47Qj+oWOOfwOP7xj3+gOAfW6J07dzo6OsBiOTY2BkUZjUYZY0izKENGHwYQeXoqFuE2dEZtamoiIiIGAj7XlZKo7JLX5yciIR0mHZI2SUFMEiPJSHASDlE1mV215mCPVHkM0bVZSCYr/FuSIxzGVEMCKaVwNApbrTKHcRN8BSj9dqlS9myZJpeCkTRJciJOklxHCndra8O1S8Vi3i6VhRDcINOwuGFYhmUw5vd6LZN7PKZpevL5vGWZnKTXMjOZTLFYDIfDrnCLpaLHY7qubdu245QNw/B6PY7j5Ev5gNfHJAnXNgxTuLbt2MzlJjeEcKUrTMNynbJwXK/lk+QKV5oew7GLls/n8VmFQoGEaRhGuVjw+/1lu+y6rtfrdxybhPSYXrtcNIwgN5iUruvYwiHTYIZhcEmMpMlNx3VMg0fDkVzBzhXK5WKJc49hmFIyyYSUwiWXpJTkqidCEqUOvEqjS1IKIqHHIiuGM0kpBSem6mir6fs3tjXAI0lEAFShM7PH4wGOR0WEYVuYpjkwMNDT05NOp0OhULFYjEajo6OjFy+eNwxmWYaULkjhOKcqhUJlvyv4t2nymsPiNTXjvmIx4pxcV6rUgO7Cq99t24WPD96N15RjqsgahCDTiqn1iPj+MNn7EHY5TGAZ5fP51dVVUGAAfI4Xd3d3V1dXnz179vDhw/b29omJib6+vra2tkAgQFoHHhAj64YbYHqH1cayCgskaYy1TFZzJkI4zCAhhGBcCDIYYxw8kFX2PqnSNQaRIMaZ2AN4dJkeZ3z++Cp5kr0jISJXVkwiyUgoc6fCzStNIsYkl+TaZbtQKJULhULOccsOMteMIWxrWabX8nDOGZfVSKJlcm56PGWnZDtl2ymX7VKxZDrCdVwb/y3bJcPk0hVuEUBIWSqVpElO2SazAsnkLpeGqPTPk4JIIF3OKvyYQkpZtkse8grpFotF0zRd1y4WJecmETEpSLhSMukKIYQrbMcmF1SSBjHBmDQNwxCMuY7BTdMyDMsyLcuyPKbpuMQMQZw9p/TgRK724KqBCPwN87mfFve5A773lTe6L9ROLBQK8/Pz6+vrOzs7nPPm5uaOjo6GhgZW5fEDciMejw8NDX3yySfhcDibzTqO097efvny5c7OTrTTomqEdz9M4u2JmhKtVpaUCnFdSVUFrYxcUrRP9Gb4KF9ZRer+LGmxqudACsOgSpvm59WEUou5/DqT+6oC4AgUXKFQQJ01QmNYTJlMZnd3d21tbX5+vqGh4cmTJ8PDw6Ojo93d3c3NzcFgEAkWqpKf014sy+HfLA901LSEC5OSkUDlNAOxd4VModqygYg440Ss8v8SjbAE8C+A3KA9w/OtaRBVPwvhFY7YassgRuh5BWEkeKUcXDqOWywUcul0Lp9xyiXp2o7jEDHiBjcMw2OZHg9KzRxXOk7JcB3JSLqSk7RtWzIqlsqlss140SXpOE6hVHZdN1coGpZHSlkul/1+P2O8kC9ID5XKJUtaxCvLzDRNAJglMyrsDKwSWLCYxTkv245p+bhh2q4wPYbX61dxT+JMMhJuhbCSOHMFg4o0TEZ4jxCSMSG4xzQtw/R5ecDrCXh9dlm4xIRbeVjVpcw4e86loj8RTfExFcQl5VrJCimGHoV8g7sDtyyEmJ2d/eqrr+7du7exsWGa5qlTpy5dunThwoX6+nrgB9CXFdhGn8937ty5QqFQLpfr6uoGBgbq6+thBKjLvnFH8CVFV5cQnf4VNiPEMJjrvjHMwCuryP3JAaUHy+UyIMFUZWfRYcmqtpoOSUO/W4HpB27KhoaGpqYmkN/hHpEWcBwnn8+vrKxsb28vLy8/ffr07t27Q0ND6LmRSCTq6+vhdNfMzIurwTRYCB40I4MkY8xAgTDjjIgkI1cKLp/vJbVUmWkScSZJEJckJbmMDLfCUFMLaeIqXVP5SklELhGujK6vULfVekdhcMaJM9exy3Y5nytkMrncbqlQ9JjcJc65KSvwGZORwRhzpHSEa4Gbi9uCpBDCIWHbjk3CcQR6WsG/LJVKQlCxWPT7g0I4uVwBAKFcsSQlgwuPg0r5K+VyEVxbyINBRZoer9/vL5Rtn48YM4RwOOc+nw9NHbSMdhVNyZkk7pLkJGSZoWtrRUVKwxTC4twwGOAMhsFcWxrEq50hySDhEmOMyWoHIl49uqhCfox2QXtUpHpiVQ5vHZr6Jpe0YRjpdPrWrVt/+9vf7t+/n0qlDMN49uwZaKhCoZCilcRZHg6HBwYGuru7YRmgZxRmG4aCSn/9GhvyEFG+c+WgN8Dw70gpd3d3GWOBQKC6B8lx3NfnW3tlFamrOdqb5VhbW1tYWEAb3Pr6+o6OjkQigYBdDbTwPcSFeb1eRKbRFmJsbCyZTM7MzCB5WqkXrqZTYWamUim06Xj8+PHQ0NDg4GBnZyfClKq7G2JMr0r1LBm56HdCxAidQzlJMPtXsyjVqYT1Ry6yEtXkDChkGGPMkHtJIVnFUXye0VYMkYKA0SGq4lo4OsISMwxOwnVdt5DL5zK7xWzWdWzDMBiB40USq0AaiTMhZdm2hRCCkWBEkpUdUSzmSyg6lEIQ54YlK9pclm3XcUSxZBeKZde184WSx+sl4uVymUuy7ZIgV7KK/WIJC9kDyxVQka6sxDQsIYmbxZKdL5aldG3btbyOybkjJCcpiFXT5pJzLgRHOZNycxSPJGNMkum6ruvaUjKDk2WaJmcFUWbco5OicVZpXVN1tGtUJLHnLx+qIpUl8QZVJO4ilUpNTk4+ePBgdXUVdzc9Pd3S0vLRRx+NjIzspwFHBAbxSm2JPXcTFaXWW96OLyWwPAqF0srKyvLy8ubmpm3b8Xi8vb29vb09FAq+ET1zfBWpz1S5XF5bW7t+/fq1a9cWFhaEEM3NzZcvX75w4cLp06cx3QqP9q4n9lDBIggEAoODg7/73e9M07x79y5wD+l0GqEDAFaIyHXdUqlULpd3d3dXVlbu3LnT29vb39//hz/8YWJioq2tba91cBRI6EBz2q2KZNx1JSOJfc73XUc1EtFekTAMZSUAKfneqg/JnseVZCW/I0miobZkUlClRYm2eYR0bKdUKOYL2UI+59glDoPOcakSxjUMbnJuEHEpmRCykgvnTAhhu07JLttuBbsDwZQKIVwXJCMlw8iADymbzQsh7LIr7Lxtl1xXum6F/MmyKneqkcZVcmWOIG46riuL5ZJt2yRkoWCRcNQjMHmFlRnD8Pg8uULREFIKQqXccwpeDjOzZEsupfQY3DAYCZfzyhp2SQD8gxx3pTrrABUp3okVqSo7s9lsLpdTyKdsNru1tYX1rLirSREkmyZjrFwuY4qous1rvJB3uJH1r+Wc2bY7Ozv7yy+//PDDD8lkslwug8r6k08+GRgYeCMtBo6vItXv5XI5m83ev3//iy+++Oc//7m7uyuECAQCuVwuGAx2dXWBP1yf2ffNy4YoOzeRSHz88cctLS1nz579+eef5+bmHj9+DC41RU1K1apV27aTyWQymVxZWZmdnQVTZF1dHZyUV71ZhrZTktyy7ZTKdrnMhLRdyQzuSGEYhiHUG4n0cuOK+1ElH6oMsvLu59yKrKKRq0HG6iat5LUlSM3xrsrFGXFJ5XKxVCzks1nwpxqGwUgI4UgGkA1nnCRnrpTScSphTekapZLjOEI6jLFCqWgYBoizYG8qvjvXdYv5QjFfQMNYznlOSBStC8dxnLLrMsepVDpZVoXVwrJcEAA73krawfBYQjBiTLi5YrHo9ViMMbdsA8fOGLMMU0ppsEq8eC+uXkg94y9EuVx2BEn2/2fvT5/sOI4scdTdIyKXu9VeKKBQAAEQIMGd1L63qXvm62/GbOzZe3/lmLVNd9tMz7Rao9ZOraQokQRJEHuhUPtdMjMi3N8Hz8zKKiwiIarVfE9Bs2Lh1l3yRkZ4+HL8HEIAl5jEGWeIG/hk3c+NbflFGzrrx0BZhAFbP7J+TcMvpznKbi7yszWROqtpmi4tLS0tLU2nU71x/X6/3++r16KxUXujpWH4b7s/NcTWjFmrYd2Fsv75RptMPI6YOlnAOTg4+O1vf/sP//APP/3pT2ezmfd+bm5ud3d3YWFheXl5YWHhTwcbPU0usnvu6URPp9M//OEPv/rVr65fv66Hz97e3h/+8IfXXnttNpulaaodst1i9591fp9utO6hUoEuLi6ePXv2pZdeeuedd37yk5+8/fbbt27d2t3V7hGvqTFpeubKslSdo3/7t3975ZVXnn322fn5+Zab/pN9X9ZtpkGbD2UM3vuSmD0LMjEzGMOa5BRQMfsIQgKMmBirxgGk3ucoIhIBHt6Fxw65Y3cTBURtKInUvicBIHLwviqmxXTCPlgkciaG6H10ziEQUs2sEaPE6MGDsRhChQiVL9RVUXQU+1CrhBNFH9Rb0V6mUFXKxpimaRnCdDodDAblrIgxohBwrfAlCTQggVq4hoOaSLA+TKczxfbPZrPBoI8syoMtENU/EtHeGfHeM4gwsLBOVLcHRiDGGEQkIglYZ0zqjDUSRBhYp4VBm7qBP/FyPrKPcuzBz3wx6wGQ5/mZM2fOnj27t7enkNWzZ8+eO3dubW1NMXC65pVWVbFBun/VCdUkL3SYPakjuPhnHbrFuvPTnIvHHMPxePzhhx/+/Oc/v3Xrlu7H3d3d4XB4/fr1V155pd/vp+mferVPU9E+oZGgeVzVRG17whBR25DbyLTrrj+sRNjNbCrUpr1V0JHDfrifQT2Rh33b7nhyF8SJ0VUCUcTDmTNnnn322Xfeeee999776KOPrl27dvPmzel0Op1OoZOp0Rzlzs7OBx98cHBwcPbsWe2Ha5PcaiYUqtblyCiKIh8MjDExijU4mRbAIjGEUIWqRBNZmNiBiHA0Cq5iERUorcEQ5GOU2tI1fDb63SOr/SJVZkKMzSwhooCybjcKVoCEBEDKw2YQjTEcYunLycFhVc5ijKIkksAAYCxGZgBB1hnWeogg4mxWEMHh4WGIFRFZSyQ8Gx9aY0Ak+CAiELliPgyhRiMjgXCM8bCYiYgztpzoJ+JsUswmBQIZY3zp1UUqyeu0jw8miJgkmXMGDYSy1qENZenznnX0YGuapmmWZQd8oF/cVZ6IisrrNdcmAFW2l4gImQE5Ro6CNsHEmTyxqTMYqdReRmNUthvIOGMrDiLSevHQgCNrLOpDXmTNdwlHrBzM7L0YC0THkAYIICA+ePWCoYO3fXLZ0znX6/VeeeWV8Xh89uxZVW194403Xn/99YsXL2otW69H1+SJbghE7D7yCS3jE+rdVVW1rfc6vPcA1Fq9svS7u7uHh4f7+/vT6fTBgwdFUfR6vZWVlY2NjZWVFaV0aTa+KNVmVVWz2UwTTYpI2d7e3tvbkycqiX7y8ScF2jq0Ty7P8zzPEVHNf9u8dWJSHjlaz1QZp/f39wEgz3OtkGh7fEt4Bcdd/UemG1rq/25J/emGdh3Mz89fuHDhy1/+8vXr13/729++//77v/vd7zY3NxU7qcx6utSyLNOpOEFo2JYONX6Uhj7H1PQOtUkjAGvIErAEiV5iQGmqyiICxP6ozNL45DoD2nGDIlEfaQ8Gfd4JZ7aemQafdHRQo3R1EGsa8MqXxSxUlcQozKAa2xIb6l5t2tGkpBYgBFFijD6U7CsR8QY4AkcvxsYYNaAGJctiYIYiRGPA1VkAIARrxCH3e/22YhZD9FXVfC8N+rBNekjFwVHlZyYxWtNEa2fCRBSlJjNvdR1EpFXubW9QdzAzUAAhAZAYyNjUmX6eh8kMVZVbwNYNlNq7DV0u0nY+ReoebazxrG2HeFP0OZ5bNoQAEDl286zSMB7Vm7ajlPlkWpbhcPj888+PRqPXX39dGXBHo9H6+vrp06eVd+ph0N6fOLoUzm38rjwJrSlo/SFrrQiOx1PVlb1///7Nmzfv3r17//79zc1N7S9IkmRjY+Mb3/jGV7/61bW1tRitVrGNQcQkTdM8z5W5UhOsxpi5ubn5+Xk1IH/6N/rUb/HwVGoJ7OrVqy+//PJ0Ot3e3gaA5eXlF1544cqVK0oh8eQ30TukLti1a9du3LhxcHCgtmZxcXF9fX1paUmtcK/Xa52y1kp2tVDae/PIQ+8pwEZqStTqraysrK+vb2xs3Lx58+rVqx988MFbb72l9RwNVbIsO3/+/JkzZ1Sypk3fQON9xxgPDw/baMUY08t75vilIkfhCD5IqCQUQiTMLEZEDBtG03orUmdnDAAYsgiAaIRQmlqN/ll/nhQFswYRUZCIBAgQgVAEEKhbO9CqVDmbzWYzDiXGQBB110LkyBHJsGrYaKwaI6EAMHAMoQoh6D+DZ0QyCMIeIivIyRIYQ5YMIqbWaTt8mqZZc9JkWZYmPe/9ZDIbj8cHBweTyWQ2LUMIIXCjox1FBGIIgX0VATgGiIaSJAlUJ77RmOgrDkfMklVVJVnqnEusMQZFqO3bVrPLwCik5j+iN4Rp6kbDflFVLFyGKFD7gMxKakZHlTTSO4Qt4Llbq2zuwiM6LPQXlrqKYsgAgHBk5vF4XFVVYp3u/G4O8ZGjja76/f6FCxfOnj2rpJw6w7o4FeX258t6ncBKd/dC2/n24MG2qm/fvHnz5s2bd+7cuXv37vb2th6KWlNaW1sDgPX19eXl5SRJmGtMOBEMh8Pz58+//vrrv/nNb9Q/W1lZefHFFy9cuDAcDj+TnMBnYGWVoOXVV1/d3d1dX1+/ceMGAGxsbLz66qsvv/zyI00kNkjJdqZE5MGDB2+99dY//MM/qOakQhRXVlaeffZZreIvLCysra0tLS0pb1jb9qdubPfNP5PTo3upWlw2xiwuLvb7/XPnzl29evX69evPP//8O++88/HHHx8cHKgR/8Y3vnH16tWFhQXoeMcxxqqq7t+/f/v27Tt37jDzYDCYn58/d+6cXTZJmjYziQjAMYZqChKJI0aPQhyDESPMkQhrDxHgCMpDiEg2AQBGVcvSqBkAQFjh3yQkBgwYQDCADExCSg2pWGhGMUccNg3JgsQQqqqYTX1ZEUTSdkQWhsAcYmSU2DTNsYjE6AMHFDYGY6g4RkIgBM2jJsYOelnijKan8yTt9XrD/iDP88WFhSzLhsNhr9frZ3mv1+v1elmW9fvDqqom49l+MyaTWVVVO9u7ZVlOp8VsNiuKSvMeRTEFK7NyGjxzVTBACGASyPJeqGJZE/qiiJS+SoNP05STljDEKC+GtSgiaGqoo6IxjURnqd/P+0UpWDKzjwyiZGxGmDsQVaibr+HopOlWtGvKImhcSejkggFY6tOUkABgVsy2t7YODg6uXbs2mUwS61ZXV9fX17Wt6wnrvG0u1HhZ+QG0S1g7wTTP04Zln5WhbDf1iR4TOF7G0OdUVfXb3/72f//v//2LX/zixo0b29vbehyrb6FP897fvHnznXfeuX79+pUrV0ajQUMXXZvIV199NYSwtLSkztn6+vrLL7/80ksvjUajv4wX2X7b1nyow7yysvLd7373lVde2dzcBIDV1dWFhYW5ubknGPKuiF2M8d69ez/72c9+8IMf3LhxYzwe53muS/ZXv/rV3NzchQsXlpeXNzY2zpw5s7KysrKysry8rFoZGtFjoz2PDR9Mm4xob8lTRBPS0Dq1Vlh1Sufn51dWVs6dO/faa6/duXNHYatpml65cuXy5ctpY/Xaitb9+/e/973v/eQnP/nggw+896PR6Lnnnvu7v/s7+/Jrq6urRB0wCAoKO4OJhdQAERBHFA4xiJi6mlL33ehmU18jICKCEUSghgpfiFkYAcEACZFDADKolWvRtm9EQlGKL2VWaLF8pAjwEDQ7XPeOAAtwjJFr6YgSyFokJIQoGlVJDASWBFDAIKTWpKnL87yXp6dXV4eDwdzcXK/Xy5J0NBqtLi3Pz8/3e700TftZniSJpbquai2RrZl+qqoqS1+WZVWFGGNZVLPZTL3L8Xi6v7+/u7s7Hh8cTMaHh/uHk2lZluNpMR5PvYeSp4KocGiyBtFgIFWS4YDWkLFOk+bWWkEyYAwSM6udghgFkZxLLA37A0HrY6hmZYxMYDWtcczEqL077uFhw9gENdUmt8/p1tIIlUSEAGA6m77zzju/fPPNDz744Pe///1kMkld8swzz3zlK1/59re/fenSpT+6nrt+nDFGW54etlxPCNg/7eh6xK0nW0Mgmj+1DAY7Ozu/+MUvvv/97//+978/PDzUxL2eEA3lvtHmn/39/aIodFvp2zBLCGItXbp0aTAYPPvss8pRND8/v7y8vLi46Jz9TODXT29lH05snTlz5tSpU+fOnUPEwWCAiCod88iXwEONOoeHh9euXdvc3Dw4OJBGEq+tAn300UeDwWBhYUHL+Wtra2fPnlWA+tLS0tra2vz8vPqVilGATieyNL3ST3FUah32SGOv6b+OMQ4Gg36/f+bMmYODA/2mzrn5+fnBYACdvkM9tN9///0f/OAH//Zv/3br1i0FW1y/fn1+fn799NnFxUVj0NQnHquT1UuTPEskZMaQ9waQvScBClETfxBEmKMooTUCBAEwgPWqFATUjkGwAgjIABTBW7IgUWWtDRCguoBMQECCiCxSt/JgLYgoIhLZNjhoEWGOIXhRkh6OIOpNCbCARMW4H+7PehmMhv25YX9pYX5tdXlhYSHL0szZYT/v9XpEhAJZli0MewujvrM2TV2eWmMQOUoMIVbBQIglERCRJbI59bJM6m9svPfeR/1ZFMVkMimKYntnZzwe7x0c7uztP3jw4M69zTv37h2MI4uUZUm2RGeMcWRNkYbcu9SRs8Y6bS13zCyo+VlCrHHxR0uIYt5Lo0hRpGXhq8hCQuo00hFgqLuqH/YidUqhSVN2KzMnxv7+/nvvvfe9733vzTffVOkOg3Tt2jVtoF5dXc2y7HGMU60jJg3DU83+dlyuDj5h99enMQve+6IoWsGMwWDwSAYZ3dpa/9zf31cj7pxTniHNSmlblIYX/X4/TdM2e6Q8bACQJFZpqluYZ6PMzifwG083nsZEnigQd8GlmvvQx1s45BNe3kbcbYaohUC3gq56mw8ODg4PD7e2tlRSeTgcLi4uDofDCxcuqDd39uxZPT0WFxcHg4F+enPsYLtKPq2V7LYZQOdY1iWo2YAkSdoDs/Uf25WnybKbN2+qRk1RFHoA3L9///79+9PplDTAFgESYTbGpIntZ+mg13MoztU0sQpY8Sws2Ih/SYhRBCMI19OGCu4L2tYPQoY0XsQoCFAH66LZSdY0JDT1Bzh+ntHJnqjIwsKRY4gxYr3BIkfhEJRLglAMEaJdXnQbZ9cvXTi/trqyury8tDBPRGUxOdjbIZSqnFVVxT4450IxGx/uD3r9LMuG/X6SJNrGR0RkxDrVXHQIhtBoHV9AimLCzBLBoNiU8jQfDRJmOLWyUBb+cDrbPzjY2du/fffeRx/fuH13c/fgcFqUs9JXVRSJQGBK71OXJcZZ49IkDWni0jRNo2g9hEQEHKgKI6KARGZCqiUlnHNBfBsht9yXOnciAjWzZ4du6iFPU8s1XS8S2hAVMMY4Ho+1iBG8B0TPcvfu3Y8++mhzc7P1qh69sY/Lxmpk3S7grh3/bEHKRVF8/PHHH3744dbWlsaCV65cuXr1ahv2trXWdl1ptdMYo8pF7WVrkSPP87W1tZdeemltba0sy34/V+7erglqWUNjlDbd/InBdn9k/Ek92tCpW7XnlUbWrRoywGMxN+0j6mBrfkp9sRZ42N7gdq9WVVUUxeHh4YMHD5xzP/3pT+fn59Wp3NjYOH/+/Pr6+uLi4sWLF4fD4fz8fNuI+hT2UUd7OnUXk7YYajpZ0z3YtNBoXrwrD4uIs9lM82Utw4UW4wDAHkG9JIRAwg4xTcwgMU7SNHUskQGqyjCIMGk7iucYQohBuNEaFUYGZGaO2mjNCEigZRSpaYG4KWE38JQoYpqLFKlVDhCxrdoYrPOSqE4jC8fILAQCSJqsk+iFgyEhQmvIWvrSF9948epzL159YXV5sZemsfJ379za2dwb7+2GUPmyqqqKEHu9HnLkqoTgo8+JI+e5a5QRiWQ6mxkr1lpDTjMEDV7KscKiqkoB5CICQDEAIvXSxCzMzY1GK0vLy4sLp0/d/ejmrd39g63dvfFkOvMcGDBUFcbowVmThBhZImNATBEtKyiNDQIaQjKIKIyMzMBg0Fqyjkw0QlSfLd3QVX8qIF/7lDoLvp7q5jmIeAJW2S6zNkrVW5amqUT23h8eHqq60RNMpB7hreOi5qn7bk+9HZ487t2795vf/Ob73//+O++8s7W1NRqNvvnNb+7u7n7nO9/JsqwtowOAmr/FxcUsyyaTiRpxbbgaDAZZlvV6vbm5uYWFhatXr373u9998cUX1f1q8SzS4Y5rCX1FTMP3Y/4ygfaJaT1Rj2vPrm6i9OGXdJ+j3U6IuLS09N3vfvf27dvvvffe5uZmm6NsFII6iDMRVbNUVPD29vb+/v6NGzf6/f7c3Jyi6tVWPvfcc1evXt3Y2FB6mCfz4Ortaa+82wt0AspAjUjAw5UieAhBpqIOCwsLp06dUhSUVuvOnz+/sXH+/PkLvmKXECCIoEtsrMrE0ijLloaDKnFooPCFGEFCBpJAzBSjOCa2JrI6CMDWxqDpQYwQLSELBmaJwRoSJAYOIQKAq5XpSXksDBHW0ysgwAzWWATmyCiMEoFFQkQWEGFmDpGZmClCFAB0LvoCI1sLKfJomD//3LMvXX3+y1/+6oXzz5w5tYYcD3a2b13/2B/uL+Tpzp0Zx4DMqXbIFcUBs5/NYvB5ns+mk7aWbYwRiZZYIiAjGgOI0pQapgczDcTKsvRFWRRFWZZlkBAB0EiNaCJAXJkbLi/Mn1lbubN5/8bte9t7+zsHh7sH+9OSyzISQLAxAlVApdgcbYToAluEXpajM8IBySDZKFBWgRKni4SsJSssQMYYqinnpCVk0jLaUddTTRQijQElazAK1RxMEEGiMDOQAVMXwmU0GFy6cOH8+fO/+c1vxuOxtpPm/d784kJ/OADCKvjEPjrX/7gNqIu269k8te04UeTRyObu3c3//b//5ac//ek777wjIouLi7u7+9YmKyunvvKVL2mLVJYlAGCMyfP+pUsX/vN//rsf/ehH4/FYy0rz8/Orq6tra2srKytnzpw5c+aMUh/MzQ1FIoBr6SnbX44hNWx7wHw2ahB/MdbxtvLVmr+lpaXLly//1//6XxWkff/+/QcPHuzt7WnbX5sEbL4/dpNEiiDd39/f3Ny8detWv99/++23FxYWLl68+K1vfetv//ZvL1269IQjt5nco9noQi9b7Fg3t/Bpv++LL7746quv3rhx4969e9bas2fP/u3f/u3Xvva1LMusI+gwTYgIc7AEFkSQAcSSCIoliQBokIEMx0goSIHAIQSGUEVN9YNKbUeJxCjAEPWk9aBdJbWAHxESIZojqL8S8h4VGZBBuSxRBW0iiALGSSRq97UAGrLWWoEqc/bM6tKLz1368pe+8PzzV86de2Z5eXmYDYrZxADGUHBVQgiLC/Pt3ew61P1+XxMjLV182yOIkYRAkBmImVljxsjsQyiralaURTGdTieTyawIe+Mpa481gXMuy5Ms7ZGzi3ODXp6urq7e39m5eefu9Vu3N7e2ZzMGAI5Qlt6AiVgCkQiwxdSANeSsISJDzhgt+tmu9wfAjDUqVVWxgdRVfyIbebvG8HhDj/bOA0iDEMrzfH19/Utf+lJVVT/+8Y93d3dF5OLFi2+88caFCxcGg8FnmEN8ivHIuPDOnTs3btzY3NzUyG9vb08JHMqyFIE2GaqEPc65b3/72/1+//Tp0/v7+9bawWBw5syZ9fX1lZWV4XA4HA4V9jgajf5SX/MvZiI1Q6demK6nxcXF5557TtXKb926dffu3evXr9+4cePWrVubm5uz2UwBAW2OGTts3tBJa6pW/d7e3tbW1s7OTp7nzz777MbGRpIkVVU9zlB2IZMnciUP13mewkReuHDhO9/5jrX27t27/X7/8uXLX/rSl1544QWD9og2WTvZWCSyM9ZaK2yJNMkngiCMAYSBuKaeEGRhrrVXNJ+IjDW6jzkYEUZAEWRiYGmUDtXcoyE0CAbJYo1EEaiJ1JpMMWE7sVqOqatFwHVlwwcJkQDnRoPnLl/5xje++pUvf/H82XWbZs45DtxqYZO1uaG0l2p2Ahq/Q1O6KkMqEmME74EIGi9SMUMcY0QQNZExxsBc+Go2m81ms2I2m0wm+3uHk1kxKX2IMYYgEq21WS/r9fo2SXqDvkvz5YVR3s8UTuQMbW5uFQVHhlDFwEUUqFOOjqxBQ+iMJSJDCVoUqvFVn0QZ+k/xzuo+UIDEJRsbG9/+9rc3NjbW19c/+ugjEXnttde++c1vXrhwoVUc+bTjT/cfH/eVEVEJA2uft+HR0Px7VfkkOWKBITJpml68eHEwGLzwwgtlWWrCan5+fnFxEQDSNG3Fu/Ujqqr6tIIof/r4i5lIjXz1d4UcEtHi4uLCwsLKyoqi0Dc3N+/evXvjxo0bN2589NFHu7u7m5ubqkBUlmVZlgqm10lsqXy998qPq2W169evqyD6cDh8giPZxbV2a3zdO/SnrKper/fqq6+eOXNmNptpCmY0GjlnDNHxDouae0IR1AbEWDAB2IjxGAFDESNiRKiCxAjaDgiRCcUg1C3WIkxikESiQhwFoW2a0WgF0dSL2tBRzgtBlP0QNFARotpoB2EUFo4CUaRxAyVIgLKaDXvJufWzL7/88nOXryzNLxhjHJlY+arwvqo0a9bv9xNrhERNpGZLFLeg9BaaimrTu845AHZNp5DCnFpMX4yxvdfqbOobGoMMIAwxSoyhLKYS2Tg7nU1ckro0t2m2OBq4cxskbAG3tranMx8riBwDlIU2C0VjDTrCJElMcMYGYtaECx/HtbT1aGw6OPUfT3GIdocm4g2Zfr+vVKTnz5+/c+cOEV24cEEzNiJC+CkqLY+8pD8REdl9ua6iU6dOra+vf/DBB23pdXl5+dSpU/1+v+0XYj5KSTHz8vLyyspKt/Kum7rNn34ml/rU4y9mIk+4aW3CUX0KxTctLi5evnx5Mpns7OzcvHlTiWxv376tnX/KNa9nlG6w7pvX/DFFMZlMlALkk19Yt5e8labR928Rl5/2bhljlpaW5ubmoJNbaLt3QwzGHEHpEMVYsoRoyRpCiWJq0grOXQzgvTcIAbkCRkFkjACCqlIjBFpLEUJBDb4RBdFSl/JHwcsG0RBZruM7rsnHgbWi7RGUDTfGKBJRmJkFhEEEoggKM7DMj0bPXbn80tXnV08tI0pZlv3+EAAQgzHGpkmaZUmSGIQIUY2wemOaXQwhajtjw9lVS4ARWSIFC5L2EikclGMjHssSAQGNS7KsFwVhXJTWISS2iTYigHD0hiCWEHyF5TRJ84RoZTT0p1ZiWaEcVsFHBgnRFyVw5GCcpdQa772zwcdAHA1aOI5kbBdM27ykeod/mtHpsGpzJCLth1lYWDh37pxzTiFlakA/8XueRCOdwEXCZ+FU6pxsbGx88YtfnEwm7733nnZYq+LT6uqq0tw2DaMnRUm1EtAm99usV7d49Rm2hHzy8R9CAfGIRqFT8lPXI8/z0Wik5ZfpdLq3t7e3t7e9vX3nzp2bN28+ePDg3Xff3d3dffDgweHhoZpC3WZKkeucGw6Hg8Gg5Xd63Cy3ZOlqr6fTaVEU6t6ORiO9c1VVqd8KT7WkGs8IoINzajIGUcS0b2mIQll572NZgYEQKzTAMYigsxkhA9arjMB4YYNUlhFi3R8dRRAhqKCDABIwQEQhIiBoEn0gxqhwq7b1CAM2aTwtzmjRQ0SChCgMEkmOMrNNdpjTxJ5aWX7mmWdOr53qpRkCEEpVFdJo/6keoQBXVVWGUtEO2Mhh695oJ7/NQmINOTrmR3Q/vR3qeqRpCoaSPIEa1cQxSIiq6xUBAAlYOExnB4eTKMw+Lg56s/k5iVyUe1KBZwk+RA4hkLOUGMrTzNgKnDMcqW65QXgU6X+LZ0A8EhTSi/5Ui4RZkITqZEmdErHGggHtakXAyLHuTQTBP4b7a2cMOhmkE3b8s3LQEPHMmTPf/va3FxYW3n//fVV3OH/+/Je+9KWlpSW9m9222O4FQOM6tImd7p/aGf73T7/+JU3k41zobiWnbb5WJuT5+XndV4eHhzs7OwcHBzdv3tza2tLu97t37967d+/BgweKs9c08EsvvbSxsaHtN0+Y33Y5VlV18+bNP/zhD3fv3g0hLC4uPvvss5cvX1ZD+dQB1AnseifvGWtuHiQAZmHFRR8cHI73x1zNrIEQK7JYxYoFyVbMmslVl4oJxCrABwFR6XMpKhUEQAAAREKyIKz0jLoQrSGVmrEJWRNBMAogUKPT3V4qN/YIQWqVWXUtQVl4Ze3UqecuX9pYP9NLsxgqEHTOTCYTZcDThCMAROZZWVRV0R5jANBC4dowotXA0MedPaKVEkFmiMJRWC9AK3X6hiJCBHmvB/V2YhGIMYXYIX8UiVZmZTGbBgohI1pZmK8qP57MGEpg5CDBgwhPp1NrKcsy46xJUh+jBbHHzV830IbjXuRTr5N2jaiT3y3n1IUO4daFDCE8rqINXW30jpXsbr0T2fynGydi7TxPX3rppdOnT7/++usikud5v99fW1tr9vJJYZkuo+CJndgFXP8Fx1/SRHZ97BO5Z7WSrUaYNiHpvXTOaWJraWnJe3/p0qWDg4OdnZ3d3V0F2Sqr487OzvLy8uXLl7/whS9cvnxZ3+GPQm2999vb27/+9a//6Z/+6Xe/+91sNltdXf3mN7/5n/7Tf3r++eeHw6EmAZ5iVbX2seWRbR+Xk/woCISTyWQymUg1swZ8rIwRH0MEES6koa9Q2yoiDGKQhCIIiURWqDMyE2FUdQVARDIaaNeNFmDIkENDhAYQQKIAkQAgI6OK2QCAgGYeo6oiArKwNJKIkif2zOlTVy5dPH1qJXGGQyXMZYG9vrHWMoivqlZhpiiKxmYeYWal6Vbq7ls4vrebR6D1H/VBxf1ogU552KBkdTx116VpLzHWGAOA0+nUV1HbNvb39/f3D2eVXxjkBwf5IEt9BA7s2SODCBSzmGXB+1hFToIoDP8JNxce8iJb8N6n3BSg0IIT7qEeiISEiEGCD95Z9wTz0fUcu3P4SG/xT7SS3cEMeZ6ur59ZXV1tmc+V7+2E5JbSfxhDXfLzE3IvnSfzX8pi/ocItNsqFTaMYfXFdYLiE2BDDaV1LCwsnD17tqqqyWSiNPRlWSrnuTbbtJwfjxT7bofmND/44IN/+qd/+pd/+Zft7e3JZDIYDO7fv59lmaac9Q5Np9Ner9cNW3TPnwBvdjG6J/BDXROp3hAarDgkZEyWMkOW9oxxZZhyiJG9OAgxMDNpe17dXQNCaMgCYQhBCBFM49gwopC6HsYg2MiMXCsIuiTJej1GQnBi1Jkk55wAQwyADD6CRBSAEAySOtf9Xs6+qqrKICGARAaRxJnzZ88+e+HioNf3VWEwouBsNsvyXvBeGNvsuzqGIvHhpJLax7ZnTm8lEQ0GAwBCNMY4RNSoPAQWAe/j4eFkd3+vKIrgWV+bpDYUM0QhsvpNjTGVsUREorxKVkQ8cL+XEWKvCrv7435qB/28jDCbTCUCKECAoCiK8XhsEpcmuXq7qTFoaDyeaonWGBMixxhBuG6d79RPuhb/xLEqIjWdDxz5Sl2I7VEVCDByFBFrjih5EpcAgGh9H46sRte+6JLT82N3d1d1YpVk9/nnnz979myr1vnk6OrJ41G4n/pQcE5vMRpTN1af0N3Wy4TjBrH7e/fN/4K+5H8IE/mnjNZ05nk+NzfXVjwBoI3a2ic/eaKttUrIdu/evb29PQUYzWazra2t27dv7+/vnz59Wo+7Ez2nCnFXNnJVi1Vns+0Q71rGtg2rYdxAApSax8IAoI/sA5vEmcTZJCXxGKOxJAjacqdOITcIlRg8I0RhRGTQnwi68RAtWjCOgUxEAwjWWlsz9yEQECAZsiSEIEiAaAiBQWUgRMSXRGQJDBJyFG3EVnUIFAQYjUbLSwuLC/OpM+ILsUBkUIRjYA41h1Dj01lri6JqJ+1hqICeK0e6PTECHZvDNv+ooHEl6+QIUVgEQoykkBmJIXIIsU5nCiVJ4oiNMYYAEVPrKAPnXIxShTgNEtBOOR6WARhiBETgCDFGUcMeWAtTSkfeHFHcumZcq6rVDJrt2hA+4vdkwaOVAI8OcZlBOsyTiHiiLMNSM7MgoLNOOjm77vLWNLpz7ubNmz/4wQ9+/vOfa+JoNBq99tpr3/72t69evTocDtvX/kWKxZ+L8bk3kQ8Xsk/YwVaFo4a4PObA5EZ3WP3QqqFu1TYeFUjSGA0ANAmguKX9/f0W5V4UhaJ5lpeX5+bmFAitpR5ser9alqqmaBIBkdBy41EKUAQANEgGyBIKgSMSZCQwrEWUGlymcqcchLkOlSMACDaKevoRpLBJJESwRnmxDGCsi9piEJBQMeHWEAkBoUQm5qBk4G38K0KAhBhjlAgGYWVx8czaqVPLS2mCsyJaY6wxXh3GyJoPRSJSHLazWNbFrubqRBHiiKaxOCSCsU43KkswtPYRmtNlMp2OJ5PxZNY2p0rNNKFdLixIwMwQgAWAisobJGOMI6zFzmJAwTxN5oaDgJatm4a4Pyl8GRFr6XqFFqn/2+KK2gdZoCUU19VS269uBbkxoyLqdte/dxfpiWxhW4p5JGk2IXUTlCfAvO2a119CCDdu3Pje9773/e9/f2dnpyzL0Wh0586d+fn5Z555pjWRfx1PGJ97E3miNbBdKC2vxCfsRcWGw3w4HJ46dWphYWF3d1cpeRYXF5eXl5WuQgNGY4yayMlk8tZbb/3whz98//33Dw8PRaTf7y8vL589e1ZJ25aWlpRWYzgcds03dShkmqy8/iREQ8aVIfoAAohkyTJgZIYQgyNnwAihEwnKTQ9BOCIDQ+NlNdgeRgAHKkPY8EC2n4sAAixIAsw1rwVE9oBIIEwCymaGEiUygagb1RYcUYAI5kaDpYW50bDPsZhwQAESBokQA2DDD0hiXc0e3yggGsX0ALCC3L2PMXqVoqlJbbl2KgWpe3PVGmrDu+KNrbWoDMHGqPAEAoAQA4sAI4uILz0AoAACk4DqzWhIbiz1+/mcwHAyy/YOyzBRsy0iMUoIHCsfQ4Co4HtsDWUUECQRRqz7CDXQlq5p6yQEoaFKOlqux/8JXfkqQEOGRTnrkIXb6pBKEdT6JcYqGWAXi9bCsw8ODu7du3f9+vUHDx4ooZy26t69e3c6nSrjQ5em7K/j4fG5N5Ht6AZucBxy9QlfDgBJkjzzzDNf/OIX9/f3r1+/XlXVYDC4evXqCy+8MBwO2/hdQ3jv/e3bt3/yk5/84z/+43vvvafb1Tk3Nze3urq6srKyurp6+vTpM2fOKIHbqVOnVlZWVApdq73e+9Qlui9EvUISEGSgSqkWjDVOdUYjxhK1F4WsMQ6IonBVVWQ8xcAMgSMDiQSJEpkFgYEFHAgBCQMGRmytaIyMAMiCDMCkCgQiMbIo8f0ROaQQAHBdQrdEICyBCaCXpoNe3xkLLChCAl1ot9R1pRrRpg51muaIiEDGaplIOIoAE/rIlqOE6INXzkkOga0RSyKi1GGGCAAji8xmZVWFIJy4xCapYleNJQONyIdADKxs5DFGdJY5BB84BOGAwlqYMkhMxlCWp0me52mamlkRRPQIY+boQ/RBQpTI3WBWTZ40JSSpS1snA216THGvfbBbUxYBFgFsUti1lBAIiEJ0Ndv+4MGD+/fvqw6Bkuw+88wzZ86caUm2dOhxXhSF2lNsGGqVUUXrn13627/0Dv4POj73JrKqqhPxtTSabW101iaMnpyZjjE6586fP/+d73wnz/OPP/44xri4uKjYV0106gepKRyPx7dv33733Xc/+uijBw8etAt9d3f37t27Cuqcn59fWloaDodra2tnzpzZ2NhQlg1luBsOhyJ17VIAomCMIpF9ZECDxiBb4wwBIoUogdBCVaf2lI0AEQUQIsUoyCRogFCqmskxAIlnIDbG1g43oggyq8EkQIRQT1oN5mmoBQGVpUaIqK7PiKBEAVaXKcvc0tLS0vwCcBxPDjILhBB95YkZa4EwMtxmYJMkcTZFrjn621vGxMwsDgybSFFEAsQY6r57Z4lrloh6ehX1pZ37ShOrDj5ZY61V7RcACJG9j1B6wYop1MLiyFGAo4CoiqEIBQEWdPpWKlrA3ltrSABYNKxWKwnMQEd1GEJqFMilrT+3B0O9FLsp1+PSvu1X6gbaxmKIR/SmAnJ4eDgej7e2th48eHD79u179+4pd72KGuZptr6+/pWvfOU73/mOkuzqKtUASGHFc3NzRKScYwDQ6/WUr7qL0v2riXzc+NybyId7Nrsg3ta1/KOhRLsDe73e888/Pz8/rzSfWZatrKwoaleLMOoiaZVWi55KOKSPAIAiz6fTaWsrtfNU+w6Xl5eXlpY2NjZee+21F198cWP9XJqmaAkQjCERiIKag2NmEJXzYmuMSRwRzYoJY7sPlTG07tA2RNaKAIF4QWAPKMCEhMaQE0soIMZq6RSJtFsRSWGOojotytUIwqQGRN1JzVdwjJFFIkS2CPPD4fqZtdWVJWCZHByaYYaI3geB6JJMS8Bk6tqCOs5JkpBebZMAERFEBohJYhoPFKoqqBsaQs3YiwIcWUv/6gdpstg5l2VZ1suVwLHlmgSAwFL6iLYytjTBRx8wEjOgVoFERKKmApQVg8ikqcuyxCROKq94nRhj9CF4H0KIIXCIGvSDnsFIBpBBM8hPWletBTyJxXkU4EZnhpAix9u3b7/99tvXrl27devWvXv37ty5s7Ozow0UyuKcJelwOByPx6dOnVpbW+umFxExz/Nz58595StfmUwmd+7c0eX9hS98QRFs+rTPkHL8/yfH595ESjc13kE8tHmZE70Zj1sN6ppp13CapufOnRORJEnKstSg+MSbK8pEO+1VKQk7TJfUyEKISFEUSnApIprZVErgDz/88M6dO//v/9f/R0TSXg8NOARA8M5Yg+q8cFUQGIPeojXCiDALPgLGaLSJL8TIHGL0AFoWEWORgQgtCSAjEJI1xlkwFJW6whEaUjcba8x6HekjQN3uJyASEAhYGw0FSZ0q5BgRwCIMe+na4vzywoAwlsWMM4uIITCDMSlJ4BjYWBARVfEyzpokATAKMEQSBCMQJRBpCw2LFkYcGYisn9fJ5UVhiDEG77XNCQCMMc4mzqVqgdM01WwporHMZJmMszZxwfuy8N7WUACWGD0JITAjC7MAE0pqTT9NMmtKQhJgERbyLCFyCMwRYhQjIlwvGDSuERJSDiQABsYjm6d29iiRyk0OWFmO5cixbE0ndxbz4eHhu++++z//5//80Y9+dHBw0GqfIiJrM5i1ofK7u7sLCws3btxQIgLsMPIR0enTp7/5zW9aa69du+a9X1xc/NKXvvTyyy8PBgNdxvCJBWD//3M8vYlsc73Q0cU+AU/VA6rr08FxCek/fTzOSXzkI3/Ul1RP59gEPXSdrZHNsmx1dfXFF1+8fv367373u8PDQ2iUfLvkyfqL2kdmvn//fr/f39ramk6ny8vLN29+fOXKFWtAALyPzhlAMCjOgjEAyA4xNdQzEgMLR+klDBZQorAICiE6cloVhgjMjGAAkSmQrZjJEAADaOROZLTCji0dA4FgjIhitcLDUXtnCAVJiyoE1qBLIfpyygSQESz0k4unl7/w4rNLfVuOt+7dKQyu93q9ikkqNIlJ8sxXaAisTZw1nEma9QOPBYlIXUgRBSAioBhEhMjMQELOWkNEgOWsGOYpiTMgTEKgGHdW5UNrbd4bDAajXtY35BCtsLUNU6R16BgILfAMAEgYAWJIAlVEVsmCIkeOhbXWEUAINvgUQioRokSIYokJQcAxRwZmZh8iVCFwFBQkLTlrkO2AsNZco2ggQiOgAdTQzAE3EGhmTkyDEW/WiTS5X0tG0Vyz2eyDDz746U9/+tvf/lZlZ9Q4CgAZIyIxBOMSANAz+ODgQNWiWoFsY8zCwsLzzz+/urqqtLWqcDA/P6/28QQq7rPYj5/u+a1x6Jbjun89YT0+4XgcBL09vj75m31qO9XKnHcLYdgoH5wART+ynfmRhZT25Py8FNfUW1xdXX3ttdem0+ni4qKqxR4eHjYY6fp+1+WR5mwAgMlkom+ixLH1Fz8Km8USDoeD4ajPCfUcJBgzB1JioMqgC4AsJhBFgciBKo0TBYURURiCIBhgOk75T3o9x5xrvQ0WBQAJBIFq1nFAIrTWRg5kLVnDICEKEAKDQZgb5KtL86Oe62WWAwBHlbGpysCANmGyEK3EKIoTRmPJJjZNuDy6DAEBMYAMYEQlultWUBZCNNDkTEgsUyCGuhZUu+rWJs6l1iTWJki1jGFN9I0AUDcyGSTFN5gafAoKLRKuM7PRByA2wg7AIhJAEGERQygAgaGKjWYpUAihFoZFrHVrAIDbRCMAR0FhiAJCcmxBIyKyKO8FHnFmH98LICKiAuttLKJrBrHWOGqmhZQfbHV1dXl5WTG5cDy32O/3tfFBF6T3Xt3tFvhxot3r33mcwMa2hrIFPH1CRMrDTWvNF2xVy/XxT32FT6Oj/bDjJg+1l3MjPdi2TLQPPlww6Vb3Pi8mUhNha2trX/7yl1dXV1966aX333+/zaNvbm7u7u4qEYY+vyXR0AlRP9paq3ANaPqxdNKMs4PRaDQaceJyKxh9YiILoiGbOC/goxo9EI4eUTwSBLXAwmKAKYIlCUea2EhIHbWFeslQ40gCqIgNIFkAgFgRoTHGGpXjdQDgY53vNwaWlhbW10/Pz4+srZvMjjjKWKIvQ0g6cEIkIu2yr6JHDeYBgAMzC6G2UbfVcI7AEcQIANZ0k2QRhWIUDpoMAYBWQ8aliTGO0Bwd26i97qgYKrKGYl1nq5udavZLIUBgiRBBxBCkiUutoZpxRz1eYQkhVEq85mMMZQWRu2S57XyKqE6GCEjdbq8JRxBoRWO1kIjySAup5JjY0N2reoF6hTEEATDWMrMwA2KWZc5YFWS+ePHi3NxcG8R0TQYiKkcBAHS7Htr19hfMRbYb5GgmH6849mT78MjOnK6BfSSDxh8dT2Mi4TGagt0oGxt+s26g+rivDY9KWv8HHxqPI+LKyspgMHjmmWfeeOONvb29e/fubW5ufvTRRzdu3Lh//742j08mk4ODg5Y+Nk1TfcnZs2cHg4G1VnnA2oy+zjMah6ZiiKpopTG0kGGFjxMhkmVW8S4Qg8wQo4lsGImESAhFBbwM6Q8Cso3FrP1JqnORjAKCBNaKCIhhAFY9aEPWWkGMIQAHQkiSZGlpaWVlKc+yWFWhKkSEQyQDRCQx1FXgtknGktZPs6zHfqodyFAjMeveYwnSQrK1goxCiHWet9vQ7b2vqsDMREaBRBqvGEqMMUQQQUQYhRHEsFH7wrE+nJRA2B9broocJecoS1LrCBCoRk0q5U4NoAmV9wAh+shR0NZTqP8jrEGjx+ozKMdXdmfHPHbB12YCxBhz+vTpS5cu3blzR9VHlEeklSleWlo6e2b9ypUrX//61y9dutRrKDyw0+LZ4u1brwWOB7Z/2VrNJ+x97EbcT36fbojdJgBBAVWsfEKfzkZ+ahPZTnS3uw6Pa1F28avtq7q5yBCCmpjPnWU8MfTr53ne6/VWV1eZ+eDgYDKZKI/G5uamkgFvbm4+ePBgd3f38PCwKIr5+flLly599atf/frXv65EbVIzOqJILVY3KWbTaRGKwornapYQCAeLJBRCBM8klsgZNNYgMQAyIQcgjBApAhERhMZTNCBkkRhQAE0tq0KowjUqBgsGa3ItIygCFIVjlMB1S7UlAGEAJoT+IJ+bG+Z5DiAsQaHULQ9uFaL3PukAJOv+dXvkkMLR1m1F3Ejl6xThHCrPwQAkhQ9e/WeiwBIFvI9lWbbrUD/d2nq3o0UCESFhFkBiMY61d9NUUc/sYBxKCawiFlwzDhM4wtQZZ4hEO4gZRenJInDg6EOoIhqJjNIxcYQtSbs00l16zGl1psZMQu3ACEGDfXzUigIwSCysEfGVK1e+9a1vicjbb7/94MGDsiwXFxdXVlYWFxfX1tbW1tYunH9mY2Pj4sWLKysr8Kia5AnegG5g+x9z9+kNhSZg/VSmvKU07PyT6lQPAhE+xTd+mlykNkho793h4SEzq360RgRt/0l7M9o0pV66hg8nGgc/L/F1O/SAehivPj8/Pzc3d+rUKe1c3NnZuX//vrIQKVzj8PBwbm7u0qVLly9fvnz5siVzlNKio/TQwf54PJnEamqBpSq9IQscDUiAisULGSKLhMYAgYEEIxETQDAMxgCRCgqjll8Jj+BBwkiaRtOTTOsJICiiAoqCEAEwxpIjcDTGZFmapcnEmRghTc2p5eXFpYXEkohYQmcICIKvJIbEUoFQFEWa99UrNMbEWEe4NnFKtqQHqpZTRYwuAlY1muCLqixnhSUjEslRCKwZ7BZLUFaBWaIIM3jvAZ0xwVkQQjJUK2wRWt1gwAAgjitn1US2/aCIyBE08IXISMYZm7kkT4ADiIBEj5gQqqFhYSYlxQAR0uozQ81l12hlg543DVWP1GROn3B3ioBgbRGSJDl//ryIDAaDixcvKhByZWXl9OnTi4uL2ri1MDc/Go2UZ7f1uBFRNZa7NAXS6X9t9x382XQaPuFo3cMTacSjHH3nIv/oW7X+2WQy2d/fn06nzqWq+uecqdkCBaQ+Aj/ReJpAW0Sm0+lHH33061//+vr164g4Nzf3wgsvXL58eWNjQ5/QdXQ19VaWpaaQtGr8yPrM58hQPpKvCVpQG5Eu8eFwuL6+HkJQYU9lukzTdGVlRfNopMIMLHXHdjMU+keMYA2QBRIG1dwDARZABhI0ZCwyAEUtURgAK2AiWCvWshH22uQidbMzCCA0zlOtEQgAjdYUgPcRDYkIx4gQCSFxtt/L5oeDUE0noViYG54/d3ZtdSVNXZLYKCFJEh9ZgTjWJc65ovJta3MIgZ0BBeg4h5kyTXKMUajWR0WMHisRiVF8VfObGSRAdpkLPoIgokEwHMEH1oWkZs6HAOidcxHE1GEvACAhCGoNKhoRqZvlnbViTFFnGxQYiYgCzGwEssSO+v2FuTwczgJBBCaQxNjE2sQaIiBH1kNEiZ2lqiZSQACNQERBBIOAR9MK9fTj43e6ridCCCE466yxIQZjzPnz53u93tWrV6fTqYio1lWWZWmaai6yNSLdNVkvLTh2kS3JADymqPDvP+rp70xLjOJ9LIrKOdeSA+kR80evVL/L5ubmW2+99f777+/t7Rnjzp49+9xzz128eHFhYa75iEifmLP9aURivfebm5s///nP//7v//7Xv/61tfb06dNf/epXZ7OZSld3G100JppMJtvb2xopaDvEyy+/DJ9b+wjN/mwz60eFYwDoGFA9xhFxeXlZ3Zb9/X3nnCq6tXIR3QOjTkeESkTIgHNOkC0hARMZCWiAgzCgZtUsIkD0ZEGiIxEwyk3LxhgX0UOT6hUCpNZcdoZeKit4JcZogFFEZWqIMDXUT5PhoOfLXIpsbjg4fWppeXE+z9J+nk6qmTMYAkdfxuCzLEudmRFK9CfocHQqxCGysEREjMrU0MDLpSn6qyhNBLTWap1bRDQ9CI03JIgAxCIxCmLg2DDuNN4xAoAhFKJIbEi1HoGoFX3U7641cA2GDUjizLCfLwyH46KsAIKgNZha00v0RCAhUxmxLAyotBWILGgEgWpPkRBFeweV97gBA0mt38byhIVOAL4JsJQNs5f3zpw5s7y8rOojWuXDhj8NAVsuxRP5uDas7qbnuuC8/wijLL2mVhQw0Lafq5UYjUYamyph0xNGS82rSKnvfe97P/7xj+/fv18U1Ysvvvjd734XAK5cuTIc9hHBuU9B/vY0JhIRb968+W//9m9vvvnm3bt3EfHu3bvj8Xhpaenll1+en59vC9ka10yn0zfffPOXv/zltWvXlGlRgTIvvPDC3Nxca2uejJTU6VOfdDab6fP1tRo6tSmMVlWxOaCka4BaBgro0Ec2kinHHP4WqdPSlz0yTmmRPScoe9sP7bKfhRB6vV77TY0xqjrYOAKRmVkCEfT7vSS1xBEJyBhrCDgIAhE5MgIiZHWGIYIgCSKDR2ssiK9ilmVIJsQSIKjWFcQoyromjNGgQUEMDBYYBRT/IgCpM4hSTisL3M+SYnYYy2JpbjDqpXccrs6PLp49fWp1Jc+SLHHWoNapSx9VyXowHGn3OhRFmtZihwZFG/vqUMggihEMVgAcBiIb4uSQorJyVNVsVo7HU2dskiTTSVFVQZCMS8gH70NRlGVZAdmiKIydOhfJBiBDLonM2dyAm+0vwIyAZAxBYO9ckqZBYlSsDwD56IHYKmG7+rlpOhqG+WK4N5tuH4w5cJJno17eS1xCmDtXiDgyITJIrWJRLxXBIKLnDYJGTl4h4lIH3ABYx93QrDQCVCB9s/YgRtHctK4cYwwLE5IygMDxuJiZY2S1ILoC8VFkV4/E2KlBaTK59sRfT2z5rsR8iyiazWbtVTX2rkzT1Hvf7rK2IRI6ZQz99Mlk8uDBg/39w52dne3tbaXVKIpC2UlUUuWFF1546aWXVBARjgv7nBhqFvI8Pzw8/OlPf/ov//Iv77333u7urjFub2/POXfx4sVLly4VRSUieZ4++Yzo4P3lU5vIqqoODg4+/vjja9eubW1tqVVSzqXNzc3Dw8MWbaDzMh6PP/744x//+Mff//73leshz/O7d+9mWXb69Gklqf0kXCPW2rIsNzc3b9++ffPmzbIslQ9CsWAatOoBm6apPt7QlJr2F3WB21O3zQRXVZVl2YlP1Cc8DPNsJ/GE23iC0vzEN8KGyuHEfY3C3XVPKBbBEC4tzm/Pz4ViRiBFKEMMENkgEaEwIBAasNY6l4AJlhOOhQgKgzBqSrFN8ygShQTrJ5CWlEVxy4HRQB0oasM0GZzLkjzt9VPyqRnTQQzRAS+O+jJI50aDLHGZs85grKo0ccE7S+CrsiqmIXqdGZV2SjKBpqvaGGNNAght2Vp9RjWLSskxnk3Hk/FkNit9xcxFUeW5lIX3VYQ+IGKIUpWhqCprofKRZmVZeuMyY2yvN8iUpa3F30hgZgQgaxiBRRgkioAhJFJ/OsZYs8oCI4Ez1EuTQT8fZNlkOpXIqaFe4npp0ktcYlyMUGFEBOEIgmJIGsAPNk3Z7R3vFrj1QQYBEBRRDYcTO14EjEGBkwVcATlijcRaskbq/LVp19IjidEeOdql25ZBWk45aDwyaIxjW0LQ12pkoIu5RoN53xInj8fjsix1V+pLdHN1i8uIuLOz8/bbb//+97//4IOPtLapwlNlWRZFoQ5Wv99/9tlnv/Od73zrW986e/asbt48f5JwgIgcHBxoP/tkMtHM9cHBwf379+/fvz+ZTLpI5E84PrWJTJJE97maQu3A0yxbFz2uc63zu7W19fbbb7/11ls7OzvtLbxw4cIXv/jF9fV1nW6d3ycUrYqi+MMf/vDmm2/+9re//fDDD3XeFfpQN+pmmWJi9Zfl5eUWN6fZT7WhSnmgz+/1ev1+X5/2SKMGnUPvBE2Gnr3d47H96yPBru3J0S39K68tw1Hsi4iG0BKsLC1uL8zNDqEspjNusOjWWgYQYiJEsI6SxCGTRD+rZsKMR7oF0AoYMIiqvIowCIoICXIEITAAhAwCCvohYELMrF1enF8c9VMHEvzhIN/a2jw4mAyzJLX5XD/rJS611pIB9mmWMXMymc4OJ5PJZDCZkkmstQd7+71erzcYEVFgKKqQJaDK2mobAerPrko/m9XNIbs7+5PDw+n40Jclu2Tm3CCGovJVFRAMGaeqlmXpY0SBSVWFCGJNyszWpYyQRA+E0i2AIiPX/qkqlwoCGAJEBvExkHUOVfxHrDN5L50L/V5qe6kVrnJne0nSS1xmnTO2ZDbAWJtgYVROTEVl1QKJ9d1XgiSoZcRRREHhWi/ogPUe7c8olFV/V0q0Y/5jQ6wbWpnyT0xtdaI+0w3AobHObU358PBQ3QsVRFFTeKJwrD6jCpRev359MpksLi6ur69vbGwsLCzYDtYdmmrkRx999L/+1//68Y9/vLm5dXgwGY/HemtajXXFNn18/SYIXXjm0tn1c9aitekTvpduLuVarikCiJT3Ux9s/eUYa/XjTzI+tYn03jvnVlZW1tfX33vvvZ2dHURUlN/a2tpgMDjhamnhe2trazweI2Ke59PpdDabbW9vaym8zR8/DLTsjjt37nz/+9//+7//+w8++GA8HjffnxUj9vBQnZnWwVQraYxRstuFhYX5+fnV1dVTp06dOnVqaWmp/egT6M4Tl6Gmqk3otKeuuqhNiVbat2pt68MNmkQk0CIEEWouCUaJKEzAIEE4+KqoZjPh4MggaWaLUITAEdRXEhVaLGIUiMdHPyMICAYBwywoSo/NzESMjAxgABU+iQIAnBAmEoepG2bOQkizbJguUSzHu9s+BgGXECWEJGBQkiR1hjBL+7388PBwcnhwOBj1B0OXmHJW6KLUM6aqKkvgbKqmSiXOq+Cn0+l0PCnLcmtra3d/bzKZqPYkh5BYh4hENkaJUYistQJAXtl3YhliFCoRTJJEay0ZN5lNwdSOuU2SLMucc0oTzj6Us6IqZtEHH4IgMEIECSwWxCJQDeuGxNo8TVJr+kli0A6yNCEkZohBgjeNXhBwQ0KhQPGazBdAqSiP2yO1p9iYSNXBYQDTeU6zwITMMd5cZUJz1mlSs5Hqbp4PdcYJ6rg7/tGG64d9ES21jcdjrQKridH6+Pb2tlqr0Wiku155g9rtoFHadDr9xS9+8aMf/eitt97a29sbDofPP//83/3d333jG9/Qanu7I5Tk5cMPP/zlL3/51ltvTcZlVVUhhu71KFGm1jzef//9GzduXL58eX5+Pssfa69aFyTP81OnTp0+fVrhdyI4Pz+/tra2tLTU6/WsJVXH+zOWazSiPHfunNZn3n///Rjj/Pz8l770pcuXL/f7/W5iUUW1er3e3Nxcv9/f399XazIYDBYWFnq9HjUaXvDHoD/qiv7qV786PDxMkkRPGz3lui9syyb6V/VP26yoApjn5+eV41YV3L/whS98+ctfPnXqVFeD7UQdqWs9qdGi0ayCLqZerzcYDDQGaQHzJ9BOrX1UYxpCIGsAWltcUw0yB47+wda9nQf3p4cH5Ww82d8lA+ISi3nikIWRhamKvvRVAaSljkcO5RIXltqbVBkqAu34qLMNxEAoBpBEHDAGPzvYfTDZYz+dH+T9fn+UukGW7u6OAwcjbJBiqIDNYNALsaIkyfM8SZJpUR0cHJCxJsugYX7VXrcYYxXYWZjNZnt7Bw92tvf29g4OavULS6acTTXmcM5540jqbpxaxFxEsK6JW2uJbKVFbYuJS9I8c2kSQqgODw8ns/F0MpvNnHNzi3Oj0UiBaMaiL8qqKJElhlD64IUDSCQAQrJoiExirLWCwRKmzg17/R5TrzdwaLj0MQBhAsYBC6r0DAAjq1ghMzJok6dOrrJgsNprvbPNHT5KgBzZwebRhhL96DAmJGdPZiGlzm3WevEtuZw6JZ8wltQXTiaTu3fvquTnzZs3lUNIRwhBU4R5nq+srChI87XXXuv3+2qP1OOLMd68efNHP/rRP/7jP968eXM8HhPRu+++a4w5d+7chQsXoMOUoWLLm5ubm5ub0+m0qmKMEQFbJJZusVYSrulpivX8PD4XqTMzGo2uXr16586dLMu2trasTdbX17/4xS+eP3++7Syy9s9ZrtGvura29u1vf3t9ff3GjRtayH7uuecuX768sLBAHf1fdRufeeaZ119/fXt7+9133/Xez8/PX7169eWXXx6NRrEJE+CP4ez1TNAScDcQaN3y9pn6e8uqf8K0xRi3trbUuRsOh2fOnKmqan19fXFxsU2Jtu92IiRpYRNFUezt7X344Yf379/XAtxoNFpcXNTzVpkiNSOhUbziQLHhBJOGKCgxxDXHDZJ27dYMrXFn58Hu9oNyehiqsipnzlIACYRCKEAMLpQzDxQYjEsAmBC1uH5UWScUQkAQQgBg1ehTCm+st2atrAIK4xMLQCJQznZnB6GYxHK2209XlhaTLFscDfxsgoiZswkhREaAJLXoRSSmzvZ6eenjbDaxLskFAHg8HgsaEdFsBtZMSHFvb++jjz66efPm9vZWCEFha4ujUZqmNAAiUgjOaDgYjeYTlzqbIGLwjCSaI3HOhRitTVya9/v94dxcv99HMN772az0ZXWwty8ILHVKi4iqype+CsFziLHyZVVWwccoAiCIZK2WUPM8xQKJqJ9niBjFpElmAEMVQBA4RATmOlVSmznWqSVRTCOhKkjGWpsCAJp2Y2k4ftoT8aFAW6Tmn9ezto21BaR1C5ReV59QFeV4PA4hKJjEOafp3Ydz6+1oy5ga8967d+9nP/vZ//gf/+POnTt37tyZTqcKKtDIt61DjkajDz/8MM9zZT7VDJtu9sPDw48//vi99977+OOPDw4ONMNz69at999//969e2fPnm0zgPrRbRhRFAWIVXNfk3ToiRIBACLHudHc6dOnlY0wTR2zBsiP1jHXX4bD4auvvppl2XPPPbe7u5sk2erq6pUrVy5evOicqyplNvoUdu9poOOImCTJ2bNnT5069cYbb2jovbS0pDsBOsyJ6i6trq5+5Stfcc5dunRJK9qvv/76V7/61aWlJXk8O9mJkabp3NzcaDTqitO3oJkT0wQAbfQhHVbd9tr0hWVZTqfTCxcu3L9/X5sZTpjprg/YhidK+/yTn/zkzTff/PjjjzXBrPtcN3ye54PBQJOeai41Q6qZUK1oK7PAqdNrnsUlRpjFqD8pBGJQnEFrKBLaxBpOk7rwhMBMIJGlCByr6GNIenVqnIiQmxTnEfuvCBArebVm+hFACBCj/k/NMgAgiLAETyIYAnBMLMbZZHuz6g+Hw7nRwvzIGDPs9Z0x1hhHhgDzPJ/NJkTUy/Oqioez4vDgQBtsDnb37j/YGY/HKysr/X5fJ1BTK9PpdDweT6eFiGRZBIDEpYQGozCzBSSi+cFwbm4ONAHLUpalsWiMSVxmTeKcZFmW9we9Xk9BgoZcmqZARhS3wHEw6PWyTFEjs2Ki4XZgX/hK1S4FAhkAQps4hZj0ej1jZtNZOez3GdBXYhCtdt+IAAtLVA4fatN2wNqeo24OsyieSU2kIIhSugM8mrXioQNemoWKiCGG3d3d7e1tdck146+8PlokmY4nBwcH3nslIV1fX19bW5ufn3/cPjoe1EcttP7gBz/44Q9/uLe3pw6g7pE2SaJDRR8//PDD/f391dXV1gSr1dNKSxvDacTWujInYn/n3Pr6+rPPPru5uXmwPwUPkWO3WRkR9bY+++yzX/ziF9fW1hAxBA6xyvNHm/7Wd1bTNBwOL126VFWVQsdHo1GeZ8yi5qsxtZ9ofGoTqXdOKeDbklZbhVCu4y5IUIHlr7322rlz55TZgZkvX7585syZPM9PhLRPqNisrKycOnVKmW71MtSba53W1qK1S6F95y5MTI63N00mk62tre3t7TZGPvG53bSLvsnBwcHNmzeVxe/WrVt6qqu0t3LraiEoSRJdbVphV/9xMBgMBgMVX3/llVeuvvjC+sZ5MgmwgLEAAGSADIKZG47mhv0SBcRXiXNEImKI2Ecggsix8pXGmmQE6g4VIGFGJLFCARgRtVWjYTY/mltuDmMGNoCMbIAQMfhgU5u6Xj7q9Szt720fHOwVBvvDQa+XpXnmMgdEiXWJdciSpm5aoogkiU1TdzibFsUkxFgVxd7O9qysOFSWQEI0gImxg94gSWyWZcNhX8vz/X5/2B8Q1cTmBpGSJE/S4XDY6/Vms5kqKlZVZYUQMbGWiCyZ1CVZYp0xEiOH4FJrnennGdF8L8s8+zpU12KgdcgCPnqsJETvffAeICIpotClaZr3e/1en5nTxGZJMp1Oy+gZ1BlnBkQOkWytagMMgCJRwLAq4QBFYBAUABaOIFFYUIBrCot2/+sCfaTxombvqrd1//793/3udxoFaxLfez8ej3UrEZEvK01WLC4uXrx48dVXX/3617/+0ksvaQbwkaakW3j03m9tbf3hD3/Y3t5WI6jWTROR7VU554qi2N/f39vb0z3eVqu1P2I4HOo6VxlREVEvQSXw2sqB7q/5+fmXX3751q1bBwcHN27cKsuSI6SZy9JeklprEjKwurI2Nz987dU3vvHNr507d84lxjlK0uxx1a3u40SkSTwiMsY556w12oD4FMyYT0PaqLbmxD2oMXrNaBeEngzr6+vr6+sPv9WJ5OMTPMrV1dWvf/3rk8nk7bffPjg4UOyRyne0fqI0EqNtMbeLiGz/6ZzTOFe9ueFwmOe5RijQRNPyUFuorhKFL3z/+9//5S9/ubOz0+ZiDg8PNStKRHoUtxOlQ1dJv9/X8lGWZW+99dZ/+2//bdgfrJ89G4SLosqzBNBOiwDGxCjOWEgsAmXWici0qMBYpCiCBJABOSYDlAqkCD54JVwkjinZ0nuM3HPpLOWCAZjRkFLXCgIjA3dwndpxI8LMLssFfS/rLY96PeJ+YhNL+9OD8Ww8XFqYX17q9VNEFIkJUZakRNQf9sgYOKBxMXMWq6qaTX1ZVg7ZQ5zs7W1ZI5EROHjf28hPnT7lvSfkg/3DLHG6z2NVifcEkKdZlmWDvJcmiTFmMOg5Z4IvJ+ODLEsSa1aXl6qq2N3dFZHMmkGeWWt9WRRlYZNsFnxZVcwxMZRaYxFiUZQhIABXVSyrWFbC7Kw1gCJswGcmHQ2GS4srw+FAOXczZxHYImIMRVl5Ssmm1toITJYIWSTW+UADxhgE8j4CADTUICqRAWRZhWikk7R5aJN3a4Otl6C349atW//8z//8/e9///79+61RU2lcPbN1uTLze9fef/f993b2dpdWls+cXc/7vebOAtTd96j7sX2hYhirqlKqU132qt/QtThKT2WM0XxUa+/a3e29X11dffXVV3d2dn73u99pWP3cc8+9/PLLGkDoFbYZeWvtmTNnNFP3/vvvb29vxyhLSwv9/jBGn2W9xcX5U6dOLyzMra6uzc+P0jQDVVZ7fIPJCTid5rsemufHpjIfhoIeecRPYSL/ImNpaen1118fDAavv/66ahtNJhONODRe0LSuAju04U/zKTr0r/q0ltZ0YWFhbW3thRdeeOaZZ06AFk9kIXXoPdZ3U6S0nqhwPL9z4oWtQ63X076zMea999574/VXOXpCqwVuBCIyHKFWZTocEzAAkLOIxiYuekQAhyTAFFQ+hTEGiR44ahVBmFHAANLJyI4bdq5j21LR6yDMCJhYS8amGaGRyOyDRD6ZolWVRmOsMaGB71hLmk/wPjB7C2IIE0OGAEL0xaw4nCDL/v4+ImZ5Ouz1i8mUQ0QDBhUHby2ZxNgsy/IsS5LEGEysyfpp5nKX2dRmQixx1Vgc9QaTYhwrJoxGjBiBiASKDI/CIQowGS/C4YhAqCyKUHkOETSxQZS4JHVpalNnrfJHiJ40+l05ikAQNhIAHKBEESYGVBZ2REOAwnUghaStSkqkVOcVj9RssEOGX2PIT9yIo1bvGgv90Ucf/e53v7t+/fp0Ou2WrVucmWaTkQgAdnZ2Pvjggw8//PDll19+pEfSLsh2kSvn7oULF7TM0rLM6aHehl/W2n6/v76+fu7cuVOnTmmU3a6HNE3Pnj375S9/OU3TjY0NxZk888wzX/rSlzY2NloKyy5+bn5+/rnnnltZWXnllVf29/eV6zfLMhHRYIuIsixT89p8ljwuU/FnHZ8bEwkAGmhfvXpV6TMUU1KWpRq+1hrqI4eHh5q+URzJbDbTIKWqKlWVybLswoULCs985plnNC7WDzoJ3O0YNV03XZqibkW+exZ1Uw0A0KbhNIXUcgIpIizPncARBljd0r29veneDocKEZM8M5RGyVXVmsVoflXgSEC1e9lo0Fq0iCgBkR4OTvTL1hyRCrIDREBBQofWOSCsSl8VpYRowEIEiMwhQmxIzAAVbskixpgkSQa9XlUF70OIkiTQC2LRoHHAMptOkVH7MUaj0SDPFufnpuPD6WQCAok1lpASi4iJdVmW9rJUU8PDfpr20l7aAwOOHFrsuXRuvr8/t7+1s7W3vVeGEjiARBTkKEa5dWIU5FAhBIrN2amTH70XYWMIDBiULEs0lVkniFg4CHdIDJvCNaOi8RGAicgCsgEUIgEEUResQTKSwr8ZAKmxkiJSd48f5XxqF767TtSsatUihLC1tXX79u29vb1jwrPNCgMAMoabpGEMQTlT2nrpI/dRd1VnWXbu3Lmvfe1rm5ubiq9m5jzP1VqpMzE3N9eqLX31q19dXV1t90greLe4uPj666+fOXPmjTfe0FzkaDQ6c+aMNtoWRaHcN9AhTp2fn1d5O6VV1SBdd9njokn5Y5D4P8d4mgbEf+dL1KGxszFmbm5OxQjVL1Af/ggmzayFP7WbWktRj0+9y7IsZ7PZ/v6+evsKjez2lbdfs11JCiFqncQsy86ePavkFFrnaa1kOx5eo5onbjGSura6YCBlakKENs+tOlbKxmir0lDqY5VYBwAsJkZgwSTJyFrHxhgjBMhAIAxCDERimv7ro+9F0v2CNcUuNDrQUQJHgUSsiRrU+YhCmXWEZJkoIocYoEZjlL5CaxWzbK1Nk3yQh6ryMYjBgGASGxhEGMKsHJeRnLXWGoJhf9TL02HeC8UMGA2BJSIQY1xiTUo2sZRalzjT72W9Xp5lOYBolp16rt9Lc5cQsviwvx/Ksoq+AkCMZIwzwiSeIweOIKTX6b1XQBx09BfJQJI451JnHIJBxpbmskZik0EUIVSwIgCodjYQGzARiQBVVNeQqaW5ERsTiQiiHIWKo0RCVQdvQmBsTWSbvVcvsiWX07SMMYax7pjSm9dt+gIAjlHDSMX8qmE6Wo3ap6+ohc6y1O94/vx55Vu7ffv2rVu3tDdmMBgoUDxJkoWFhVOnTq2vr1+4cGFjYyPPcxV0ak0eNBxXCl+BJvuvnkS3WNpChfRVig7M81z3LzY0l23vbxeL8peyP58bL1JvZ7chP0mStugGx7sLWmxETena9Jwo4ZAaSmOMZiFP8P7CoxCabYyjh+rVq1f/5m/+5sMPP/z44493d3cVdQEAGoC3oVA3N9peGACEELT/8vTp08PhUCMRRAiB0dQdOFmW5Xkeej1vMMaI1giDXr+I+ADeswBlGZO11pFNDAISgYiC0CVICNzpnqzdxLo3FE2Dla71TQUFgbhiqQCC+kfGGuuyNCVjwCSZdRYQAzCw93FWla60edaHhp+3zu36ABH2/aE1Boi1WyKEECFQoMPdHWsEfIyhNATWoFLsSAxo0CE4g9agM5RnSS9L+lmWZ0mWpizBV1EgkhAZyJwbDXrFcBiqmS/UkSQyJBIwBgk+hsCIAOSrygfPzMJKOgeOkAjRWDLQrb1WlXgfW2xNM1FOmXXRkBhiEAYUNKBZkdpNrFUiWxPJIoQqbaYwRhCsycmRUGpl4MeaSI1znXMqLPzxxx9rO10bJbT5yhijsVZbX5aXl994440rV64ot27XGj7sf7XvNjc3d+XKlcXFxQcPHjx48EArMCokq5znKuGp8a/WadtutG7njCKmsdNC1sZPeZ63EngKzWivARpShW6GSpres247Sbe08O85Pjcmsl210OlaaXPP0JlB6TCitz3a3bXS2qz2DT+hTqa+ieIJ/st/+S8ff/zxrVu3lCtXLWNVVWouW+YSNcf6iwJNJpNJnufnz5//+te//oUvfGFpaemRShUauuZ5njoTY2SE4MEYo0wXIUTvY2QgslVVuWDBHeEzWm/aB9VdABFAEjRYr8dmTggJEY0gI0tkQRMgegEvIMYmWU4xQJUQEROkmFgxCCAxeu+LqqTCUpbYRCFvhgjSNNWu6P29Q4h1I7YwgiJ/SSbjA+FQTWdE5IsZsQAKAVqDeZLmaZanqW7RYS/PsiRL08Q6RxjFAHEVRMRHRgk+sW7Yy2fTXjmZCQeDZLNkWlQgQWLFPmgpXzhAjAYxEhgAAar9d6PqN2oi0ZdeCL0vg1djSiBIaI1hMg5rSjrDgqyyDiBMJEgCYIEIjMAxwtqWKVLHEauuSK27+ygTGXxIEmuNhQS06PGtb32rqqq33npLV5Qm6TQvxMzaRDscDufm5s6fP//aa6+98sor2sGBiG2Vpl5XINTZCNCc2QoeWFtb895L00GreJUW0a1hUFuB1KZ76miCtvEWtKxOHaNWa0scV5hRy/gw+VD7+ydEBP5Zx+fGRFZVpTcMjp8nJxpXuiftUWLuePGk9Rlbf6H96+OSHW3PjKZR5ubmlpeXz549e3BwMJvNFKSm1FVaF2q7RNvfDw4Odnd3lWc3SZLLly+//PLLly5dariOQHW09cvVWbNjnbA1VZgo3SKyQp5FRDRHGEk1VaEWPFAfVgC5pjsgIiRAsmTIGOyYSGQNfzwQMlDF4Fkioc0yJyLWAEsVPApAZC5FKJYAE1eCNWSx18uSJCNAZ601BsWgQJ5lMYRSvEQWQRCWCD5GijCJ3pcz55xEZg6WTObsaDTKs2zY66euhtxnqUsTRyAcvefICBIjRy8hRpBYeeHgDKaJ7ecpGbBIlDjvvUUgYdLeTiIxZOteFAIAIou1iSRNEOtm9t5HkFCV3PBrACgXsQWyQJYNMhIDsVCEGFV6DBtIgABK4z2q1peK6krdUtMuP3UUa5e+saQtSg4RQwzWWGusiGxsbPzn//yfl5aWLl68WDNyWjsYDDT60ZhGW8VGo9Hy8vL6+vrS0lIXN942d7egt9a5a2symiVXjFSXNEtr2bbOpRyFaK3+kjzUh3bivG/DuPaS2jdvn48PiRRo03c3RQt/OY2dz42J1CnuBtrQ4EVPlGjbR6jRp20XB3TIS9oZf1z/f5uNhsZEth+tr52fn9eenLZKrnRtbXGgCd8qPXIfPHhgrdWithJH53lundNg3DqjPRfd8FyO1OklxogGQqjqqjQhCaExGjKDhnKAqLGfqTl6UTqJyNpUAhGB9ro10R2IIBoWdcCkjOwFxCTkIsYg4ln7masYWNQEl97ZsjQWnDPOpfXMAElCMcZ+vx9CKGY6D1qHFZYAjmJV93WoG6Ul7IX5+V6vN8r7zjno3D6J7EP0LUFnw3QQQtDsiQG01uaK2LXGWrIGLRnGiAaJkMgREauhVuiTIWsSMGSRnHOODABHZomi5hEZRamIgRgAyQgSAAqQgFpJZgBRxl4k1VNUjWxkqcW8HiXKhKIlMml7sE8cyc4ZbViOHDXguHLlSpqmzz//vIYjyhKmpV5dGgpwaYlaWsjaI897Xcntn1rD1OrKdjNX6k+cyANigwyHpvbSsfBHG6dGzDRAkaqqqOH0ap/QBTXDcU6DPwov+XcbnxsTqeOELXukCC0cP3kefrCd/Yct4+OOxG6HKQBoE2G7etq/KmoyTdNuwNsmXM6ePauxknOu1+tplCHM7QcxgyFso+DpdFpNp85gCEEIEanJb0Yyrp9mhixa166zyDFGL0ggBhHJIEa2lsqKRaKKT9VneGPxlZpWtysasmSNdb4qx0U1n6eQZY6AhYUoYeIQy2lpEsKEMIKvYki5LD2BEUHvg61hukmapjHKcDh0dmt3dzdGrqqqKL3FlCW0TZl6Sf1eX4ubbUBgiDSyq6rSGVSPuJ1M/anuuXJelGXdhCeEZVUVxYwlZHnikgwRq8ghRkSMosS7QNYokt8Yk7okdYYAY/BVVUVfRs9196pnHwXQAFk0SWAohQvhClGQDprPIgAAgABJREFUtPLFypEkaIhqwyfCwqzyNEpq3oAia49OAFRUXRoe+MYwsQCwtKt6bm4OAUMM58+f39jYOJGL7Gbrmk6qk6u9dRHa12q5r/vME1xncNxpeORW6kbKD2/Sh1P50KQvH95Zj9yhT9iV//7jc2Yi/0ONh/Pf8PhOc3V4syxr1/ST37zFMInBEAIYigHJoohG30REGioaY8hZjWUFW51SiG0lURl/gEWiyBGwCRqNqoasiwUQIxBRAJwFKTg6Z13eR+dAyhiqKBwjk2c2dUo+VL4oCgACQjAaWAki9no9ROz3p6WvmCVn7nsmZ4FDm4xHAURM89xaG2IEgEqaXl1li2Uex4oMGDBCgoyevQQJEorJ0X/Tw+nB5CCUIUKcllXhC0LbHw6y3Ng0cYKRmYgYhLnGMBpXJ9oMkq3VsiXCETgiBi0+gyABmCgUWCKSIAkS1xg9JcRt9Ozq6BoIQD1tAygahYsACxAhC+KR5cKHgH7YxBJd6UetLJ/AdUHj0NW/H38rgWNPg4f82b+OTzj+aiKfcjyyPthdhY88+rrn59Fa72h3tO+jAM+qLLlrIiMCCRGhBOagxINOLBEiqQym7ltp+jw6u0LzYiysED9gFfWimuQQ1NlhFIemYjkoZpkTN+i5PHPsOCKXIOWsKj0GScmFEGOUPEtilBijIyfM48nkcDwVEQEqiuJgfDieTQmNtTbJk6yXhyoWRVF5TwSZSxLnosDBZDqrfK1n2/YFx7ouZQw6k6ABFPKxClUM7McHk2kxKaZlUc2qwo+nh+WsCuynlY8S0jRP854xLst6xhhFbirJcDxKzRIRJcYiSgyBKxGIbZajJpdhBDRRTGAMETxKsFqrAQZkJKUfkTqwPlJc0DSliGhmGGvmCmwr2dJQKbcjiqgUGTX8eO1ZAo/Ktj+ywtsF9Bx7HPAv64t9fsdfTeRnMx63NJ/8EmMMSHzkX48AeoAxRgCJEQVRmLUCW6IojpBSkzKnaQLADBJVpQG5Cd8YWZoQT5gZmJG5thWgig7Q8EVCDBGtqSTuTUsDPncm6ztjjclTEmbVaPPRWIk+iT6kdmAAkQUAiqK4e/fu7Tv3iqoMnsvg9/YOprNZkudaeB3xqCrD/v7+5GBiHS0tLPf7uS/8+HA/eEZgEgJgrNkUiYARpSWyg4Z5IcaovVVKeKNYqKIoqhhCjBEEKPjIUYCMSdLUGGMT19qUWDt5hCiOjECEGBpCFPW1JcbIURANkEEkYRNAQgRPEhACAmt1DBkFVcWGoiAIgzAo+pFFBBhRgFQbqCFDgwZOjnDSv4sxGkstORh0VFmatHE9BI5ynQ87knKcDqf9J/4lGlQ+1+OvJvIpx8O58G6qGx5Dx3sCMS5a/3zoTVq4kspJiAgYUkE/MCAinqMwiAQLEkLGx2XKRZQxh5mZ6kRenURnZGCGGBGVQQ0RgQAZgGpHEgEwCoYQDmZxZzZJXQKJdc7ZNJoqMZWLzMKIjKitj7HOvLUk+JPZtKhCFD6czEpfZaH0EpjEJM6XvH843t3ZSxKbpQMyZnd779btG9WsAo4AhMIGDBkgtISiXRltoq3NRSqaStVaoMlLBI5gQBB85NKH0ofAnFubZlmSaHcHA6iAdtRGGYk+RkESQDYgEVDZj0izv2gFk4hODV5EiowBJSKwiBALIAExALFOg0QQhhhbExmAGuy+Bgt6nIA9gq/BkTupNBYnYYBHjdsNrkgeVQvqmsWWRe3hP/11fKrxVxP52Yx2ybYI2G6Zr60enshUIiJzxKPUOLSv1a449KkzqAiVaJAsgmFmjkLChgWdS1oRpcDRcwyBo4D37H1UuK5SALAEkoQhgiCwq9EnDdSkvSQDBoSECAgnIexNpnmSWOoPKTFpmsUYfemraIgMktHuN6nJbjOE+YWFU6eLWVlGASCalVUVvHHOpUmv15sbzo0PC42nDVI+HCR5Xsn2weFkfHCoiCdqMINqFhNjGYGEGLn704ApfCFBhISEylCy5wgRLIEBG3Hmw2RaZHnZy4+Y8OsSB7IIMrMAsAorgODRbNTnH5ElMUImCGoukhEiQyTll2tkaUBA8YAscORFxsaLPDJV6qdTh1i39e6b9QNkat0Fafh09a6cGPUBjPAw8rFGYpiTgfZfeot8XsdfTeRTjhMQh/ZnV6auLWdrUql1fxT3o5xp3MB62kWsG1UpIShUbUWbLaEBNZEMhjABNNa6NMsUsSHKWC4cI8bIWjnp3uLam+Rat+GEicSjfjIWy0SGY7k/m6SJTa0hBwM0LknSNOdY1l+fRXeyVuHzrH/mzNnR/IIgViw2cVXwha8ADSMYY3p5f7xfLC/PVvb3JcTBYECAu3sHWW8wnRbAAiIcGQSi5gcAYhTWcJYEImjRRkgMmCDaMI4xchRAMtZaMUQWbZIJ0LSo7Hhi0wQt5r3MGOO0f51Qc4Sssmcsyn8EKFAXiqK68oAmCrIQq+VDQotA1PQBGi1YI6pgl2gKEkAFZBtYbmMcj9Rr9RE+RqLdrBlNAkCNYwWofDWbzVqcIDVadS1ym4ha8a/6lhr0wcPxo/qvVvLpxl9N5J80pGltbBnYtM1GgXvdDkilM/HeT6fT6XRqjGmVc0iQm061unKCaBNnExdTZwiFEMFEA0TE4IHEgHMuNTYhIpu4pvMNm1weAChCjwFtG2jHRsqGRASFhS1o+AZaJEGBGANrL46RyBxjzMty5IMVn6SYEYJhQWGuIiRRXC0rGGNZli6lXq/XHw6SLJvMCpemgWMVfBAOIbBILxv0TRVGvDI/X5altdZX1dxoMDc/nBzuM7NEjgTMUNfj9UoIazQqAYCqUkhdNjZoyDBpzUoRkGQTmySJM9aHcjzm1KFB7uerBojIWEeEViAyE3PgKiLWJHhaC4nCHtgTRYNBKJANgEHEA0QRIYsIVBsc9T0NiRaqQbsOdW0QGAaBpvUeEVu+ThJgYBBSHcNuTI3YSjNAiGE8Hm9ubj548EBFojQtq1TNNWgpTVsZu66yiCIKsGGFIKK/GsqnG5/aRD6cgzsBsj/xy4nnP5yq0/XRxVJpF1QXSNV+EByvh8jjmT/keDvUE5SPpCPAfeLdlFC9Fahpf6qX0XbO6IPaX9gyDOmflDVDkeSTyUQ7bYuimEwmL7/88v/zX//LYDTsD+csQowSQ0gTQ9YKxIXlhdUzp/xsaAju3b63u72XuB4QCwEakyQ2ydJ+v5+mqTodha8kxOgD1NqHAVGS1ESPIoJk0FAURmspcSUHJItIQdiqgh8LARKwISGLjFyGUDFYoO1pVZX3zy8sGMjQGbASTcEQPVhxKRODIXLWJUmWqpgBA3NmDSFQw7usNhQ5AiKQSfJMMhdjPKgmw9xunF4uxrtVFWZlEQMRWRSKMfoQTeICR2C2RBg4+BIRLFldNIBkk5SBokpmISSpNYQGQaKPwZeBigTyFGaTdDQaJc5plxK5FJFjREJg4cxlkMZqVgABpiaWOAUurSvIlYxlZE8ISCqsaFDNW6PtpfQS2BIggcbuqF6jwSgirA5g7XqziDUEIjXpCILgUToSECPX3BDb29v/5//8n5/+9Ke7u7sK8dEeGO2hPkJ3pmnWDFUEUSax0WikLM6KNrfms3SJTiC6u9tTo6XWz9V99Mg36SrtdN+w25jYgp+eIMujBFpdcGhb5vqjOJMnj089Zd2J6FYnHmklH76mrmVsH3mowcB1P659QmvpmlTRI7RY28toRVy7oW77nt1eUS2SEpFvhrp+s9lMkcktY9BsNmtpIlvxDW2eqSuqVbW5uXnCdLbNiACghEOTySSEsLOzs7i8tHLqdN4fgiEAsHXtJma9zFjbnx/NDPiyYqDKx7KcgLF5PxMQCJzV+EoAwBh9XQQAAmCqAScRgLQ+ezRBtTOhdxAJSTvhDGj7CJIKMTIBEKBlhMhUguxPpj3CHiVIbJxliQE5SoBH4YRVhscoIl2AOApH4kiEFsRzjFUZYiXCBJKnydxwsH56rfBVWVTMgGiE0ftY+TAupw7EgBhA8VVVsES2uhKCMAhwJGtBjPLsMAOhEACRtnQKh6qazUJZsvcgopQbAEBoDNmIjGgAY42uMSCETBiNiWIiGg8YwTCLgCUEIZK2c0ZryiQKPQUyajRJRHuyBSFAVAsINZASoJFIZAR6CLVjqE56MPPh4eFbb731gx/84Ne//vXt27frJyiPtnM1rrNRcFU0vjqVqqA3Go1Uy+TMmTPPP//8c889t7q6avCTIi7+6HikcdSdBW1zlAjik7i+T4jTtu/ZxZZ34SKP84oe/oiH0e9PN55GmOHENLUm6ZFVtm69AjpljUdyN5xwJ+UhZZsuicgjkdvdf7aU4DqgIbtXJ67r5SklvXp/La3kYTO6T9PRUlS0JrU1hYjYygFLQyehF9ASPemF7ezs3L17d39/d2VlCUwiItYYAAFmlbhZmF+qZsXe3t6srKZl5Su2iTOZBQE0FEUYgBFYE5BHkDw1i6C7tHFxABrLRcKWUHu0jQAhWHV3GAgRwEaJLNoB7khCBPFV2K9CX6QH/ZQkihGwwhSlocPRIk+nOHu8AG2Ua1FE2EDwsQxl5UsRQeAsS0ajgbXrVRXKsuIIBCYELopqVhS0J2AgNWQAg/fVZBYqDwBVVZXRB18BACEhWYNIhMwQAIhEw+HIMi0qz/vD4SjL8rQXXFKT0wgfW2xdsCTWvXGodMasnwEEhEwkeGwld1dvt0KNNYkGC9dvhNA1B4/eX5GFqEZEeu/v3Lnz/vvv37x5U5tcW2L87nmv/+wmKNV36ff76leeOXPma1/7mjGm1+vNDUfwWQ95qFP7YU/oyS9vnZ72wZbNtwWB6FbqNkR2X956r+0UnbA8Tz3+JMe7m0N5gn7hMehWg309YeZaHQVpGvtaMiXoiOTCo1rlu/ep3ZnW2oODg8PDw/F4fHh4qKZN49/JZLK7u3t4eKiMtgcHB6qEqf3Uqo2p8piaJm+xeN2f6sAfkT83kOOHcT/tP5UwLcsyRNTr2dvZrYri6F4iAkgIbF2S9vo2SQ8m43ubW3uH45n37IGStAyRHKVEjFSFCKWnGvStW94AMCOoyUQg4SASERwKEDIAI2rvMiASIVkkA0gCZIEEJLKwEWQEMgAIGIP3XiZc7QImALmFGCpLnPYNUkJkTxApnYA0t4UsTYYyMGMQilECsACAtTZNU0NUlSGxVYwiASoMoYoGJLNoU9vLMmcs+FjleSgrZp7NysPJTKYFIxIIGkRjiciaBJCJAAiMEUMMCDHEyXiWZ2XeD0Z9bA4AKByZA9f1q876QWKIIiiNaBeiRRQiw58Mgt1UnOvtCscnpCHt1MVz1OOMiCF4l9QVP+qoHNcci9LE8vEYnDYCaHWmewEHBwe6Gm/cuFGW5fLy8tra2mduIlt3R5sdVORLpUdaTsknv/yEY6QnQZtX7aIRHk6+nVhvjzMOf8p4Su2aE0dom/V78iy05xs8lJRsDwF9K51rzUgqMq47g+0/WzWx7lvpc7z377777u9///s7d+5sbW2Nx+PpdLq/v688tQo81puq7mF7V9qg+IQIHHRM3onsRnv6nWxp6JwKzjnNsbYmwxgzGo2cM7Yx/QAADNq1Mi2r7f39u1sPNrd3fBkZiS1VAOKrLMnAWkYoqyqwd8Zaa1mwJdwS1r3dtL41QBMAQK4jTa1OYC0G0JAXqnWoq8eAhMBRmH30xDguvBFOMBJXWYa9EQGmZJyqSgCAgCqgcXtvtfGxmUwBiVX0EaKQCIlwjDFWofShrEpflcGX3vvInsvCzyazYjZFjg5d5lw/y52xEDmEEKowK6v0YOwOxkWMSvQGZICsTbRBngGZrEkcWiMiXPgwq7z3MU3ZGCMqYcFRmDl6qElDEIQYav6byByEGaiOmgkB+RjA5uincozrP4+tFkQkiXJ82bcFtIe1VGp8GJmyKplZM4lVVR3x6UJNqasr6cROa38lY2LD9Hx4cHDjxg1lFH8qK/HYfd0mB2OMm5ubt2/fvnnzpkLWVlZWNjY2VldXW4KMR75Ju5e73oYagXY3df3Ex71cc5En/Gt4TCvHE67n4fE05ZpHfvDjPGp81CLohsBtuKrBqdZ8Dw8PVUet3++fOnVqeXlZWULbL683RjW5Hna8q6r66KOP/vVf//X//t//e/fu3d3dXcXZTCYTbvS12wvu0kd2Bdtaps8TWZJHLpT2nw/XfKChF9LfFb0xGAyuXLny5S9/eTQa1SAPrEVkBGAyK2/duffR9Rub9x8UPhAgWCcgPoRoMYFUCCPLTCoTCVKlaVG3RU8apQgiBNLSryjnWaNl2uqjQLuhtZFbEMigRAFT73rBCEBIbFwRWabeSQVcDtiNggQhY9zjvMgTS6LGPJVFEGZfxaosyzJ4X8yqoqiKyTRGiV58Fb2PVRV8DGDImlpXz2XpIOs7a4PnoijkYDwQEylJQqxYfBRFB/mIzMIxFhBCCDF3qQEAtlbK0pelz3OxFo8kXvXuh9i4ulr6Rx+FjyxSXYt5whp45IMIiKJ89c1bKU0dsmIdpdNb1YaG9b0hMsacPn360qVL77777t7enu6Udo1psvnISh6PK1v7iETScPJ/tmRi3X2xt7f39ttv//KXv/z5z3+uJvL8+fNf+9rXvvrVr546deqP2qOuOdMdWpaluo1teqrdlU94nxPrsK0k/ylf/DMQZuiemfpNuhqEmlJRqru2fKGZPi13TKfTyWSiIXAIYX9/X4NQLYP0+/3nnnvu+eeff/755xcWFlT78XHmWE8eTSn+5je/+eEPf/jjH/94Op2qfUySRFfYwxV2DWS6CebWeexu+IfTrCdCaWh46qFZ4l0CqFZZd25u7uzZs1/5yleee+45lTyupV0FkAiMncymm5v3b968vbu/74z1ICJCzgaOIBI4+ujJoEUiUuZI4OMXpwouYLTqgoBWwDIgCFggECXvAnUjBVAv2miWzVjgCAKijhUaMY5BilAySykiIYo3hxVPKwYyCg9s50GABVBEpK0NabgdATByVXEIxWw6PjyczQrvfVUG72NReEQjSGxRgAxZm/eJQNinziRJ4tLc5UNrbcAqlDILUzZ5NsxToiBQVCGEwIIixMyhKstqGiSWAYVFOBLF6ayaTma9Xi+1jhBZWJjrpnUREkI0qi6uPjgDAhokg0CCRMrZXsfNAuoYtj912qHlBgHQNng9mgQQEDgCqDLNYzN0xpiaL9LaPM8vXbr0N3/zN2VZvvnmmy06QhpBZq0US4dUv85Xtm688vOn6eLi4nA4fGoz8ThToAYrhHD79u0333zzn//5n3//+9/rrl9fX0fEs2fPLi4uPlmatQ2qAGA8Ht+9e/fBgwdKq7qwsKC0gV08U9cOtpUGXWntdmszy1086dN9zaf0Itvr08ScVt/0n2oB1cAx83Q6VdIqTe0p8EU1eUMIWjVWE6nImPF43DItjsdja+1LL7108+bNJEk2NjbOnj2rkfXDbp1emFZOiqK4devWzZs3d3Z2Wli1eqnQtFic8P7aBGjrlupldOti3TY4/VPdIdjJ9Ctyra0w6rDWDofDhYUF5XDd2Ni4ePHiCy+8cPHiM2meAHCMYq2aSDDGFFWYzKa7B/tl4U3fVN6DSJ6kRjBI5TkoAaUxqFYoHplH7QY+mhkGpaUhiwZEamZDJFEVaKFICCiKfw6g8D5GAxCAEVgEEcBQECFjShTDEYwtAWcBZ0GATDcv3l0e7bwd/YlZQoyVD9OiOJzOpoUP7FlC5IiWjCPrgIUYCE2a5lmSii9qnKC1weSMNAlhv+SxR7KZzfIs7zGZPHjvozAmSSaRy2I8me7HqiLyKIF9MfPRzcppUZZF1UtyMsjMEjwJU7c7Dw0QifasIyAgIREQt0pcj29UeXhNGm1s0jc+3gNYIw2azJDSYgAAIRRVJU6cddba1dXVN954YzabPfvssxpd6ZGvSXNNrOu+a6mhdEu2OJsQwmg0euGFF55//vkzZ848nZl43JfV71sUxdbW1rVr1377299Op1M1CLPZ7MMPP9ze3q6q6uEaS3e0f6qq6tatWz/72c/eeeedu3fvDgaDCxcuvPbaay+++OLq6mqr+NS+UJn8tb6qiVfdgBp2KKBlOBx2XZ+n+KZPYyL1I/f39+/du7e5uan+4GQy0TSflkfG43F76W0etx0qYND6m9AAqdrKLxGpWp4x5pe//OV0Or1w4cKVK1eMMWVZqkSGXs+JJKbatTYqx6bZWWE9R0Rbja1sb7OeNthRBWkxt11QRWvyEFF/V+yF1hxUSiHPc8Wj5Xmutek0TfVWpWna7/dVg2lubi7LUjKIoJZOSfvBV1FleSIzGCh8ySB5mpPFXtZnTFliWZaAbNPcuaNkdhs2HjlugiwISDFKiOyyXIwNnoUCGYNoGKMRESJL2vgnWvsJMcR6VQEgRWFmIWMQo7MuJRchFiwVs49HnZdIRnvmsBF3JjKIyHXij4tZAZ73tnYePHgQopgkFYuTyfRgUvogrtdDh4DG5flwbqHf7xswDml/Z3dvby94b4wPIUzGs1lZTSa+P8iH/Z5LhuSsU4YyEUcmT52lteiL2XQ8Ge9ODnfLIELFtIo7u/t6s4a9vvqPMQYl0NT8ZbvOyRpgExkiIKPSjwsLIB1Z1G540YL4uoVHDdxBBISBBaEmCRZunmWOPjEKe47OmFruSliX2blz59bW1u7du6cWQb0NhVXEGNUkKWPmwcHBeDxWao+qqvb29oqiWFxcvHTp0ksvvXTp0qXPyj4eXXOMur8ODw+3trY0TLTWttwimkV9snnSvQkABwcHP/zhD//7f//vH3zwwcHBgbVWFXXOnDmzuLhYlqXuazWUumFv3rx57dq1999/f3d3VwV89Gev15ubm+v3+6rit76+3u/3W9qkT2UrP7WJ1LTo3t7e7373u1/96lfXrl3b2dkpiqLVbGnxg+oVtlXgEyAY6EToLcS0NZRtCU9fqPd+Op1yR4j9hIvX2gVdrIuLiypzrlgc6GRwusIamu/QAlxL9ar4Mj2LdJZbaK7qZzrn5ubm9GbYZuhLFM6tZlHBa60ZVReylQQhIkSlvwIABjBtaw0i6vGgxcGknwx7fUOJdSTilH/CElprnaWG6EL3XGzerTZbR5UBYWABioQOAEhZatS5YWYgAhSUKAEAgJVcDQBA2b0RQWrIHiHEKFKEWHolBYaO3/oImK7S01ZVqMqwe3+rnBbIxnu/e3hwMJ2NZ74USPujNJ8bLS7ZNENrXZ5RmiOYalZOOdmd4eHh1PtQlaEsvY8BwXgnXEJpgpQCAEjkrAWyTiwZZ10yzPK030vzbHqQ3d+8FaM3JQ6KqqpCTKP2BdbdgY3Tq9ILAiiaPSBU9CgQoTCCtipiu5C6WabuF28eF4yiJWw5lqhlxIbdAo+VUFgAhdu31fw4Im5sbECnm6tNZE2nU2lIPdpslabjdUsOBoPl5eWlpaWVlZVe3oPPaGBDO6D7dDQaLS0taTisafckSRR11LI0PdYGNdnGe/fuXbt27dq1azdv3tSdPplM3nvvvQ8//HB1dVXtoxqEJEnKsrx+/fq//Mu//OQnP/nwww/H47Fut3Yz6qfPz89fuHDhjTfeePHFF5eXl9vE2p+xXKPG6/79+7/4xS/++Z//+dq1a5o9xIZvvZuLfPi1bVDWPl9vcHe+WteyxRjqVtd7rxPaIlRPvD80HuXVq1e/+MUvTqfTu3fvqrx9mqbqoqpzpytP/bvBYDA3N6c+oPp9ahB1rtuWLzWUavv0HVpMRuve60fo49A5AE4IGzU9i8Glx8UXBQyKQexleZ4l7PNePxkMBvOjOQQHAGSACCRy9CWCcc4QcPQhBPaV996rnIAxRjOChGKRWYSYkL2JBgjFEgECd1CrgooWYgkAQkCEhoACswUUA4EZUCIJQkQR5lgFPyuLhkf9KImulrq5O8gsbXgxm0wPDmccYhXh4LC8v723MxmDSVx/uLJ4evn02cW1NUpSL4BkyCYG0VtvJhB3Z1OpJgVXFYgkYLI0TSEfBtMbe6qCZ2aTuDzByEGAxLl+0stTm8vApdalyWw2CeU0cJiVflYW/Sw1hHUTfeQOm4QwSFQQFRKAUbYPaXQvAIBqHrPaP6xhA41GDYGwMIGSeSIAkLCwpoeVWlKzlwiARMRyrN7IzAaPNgg07CdH7OIN9luveWFhARrT2e4URNTQDQD0tNY39MEr6/hnOPTjTp8+/dJLL/3hD3/4+OOP1Su8cOHCxYsXNbn0R99EY7vxeLy1tbW9vT2dThUB4r3f3Nzc2tqqqmpubg46kgHGmI8++uhnP/vZv/7rv6qX1ma99K+6Defm5jY2NqbT6eLi4vLycleU4hOOp+muGY/HH3300S9+8Yvf/OY3Ozs7IqJu2h+dBeikqLoSPyd6ddrCiH7nwWBw+vTptbW1LMu6RvaRU9/ma5977rnZbLa8vKwZSQBQxm/txBoOh2oBsywbjUb9fr/X66lX2IbSevp184xtqrGlD+jSneo/NfTowpu62eL22MC65cBECV1IE9RWFXu9fH40SKz0e0l/kM/NDQiMMCJJkiQQuZxN2bN1BIyVRERBFBCOUXEqiAgQI8SSIhJZB5RAMITo0DhjrWv9PREBZBQU5AgUYoTghYNEBQkZcCaKZwaR2DJ1eV9WRVmWpfdpmqZ6N9RFaom49UY3YeDheDz2ItOy2tk9fLCztzeeRkpH8yujpZXzz74wmF9MBoOIJBHEIAPFILPIgXJKhyaPVlJI2Bhj00zPJFHlHyLBaMgx2WkZkIyNlJJllyRk+0rNLXy4tzXd2/ExFEUx66WJscweouINOQpLiMzCEaIAS4M2JWixOdp3yO2kPWZtH6HQ9EWPcjOJGpwBIKIKKQogEzlCUe++u1ralc9yhKmG47DB7mrs9XoKMtOTu5tk/6yGNKKvSZKsr69//etfn0wm7777rmrNP/vss1/5ylfOnDnzZNBPO4wxeZ73+/1WuUzfZzQa6d7sCvlpveHu3bu3bt3a2tpqN1e3vqpjf39/a2ur3++/9NJLFy5cGAwGzJym6Sf/mp/aRKZpur+/v729ffv27QcPHjBznud6aj28Dk6spBN+5cMGqD08dUbUvzt9+vTXvvY1Lf6eWJdyXLerfRwRh8PhK6+8srGxsbe3Nx6P1WEkInUDNVg2xwc1kqFwPAnQLoj2wRMGupsM7oISThg+eFQSpJOzP3omEc0vjFZXV3yVJ46MxV6eGDCIGKuYOucyUzkTfWSO0UeJJJGNanCHGFlbDwEl9iyKQZe4/rCX90dZL0/zYZKl1qWdA6nOezDyLFSzWVmOi2pWzooilj4aYyUB0L4SJkSHIMwQmUOoZoX3OTO389GJ940mxabTqQpA7h9OKpbtnb0H23tFxf9f7t6zy67jOBeuqu4dTpw8g0HOIAiAYpAVLOm117XvXfaX++3+0ru87OW1HCVZpiVdUxLBAJDIYTCYcOakHbq76v1Q++zZmAFBEiRISi2t4eDMCfv07q6u8NTzxN255eX1pdVjvYXllSOnmKzzUgQWE4HgJC+Gw+FgezCd5OMpO4jFAoCgtRinDFAKOhcQkWxko9RaGxkqfOYpCiZygmUAY6xtdaIIQXzppuPR7jQvx5NJuxXbdoeIyqKsTSQzK0NS9QtGQSvzCAwCzILQxCLWE/iC+6tLnIERgGS2kxFnLTQKCnr+a+sVjohN51Hd2Zrdp3oc5ZkDG0kha/WbPBeO9lVG3euiEe7Vq1dbrdajR49UvunIkSNazv5cLHd9Vf1+/+TJk6dOnQohjEYjZj5+/Pjrr79+4sQJ1YOC551D9VFxIIiug1SlAtnb21Ow4JedhJeBjjf7nDQpq5HyAUxMM59Slz7q3zUUrSse+ouaRQ14rbVLS0vLy8tHjx79/ve/f/z48Xa7fWA6mgqI8KyVFBF1rTVDyjOV1+Yl1depLm3zHD5gi/GFXLlNN/BASbf+54E88ez+BTjkCiOiJXN07ch0dNy7iYD3Ra5XTmCYfBLFcRx30lQ7KXOfBfZZNgEga4lMSmRMlKCxHKAVWSJqtTq9ufne3Hyr02t3emm7BbN50+BS7ZogDcbj8Xg8GUyHg9Hu093twWDqPYgXFAYUkAgpAgnCxnsui6IoXKmJZp2EGUEPosL8ZyZyvLe3NxhPBkUYTvPS2N7awpH1Uytrx3tzy3HaxagFTEFFuCn2IUyHo6ebe9tbu4UrfRkYSDBiEg8kXhFarI00Boz4wMwOkZACmCIwOU9ExmArsdZ2mLYFyHkORT7JbVG6TspRbGYoGWZhL1C10zAyAyMLoepXwD4nCxy40c1D+nBqshnZqYmcIcxA1DriQTKIGtpPWNM/VS3hNb1e5U8A+uDrE7qOXUS7mBqtePW10dfKZFEjlAFgYWHhjTfeuHjxosaU6ot8kV4XmUHQFxcX33zzzb29vdOnTw8GA0Q8e/bsX/zFX5w5cyZNU2m05KmSz/r6+vr6+vz8/Pb29me9uRYbOp2OmpeXgP586fnK85yIVldXz5w5c+vWLS1j7b/dbNQVCfXXdL40o6ePaN1DY96aiUSTJloURsT5+fl+v5+m6enTp5U4RCs50Di0D/uqdWBbw8uVaYZnesH1janf5ECGonmq1wX35p9gliioD/kDr23+3tw/dSxQX2RVHqHmqwRJ+v3u3NxcWWBw2TSUAOy99z5IIGSJI9NJWxGhy7OS0EQxdiBtd9NWz0ZJkqRJq2PjhEDm09QQxlHS6rTjtB0laRSnUZJq9TZAaJhIEcCpW5iMs2yYjXdHj5NWQrg9HBUEOftgQIQiwkgAhdF5KLwryhkO/zmHs8L3FOw1Ho/3JtmuD9TqrhxdPHLk+PLKsW5vKYm7ZFtZFkxkjEmAgZ0UmZ8Oi+mwKJwvPYgAAxJZgMqJUzSS1ZJXYOeDJ0DEdqsTBHwQxxKQyMY2MgadiWITJ1EUgTN1VVDfCwGkXksIQoYReL88VUXDCjjQOy2HupKfazEBICLDzDNy+eoAJiIRbV9StNWBt6oAxXVkXS97aJg8/aemKfX5laeJlTrYLDR7JdrTGurpAVM7Furo1Oz66kLVPuxz30eNoz6z3++/8cYb3W53a2trOp0S0dra2tmzZxUXqROr9jeOY+/9iRMnvve97w0Ggxs3btTImRojqen+OI5XV1f1TRRlqH10XzzWfplyzcLCwpUrV370ox/t7e3dvn1bwT2a8kiSRCseagGVFVErvJrv059JkszNzaklVXey+Xu73VaYt9bpx+MxzEAt9brRu/Jckdhqac5AYTjD/TQD4TpncWDBwaFO+AOt9fVLPqtPHJ6Nu+FZB0GxbLrioygyBpMkQaA62BYBRGPASABwwgX7IhQTp6/1zpW5a8WJAdNr9zqtuOg4g5as6bQ6vf58b34hTdpRksZJSjY2wp3YUlD5aMsIPrAgGHGeVfYwMAiwMAQUYpDFKO20oSQ7Igp5NtrbneQTPSgEkJEtgAFhERZ2HEoJJXCAwKTptP1cpAgyOxekcCFzblqEacEFtXr91cVjp5eOnGi1eoxRKSYGO86nLYwNoZrUvdFkNNorspwDee+9Z/W29NbozozjyEQREYgEAbKExpgkjSNCRLFk0jRudztpRChlq91vd/qtTp84kLEspvTBoNICIWOVAGQCQUaKVJ0BEIFQdMkgCiOr3azSjKJZQ3j2IGz+AoYAgZRnRKp8bVUNYjzMk2QIlVm+Ol+h4mDOsqy5TSpsr8p4P9tMoc6mtbZKaMp+MlREvi6mH+dcHMfaGFIznjW7Mw5Hac8d9a5UqO/Kykqr1dLwSOsQWmXV/aL+o66BKIrOnTv305/+dH5+/vr163fv3tWSYJ7naqO1kJim6YULF77//e+fPXtWhYjrYPELjpcxkSGEbrf7ox/9aH5+/u7du2rC9M4pk52aSC16LCwsqBdZw2XUWtVW/EAiRieiOYNas9MH63rWc83i4X82Bcub84KHlmbToj3X/NVnYzPj84JsVJ0KqLuJtra2xuPx1tbWcDhU/pUrV64QGGCDRGBAoTfApsj9vU/v3f747s7W4/F4qIehC0yAwHnodXqdni99p9s7tn6snbTTTnuu20MTWRtXxXQ0ehF2pr5dVZMiKQvn8kxEFCMiCAr3QUGLlLttY0xiY0ww66eDpc64GPvxKEUIKlFV5j4Ea20cxTn7oS92y0mHewwQfEgia60CQQTJBKG8CFMnpdhJgK2Jp4Vl2zlFrWPjsrU7yVwxIgEim+d5pz1ptVpgyHvvJRdyaJkLCZ68c9hghzWGvPfWkk1sHKt/wZWijB9jFMWWkhhjawDAmCiJU5znNE66SWvw9HHIxyYyZFIy4LOxQQgBHaODeFqGUYGlRKVwIMMGAwlLYBAGERQLUW0TCbDi9m0klJXPXGYs5MyiDq/MatAAoCKVM5yknlWAAqayt4hktEsnL4pPPvnkvffeGwwG7XZ7ZWXlyJEjajg6nc5cr9dqtQgwy/MkSRBBrYltkJAHLYVrNwQzVOvimcR6vchfkE06MGpGibpzRh/R4gzMMCc6mtvw8Afp7/ULO51Op9NZWlp67kv0DWvJ5WvXrp04ceKnP/3pjRs3FEivTSg1OeH58+dPnjx55syZ+fn5sixbrdaXjbVfhgwNEefm5i5durS2tjYajdRTq5N9mlusA239MnXofSDJ+t0fGuDX+7NZGayxaQdEabS3QU/+wWCgNvHOnTtPnz598uTJnTt3hsNhv99/55134jh+7dylZKFV3TUEAPCOmfn+3Qef3Ly5t70lwQdhIUSI5uZ6K4v9lcXFE0dPHD16tNvtWmvjKK3RZzXvTm27mZ/JRrH3rqi6MpTrqM5hiwgG6SctPYsCki8yQ5ImpuNjFpzmWZZn6jWYKDbWooFpUU5LnztocczGBoiAMYTg2QbBaY5T7hTYz03pogLSFkX9vJSnT4ZbMChzB+wjY60lZsgm4yRJotgQ2sDOiI8NRiiBhAwBiCGwkYljmySRtTZOojSNjcUQQgiOmY2E1EBsKElMK7VxhBGysHdFiKIIkla73S3b3VKCMQxoAAIJBJEQ2DN5jkrm3PG0EM8YEDyIr+QMwQuDoIBHoRq6qENECBosDLN20DqlXVmNht4hMrMEKxiEJTAzI1dYosBBAdgAcO/evX/7t3/75S9/+fDhw1artbKycvTo0ZWVlaWlpSNHjqyurq4tLa+srDTBZOpU1rUUnFEiqDdXpyyfawS/lnoOPq/57bnPeYk3P1DK7/f7SZIsLCysra01qR7U9dbodmVlpW5hpM+j5j08vrSJ1GNKG0VWV1eXlpaaqYdmYbp+fu1eSWM0my6bPw/n8r7d0TTrWDOszCrp9QUrflOTHePxeGdnZ2tra3Nz8+HDh/fu3dva2lK2oZ2dnadPn4YQWq2W9/7s2bPrK6vzSwuAEAKQBRBwvmBm54osmzhXdNotQHTMSdxZX1+/eO7k0SPLx44dm5ubqwpfZj8PrRDuOuMJAETPaNfUhG87Ozs7Ozu7u7u6l6oVw9JP2xBECCmOGAk5dNOYCATJCBfTifhgE9tutVppOzbAU+KJ5WnkbAt8VCIFwdJJ4TgrwzjncZZsj+eeTv3AgaOpFC7f2QqDQQhegkTWtJM0WIpMXGRcIpqIkrhlLJLnFJ0nF1lwEgSCSG6Z2tRux6bfT6LIxHHE4ovCFz5XNGJCZI1NY+zE1I6QIBST3LvMAKAvhF1kQSJjEaxBQ+QI2UkI4gECg3M+z4ppnnkwXtiTeEHteVawZGDBmb5C01AS7OesqwcVJ9BY5GE/nSIGhCWgoIoM7bdXz0CCIlIUxUcfffTP//zPv/rVr7a3t40xnU5H+7IWFxePHTu2vr5+9uSpK1euHDt2TBsl6gxg7YI092MzAIJnOUcOO3ovNw5EUS8ucsKzVYQv+P4HGgoVsNzr9ZqpM81aKka70+m8OOh88fjS89I0bTLDinvvNXCWBoVi8/mHa8QHZvDwTH1HbGVtAaGx2urvqOeVc240Gm1vb49GI23Cf/DgwaNHjzY3N58+ffr06dPhcKizpNy9vV4vy7K7d+/evHnzz956W4SRKAQmS4pDNognTh6fDC+EIuv3OtZaAUrbvWPH108eXV2Y63U6HbV3uujVzKnPeGCqrY1hxiBX1z1pxkys5eb6cYM0GYyEGYlsEpvIClBsIGqnxsZGmMtiTCaK026r3Wq1IyDy4vNkNARXlgG9C1B4KYLsjbJhVmQ5l4J5yTtDnhSJIEsxZJd5RBGxZCKIUFwAMHFclnlZFICYJImJIxFxwfsSAgcJ4n3pXAEoodXiacuUPRsRIpZlMZ1OizITkYhQq4Jlb06KSZh2Qwij8d5kNCQOiUUDAcuCoIxjS4atNYgmAAYGFghBShey0k3zkk1SUvBEgTW9GhgJAND7mnSuoqUAAABqEIlUe1WNZsNYMO4nDWvYY5gJH+mrnA+RNa1WCwEHg8G9e/du376tvQ/OucFgMBqNNHTVNtYjyytvvvnm22+//eMf//jcuXO1c1Qnsg44H00Thl+NAudzd82BPQ6fbSi/7JvjoTbi5p9ghjuulzo0sEFf9kNf/uioqyKag3ixa/3FHfsDANdv3ZGUWeNz7U7WLedZlo1Go729vZ2dnY2NjYcPH+7s7Ny6dWt3d3dzc1MR/+r8a8tUzcCmPZHaphmCC+ysSaTSsgZjMIrN+vq64SJCSdM4juO03YmS1kJ/Lk1MGltE1JKltRbB1AwddcHzsDtfFxZ188zPzytgS/votRMjtjF7MYBojc2qwL3dbrfanVY7ibBvAFqjKQsmNiJAEeMlHk6Me1oIuGnppqUvvJQBJ3k+LUoX0EYx2oiFWq1Wam2bA/GUnQ/OG2AKDkouy7IQmU7HRZ7XJhIRGSRoDzgjs/NFEYKT2EIn9YMq9VYU2XQ6db4gIrIYRylak6btVrudpm0lQ8mm44iwncTdNE4j7KZxgi0JJKYSDBMBQfIMufNF6V0IguJBgogPohxyDAIAxAj7MTUAAArDrJcQZb+zVgksmBXvQSLCGBpeFTBzEAkcaijP7PQ1Wg6qySkqUJ2aVABhdnmeTSa7u7t3P721sbGxvb29srJy/PhxxQ/WN12LJ7Vr2dyMh929w5v0c+PlF4zaSjYz9V/lDXXUBfTDxv2wq6jomgN/1R39xb3mlwm0m1++Lm4cKOPW8153Qz/3y7z4VPnW7SPMeuz1GNBj/OnTp3t7ew8ePBiNRpubm09mY2trS/k7lGugloKoJ0RxSLruAaDT6czN9eJWeoDLL0miOLbtdrqystxJbGQwjuPe3AKQIaK6fazufQy+6blX6Y4auDqju9wvxGuvRa/Xq4kGlEKmKAoCimyLAI1VGi2JLVmQyBL5tB0RdDrEmJVBBHxRFi5EYItQ4NQXPkyLMnM+qBS2IUZoJVGrZdMkiqI0jkwnksiTFMl0Oi3zTFuknXMF8M7TreBKDCGKopSMJSFSIQR9M2QgH1sXOLKUtAA4ZwnMASBHU3gIhAGJAmfl1GfDnW0QwqpXNXjfiqOQxpLGnMQxt3xCwUWFBBZkQAZiQRd8UfrSMwOxAAsGgYAVXFsDbO03bK6QZ9b2oSJeIxspBzxKZp7RVqo4IiKYKLICogofCg1eWlq6ceMGzxrYRARmnUxFlgHLvXv3ut3uvXv3RqNRDT2ul1wddWqzjfe+ZiTQN5y1kEYvTlN+ldE0Dl/dSr74U2b5pYNd2AeqtV/8bb+Sds3heu6Bx59bNdPRxBu+uszxVx/1GaAIpw8++ODTTz/d2tq6d+/edDodDAY7OzvD4VAZ3pqn0wEUup7nCgg1xmi96+TJk9p5KiLGIgsbBIyMtTZNY24lncRaS3Ecp63YeQ7BozUSBImstSDgitJ7hpmLoX0XIszKUoGoxYOKrwEAWFiFElkMUqfVXpxfYB+AZW9vr5x1eVMpZNgSgqfckjWYERqbIkNMJAZYTOadcy6DUoIRAC/g2DNJFJk4sZ120mvF/XbcSkxqIY0wMUDIUnZcabMsLvM4hMA+FFOYGpdZji0YE7c6nTRN0dRdd0ahKoLK4xQsmSixKMDaPChtCezZsQ9BuAhQlGWWFUVRhFAwQmTIWIpjExETOwwgbIWdc5mwkcCBRWVgS+eL0nkWQCNAIkpwAQCVeAJU5LiI0Dj1FUbDmnkkEaHmX5u9AVJxgyDu13bqZTaDMYIKnRNit92+dOHCO2+9tbW5+eTJk/F4XFX2icIsq6IuSNVEkOf9fv9AU6wylT18+FB5ybTDb25ubm5uTivjGh7VdDtfiuLh8DgMd/t6jePhrjb1MJrVmAPXU0/FgR39BcfL9GgfttN1mhkOwbm1MfEw/PDAl3luuea7M/I8v3///rvvvvvzn//8+vXrCm3VyrVmhWuHWuv7utrruQKANE210145Uc6fP//Tn/70+9//fqfTEaysW+BgjC5TaCVJYQwRxTaKbUTCwh4Y1KzUTanOOUSj2DGAqjogsz4EnenmOdSstmttutfr4YxRZjKZ7uxMvHcIbFnQGoPAzpfZdCJgYwdoQTC2EZANABbLwpcsQMYYSzYyNjbtdtpuxXOteGmhvdRLEvJWXIyepPCOXRx5Tjsp5jn5opxm4zJzwY2t9ZYkSaJO18Yxeal6rxNrmUUFHhjYcDAGIoIoikRIKrkeCCHWpEHbWOdtkdiisIVTPhRCxCQyKEDAhEwoyEHYO2YUDCAM6AFLFschMAuagMSVDkPFAQSNejTAwRw6PruM4dnjv1rYMsvCq4I2kLZ9NzcOAQSAKIoIiYhOnTr1zjvvPH369P3339/e3h4MBnUY50VgFjPW9IAHdEqcc1tbW7///e9//etf37x5czgcao/G8vLysWPHTpw4cfToUaX0V8Ldutbx0tvwsNPz0sXrL/IpdTq1ia4//Jz6kefmE148XgYX+QUf1Os4rMjz3HEgl/zFR00dWmthw8xGvPg8rJ9fRx9waHFrsDOdTnd3d99///1//ud/fvfdd+/fv9+MW2trqOWz+gL0/ZVYSOmCFhYWjh49evz48VOnTl24cOHChQtzc3O9Xo8hEJFUFy8QOEmSVisp0zgxaCyxBOdcCJqF2ad6hgpRD6rzAwAIpo6VZgvomQUqM+Ksvb09xUUiYpIkKysrURQNBntErfF4PJ2MnCuBgzpwjkPpIUkkTtIo7SRph2wa545wAqOpE09Aadru9bvdXqfdTpOY5ttxbKVry4RchCWGgkIRIpoGKXIfuLCRoAhP87wY5m4kVCKCAPmA6H0ZvCZYC0q0goxU0YtxIFdK/YhU1M4VhTNZBTChIUkszvCgJD4gIgKDuFAWRW5A9JEkMLJgXhSj6WRaukCIoAJopM1HAECIyoPJ4EHD7WqdKOQRgAwAYMUrbnWuAcBoQyMDzFqodHFWSDJBxAPeBhgyAqLc42traz/4wQ+63e6f/dmfPXz48M6dO8p8s7Ozo9IFEnhtbe2NN944c+aMdrZAw33x3t+5c+ef/umf/v3f/31jY6MoCsUvt9ttZQvUTuqVlZW1tbX19fWVlRXtdtOmHcXwNZN3Wp9U/HZtm+BZNo265aZZPKk9PniWlePlxuHXHnYMn5vEe4kP/TobNr+VUSNXD2QA6nDjwKSUZalWW9sZtX2bmSeTiULfDzMkW2udc48fP753795gMKhTBAcSr2pPdWFpFavVas3Pzy8vL/f7/VOnTq2urp4+fVpXpAoct9ttRNTuDWhcPTTaftTfQBDlwoaGJtSBEqr+WrNmza6Q6wuWGfW6Ju/rfiyt/SVJMj8/D2Ijaw1BXqAvy8IFRNXZ9gHLQLYTszEmii0ztxOLDgUCEURR6Eaum3ArDhExFCUxICBFQMzIAYKSY7IxEMc2sHeFK4p8ko1Gkz1CtHEcJYbRl0HQQBpHxkSGjfpZiAiorrEAgPdepMLKOO9LV5U10jhBFK5wh4CIhGAEUGGjQBGZWKGYhCIQQvBAATAIBGHPyjUPXAnEIrJRF7IOFA76RLP2FRHBhiJVtTwk7P/1md7EmjMIoFIQI5yZ3Tr+sMaePn262+2ePXt2Z2dnc3Nzd3f3yZMnDx482N7eLoqi02ofOXLk7bffvnjx4vz8vLbYish0Ok2SZDwe379//+OPP75z587e3p5aOjVqmpHsdruLi4tzc3Nnz55dnY319fWlpaWFhYWlpaWaTqEJh4CGAaohOLWrcSAWhs/Iwn0348XD44/eRCq0GxrJF71bz3VspYHHBIDJZPLo0aPHjx8Ph0NmnpubO3bs2LFjx7rdLszuYp1J3N7e3tzcLIpCPUdNqDdBTmoWNWZZXl5eXl5eXV3VN1Sgr4bY/X6/JltDRJCwz0bLCKRpLjEmIrJEVVOwmgZEFK0jVNtP42pAAA6MOOuGAxXDQREJoeqgZ0VoOY8ClowlAyyuKLXpXpv8I2Pnen1rrTEyHOIwDIqiCACBrGFHLKkQ2MSmpRAyc0Su3zFG0y+Qx576HMUBkbEoMx/HLiQUbCBEJuHgwAdjKAIiCoXLymw0HU2LqRffa3d6c3PdbpchOJYosWmaGooiSAzaWTw1s/XAyq1dN+dRZtEU5ApjDKiEDaGgIKK1xmAloWGRiEgbcpiVrigEBAbyzM57H4IHCNTQYaBZwgIBAIgsP4uCrLKNFe0jwbN4SajOJ0BEUe5yYYDPaMgTJAMIQIAiwNpDEifHjx5bW1lVr78sy+FwuLGx8fTp0yzLdFGdPHny6NGjevbrfdc1FsfxdDrd3t4ej8cy63GQGTxWm762t7eTJLl582a32+33+8vLy+pOarjzzjvvrKysKIMMzpoFD+B4mjibJrEFvLAw+8diJf/oTeThov6BdOyB/HGdGyrL8smTJ7/+9a9/9atf3b59O03T1dXVN9988yc/+cmlS5cUGVP3lmq8rJUWjaYVilg3mCsRvKptqDymeovaCKFmsQZ4P0tmYWbaUPUFQ93pWOf1q5KLAAcGPBA7N197KOnTSJbXpXOtGinwSJsQZoyfmNjEGmylqfc+L920CM6LK5nIkRfHBdPEB46jyFqTAs93IsuY5/kkn4Zx4Uww3lXchywFgwQhaxAtgAW0LA4QWHyWZXt7e+Px2BgzPz8/Pz+/srY6NzcXIAThKImtVaairkU7m7qKuJ6Zy7LQvKqir7Isy4up9x5cqEjNKtwcm1khRE0kAFBd5PUMJhZELxyEvbAXDjJTpBREg0aoiqRx3yN6nn7NwZACGqdsM8GnN332KjpsLmWWHdCUiN4vdfO1LXpxcXFtbU2b/ZUAQfvqmnWJ2llTQ1n/VdFdMAvGmw2y29vbRKRECpp7OXny5HQ6ffvtt8+ePauWsW7Eqi+1mZU67C2+AKDyglLtd2r80ZtIaFQnmmWioihqT+1Amlb/OZ1Ob9++/Z//+Z//+q//ev/+/SiK5ufnB4PB/Pz82tqaKlvWy6jX650/f/71118vy3Jra0tL0moWtdVhdXX1yJEj8/Pz586d03aohYUF7UnX9X3gzNRWHACIo1i5WZ7ZdEIGLQEiAFYiJ1IHyAfytjKTc4BDEc1z159+/SRJlF7UWjuZTFR8zRVFYSJEZKQoSmzawqJ0hcudAARrUQzzNJtOp5GhuV63Pd+ziTUBwIFn74pMwGu0ZeNUVVuDAPrI2NjaCA0EDj4U2XiyvbW7vb1blr7b7S8szC0uLy0sLHQ6nQBBAJJWiojOhZhiVVGrT5cquHaOmZ0ry7JMi3a7KMqyFB8QwHsfyqqMVklhA1j1I6HKczKz9+ycQzBM4kW8eK6YwTWXJoKgNDmaCdG2QkU2hgb9ODRvQ+XkIszwkjNGD54VxAU/r3xRJ/LqCBdmvluNf1ZyrCann6Ju67wTzmDLJ0+evHr1qhK8ajZJF14TgCyzrmolatRSnipTKUfXyspKv9+vUUTPZgwqsQT1FZq5+Pra6t8PfOIfhSP5R28iZabQUhcxdG9kWaYHrAK+6qBY7yURTafTTz/9VOV31Ifa29vrdDrXrl174403VNlSZqphvV7v2rVrg8FgZWXl8ePH6lR2Oh2lpNRsty6jbrernB11W5Fe5wGYJDQrfU37KDM+GAARFEaGICLkWQJXuORnF1bTRDanpfqUhv9Yy0OqrJAC2pWgs2rO8b7MMgAQYwJZshHFLeek8J4DRBDQBwEQn1uUdisy0byLYk8QkiQUWZaP82Hh2XU7fSEmjAI79AlFkY1TgHZEWJTFZDra29nd2dlxpW+1WjqBi4uLcRoZYyAQWRPHMUVxyoJCBp8xkXrlmvaN40jp9RTcF0IwQMGxSgQG57x3vnSBnZpIPW+CY2bPAZgB2DmmUsRzYABGCMyFFFXEa4DQKqiHGAI0jWJFAP7MbWhO/qzOU98deaZ/eVbRftYhRQQkqsPVpmtWEz00oUL1JzYJbGqT1Ol0Ll++/D/+x/+I4/j69euPHj2qBfhUbPbgUmyslizLNjc3f/e737355pvT6XRubu6QL1yRVym6o9VqdbvdOlPZzHQ1zSV+sXPiuzP+RExkrQa3tbW1vb09mUwGg4EKGx09enR1dbXu06wjBQ0uBoOB2sckSZTcYTKZaOK/pl8TEZVOR8SLFy/u7e3VEkK9Xk9RFCp3o1a12fa0P9GzgqA0KN0AYF8Oq4bZISoYUGQmehI4YAiBDZDIYXr95vpmfJaPi5BqNSHnnBKAT6dT9cJ0QohIe8YJIGcuyzJ3ziEHAUAThIoA3nEpAqYQsFIUhsssSzNfZtE8GxOQgi/Go0E23BmXoyXO+tKzaIyJ0EQmitkn4NrB2Wk23tnd2d3eca6c780vLS+srq725uaSJAECIjIRAKH2nseJJUCNlOs9WZv7WS3be1/W/I+uZHZsbGnjKDjvy9yZ0nvHIQBU0EoX2HsOLAGEvXcCJXvvRRktvPcFB0sxExoAMEAyCz5mp1llqqrMox5+JOqD1gVcJJTqviKY6oH94+0zDYSaxZrwUVOuNBtw6Dis+/DqHdF8eb/fv3btWr/ff+211+7evat1nidPngwGA13tGrCrJ6F2s84vaQZD0771p9cR23g83tzcfPDgwcbGRghBAyllV6kjJ32fA+Xm777n2Bx/9CZya2tL6VoHg8GDBw8+/vjjTz75ZGtrK4SgYe9bb7311ltvnTp1qsaO1WtOVb2U0Fh/Kt9lmqaaOmwmdzqdjuLIVBe4xqPpM2HGlnYg0tHRZChoAjK892mSiszwxQ13UkREgoCwBBbBimHII6JAgGeK4AGAZnFTmPkuM0NpAov3wfkgpSuneTaajIfDkdayiSiNkzRNAMBam8aJ6XREZFJmTjgIeeEA6AIWnjEAIRsRcAIhDKfZYDzuH1kNCCDEkSnZb432WhMCEDJgycQmtiaiELN3EjkobZblw8HeZDhK03RxcfHYsaNLS0tpmhZFgcbY2EZRFAACsyEb2ZgQCPCwidTKwEykFDVHLILgnTccRUKIgZwBJDBENB6OyCDPWvoq9QURRvYsnimEfSiy94Leg4bXgIIK6GatmxFWFbLZrQKoKkP6fAZWaXICnJ1YyKJ/JZFK5AFqemBBrt/Ne44sNTMzOOsdbHpeh7N+s5dXBKm1+2mtPXbs2MmTJ99888379+8PBgO1a48fP97Y2Hj8+PHTp08nk8nu7i7MYm19lb5Vq9VSe1f7FvXF7O7uXr9+/de//vVHH33knDt58uTZs2f/9m//FgBq0bFmheeAZfxjcSRfuYlUSGczIqgJxJ77/BcjGetoWuGKt2/f/vTTT2/fvn337l3V+lGRislkolbvt7/97ebm5tra2tLSUlmWio9V+7i4uHjhwoWrV68Oh0OF8qyvr3//+9+/fPnywsJCM4NZMwJopfuzRi3Y/Vx2PEUONf9UN5AWZZG2EgZwrAEIk0VBZpAgXthpkzADU1XZmUnv7c8VVS5ODSjZT5G5EILnUPrgQnDBD6fTp7uD7e1tZo7IdFrtJLbGmCSySRT7ksQQRYYEuPRlmXtfEhGIJTKFIwIxYnwhybTMSufzKVKQ4C1IHMfBy242iqIkbXXTmCi1rghuPGy1OkkS8rzYHozH47ExuLq0fHz9yMLcPAE6V8Zx5Ge6A9bGZASA2AsZFGwi4fcx8HXQrWxliIYEWmkcgmQZc+nEV9vSucCARV6UeVGWpfMzch3g0hclSx4QojSNYuRxkefGJOiZvSsgWGtjYyM7w5AxzqQQG5E1B7WiUgulAWsYz7XPiMAiLAGQVBlYjFgA9gwwU5iwYJEUl1azzKr7VuOLa4RNbUCbW+lw9VJJCEVEa2LKDDAajXZ2dp48eXL//n31K7WtVvtosyzTuk2apu+8887x48fTNFXIer3Ip9Pp9evX/+7v/u5f/uVfVONPg/pOp/N//s//GY1GGnQfKFU9d7PXicv6MKBDPNbwvIrQ1zgOJEmb45WbyMNH30uTi9QvNMYMBoMPPvjgd7/73a9+9at79+5tbGyMx+NaZ13bUfVI1EDg4sWLqsNbX0aSJMePH//hD3/Y6XRGoxEAdLvdixcvqkzaS19qs/VVnZ0aTNf8k9aR1J6SbSYoAWb02swcOIDKWBti5iCMIPt7k2urwXWjm4hAxTpDAIxkBDQSFGOMiaNWq9Pu5sPRpMjyPC+D80lsExs5a3JrI4NaQvUSyOvZRgJobcwC3mMhYISd56zkrHDOFbERdi7LpkWWe8/OwzQvR+PcxQJgLZIwOOfYheF4WuYFMiZJnEaxCJZ54a1HBBPZEIIglXFpKBFCREMERID0DAS1HhoN1EMpF30p4oMyqmow7spc06/O+Zrvo3KIRMrSF8AC1W2KrI3IOEBgrsTBkYGCCBrt4tzX0MB9CWxUoQVAYGEBEGSlxAVhr/XwqlceIYAHhZQzB0AA5RJSMBCIHMwwwizuqZGJdR35iwCw67Sg/lT6koWFhfX19XPnzmmuaTwe37lzZzAYbGxsbG5u6nZQlYW/+Zu/uXr1qsqrNgmu8jzXEtDm5qYK3O/t7cVxvLm5ORwO5+fnv7gtk0NqAtAwVa+Ii+iLj1duIg98wxdY6xePAxnfra0tLUZfv379yZMnk8mk+Yk1mFFE9vb2hsMhNOih9NO12GeMuXjxoh6bcRxrY5ZSjcFXS5poPaH+OJwpBe/u7mqrrNZJALSXDgCBaH+V7GuRCzDPQvUQql4OOdw5sM+DP9NI8QCMRku01bwp3Kff7WX96YjDXj4tMpcbjI21hohooT8XgiCSAcTqlAnMZG3iPPsQSmEL4AOWgZ0LZelNDM75yWQ6GU+9D96HySRL7MglzpJtxYkwh5A754Z7Y+eBItuNUyBbFEUIjkGICA1674OAiaw1KSIaE6E1xiAAH45C6rp2TaQaQoAAZVFwAC1pzwDN2idaeO9DpbPEzOyCL72bFjkT6aRX4stkWDBIEDGqG+NVb4tetF1n61kOVFREQ2oAtYMsleGtGMgPVXgD758HuuDLstze3h4Oh4jYbrfn5+c7nc4XJ/V6LhZHVaS63e7CwsKRI0eccxcvXlQ+08FgoFBZ1Ys/f/78wsLC4WSiEkTt7OyMRqM6dzkajXZ3d0ej0fz8PDyvrHR4HE6k1tdcB/XUEDX85vOY31ou8st+1Tq80lNxOBzevHnzvffe29nZUftYa3g1CSu1v6XT6dSg/9rzF5F2u3369OkjR44oIFxjalUWqw/qrzJ0YSmhjhrHO3fu3L9/X+uDFy9efO2114wxZAwLMMz2y7MwRmlYBBQSFkCpTWSzUNOYqP0rnwl4gTADS0SmFUeh1Zal5cRGKDDc23V5MZFchQGMAIsEawKRc64sfVl6DzaKiAMEDkSExpLEZGIkg6JnEpZlWfrAIkGwKF1WOCLyLF7YFc6VuSvDJJu6YDrGIhrnwmB36MWJiDHIIOrjWRursISlyEQ2jmOhuvhLzF4Emb1zIQTnPZdl7lxwrghBIFRgIAnM4vcxXl6jcqcBuzUmBKfijWVZijEQGRsC2Go3Cis2klVGxnsmATTIhoCoiUPd/02anmCjg7sq7MwIMRCQ92MBqXRs9gcwm1lQT0TKK3rjxo3r168bY5aXly9cuHDu3LmlpaUv2Np7eB81k0g16LLT6czNzS0tLenRonn2Oudep8vqF2ormpJiqBep+NYmFOkAjPwF11NPVy3noB/3XajzvHITecAdq1HTX5bl+MDslGW5t7e3ublZM+JpigRmvoCIqAL65cuXjx07pu2rdfIYGsepOlYHoIs16eyX9fM1uKujOeVPGwwGv/vd7x48ePDRRx89evRoMpl0Op0///M/T5LkzJkzc/PzlReJwAzmWXr26jLqLSQCUhtEOgTLUwPLiAhCgBwCAwCInskCDNZQEls730+TKLEmjmiws5NNpsE5L344RCSCJA4UlaV3Wg1G8b4ovU5IJJasSaK4FUftKEojAyUGACK01saOWEScCxwDoUU0WTGdjMbMwCzCAEiBZZoX4+mkcDkAWEtam9ZNZYxhhIgiNFGcJlD5yCyCIoEZREJROGbvPTtXOBe8L9XXFhEvHnkfBouo3IzVwiOCGb1xmZVZkICIEIS4gtmTAQmBKCFAZhQR8exYhBGZ0FQmEvcbIqt1LjILrp/hHp+ZyDo+RySRWasogQjw/r02MziEiHjvHz58+Mtf/vLdd9/9zW9+g4hLS0tvvPHGn//5n7/55pvr6+tpmr6c1WgmduucuJrLesNSQ+Gjfn4d77fb7ZMnT165cuXp06cbGxvOuV6v99prr12+fHlubk6Lll/QRDYnsHYYK/2PZ4kW/zRN5IFv9RUzC/VtU5L6drs9Ho/Vw8rzXJ+j4ETlqX/ttdd++MMfnjp1ShtjoOGrHzgSpdGFcqCS+GW/r16kGvF79+598MEHt2/f/vDDDx8/fqxqaHr7EfH06dPz8/OViQQAXVVYbY8QgtZsmBm9CUEEmQChIY0C+z7LIRoornqEiUAEQwg+VCzxIhxFkVEQSvBcOgmcsw+l5HkOSMAilmfoa2aEPC88o4gYwMgYQEQT2SSN49iQIOaGImut0ogxiA8SAMlGUZwCjQsXQghElgwJkvc8mWbOlYUvCIAiCqULofJfZqkSQkSMYs0h4LMnh9rTEOpUQBU+IGIQRlFaCRARbTpk1jwvsoDzvihyrdywEdVUIiI0JrE6LYwChpAQPKCwhBBQDIogBKmB+vRMIw1UH/gs1fbMRO6zjc/ILFCgKvHMDj8RoQYPS5Zln3766S9+8Yuf//zn9+/f116ajY0NZu73+/Pz861W64usyaZXe5hYt2kuD7SlNV0EaXRnaRHp3LlzP/vZz6IoevLkSQhhbm7ujTfeuHr1qkqGNN/nC5q2+rN4pl+oDkdT9/FL8Zh9LeObCLRroAY22uC/7NAul/q1KlR7586dmzdvan++4m+WlpZOnDixsLBw9erVfr9/9uzZ8+fPLy8v11HJAfA2NELvZufW4Sd/wUFERVFsb2/fu3fv5s2b77///h/+8Ae1jNPpdGdnR4/WEMK9e/du3Lhx9epV1cijWSYhMgIArlSKDa8mkgVCQMNgTQOXJ/tXyzV3bkOtW0SEVZ7M1KbEO3bOETmDSFVvZVKWiXMFKBpGAgOwl6L0LrALwUPwQkGQWQoXCNkaRqQ4SgxFyAUEsGiJrAh6FkvogrCgjdNOr5+XbjyeZpNxCAEMuhDysoAA3nvPHgXQgy+dhsYxAyKyDyEEQWAyymKhX1M+ewAACAFhYMHZCRECM4K1JILaGOK9Lws3mWR5XpahjGI0cRIRRVFk0zRJgrWWoAQOivgxIIymaqsRkYbERUUsPuNB0/9Aw3msVj+CzEprVWtj4+Ypmr3+ak2OnDzPHz16dPv27YcPHyoN83Q6vXPnzo0bN95+++26lfCL7J16nX/x6E2vod50NRClLv4cOXLknXfeWVhYqDvZTpw4oaLQTXj5l6L4BgDti9Um9M3NTWbWjt61tbW64vpNjlduIhV5r2e+evKa43gJ61PnKQBgcXFRnfxOp6OQrvn5+dXV1VOnTmmmZnV1dW5ubmVlRYmb9NMVTnEAwCgzaYvDzQkv59jv7Oz87ne/+4//+I///u//vnPnzvb2tkK1oZGcVm6hx48fax4HoOrbZWYwICLOOe9UmtQzM6DxDliQ0ALU6l37xU3vqpRl07HSPadVdX1QRIIX55wC5zRzZ4xRlAkDMQcXhNlLRN5779g7dhAIYyHgACGI80IogMZaaxCDD7PEgmEG7z1GEQMwkIlsq9PrOtfa2yvLvChc8B5LT1Rojd5rIZihdB5FE16BBILzzjkGCahEP9rJTiJBBCsF69nP+q+ALGK8MEnFbuuDD+pCCliyCOhDmJbFOC/KonChBEri2QzYOE6iMjI4u1MBqYqQEU1l3wQYPpMj9rB3r+2PAoCEaishaGsjNMs1aihJFNAW1+ZpOp3meV4jHLVrezAYDIfDLMueizD7rFEDSw+k/+BQtNt8fh35Nt03hUymaXrkyBHd0UmSTCYTFYiuZ6b+xC++d5h5Op3u7e39wz/8w82bN2/evAkAr7/++p//+Z+/8cYbq6urWgj6JsfLmMgmPhFmfVFZlunsKEBfSQrq26lRcBRFSn6j0o7NBOVncZc1506p6/TJCwsLb7311rFjx37zm9/oZXS7XcX3Ly4uKva7Ji+o37OmQWveb/3ouvsFGnRB2uj23OtpOpvSKMONRqPr16///d///S9+8Yv79+/XPBFxHKsjoHg3AOj3+wsLC+12qgDyMoA10Gol5XSytzfKsuLJkydWfBJZZo6S1FBkOeLg6h3IYT+3q1XFuvYdZk4lAGR5RfjGPux79FJRihVFEQRMFLe7PUSzNxhHFkuWaV5OChcEhIwPzMG5gCSQxDERe19oD1Icx6WbEKCCQhgQjRWGwBBEihBsmqyurubT6WQyKpxn5qzIPQe0KCKl0mgr7ImFRIgEWFzpfOmAJCCw2S/XiAT9SWTVLCJqfpYBSBhzX5CNDBI7X9FYAAbnxYduNzLGlj7sjcbj8QQF0BCSdUE8V6oy2rRKexMyGABBAAWospIEsM99q0WFz0Jo1JM/A5Q/Q1WCAiwszEEEmZW6qcI/RqYsyxqtrZR6ug7rskm/319dXe12u9rF8Fnr8/BWavoBVQGwIaxSXduzmjPPjfnqD02S5OjRo/r7YdSwvvPnlpVqq53neZqmZVn+4z/+4//9v//3448/VhYiFTibm5s7evSoXrZeQJ2v3M/kNnDTAKBv+AXN2meNr+RFNo+jJElUCHAwGGgh5eHDh3t7e48ePVLYjYj0er1Tp0794Ac/eOutt5aWlg6nFV5gIuvWq3rlaVfG8vKymgNdTEmS1KAZfLZR9MCBefijDywIfbm+uf7pwF+f+/tgMLhx48bvf//7u3fvjkajGYMOqH3UdRPHcb/fv3DhwqVLl+rcdvO6dLlkWW7FBWeYIQ5IFKwPwKGG43E4HHhiA1DNAFiUJStXeXDee/ZeTaRtAO5CCF57TQBNFHMQYR9AvLKNOXHeGFtPVFCeBkIhosgQ2ChOrKaKFKxDRIzgPOdFEYTb7dbc4lx3r196Hk9y8caFYCILwEEUBmMMYAjOEIUQCCB4RiBACOAFBCUIgv4EDoIgEhiA1DSCSlwzixGEIMKzIjKRATJkECMbd1qWjMkzIAOGgIVqjKPMaHIMVL06AAYRBJFIGBWyg1WoXVPtyecm2qSRi1QkQt08jzMy0GqFzwJ09frVnJ04ceLatWuTyeTOnTuqd3r06NGLFy8uLS0p+uIFe/PAZejx3ywZH4igv8g2eRWjCXISEZWEevDgwc7OjjrR3vsHDx5oF1CNWa75FkRkOp0qElbJE2rh+69uH+Grm8h6lsuyVPLOu3fvqhzgo0ePtA9UPUoR0RvsvT9x4oR2xT+35/S5o+lp1jLq3W5XmeygYcKUyaI5O/WRKJ/d1fNZa/3AGfviJ2uAvLGxcefOnZ2dnSbWXdtgoyjq9Xrr6+sXLlz4y7/8yx/96EfLy8uGTC3ZpCqvALC3t7e3t0feJbFlhijOiayNI5nxPza+2v6xH8IzgXZgzoqqC0VCCK4M7CRUW6KGniEiWQOMQoZsjOIDOOfZBQmCiICGhJAEZuTRAUgQwRJGhsSS2sdqoghNZAGg8G6cTQtXLi7Mzc3Pd7vt4XDIErzz7MEEa6I4iAgCevaIzAieDQYUAAkGEIk8MAcwgIxgAIMICbJSxiEYAEb1LaUC02AsgBUKUVAECQ1ZmyRJu9uPjBlPMzQWkIBACL1ANIObVLkg7aWpOjkJkEQpeqTiYkNEEEYi1K7DWcunBs661CqGdC3DPG9146wDgGal7llwzdYSAOgafv31151zy8vLd+7cmUwmxpizZ8++8847J06cUEv6gi1T14j1n5+FM/8s5PI3Nmq/R+2dEiwoKz4AMPNoNFKRzqb55hl19Hg8fvDgwZ07d54+fcrMR44cUYXxhYWFrwV2/jIm8vAklmX54MGDX/3qV//2b/928+ZNVY6etTQ4RFQBAEWWHjt27P/7//6/M2fO6Io8HLE+d2hMBzNzUxupuuxVI7yaDaovfs/mONDzBM/6yHqqN0/gWqMGng1SlMy5prTQt4qiqN1uLy8vHzly5NSpU1evXr18+fKFCxdOnDjR7/cEgFnQNC1dUOEwdGUcGWaIkxaRIWMQBPEZtpVKgLSKr6uGk5mZhCIABwkhcPDAvrKwEuqvzCCGIhtHxhgWAGO8C7kPhfMueEEykU0gCoKEBpgFArM34AgYgENwwJ694+CcqwQEjS535MKV02IaxJvY2NgIMhF48c574sgIoCFGElC6EACAwIKiJJoIzAFJacVmvSyodY8AAgIBBAF95alBYCGDIQizA9AYORiwQCZtd5TKBI0JIgxECCzsOTCgFy7LkpxDipTRS1teBMAAAlGoJNMED9DWHdjqzd+1DKh36BArpLqQOIvca0MZQlATiYjKJpWm6dGjR0ejkeJ/V1ZWjh49qgTjLwal1Sl4eJ5vKDMQ4jdfI37+1M3Sl3EcKye/quYBQKfTUXRzE3kCs+6M+/fv/+pXv3r33XcfPXqU5/mxY8e+//3v/+QnP9HuoGbDyMuNr+RF1q57lmXXr1//xS9+oRIZql6v6QBlBa+D1po75LNm6rM+q66uQCNzHEJQu3kAo3+YPf+Lg6qaiUWY8U5qZUP9+XphKelZLXqjz2+1WqdOnbp8+XKWZdr6rQHR8ePHL1++fPXq1YsXL164cEG1Yqq8D0iT/AoAnHN7e3t7eyMp8siSiMRJjkhkjMoAUEOgRrdshccMzzYvA5aBHIv3JbtSOBAwznyduisWDVtWLT1EsKUP06wYTqdTx46sWANEKGQMiVf8oFdSHOHSFaWfCYsrPUQF1zEkVMHmi7IUhChN0jQem6kIF0XBUmLkwJCQqTpXiCJjlNpH04AsQRCBAREbXecCz6szAACDeBdKH0QECQwgCdkIBMBGUZSkIQTPUvoQhAFJRGjGG1S40paOYmuVB41ZUFi80gwZQS2TN5eT8pI/C/qB5/yzcZzVa1AB/vtvMUtt8mwt1Sk8Ffao+yn1DI7j+HPXs246vQVa3tGEvnZ21cnNlwD/fo2j2TWnY2lp6cqVK9euXYvj+OnTp1EUra2tXb58eW1t7XAebDgcXr9+/R/+4R9++9vfav/xRx99NBwOFxcXjxw5srS09NWv8OW9yDp6VeLiGzdufPDBB/fu3VNwKTSOqZq9CgD0YKTPkOt9wV2vvWt5tqPzsMenBqJJ1/il7OOBJydJotVnVdp8/PixdhCePHlybW3t1KlTy8vLTSu5uLh47dq1nZ2dXq/36NEjROz3+71e74033rh8+fKZM2fm5+eVU3KWGeAQXE1DrWJPzrnpNBuPx5xnkSVmjhOHSEjEIdSCULM0xb4arfA+LaaICNiJF+fZu8K5QrwjhIhUZhGsJWMMAwo7D0gUhAGRx3k2yfJJlmVBAkXsCUiStEcIYBBAJAQUQfAoXJSZy6ZFNimKrNKWMrN6F2AZXFbkuSvbqe31uvNLi8O9KZncezcpCgYMYJk0FI41EWHJJMZaQkRU9Rm9M/UNqlfXs640AIAgZEVWk8uSQWttwlryRkAMIWhwI4JgkIMIkjSUpuMorZd34ACCQgEs4T7s9PkLCQ/RIO57RgCCSACC8MzFPnv9uvDUM6rxv3XtuKbX1eLk5+ZA1fQw8/b29t27dxVZURSFStOcOXNmfX1dGS7qif3cPfgqxuEDTxF7f/u3f3v69OmnT5+mabq2tvbmm2+ePXu2pjSUWUfvcDi8devWe++9d+vWrSRJNJV5/fr1N99885133llbW/vqV/jyXqTMcI4wg3pOJhOtMTWrHHWWQXlbT5w4ce7cuX6/XwOsmuPFt6duLmxixw4btS+e33zu3aqHekYqs3n79u0bN2588sknSouSZdnp06evXr36s5/97Hvf+97i4mL9iUR05swZRDx79uzW1pYWqXq93unTpxUyppkHaPi8GroDQGCwCDp7FRFDlnlLwsqlVUvB7wPUsRK2wRrQExqDxUwcliG4sgi+JOE4MhJFNiIJDBADGUQQQQ4Vq8J0Ohxn+STLSx+8SABi8QxiI29sjIgCbEAsgSE0BEU2LbKsTqtXVV4UQWHGsiyn03Hp8n53vtvt9vu9/ly38GE8ycJ0Os4Lx8hEZGNrfRzH1jqLZI2JDRGi7nOB/VCx5n2p73vDmwYAnhZTFzwRpSARREgihGCIkbxA6VxeFFpGBzQinsjW3nRgD8BIgiTMPjAKExoDZGg2z7OuefXlmxS5zw+0YeY9VoXtBgdGzdVkGguYCLXmVi8SaQgQ4qzNQb5Y61dRFB9++KFSGezs7IQQVPXw0qVLly9fPn369NLSkraWfVb58VWP2uQ1Q8AjR478z//5Py9duqQiZYouWl9fP+D31Ajz2lfTd1DdurpA+hXHy5tIfJZBRHUI9E+6gPQ81ANwaWlpcXGx3+9fvnz5L/7iL65evXogXfi5d0We5VWGZ200PHsQNa3PAfjFFxzOOaUOun79+p07d373u9998MEHDx8+HA6HGk7+4Q9/GAwG6+vrp06dmp+fb2Ip4jg+c+bMiRMn8jwvikJDG6WtVbdaJ0o9mk6nY2bJRe89RsZglVsMXnyoen7JGzWRaWJ15ogAdGULIhrvIYTgWEpXqZF470uGMpB6kcDBkmEkG5FBW3JpBQUNkiE0YAjQAMNwvDstXc4ckJCsQQtIzMA+MAU7y4QSCaFBMGXp86yY5mVZVklh0bIYGV3BReHYeQKMoiiNkl6vlxVhMBrTZBrYFc4xRQaBUUJgExywEGBsDQF676PoIAmYcnso4OfZhAMgQu6c96W1lmxs7X4vHaj3G4JCQa2NiSygJzLGREiGRbhZDagqQAJcUCCIiIRZhDmgCBIJCjAxegIUrU1XkbjMfN7GqkPRylK9BJWdl4CrDMG+da38I4W21PAMXZMwyzhxQ6L9uUNfOB6Pb9y48Ytf/OK9997L81wxwnNzc6dPn7527drbb7/9+uuvq56dQnbwUMfhqx51N3dda9X28BMnTvT7fS0wqAB9LRvVPB21y255efnx48eaSUjTdGFhQTMJX8sVftVyjQK11tbWjh8//qMf/Wg6nSoFMQB0Op2FhYV+v681piNHjpw8efL8+fPHjh1r4g2/YBT8uVH5Z70JNuu2RHVuVP9aY7KaZ/J0On3w4MH7779/69at999///bt27du3RoOh845tY8AEMfxjRs3/vCHP7z99tsnTpyA/fwU1ge+aozo5zYhmfVxl6YpSKUVhQIRIYoAcDttraytbT9dzyd7wZVFNtW3jWMrXLbbaZK2WbAMTCZOkpaJWuNJfv/xxr37j0fTCaFBQyEE55mRAAg5WIO9OI7aXZMmgmApojQlMqVnRIxszIxFWYxKPyrKohSgCE0iQMCIiGkrDmUhIJE1SGStjZIUKfLBASZEpUAWAAGQiCxFcWzLsiQWcMHnvpwWoQgoRDY2No7TVtqZsyV4nzsmI4ljCzmgABmK0ZSBIThmjgI2WoVmjUMIEpisTqdpMiw4FwTAWGvjhKyiqTCKTK/dMoDT6dR7H6UtBPIsxkQcwDmfttpRlDJC6R0YTJIIx1NjEFBEgnAeihIAWOtIWsUWYQ7CHFgYxFAFDAIAxH2HFw2BVNgimaG1UMC7IoniwM4iCYeiKISQRSxVKPHDdqSZjv9c/1GbNcbj8aeffnrz5s08z/XAVrL94XD45MmTjz766MKFC2+99dbFixfX1tZULVa5DoioRgo/97M+y0C/nG2tv6/+ot90bm5uf5vM5qFGK4tIURSLi4tvvvnmjRs3sizb2tqaTqdHjx79wQ9+cOXKFcXMvMTFHLy2r/Li5hVcuXKlKArtIdWjYH5+XsVRFxcXl5aWut3u/Py8Skh/A2dUTUxfXyricxbfYbdUuVX+67/+65e//OXNmzdv376tGpv1k3VbqptW78zmB+kTaumbOiHw3Cms/qM0FlXJQQCg2+23ux2BEHyOiElkjcEktgA2iq0xSGBNEoMxzFFZlk8Hezt742FWTEtvIkIEFgxAhJW9ZuYicBE4FgLCOE6MjQRJQhkCcOmD42npSg+BgcGAGGQIopKLWEwnwh6JLAWatd85F9iC14J2EEJjra0p0A0gCUhQoevg8qLMcuW+tHESx6WxMaDzQsKYRLGgIRSDxMDMHphYuEnxICJBnTRWP44AlU6SYOa8KS0xEAEaIkuR3i8UCD6UCrFgZlIeTBap7iBagxhFJrLGKzKMRZAlgBAzEBGwmkZCwdr/48AsQUS0TYhnaB+YQRERjewDx7m61wASnOMQgg9Es6vyzAxfU305iqK6zVk5dHXxI6L3fjAYqDTN/fv379+/f+bMmTfeeOPo0aNnz55dW1vrdrtayfHe11Kgutr1Hb7FCk+9kfUEUsWUH//4x2maKgx5ZWXl2rVrp0+fVjjgV6/Xf1VftDZ2CtQ6duyYVjO0cq8ygd1uVxnG1JnSpfOqoQZN+3jgdspM+aRJ91+bzrIs79279+677/7iF7948OCBFgRxRourDqD+VKNfk6PAs+W5Lwo3e/5hzGkaJ0niXRKMkEASR8ZgYo2AY4QA1kRxFLcEaDwp90aTjadbO4PdyWTiWCKwBCQCLKjsNYIAgUvvClfGPkayjBBYRLgovXMhiIQyTF2hFkQRKdqPAwBIVBYZgYQIJVgisEYA2PvSA6h0DLAYqDJlBAxhn361SXwLgSND7TRpt0MyzomyWuCAiCJrCUTYM0MAYUH2+8lHUVEDABGw1jCSdrxw3RUdKjDTTDMbECuD5b13rsjySd3jJIKaTmQOIiEyJooTE1nngrVEREFp0NV1DEgCIoIWAED7bLy2e7ISariZDa/FvELgiscTG0JgqsFdgbS806Z+nZmvdwsoaGFhYWFpaWlnZ6csS5opeuo610r37u7urVu3PvzwQ9VKvHr16tmzZ1dWVtI01Yin5q1oVpa+3kv9st+rvsvW2uPHj//kJz85c+aM0mlrl93y8vIX5Pj43PGlTeThyledcF1dXV1YWNC0fV2fMcZox0td4K6Tg690vOCUw0PN/FoZ1zEYDO7cuaPVeUUv1e9WV8+TJFlfX7927drFixdVpqOenMMV9i8xsPq/ILjgy1B6dgBgYhunkTFIxpRlACAkI2hZsHQ8GI63dwa7g73JNC8DCxBrDRWJLIqSx7CwSMmSF85QEUIoi0q/rCgK75mZnQt5WQYBBLAEGswCB0Q0SAABgdlDwAARWRNZQmHPAogYzXIXBAiIRumEhSVw1dXDHoEFAosnA61Wq+O4lcbWoPFcI+AREcmICAMBEYAEr3012pcyq2sTClXEH4pTVIo0FkZCY1H5gQUCM4bgSpeHUOmGB3aIYiOjPTtkGAKDiLUUJ9bGceFYaQR8CMwMYtVBDLpyZsnP+o5rZcz7fRMJVelGcfHPugLIsy4aQUTvnFbnDqDWvvrQvdbr9S5duvT222+HEBSNV7d7qXtYluXm5uZgMFDWlVu3bn388ceXL19W9MXi4qJ2rDVLo/CtmshmaUGTV9baI0eOrK2tVRKYxigZMB2S2Hu58ZJe5OE5EhGtPdV5X5i1uzeD0C9CJf81ziYfEr7QAPywD9ts3VH62+l0WgfIVdOetd1uV5Vwrl69+r3vfe/NN99cWVmpQ4+X5jE6PDSQZ+bYWiQbpwkZQETwTDZCoAA4zcrRONvc2d3aHmS5LwMARmgI0Ii6T2hYmKqdLYGlCCxFVjgDM3ZrFQ4EAGbwLLMKCAlggIDChGSIiUBYiEMoA1NkKbVGhB2KjSKTJBFNIbAP7KMoSuKoridqs5P3Xvt+2DsUsYQKOSIikYDAIQTB4IisiICAEpIhCTIDGBUTnBWHCQHJVF4iEatQJAszGAiISp/MFbvmrPgrwmrCZp8ryiIsEJgDAVoyFjEylCZxK4lcYHTayw4MAkKERKjlMgEAo4IYAiJgABsFH0HAWoby4NYB0D8SggE0SAbEIny9W0OzPf1+//XXX9/e3rbW3rhxQ+uNGpAq4FfXvOYoNU2prKbvv//+a6+9dvz48e9973tzc3O9Xq+uk9RiOF/jVv3iow77mlTkypYGz1axvq4r/NIm8rPuYrPhr36OFrXrjpE6bffNJDIOgEL00w8T/Oiom7u111uREGEWuGnv59LS0pkzZ3TpXLly5dSpU2fPnm21WkrUDJ/hBRxIVn7uEARBoMjaOBJJ22lsrWmlFUERWiETeYbpNN8bTnYG4+2dwd5wWvgQGAQJkViIgxAhGkFDQEagwl87AXChgFLCPuPLTNSBxBCK0mIzAKMEBA+CwJDGSeDAhWd2KBAZigwQMJJUBXER9gFZIjLa+AHBgxaRy9y5goMLwQto8o4I2KAocgigwgAyszfGEokgq/gtEQHMyCNRmcRm5czZJkEAAfVFAwcRtVcCgGS07ZpmMlnaoKR3XoAZDUpgjdVRgqaAtCkgL7lA7w0RkCjiHg0eLBIqLieIECADV9LY9YlrkGovGAX2s5LMxhi0UlecXsUWiKLoxIkTP/7xjxcXF994443bt29/9NFH9+/fv3v3rlau6uWtJnJvb0+Vlu/fv//hhx+urKzcunXr1KlTly5dOn78uEqJfIs4cx11wbOmm6kbjQ6wW8IhfdqXGF8/GVpdO9Z/1ijFb2Vmm1gcBTkiojLFKhZHUwEwc3Z0urWHemtrS6U5er3e2tqaluNff/31S5cuHTlyZHl5WVnp9f3rA63+6C91iAkeRCSnrVba7kZR1G5F1pokMnmeh8IXTrh0kzwf7I53B8PhaDqaZnkZgkBAgwaRiJFYBASNEBjDICEE4UCABsGjSAACYpaquQMQlEgHIYgIOw7ACMwsHJCIPcdRKt54i8CQRLbTilupjSJjDEpQ7dU8BIcImgYUQ4yWwz6GsVKGsZZFHDAiWGvi2LY8ionKgGUIznk0GGuTNLMSRjwDfpyZdSISqnCGuhsYRMBHmog0yt3OAFUSTSk3oep0VAo1mOn9AGtvfGBBR0itJGql8SQrrDUiCGKUdFzoGXy4cr8TIChrMRNiDdislkXVRT77OSvQMYJYBDZoDFpjEECYg/cm/nq2ZH2dnU7n/PnzKysreZ7fu3fvN7/5zaeffnr9+vV79+6pqEkN6qhPKW0k297ebrVad+7cOX369Pe+970rV66cPXt2fX1d8TRfvbHvpccXVAR4yWTXofH1m8gm7wM2JIC/FAryq48mL56S0I3HY6VxVma2hYUF5enUm62lOiJKkuTq1atPnz6N43hjYyPLspWVlTNnzqhmyPHjxzVBoyDHOjNSJyubGmRf6EJrpRmEWsaQgeK0FcUJEdg0sQhC5DkvQhhO89KF4Sjb2dndG4yy0jkPLjAaCwhIBOqV6QUYqqQTQwhB4gp/QkACgCBa0QUACcwASAgkIahUlu5jZhY0ghEhRGSBJNhWYltp3ErjOLJo0HtxzpXeNaF81dEIhojImiiKDEZxK43KjEVMcNaYyFIaxS7xYhKfBwzee69YTUAUZh9C0vQCmjHBzHLuB1YIjBBZDQTV3ROlwhWR0uWzSpTiKZWEkpBDmAkQhuAAAUwcGYoiq86dZWQkmLXni6AIYy2UoaqwgIiCqM66EADuk9gzCoAQIoOQIOMsf0rqgs4QS1o1jr8mE6lLsXaKNZ+oUiW3b98+f/78hx9+ePPmzTt37uzu7mr2ScsdFW2e9yq4NBwONzY27t69+4c//OHatWtvvvnmhQsXFhcXv5bGlZcYM+X0/V2mBaWm//iCkO4lxqui1K0NxJdtoXnp4ZzTIFrr6YiosG1NLO7u7r733nsfffTR1tbW06dPReTSpUs//vGPFevQbrebFBXr6+t/9Vd/deHCBSU97vV6Kysrq6uri4uL7Xa7LvXUXdXNxoCXmiwQBnVAACqFPBckCAhZATvN88l0tLu1PZ7mg1ExmmTDvckky10ZguqrgGUvgkRkWIC1EosQCarjXGeRRMSHEEUGqowfRVGEYDwHZkERLnwUmTi2lU+BTISRpTSxrvQmMiaxaSvudFrtdhsBjDHDopxM87LwiKbd7XU6naIoACiObVlUbMqeg5cqFBISDe40eV2KCxh1KKLSAREzi0pOgwSQ0rk4jskYZhbd9gjMIYmSqsCNIAhASECGImukttGRMVGM9S5S3DjM8nQiaAmQkZi1lylttVVqzRrstJJuO51MsiIrWIDIItVnv0gAQKXbIK/cE0hMpDw/tK8fyxWAHGDGO84K8IqjiNlbG9f0KCLSan0N5F3NpVinlXTTra+vl2W5srJy+vTpK1eufPrpp5988okKhzx58kQjLZjBD9VTy/Nc2yju3r378ccf//73v//Rj370v//3/15cXNTlVIPbmzTVr24c3mIHSq9fl/O4//6v+it9Y0Or0vV5ot2a4/H49u3bN2/e1NzKw4cP79y5o/vk9u3bWZZ1u93l5eV2u908l7rdrmo8aHVe9b+UvKcGor8K0BKSAJAwBIEsKyZZ4XwxmWSj0d5kPNrb2yvKsL03zgpfTIvCBeWdYUYGNiZiEa6ZY4igoucCYxDYKKc3oCBIFEXQkAQBNMwsSBFiKPIIARG9L0MIgGyQiLDXbbsCDaVpZLudVrvVMoAizIJFWWZFHqTCctcAKQDiAAG59DzNS4PiQ0BDxhgTkQ0VhZohAjJoTGDwnksICFwLAyJhM4sNAPqqZgl4f0uI6odVaUdEQDR6+wzV1GE4axYQYRJmMMSIWV60XNlvtQVN5kIURcGXZZkTUBxbBhNYP6ui+pHqrSCKImsJAgugJRJQFTnGWeUaakJgqAFOVZrekPENRaYGDfmrGtp/cuzYsbm5OU2snz179pNPPrl9+7ZSiu3u7tZUuzjjpdccVJ7ng8HAObe+vn706NHZSbMP/n21l/4tjT96E1mnJGrgDgBMp9PJZPL+++9/8skn77//vuoOPnz4UBHgaZrmef7xxx8vLCx8//vfV0NZV/d0fSiT0md96CtYDXWQDQHQs4zGk8FwNJlMfOl2d3ezyWgymQTBael9QA4CqLgW1fsCJaNRx0qBAwDivTdKm2OM1mciY2wctVpJK0nTNE3bLSX+AgAiSyhcFrGt5JshsLHVtk8iW+Y2sqbXbqVJpJMjANMi3xtPRtPMCxgyFY8Oi7U2SGBAYCi9y4rcakneGBsnEaEVZyNlHmNEg8a4QFQCMooIsgAwAGs7uSrzBAYWH0GIoohVR6VqFlSOX2VxrO2j0QQDzIjxgxflPyKAWZiLLAYRfZA8L4vCERHZyHlO4yiNothS1TbNDCJkTCU5oz6WCCJEBo2N0IJmJma4HzaItRBbXa6puSMRjVPlVS+WkLSlkgXo1RoaDbCIaGFhYXFx8dixY6dPn97Y2Pjkk08+/fTT3/3udzdv3nzy5ImK0B0g4XfOPXz4sN1u37t3bzKZKHCyTql962WcVzT+6E1kPfQm6Y18/Pjx+++//+///u/vvffe3bt39/b2yrJUrUQNu7T1vSaYatIEAEDVgDHLEzU/4pXilurMqfc8nEx3d4a7u7uK7y3LsswLIASbADCSNaDlBiJC5T0zSEEYK40gy8yhyIw1sSUUCgZacZzENk3jbrvT6/WUcAgIuWqdIw7Ol0USGQDg4BAxjSJrMARnhMdjGxO126khQkAAstYMBuNRlgdmG8VEVHrHgCgcx6kEESS0RoACg41sFJuADC6wgZgpipK6GTSEACwGyaJmUREwSiKLAmHWs6QVbZmx3ai8Kc+U4ywaRGy3bBLbyCbGEGhvIKOibGZZS1I1BES0SYoc5Xnug7dSMfsJBiKyBjvttNtpDYdFCN5QTIa4whixMMs+vJGsivggEAoAUxWK6z9nQxp9XAghiJn1odYVbWYmeOUtFbpHNC5utVonTpxYWVlZX19/7bXXLl269MEHH3zwwQeffPLJkydPJpOJ1nPUhdfCtwZnmriE59H1/4mNPxETWfOQA0CWZbdu3fq7v/u7//iP/7h165ZyFyssQAWS8jzX1iUtvOg71I0x+yyKM4P4iq9d11kAAAECQB/EeRiOsq2d4dOnOyGEsvSIhiViBgoQqiiUEQARBA2QAWZjDAl58ZG1nXYHEYskStO402kZRPY+bcXtNGklSbudtlqtfr/fbre9Aq6tCUGKIptOxwhKvp22kjSNrUFi9kY4TVPw3hgTnAfCKGm1Wsn2YDdO0iiK06Q9m1sECcbGURKjISKMW+2k3Wm1kiSNeMRCnko2FtAaMDMRLhEAsBGRSYggSqIkiaIomo4zo30UmhMAyPM8K3Jm7ve67XZbRMqyDCDGGIvQTWIQl1ibtuLYgDHU67Y6nU5EptPp9npzIYhnEMHIxu1WJ0mS7Z2tkOetTi9td4OghGCNJYHIkEU0BN12tz+/5AMO9oZeoCh94FI7LAHFkomjyCCQwYgQSSRUAExAhRPN6nGzfCQAEKibTJFIZIwlqqo9r9hE6nGSpmldNTXGNA3l+fPnr1279uGHH2pi6smTJ9vb26rcqRQtym77ijfFd2j8iZhI5v12t6IoHjx48N57792/f197B/XYhBnKlIi0tfPSpUvaaJUkSa3RWJ+KLzCOr6goP0t0QvAyGk72hpPRUOHrGEVWUARmBVoBEAIkIgKyRFSWZd3knyTJ4uJir98RCWls+/2eQRL2cWxjS6oxrSzo/d58EGYGG8cimBXTzc2NopwS4Nzc3Hy/GxmLEoDFCPf7/VAUeZ5PRuMkSRYWlrr9ziSbttrtKEparVaRlaPRSBP8c91eq9UK7EJwCwsLyyvLrXZiDPoQmLKSSzTWkDUmEkbvPQBashTFDMFa0+t3lpYW5ubmJEAcpxU/pjHe+ydPnjx69Kjb7R45ur6yskJEeubZJI4NTfcG2WRMwHPz3YVeL0ltN03a7ZQAer1eFCWttDOaZkVetlqd1dXV3lw/SuIsy5aXFpeWFmAmGlWUJRG1krSVdo8cO7myuj7N/ePNp1s7e8PRZDIuq95EDIGQ2VsbGYPWWEAWkBBQIBhA5spVVL5ydSu5Yv+perrpWRG6V71T6jLjgRhZscDz8/Pnzp27du3aRx99pM02WvgeDocqFfW9733v4sWLNY64CTr+k0xH/tGbyANQRG1CUlmIWv1Hm1UVC2mMWV5ePnv27NWrV3/4wx+eOXNGCUVq4EXzZn9dPUyfN55pztXLyLK8LD0DEpIIsmjWTFhB4aQ7igSrPjwDGFGlQdhKkvW1lePHj6dpjMDz83ORtd6XlsCXxXA4LLLJQn/u6Nrayspq4V1RehNH1sQulCzl7h6iwPLK4urSMgoEV6BATOi993mxs7ODgq1Wa2Fxqd/vAUlZlkncStO0yEqFiYxGo4X5+YWFOWY/zcb9fn9tbTVJEmY/LaZOIMsZ0dfoDSU901wliYksdbvto0ePHD16tNPqd9KWEKrlcs6lSTSeDBcXF0+fOnHu3LkkSbI8F5E4jpM4vvvpJ9tPN4MrVldXjq8f6fbSmIiIgTmE0O8t9rqbm9s7k/F0fn7x5OlT/fn5+cXFLJ/M93oL831mnkxGWVY4zwGgP7+wsLiytLKepN2s8OtHj9+5++Dxk6cbT2A8HobShUoPI4ixtT4iiwgE1Cj/WYlUUdrImVZlHYsjov1GGs8qocpZQ0fN6KPDWqt44bm5uYWFhfPnz585c+bMmTMbGxs7Ozsicvz48ddff/21115Tfj+YmcimCMSf2PgTMZF1PqvOLSo1njqP2jioC+Kdd97RQ/LSpUunTp06cuRIDQp57gJtPvjNnJMyk8NGRGtiNOTLoME1EAXxdOCZIgAQGUNGu/Qkiszc3Nzx48fn5npFPllYnItt5H0JzMPhIMuy8SSYOOr0+3OLC3lWjiZjimwSt4BaSZIgEKLESSttdyWEktkgtVspIgbntDzdbrXbnV7cbq+kx0uXJ1GcJC3nXHeStXZ3TRStrK6urKyI8HA47HRaSytrURSVLo+fbllbIuWCBo0lNILA4gVjrYwGCQAURVG/319ZWWmnvW63SzMNdBHJsuzJkydoqNvtrqysdLvdvCj0jidxPB3uBVfm0/Hc3NzK2upcrwvsOXgITERJ3GGkIJQmk+Xl1RMnTvTmFnpz/XyaJWk03+sT4e7u7s7OzqRwrc783PzikfXjaKO94TRt06m5pbTVTtqtwAWi5NOJc6qYGM26zFUhUpirEFvpxhUihI0OAeagyZy6IgyV5uJnauN8XeMw72qtNaK5XQWKKevi2bNnL1++rLXs8Xi8vLy8vr6uTPs1hgSeFeD+Exvfmok80LffBHxqZ3cNQVfTNp1OlVzz0aNHCoFUDnOFvO5nu4lardaVK1fOnTs3HA7v37+v0lr1kfjmm2+eO3dO6Se0teaLW71XZh/31Z8UrOM52DgK4hkCInh2ZCwZcOyAIAgQCqG2KRsCg4gQOE2rKvzK8uLS4vzCfH9hYS5Olpwr4jgOIfalk9FoWjqbtjCKPWDmvJBpdXpB2HOwZOMoNWijKCKMoihO2/EYTRLHiY1CCDaR/pIUjHEUFUDbjzfX1pfnlpaLoni4ucnM/f583O3BcIJJO+ktxnHcW1pn5hKMsa0yY6LUO/QOECwDFa70wmmr5RlC8O12KzgeTcan0mT1yFocxyayeeE6nc7S8jwRTSaTVrs7v7AUQpifW2y3upFNrIlnsQJ2Oq2kFRclhRBAKI5Ti+ScE+YQXKvTP3WyI0xPnm4urSwnrdZ0Ol5aWEzX0+FwnBVFlmVzC8uFN31H1sT9hcVWtxcYWi1BYzvd1smzJ+JOKhhccEU5JbCGVP/Heu/FO0APLAJ6eFUUkcLIxMRU5yKV/7XqaSkLFCaQENwLwGRZlmlrAzSAHGVZbm9vj0ajnZ0dmAndLC8v17wBdQ0QPqOogs+yujQNqC6n11577XN3xAFtenVW9OWTyaQsy93dXcX0t9vt+fl5eJ6M83dzfGsmsj586kfqs1RPp6bLJiLT6fTp06d37969e/eu2sSFhYUsy44fP67sxDADyiLi0aNH//Iv/3JlZeXhw4d6V1ZWVi5evHjixImzZ88uLS0pdWj96d+9GKGCHNc6qEYJzbjyJTU+0nPCkkHEiEyr1Wq32+12e35urqaxarfbZUlJkmRZNh6PBaHd7ag4og+SF06rw7BPbR2YgcivNAa2AACAAElEQVQqL3cA9J4BPIIhMsZiICy9J2vjJF2IYyJbOj+dZHlZWIqCsGfJfRkYtnZ30zjpz88h2klWGJt05+Y7nb6xO87t5qUTQTIRAOTOp0lLm9NDCMbabrc7N7fQn58PjqFq6ycNA7WBOoSghPazNvMKqJC0kziJENELhxAAjTFadMHJZJJlE+89WdPv95NWq6bYUTdwPMkGg4GJUzQmK0K3a4yNBUhp3FCgKLIKx0kzue0QmIHZAwugorECcGDxIlWfuNayD9AraGRaw2w/l0UcnjVeagHLstzY2Pjv//7vGzdubGxsIKIWpt96663jx4/XWwwbAiqvep2rs1/X6LMs01TmrVu3lFbj/PnzV69eXVhY+C4oL36R8Z0ItA8Es1UPhurSFYUqSt++ffv999//wx/+oEUYZl5dXX306NFf//VfX758WSt0mnxUprK//Mu/PHfu3M7OjtbvlpeXT5w4sbCw0Gq1amnG+qO/m2nm/R43CSKEaIgoCBvE2kTGcRwZa4yJyNSgzrIst7a22u12msZxYooiM8YoLbO2T2heT2vBzjmNsLTnzAUfZuSGhBaBvHDwzhjDjrFgFUY3xrDSRwhOx9ne7nA6zvpdS8oF4QNIMIgI4stSgoTgCSQ2pH3NIsKh2rHGRIic5zkQBgllWcZx1fxnjIltwgFU7VP3Xr/fn5ub8953Op2at1iPVee8Tsszw1jnHAp0u11BHgwGqsjcarW63a6av52dncFg4JzXgzPP8729PURstbvWWmvjbrfrWcqyxCgVERRCUdYfByLMXPogosaxZPbMHqpvCiA06+mua20VVFPvgibQD2QtD496X8DsSNCml1/84hf/+Z//ubW1hYgrKytbW1vaIFiT30ADT/aqTWTz/Z1zt27d+qd/+qd333339u3biLi4uPijH/0ojuMrV6602+3vmF/y/PGtmUgF2Rxgf6jJOTTlNBwOHz9+fOPGjdu3b3/wwQd6HOna9d6rYszJkydPnjyZpqludbURCmdZXFys5cY6nUpGWSvX+nHf5XOMVSiF/ex3babm2pprvlK9G2Zm8Nootre3l8Tx3Nxcq9Xq9TpZPi7LfGVlZTqdDgYD3f+7u7vz8/NaBPfe6wGj0NE8z8fjsS9dp9Ppd3tJkuiB1IqT6XRa5FMVqND3KbJsfq43HA52t7cL5zpJyj6E0vnSlVneP9aJyGztbueTaXeuL6H7dGuwu7ub5znPCqmVL+xDnhXBs2evJuPp5vb9+/dFZG3liMpgae5FT4U0TZVsreZ+j6KoKIosn5ZF7plNZOM4tnFERI5DURSRscoCWZal0oCq76acJsPh+MmTJ1GcalVX1YCVrJuIFhbSVqs1yfLdvWGrF6tVrbg5KAJgqOjRWZhDkKAuoQItvQBU2cnGmSeaV62rVc1+/+cOmYn61uVHZs6y7KOPPvrNb37z3nvvaRDw8OHDOI4vXrz4+uuvq4geNngev4HRbMEYDAYffvjhu++++6tf/UrzAGmaeu+PHTu2vr6u3GDffSv5rZnIA1u9hg4g4nQ63dnZefDgwf379z/55JM//OEPKj3Y1AIOIYxGo0ePHqn0Jcz60mSmQax7qQY51ombOgQ4wJv0bZtLAqAmBXltAYm41tvRhkKRUPU9e1fmTSlE0PaRbre7sDRvY1P6cuv+E2avWddWq6VfUxO+WZbVjowyF5Rl6R1PJ/lkNFb+t16vNx5NmbmTtkIIhDayiZIl6+f6oswn+XScCUBwXEyLbDr2ZT6djCQ4Fp6Oh6O9obGYddrj8bCWRrBJPB+nQewkd6Msb7fb0zwLzIqE39ra2tjYWFhYCItB/c26FqfN3WrdRqNRCCGKolozMs9y74MwMIuyIgr7aT6d6/ayYqo1B0GTpAkADQbDLJu0223PYTDcAxktLi7OLy7qelAfFAAK7yxXzdShdL4MalgNEJAVYE8i4oQQxIhw5Srr/aKZ5BlWRrSi1fAOqgI3eA6eA8PnGLKDtB0izPz06dPNzU3lNlVegs3NzadPn06nU22rbb7km7FHdf+ic+7JkyePHz/e29vTROp0Or158+Ynn3zy4x//+NixY999+wjfei4SZhOqpTTNrWxsbNy4ceOjjz66ffu2amtsbW2p91d3v6jXM5lM9IXwbHKzdjoOrLkDZLp128C3bR+fM9RVUS9YJf2qtT6DIYUQvLjmd0mSxCACQJIk/X4/iiKV/0aUXq+nnrW6UVrfrxXjZKYiTTOy+7Jw6sWLyHQyAYCNjY00TfvdXpqmkxGq79ZqtX1ZeuWGIAohZNNplmXBeRF5+mTTGEMgrVbiXZ7n0ziJer3eYDQEwjRO+3OL7f7C3mS6sbVNxiBi8AHRxHGiJjhJElcGvTyNjtVydbvdOiIGAPWF9ZLquLJ0bjqdjtPUgKgxVa7D2r6rD+t9pFha730r7SStVET2xqM8zxkqrNh4PA4hGLKtVmswGAyHw5ps0RjDoMS9mnMkQgOkHBeh6giYcRdKg0itycBfu5Dy2d2HTRhjvZhrnxoaBc80TbVOUkdLtfPxDZik5kVqNkAPRZmJmqjQWJ0B/+6PbzMXqWZOV/ZoNNID57333nvw4MHNmzfv3bv39OlT9RxrccimHWy322traysrKypFVNMC1q31dVuhhlRKVlivpO9M+72u2nDg0RCc96UPjoR8cN6XM9hx9QSc8VnX1x9C8LPYLc/zJ0+elGUxHA60B3l+fl5biZT8qnRhdzAkom63Ozc3DiFMp1MAyLJMpRqGowk+epQkyXQ8sdYG5/r9/srSYlmWm5tbaZoGLwjMeTke7mXTLI7j6Wg8BRiN9sosn46Hd8ZDZl5aWkySZLw3RpYkSQrv1B8E79UlVJc/L0pjIvRO71qapr5020+3pqNCW+U0F9lqtTRSLopCs2/WWu2xKYqCDPiyKMuK9HA8HiMiciiKwpd5v98HgNLlavLa3U673S7LfDweP326rbVy9cIePHiwuzNywY+GE4psHKftdjuKExF8+Ghja2ewu7WTT7Iq4A1hZgRnWVEUECFGQVRFstk92leC1c5FESUnV8E002xSfO5+aTqSCt44evToqVOnNjY2RqORpphOnjx59OjRXq/XrO18k4icZkF8dXV1dXW11Wpx1RcbnTp16sSJE3pIf/fKpM8Z36aJ5EpnuSiK4vHjx7/97W9///vfv//++xo7KFZATx6Vc6uu2FrlmDh58uSbb76phI/NOL02GfUvakPrB/WZTTe2Ke/1HRlhNvT4ZQkCBmR/e8CMIUZHHMc6mZqi2tra2t7enk4n3peIOB6PO52Ocr4NBgMlINCTXB1M1b/VDIbWuBBxe2tTRKbjSZIkkTGtVmt3e16R+Z1OJ59My6KIAfLJ1HuftpI8z5n9ZDLJ82npVJK0GA7X5uZ6WhIJIHGcDvaGk6yAwpdBCidZVhAaEUzTJIjXxnnv/ebm1mg0abe6ekBqfK07fzQalWWpkW+SJO12W7MEUWw6rdSHEjkg4nAydr5wRZlNxuz91taWfs2dwTCEULGUBzedTvO8dM75IA8fPozS9MmTJ+NJMRjuAd2P47jfn+92uyyQZUVeuMFwvLu9k2WZoljqfDqiQqnBILIggipeVI6k3tY6KVn7Wc0U5ItP6wNP05t+5cqV27dvO+f0wFhdXX3nnXeuXr3a6/V0GpvkA9/AqD1lZu50OmfPnr148aKWEJRXUJHnS0tL36K6w5ca34RdqNufawICDSFVzPfhw4d37969efPmxx9//PDhw8ePH0+n0zzPcaaSUcebMAOBr62tXb58+Qc/+MHrr79++fJlRYnXWP9m82l9DQdC6eaKeXGv4aseukpqwXVjTBQbJInjWEX7Op0OgGX23kMUJcQAlQIYCLCS54rANJsgYpxExphpkRVPHldkVnlmjCmKYjAY1JmpwWAAM26I+vEqicEBQOVqZ3MFnBV5bKO8LLMsQ0T2bjweDwaDNIrRBWEvIpN8Snt7gKyXPX06FhFjaVrk7XaapmkcWyLLgmUI3nNgHo93xlk+Ho/jOM6KMi8KEEqSJISwvb09GY+jKDIUqVOp8aMaAgDY29tr3s2Kc4QkikwUmSS2aRTv7mynsU3jJI6tK0rLbjrJNzc3J5PMWjscTQI7keC91y6Zre1dESm8997vDaeICGSttU+3dowxRIbIFqUvCqcBvjB752oyIT18ARk4sCAzkFBEVRxdw3rqSGhWhXcAoOG/99589lF9gK1Zi5AnT578X//rf505c0brIYuLixcuXFhfX8dDGnbfzGhCRIjo9OnTf/M3f7O2tnb79m1jzNra2pUrV7R/8cUBnM5qXc7S71KWpRISwrNW5ZUeAN/oJOqy0IrqcDi8e/fu7373u/fff//27dsbGxsqVx1FlTKUhuEwCyjKslxdXT1z5szZs2f1aLp06dLRo0c1TDvQdvrHNQ4nTNVN1lpBnfMC7dzg6iW6HZvOCMxqo9odUb1t8HWGsRmm6VKrep+b+p/WwCETCQDBeOecU8bM4BVaVBgLgVVtlkwlM+O9974sXYEoli0SlS6QdUEY0XkGFghBnIdJVo7G+d54PM3ywPtisN4HZlZ1wHarqwnBstxPyNZn7YG0CQBEsYlj20rjPIlaUZRZSgwZg5G1URRlWZFl2Wg0AkJCG0IwFkNwaiIRjBf2PvgQ9JBmIJwJOCASAJGJQpAaj1E78lmmBROpxGRF1Cza2TZuMgDADLahCaJWq9XpdNRKftnWmqWlpTiOjx49qptFaSZ6vd63tZhln25drLWLi4vXrl1bXl4eDAaI2Ol0VlZW9JqbRvDw0JJ9M7Op06UYdY386l3/Sr/RKzeRTbRXLbH26aefvv/++/fv3//444/v3r07GAw0plaWY5g5OLoN0jRdWlpaW1u7cOHCm2++qY2D6+vrqmFdySR9J4GNX2qWak9WvYO1IyvLK4vDyZBZmxAUfseRqeDxUBtKqk5sqGHJsw0KAAjIAiGwY/cM/pR0ae7nH/RnkziatDALAAAeHREVjdDeYGaRgFFYEaailL0hhBCc995aSlOKAAKAZ6VsELLGACFCUZZZlo1G4+k0K52vIDQECAZYOIQyBBFppZ26Q64uetSWsRYS0MUjIjaiNI0ROsZgIEKUMnhEMe02zFITnoMvWJndbUQhOO9ZRBgUpRj8LMcBQCLCVX5D59kiGGMMKoskq3A2zOJZQRKpGHQFGEVUHo0ZiIG40mQUEfQ+iEin01laWZtfXLZxivily4YhhHa73aTeqU3Jt7KSn1mHzMaYI0eOrKysKKFMLVVYadV99rbVu6klWS1I6OLUtshvcst/E15kfXJub2///ve//+1vf/vhhx9+8MEHg8Fge3tb66oHQGF1K0W329VG+h/84AenT58+c+bM0tJSv9/vdrvqyKjHXr/wO1B+eckpavoXvV7v4sWLt2/fnmTZzs6OSotUatTGVur1tf/Y+NbVz2ffuvkp9TMrdZrGAaZ/qpO28KyJNAgiQg2lXxQGAAOaUZopBVWEBgERY7QRIiMxUlDiW4BYkKIIGAIUhSsneVaUZdXQDAFRtB0TsVJnVQRiPTPN5N0+sL5SsvbM7LwQQfDtqngdAQkDixLo2og05nBllYv03ofgQ9Bud2RmH5iZXWgW0PZn1LnC2thUpCeuOV1qH7WKhiTIWiuqbHfdQqNzXrc5HDt27OLFi+vr6+pY0ZePjtUa1l5kfXO/xVFjVGpN5npAI7n0ggSX+tej0eijjz76wx/+8ODBA2vtysrKtWvXzpw5c+TIkZrx+lXXfF65idS9DQBFUXzyySf/+I//+Mtf/vLBgwcqttWs/dcwHW0ZnJubW11dPX/+/FtvvfXaa6+dO3ducXGx1+vpFq25HeFZ3/5Vf51XNCq/YlZH6vV6V69e3d7eZoA7d+5Ms7GeB9bEJNqfXYmj7sNLZ6ID0Ag9ELFpIrExmh7ZM49LrbUyu4MzQykiwAFnnDRVIEn1Ldi/CwIhTdM4jtrtdrudJklFnSsQCLWxBOM4SZKk0+lEcQvQqK1WlEwlXYMMAIYiPS9rpE4ze9s0kZUjidxuJdop0O10ohiRA0uwZGwckbGdXrdXlNYUrJdNzOyZIYTgGWoTGacAoKK7sw5CPVqcV6iNtTEAcGhUUUhnQDW9FQ0eCIxaikpMfBY8Kp3t/Pz8hQsX/uzP/uz06dNpmr7E6V57i83F/y2C2PQL1vDbWkKjbhVt3r4XDO0FuHv37s9//vOf//znn3zyCQCsrq4+fvz4Zz/7WbfbXVxcrD/ulX6jb8iLLIpiZ2fno48+evfdd3//+98r2FuHzqMeGrr41tfXz507d/bsWeWbOHfu3MrKikpB1TNez+MBP+gb+DqvaIrqlglE6nQ6ly5dCiEsLi/funVrNN5TDGASt8BLDQ1pmkgvDDNPrX5PALCNtdisgB9wNGrvcp/9tX6VcH2Jlec4y2lWZh1xps3CjGAAGSGxEUXUihOKjEUjBKR+FnBERtBkuRuPp+PcCROSVfATs5cZKyaAAO43aNcXr59b1yLqrF/1C4Q4jjvttNdNO63UGiHhwB4FkiQBwdFosrc3KnLHQoBsKlQYMLOayMACAJ4JAFQLSLgS0QUAqNBjmv4mEQEhAQ231UTKzJX2zBzbpOnk1pOmscL8/PzZs2e1pTpNUzJfegHXqnbN4kz94JdagV/q+Z+112p9lCbkqFla4YY06QsqLVpUvH79+q9+9avr168/efKkLMvHjx8DwMrKyqVLl+bm5hTD90efi4RZMWE8Hj958qRuE65Lz/o91XPs9Xrf//73L1269MYbb5w+fXp9fV0pb5U1pNkV04SIH75n38DEfV3jADxTRBAgSZJWq/X6668fPXH0yZMrigzNsqzd6mLDsjUXtZpIwf21HkBIwOA+0QMcWtkHJk0fgs/wIgFAoZgE+5hkz1yrsuhPgwQkwoykiUdBIZnJhJE4AxgEfQDvoQwIgICmTsOJBKj4xILMuu6wAXuurUx9zc2kPoMgijWYxJTGkZpIliDBR1GCQEXhsqwIXgQMkgAGxCoLKar+A4iIQYyIiKrBVnh9FBGDiMDaLw+4/yoiqk0kVxrgHlhim9Sp0ma7NAC0220lPz5x4kSSxsHzS/Cg1e7YC/Ab3/BQj0fxznXVvq6uVCnjRi/cc99EGew3Nzfv37+vimMAUBTFw4cPVa3kwGS+uvHKTaS2TmtkV0t0ImJdkdTjdGVl5dy5c6dOnfrxj3989uzZkydPKlS4bqzWuW6aEviMzKN8JxoKv9IwxuR53uv1Fhfm19bW2HkvnE+m3W4/OK8OF2JTGAVEhRqa/qCqOwdGRBJi5PpngGDRCknzEf0fka3V+kj2NftUmJsqOlgPoORD6ELFBlKb5llY4HCmJgSz5HJkyZcZsHgWYQhiBEkYGaD2FpEEWEQ4hCAQhJEMIBj9qX4lIAuj/hQIIIQkCEZLMSIBgYkgjkxkiEAEArvS2piIvGdXBhEQNIjofE5EQIiIFeEtGjAUvMAs0JaZ8hoKxIkVNYCCUGUb1DOazTxW3fVqIpOkpaK9NRyyvkHKdW+tTdJYGMqybEUpAM8YIwng2WOwHo0lT0ggWg1CAWKdC6JmjEDPeYNnNGxBVdUPHo4VTZHgoTc49NR6VIpyBCHMmtzIsOH6kNPtLEqM+dk5RO1/VUB03Y1Tm8UaqHcgrHwV45WbSI2FRUQ7AdbW1h4/fqwNSco0cfTo0XPnzl25cuW11147evSoRhztdrtWZAUAbQtpJmVfkKDFGdfkZ43a7dc+ZbXF0IBffZNGtsZ76j+rHCtSp9XWRzpJBxMQAOwtvPitXhAp1fL29U8QEBRgZAgEKpMIDKKGhwMgiUEzKzOwcurUCVMRUbm+9iywqlPJM0BGR+dQHQoNArwvgZKknSazbx9CACBj0Hu2ljQnGKm+GIPe5BCCCFr7nDuuTmTlP1Y83qDP1PA2iuJK0joFDiGI2NjYFlVkhXqLa7e0TuzKZ1YA9BNnk3rg8erVz8z8Z7g5s8ermUADrU4KwAECAAfPwTGK9YVHgXa7jRbZe4pNRZBXz4/3QNVdRRQWKAUE9oUUEVQdEgRUeiQGARKHEEgcgAfxgRnIMBmBWSpGVESCgkSAEQEBKJoJUf3+huWVAFJ1FoEhAAkAYIgAWAIggKUIZ8sLAI2NGCsshflsU6uEhydPnpxOp9vb29p1fv78+aWlJa1wfDM79JWbSDX/RNTv91977bWf/vSnvV5vb2+vKAoNMRTqePr06WPHjs3PzyOiMl/N1v0z2KivZdSWV0SUEGEwGOjGVuv8uUb2mxzY+PlFnvlF3kd9AAQEAhRSZVmpXEVAAUIBAYFndMkPUFXrRtWcZo2srG9WHUbVZRYAILI2rUquIqJ/8d4zwyx3xmaWjxMJAKbO/UOD8eQAO8PstgoRzIgR1YJYFiCsHvGBdRcjAYKVihMEkBAbk8dcOVSHR8M+woEjqYmqeOl7rR2mAjKZTLaf7uztjsusbKetI6vL/X4/7aQAAijChFSbKAMSZr8zYXWSBAERAAaDYIkNBoASSIpiJMFLyDEUIrlwGdgH5lJYMBIyCFXe1yAKGBP3wLbIxkQW0AASgLrVVLmdCKpzppeuE4ACVSyCPMNAoU7qoan9zJzm4uLilStXfvzjH/d6vYcPH5Zlubi4+LOf/eyNN95YW1vTzvQ6ffHqitrfREVbv0O323399dfjOH7ttde2trZCCOpCHjt2bGVlpd/vKw9N7cpV8/d18znKjNtGN1tZlvfv379z5854PNbE0LFjx1ZXV9vt9queme/IqGsg9SR/kdVWP7l5s5rdI81xOOvUDLvqmtuB5hN9Zt1or+MAUqT5tg08k+gqMgaZwXuuPV+tiiECETCrVOwzlyqiris2ErPNbw2vVDZB8yPj0fjmzU9//94fPr15a7w3XJjvnzx5/Ic//OHZ82c6SU9YfBBjYjVEaFB3sUAQYASnR40FBAgEHtmDzyDkHDIJ2d7WU/CZlFPxGbpC2AV2LOhEmCKkiMgSkUGKEJiiqL1CSafV6sRpx8QpRCmYGDECMADGBwAyqKgGABaw1PALK8r1Kmh53jd+EegnjuNz58799V//9cWLFzc2Nrz3i4uL58+fv3DhQq/Xq4PuV42R/CZMZJ1GXFxcfOONN06dOqU0fGmadjodzTjU3KIHtuvX/uV1y6l3UxTFp59++u///u+///3vNzY2er3e8ePH33777R/+8IcnTpw4bK//xMZzk+WHUcd1E0gTk1hTqH0Rd1uxjXXmRBp0JDjrVIOGOB/MktQwM8EHPIWar/t5XwpmxZOZj9NQamsWWxGBWYhUYruum+2/T9PUi8A3Uv8jX4aH9x/953+8+y//9M+f3LgxGo3m5nrHjq2D4dZccrZ3lkWEMIAjsAFIYV0IIAIGGaEkZgAGCMAMPgM35Ww4GT0djbbLbDAaboubSjmFUKLLUIICQsXEAgYpRjQGyRAZEEGL7QWT9tqdfrs73+70k848tvtgW5B0ASOL5MX4EAEZBkRRDAARMtf2Dw+DNDW7SVBnDQ5PxEyU8fLlyxcuXBiNRkVRKOH80tISImqR4xtoHf6G9n+tSNPtdpXqGRowPWi4AM3k66soTDe39HA4/O1vf/v3f//3H3744fb2tlIHTSYT7QdotVp/LGXxlx5qNYqiUAC/9inWvY/4bIdiHdSo2SqKQil4FQLdbrc19oFZIqn5QbURnE6nk8lE0ymqG6Epec116pMPAJJU215JifQjvPeHQS0zCwjao6VsmEotPstjVriTEEQ9D6L6JAYRUC4MZZ+KoihN01Yrmb159bRXPYoiPLj3+L9/+95///a3GxuPmHlvmO5Ndk7+97FLVy+urC2nrRbZmIERgmMxZFQ0zAIa8AAOJIeQQTaGcsrZqJjsjEdbo+HT0XC7LPaEMwgZuhK5MOIJRUQQbGAEjEQMohEhAWQUAeK9NsatkHaKdm/amUu7S3FnzqT9zsI6xD1ozVtMLZADQLBi1FdEBhKooK4HkrMAQJXxZBT6LKdc15i1VpNvi4uLKsdSp+BqIHqzivsqxjdR0dbVrJl7OaRLeeC7NbfWq/jazd6S3d3dGzdufPDBByoZNplMxuPx6urqxsZGlmVKh/Oq5+dbHApYGwwG9+7d01xPkiQqfFZr+8izPIP178455R/Z2NhIkmRhYeH48eMnTpzQwpqO+lW1SVUMh862tgacO3dOddagEVyrhRKR7e3t7e1tJU5OkmRlZWV1dVUVrGoa5joHqv3po9GkfgkzLy4unj59Wnv564CGmYlM1cIeROPxyWSyubmpaqhZlqm2wYkTJxYW5vSqvl5H8jNwiBgcT4aTrSeb29vbPjADjLPc77qn21tKnRS12gasiGfE2vwQAIIDKMDvQTaAYjTYuMfZ3nS4PR1vl9mwdCP2OXOOFIQLZEcQCIMlreM7g0bAsxhtaCUAExgABCYSIl9YN46zqE1Jz6R9SPr9xaPtxfX+8nHsrQAmESQCgSGa9fcjVpUYBhAGxirQ3i8j4ecxv9Xo17pmeyBXo79wQ8XsVYxXbiKb9CQH6sUHnMRmCPaqh8yEcabTaZZlMNv8zik1Vl7RSv/pmkj9dt77hw8f/uIXv/jNb34zmUx6vd4777zz+uuvv/HGG4uLiweSHtBw9jc3N3/961+/++67Dx48MMYsLS1dvXr1Bz/4waVLl7rdbhPTW//y4MGD//f//t+vf/3re/fuaer95MmTP/3pT//sz/5MoV3Nu0NE4/H49u3b//qv/3rnzp0nT57Ecby2tnb+/Pkf/OAHb7311oEkdd3B8sEHHyilnjLfzM/PX7t27Xvf+96bb76ZJEkj2N+fCmYYj8c3b9787W9/e/369c3NzbIsFxYWrl279pOf/OTy5cudTqsRgD8fOPACCPQXvykoEJFpJWm/1+l221meaUGJiNqdXrs7jyZFTABM8GwjsvVm4UzCsCyelnuP8sETP9oabj7kYlRme74YBs4RHBkmkoJFJAgySCCUAAxADIyGGASEBQA5CLCQkDBJCQIcyDtTZlZMArYTou50tJ0ONsfD7e7ikaSzbNOuTXrG9gA6YVbJmnmPJLNcpDYQqHp4ZSI/w7LVkioiUgMH9fGa27BJa/Dqdso3kYusk1l1hr7+5Zn10dA7lGeZH7/GMZOUMk3yfeXirttIa7yrVmNf9RR9K6MsS1WA2dzcfO+99/75n/95OBwuLCx8+umnf/VXf7WwsNDtdrXcLw1yw/q1Gxsb+qpHjx557+fm5h4/fqxUdadOnap76bQGrWnf+/fv/+Y3v/mXf/mXR48ehRCU9EXdydOnT2uCCWZxEwBkWfbo0aN/+7d/+/TTTx88eAAACwsLly9fBoClpaVTp041v07dhvj+++//67/+669//WtVAmi1Wk+fPi3L8uLFi9q+1TTcChNXV/rGjRs///nP/+u//mt7e1sDuul0euzYsRMnTjRN5KseSRQvzvfX19ePHFktwjQvszRpzy8uLCytzs8vxVHXYIIAEgAjikDLXFMp90K+Vew9GG/d2du4M9l9TOWUQgFSkJSEJRKLuCCAYAUFRCdZAoMIBwaMgIEBgMQHYCPM4A2IYSHtBhIUsMwOfBApsnJSTPay8fZ490lv8cjc4rqdW4TUQ2QNJgLAwDNULSpgaIY+IpDPn03V9qm7cdRZybJMwxQ9g6FR0X514xvqrjlQ9HgxWOyVZhbqrKjSRl29evXWrVvvvfeeVpBOnjz5ox/96OTJk91ut9PpvET7p+49NQ21BJ3aWc3QNcu7L9EoVr8JAOR5rkpVyrytEi61fvH/3957NtdxZGnC52SWu94CuPCGAAE60YlSS5o2ExMzsxvzbkzEzk+d2InpmN7WqHu7JVGW3oIg4c31tlxmvh8Obqp4AYIkyG6xJZwPEgjULZN169Qxz3keosjVPi7aENMC4hQMPnjwgERder0e6ZVTW39oaCiKGNU9RKJAfvLkydOnT5vNJhHcffnllxMTE9PT06S9p6d0dYenVqvduHFjdXWVSL8bjUa9XifV0PHxcQCgQ2gX2W63Hzx4sLKy8vDhQ+re7O7uuq7rOM7CwsLQ0JBGHewDsG17eXn52bNn33//fb1ep4GWXq/37bffxuPxs2fP/vKXv6SNbdsMQ+l5geNYQigAoFngb7755tmzZ77vJxKJdrv9xRdfjI6Ozs/Pk8oFFTRf95v5utsbJjt1avY3v/mVAO/mnUyr0x4pjU3Pzv9///K/E7F8Ih4HAV5P2KbNFSjhCb8m/ZrXqXRrG63q025lPejsotdWflcpwUAChhKFVCGglBKEAOQGAyalEAoAFSgmAZVUwJgCBRwZoegFSCEcKyaCUCoFqJgKZBhKFqLyTPSlF4T1XqvbCJp7sr3Hh0adbBeSBphZNNg+CwDDEJUUYHBzvx6w/5wcieONLF1UoTtaxtFdOM1n8Reyn2y79gjTlYt0Or24uPirX/1qfHy8VqsZhlEqlS5dujQ6OkqC7m9yCBrDGgifo5EyHov0lJLQIAj29vZoGMswjHQ6XSqVhoeHo00P/b6JOnp9DpZl9Xq9x48f379/f2Njg1QZlFKNRoPY6khrVLtXjcsh/vDV1dX19fVWqwX9GXyqANKAaSaTGThtrVbWbrdJiwoA6CpqtRq1VgZekNqtR6ewqbNEzaWBZYFI+7vb7VIu5nleEAQrKyt6rZRSACb2ad84R8pYfN9vNBpaWFFKubu7S7qbExMT+XyeDviXTirQ5IXhoQsXz/MYnnlvqdvrJdP5Uml8cmImly4YCpQCh3NmAMhAuY1e9Ynwyp36bru+4TY2g04FvAZKj0HIQRLKkoI5Qr6aiCAlVwoVcEQEQxLUEY1QoQIVCslQAUiDoQLTlSAVV2q/6MRQMggRlB+GHF0le8Jve26j6ddVZ48ndlNj6GQnzXSaMYNJFUpucq64oSeUBp2j+ovCqN6C/RxdpH4IE4nEmTNnstlspVKp1WqmaWazWdLD0XH+MaKGATZ8/Q6MIFFQixq+7snTQ761tfXVV1999913W1tb1Me4du3apUuXxsbGBgo0AyF5tG6wubl58+bNu3fv7uzsaI/j+36z2axWq9R3hn7mqxE5pDG9urq6ubmpgeLUFq/Vao1Ggwh9owtCjtXzPFJ60mdFyllEXhsdztNkMNEQm7xkr9ejrtoARxT9l5Ct6XSa3k/0Kdd1ic2+3W6XSiV9bjzCGZFIJIhej8JV3/cRsdPpLC8v37x5c2lpKZFIGIZBYz9/UZNhwEw+NT2Zzqfecy94vs+MWDpV5CyecjgxeyADUAG41V59tbe37Lc3W/WddmtH9GpM9AwVIIRc6VcIcbTtM1iaIDGUCgTrzweGgAp4CEwBqv0Z81AChIhMMQWOQAUokQNDiSIAKRDA5koBcSu5Kuj2/LZoV5RdcUM7G3h5YwLiGQDOFFfSAQb7d+tw3P07bT87F6m9HsV3RNHc7Xa73S4JABBz15scgjhdDMPo9XpBEGjhvYFm/fFmHBGx1WrduXPnd7/73ddff72zs2OaZrFYpA4D8TnTljqjxwgrD/Q7G71e79GjR7dv397Y2PA8j8LPMAxt2y6VSmNjY5RdHuzYhGFIihqtVotQClTbJYSN4zgHQ2OquBMQRw9c0umRbheJPQ3M3ROWKKoETfshL6m1jCBCiRKPxycmJsbGxlZXV1utFh2FaFlXV1er1SpNUuoAVMr9wnexWDx9+jQlE5r03jTNZrN59+7de/fuZTKZQqFgmjH4C5sIFTNQIYsnEvFU3BdSKTPuJIUHSPGXkqA6EDRblZXG7mN/77Hf2em2yqHbYMozmGBMcKUUTZgiSKSJFgLESwOUAoFSMcZAskChABDMkOCgYZmmhRxQSSV8JfxAScNMhBCAChgAYAAoFYSofAMZAjcQBDAJAEIoLxShrG3dBwgdsxfPjYKVZWZcSR4qxrhFq65nwvfjx3c7hISfs4vUjCNEMkRzhwOQ9eOVRCkAqdfrpEtHatRjY2NE3wT98srxeE+VUrVa7e7du1999dWjR4+IjbnRaORyuYsXL545c0YrXOtwLJprY59PZHt7+969ew8fPqThS+wzSNq2vbS0dOnSpWKxGF0uXWDt9Xq7u7u7u7uEBIA+5DuVSlEArgtG2kGT/C+5SDoKwXqIpkSjHQeWnd5Y9GrRqgZKKd/36d0TXXC6hHg8XigUisUiFWH3B7EZo5LCs2fPFhYWCGenOwCUaGez2aWlpaWlpdXV1d3dXdot57zValGLfG5uLpPJEELoL/jtRDBsCxAAOHIDOZocRAhKgZIKEYEBQAe8bbfxtLr9qL77OKysg9cI/B4Dn7MQQYFQoZS8zy/HFPVMJO/rHJGrReACuJAYoq1YyknkeSxjJdOmaSolQt/1e90w9GToKtWVfs+ToSk5UyHxGYVhwEAwJjmYqBQoQ4ZSCem3ntW5y6CV9xrp4VNglZA7EATIrUiAoPPrdz7N/hm6yOjkXLRIpwM6Dbg73v6J92lzc/Obb765e/duuVxOJBI0tEPCb/rhPEYvCPoxYKPR2Nvba7fb5HGazWalUul0OlqRecDFRy9HCOG67tbW1vLyMlGKQD+mRsRsNru4uHj69OlkMqldDESokemze3t7muGKfH0qlRodHS0Wi9rfRWNYHUXqRiSJF1JbLAp/0w6duF4okNRYdEJ3d7vdQ6NIGr0YGRlJJpNae50xRnSl5XK50+nkcjm9GmEYWpbBOSP276WlpVu3bhHXll6ojY2NR48e7e7uzs3NHRH4vy4Y6EXW13/gCAYCGgiK0awRzaEEENTdxtPyzr3q3n23vgm9uikCDiHj0uBEfNzHSvaBhwwlKJA0dbkvZcsVGiEYgtmGkzWTQ/nSnJEoxJI57jggpNfr+m5XBO1WdRW75Z5SMugKUEqCoVh/YEaBFAoZQ5QgUSoFEoPAa/ZqshcKFwwjbcUgHjM5l6AE9EfhFShG3KMSgB8xhvgu2M/XRUb94CtyCL2KKaW63e7333//7//+748fP67X64ZhEFtJIpFIpVKv28IeMNIqyWQyxDZImj8Ujtm2TUGxPpNDn08ChC4vLz9+/LhcLu8LJQaBYRhUnF1YWBgeHtZY62jcbRgGRaCEOoxOEBaLRWprHDr3QrVITaWsVdFJ2lCHvdFPcc6jhCb6WDTVMxCD01+pSjA1NTUyMlIul5vNJjk1mrdpNpvUldJuve+UwTT3haju3bu3u7u7s7OzL/YN4Lru8vLy/fv3FxYWEokEwF+2HCklAIIQSjLgjOb5hFLC5AYIV7rVdu1pdfthde9et/0EZcsExZlCpJk+CQDIOUOmJANk+3x5CgClqaREEMwI92vUtgAb7HSsMJ0dms2PnWaxvBHLgBGHUFhBIELfEM1E0unU7BrDTkdJLxSACAolGtxApWjCE+jwyBFCk/dC6bsdESgp0Aohlh62eGwYeYhg9nMZBRD2/ey7Dj3+2blIODDwS09XtMeiI4JjtGsMw2i1Wrdv3/7iiy9ItoxapYVC4cqVKxo9ExXDey3zPC8WixWLxWKxWKvVXNdVSuXzeUIykl9TfYGUQ6cRqLO8vLz89OnTTqdj27ZeCsuyzpw5Q0rwUQghuTOCjvq+X6lUyPvoxbRtm8I3apUclBOhsJGAOPsaW2GoWy4aIKWXHfpYsSihP/1AibbuLw3co3w+Pzw8XCgUqMRMICcAaDQalUqFukl6tpdz7nmBbZuIkE6nT506RYEk6QUppaiwu7a2duvWratXr46Ojtr2G73hXuH7AwAgOJMSEUwAiSgtBhh2pVt162vNveVm+UmntiFFM4YhR6I9l1JIkrVgzGCMCCH3eT8BJVP7g9EIXI/kCOSmnXay48nReas4DWYSLBuAQSgNUxloAmYzju+YRhAYfsiDQAnhSxlKDJVgChClqRgCgkKlEBDQYMBRBGHHa242gJmmadlG0mBgMg4xAaYClO943DhwR37sEzjKokRbB0dxoukSeTd6Al8apmk4jhaZ1PERxTJ9nhiuZ4F1MwH64Sdplg74WTqHRqNB/QTXdQmuHATBzs4OPbHkkqhzerQLjh5UH4g+dfHixf/9v//3559/Xi6XaT76X//1X8fGxg6dV9XoS5qqlFI+efJkeXm5Wq0SqFsf4r333rt8+fL4+DgtglapJeWpeDxO80iZTCadTu/t7VGTR0pJGixDQ0OkKBI9Z9VXBt7d3R2griJCwHw+T15V64LqvDubzSYSCTpDWgpdZGw2m1GeEXKySinbNsfHR6emJm7duhGGPpGBGwYzTW4YLJGIAcgw9A3DAOAkFqnPNpfLLS4uTk5O3rlzh35JrZsgCB49evT5558vLS0BSCIZoIJJVMD90Js4cEcOveORNZGghFSSMZNzcx9lxAwluyga4G70yvfbm3fc6jNLuIAWKMVAcZTE3L7PDgEIUvV1foU+LH1zIZAxzkAFvaDFLCeRKaRG5mJDc8rJomUIb9ft1A1mmmZKYY5zB4xhO2tl3WKvG/O6PQkNwxAMApQOKpMpR0qmuFBKKaBM2kAZmso3UYStlcZq24SuAV2HLYJR5EZegImASppSAUqBf9k3zluwd85FRgOQg5QzmucxChPRWu/RyfYXU6IqjNBBajroPgOr2ReQQQAg7wbPEx2TUXxB9Thq6eqPWJZFnXHoP2O+78fj8WjF7VUGSwecHX2Q8NKzs7NhGI6NjXU6HeK4PHfu3PDwMAko67hv4IHUNVANuKVqI/1paGhoYWFhfHw8l8tpmWN9XO3QSbO3WCyur6+T8mcqlZqZmZmZmcnn81G0U9RI3XsAzEiSoXrNB2SRaZafeE+imTUl2lRnPFgqMU2zVCotLi4+ePCg2WzqXLtQKGQyGSpuRm+9BgCYJk+n09PT02fPnl1eXl5ZWfE8j1ay2Wyur68/evTowYMHFy6cG/i6Rl8nB02/J6IDYzrM13d5/0KUApQMf+DGQQAGgoEH3XK3ttatPfXbOyxsK+ErEAgM1eFKjQPkETTPgiTCts8EaqBtGXac21nFk2BYQvQ6zb1mdZ0BOk7OTISJRIHFUsBMJ23HUs1Oe12Ge2of2IigTACOJIHJQiK9Z8pQEk0QEkKUnujKbjleMcxSLMtTDhhJSrc5A1QmoAEK3/GGzTvnIl+ERoz2H6JYYp0PwutLIWpoN+ecHmAC7rVaLS0FQU6E+G+ocKbrfZr2RjtcCmqy2ez8/Dzpc7VaLdM08/k8KThq6M9LU3iKUwYCELpqwzBSqdTi4mKpVPI8jwZLCoWCfkoHugoRJCAnX+84TrFYTCaTlUqFQNSJROL06dPXrl2bnp4m4PfBAJbOmQLGy5cvh2G4u7vLGJucnPz4448vX75cKpUOvpl0AZEUePSuAIAQP5Zl0foPLIvGYNm23el0oneNGlMUHetXlD5WqVS6fPny7u5uEATr6+vk1q9duzY/P0+UGbqNQ289IjwHANu2p6amLl269OTJk3K5TAByOuLu7u6TJ0/u3Llz6tRsOp3Wb8RXBLceHKgdEO+MbMZBSgWIXBOG+ypot+s7tb31yt522GmiEqAEKMXw9WbvFDLJUaFSwKVhWXbKSeZMxzEMEwBFr9fc297bfCIDP5EspAvKHlZWPgvcsTMqnslYzWzgxiGMAYACC8BQaCqUEqVCCVyCwlCRowcDmZRSeG6zutcJYnZ6Ko0py8oxNIUwgffJnd9t/wjvoIuMxlYH01v6mRAkpGhBRLwktU65M0aYaQ4a7SSqzkwPW6PRoJG4crm8vb3d7XYJHEMAZuq9ZrNZIpsh+A4FQVEPQm3fYrH44YcfNpvNYrFYqVTS6fTY2NgHH3wwPT0dj8ejedkRjvIgujAKRKfYLR6PU5SqR/cOrQMOhFqk1764uHju3DmCfJNmBoHPc7lcVKwuSstE/8zlcufOnRNCjI+P7+3tSSknJycvXbp09uxZ8q3R+Aj63tB1XfJreq3oxUMtpmhUFf1rLBYjOlF6MdCN6/ObGfp6ow0lACD9SBL/2d7eJjDQ1atXSTZvgDEA+t18xvZT+4WFhXPnzj148IAGgYg0gWYu7969+4tffJBKpRKJRNQpH41vHXhh0506GG4rpRANEEJQbRGQc8bBk34z7FZr5Y1aZbPXrnDp2iikUkpJ0zQgDOCVTQJIBopxJbliFrMc046bRgIUA6nCXsdt7HUqG4Hb8ZtVQxpdx2BxbthJiDlWMm06CTRjStqgpJIGA6MfUErFpEIJyGRItXyFyCxuCMAw8NxWrbL5lFnZfGwIbQMVIFgAICTwd74q+c65yOh3HZ6jkhbUeG02m9vb2zs7O9SsSCaTxWJxfn5+ZGSEkm5d4D/CdK+21Wrt7u5WKpWVlZWtra319fWNjY2dnR1KsqgKZllWPB5PJBLEnkDZ6Pj4eDqdzuVyNBlN8Sy5SMuyFhYWpJREHkyav1NTU6OjozrQO0giO2DR8Rui+SLXP0DBrQkjNCzmUNLv6Nratl0sFq9evep53tjYWLPZTCQSMzMzV69enZmZsW1bDx0eRA5RaXV8fNy27dnZWZoQz2QyIyMjhDekei75r2hS2e12CaKEEQJw6lnrEuRB0E88Hp+amioWi0Q6TX8tFAqTk5OZTEafHvk46Ke9nPPh4eErV66Mjo7S6L1pmqOjo5lMhog58HlpB865XjPLMsbHx8+fP//999/v7OwQ1p2ua2dn5+bNmysrK9lslt6a0O/yyyPV7jXySX+r6ZKjBA37UDOGQnFQgAgchQEBQCd0a73mVmXnidfcUkHH4D5DJVXAFZjIA3i9QFIyLhEVGpJxxR1mxJGZIDn4oeh1oNvmblO6DRX0AjvdTSV5LmdZMduK81iCO0kwY8o3hORMGftCC0wBU4qFEhUAMJRISHWJjCkTEUEo0WvubcSTQ8lMyWI2Nw0AS+Gr0Fn8+PbOuUg4LMUDAM45Ub88evTo7t27jx8/3t7e7nQ62Wx2ZmbmN7/5zS9+8YtcLvdS2o/o0HGtVnv06NGNGzdWVlZohzs7O3r2jho4EKlyEufu7OxsqVQi+vTFxUXiIiQvqb/xtm3Pz89T/4R8MSlP6IeZ7AhXrru9xFVBnldL60Af+q592UGBBP12wee5vjnn6XT69OnT8Xh8cXGx0+nQdY2Pj1OQ9aLISP/Gtm3qGlNzTE/XUGw+EB+RL6D5paiLpIWlKHJgQXRa6jjO+fPnL1682Gq1qtUq8QOdPn2aNJ4OwvsHWtsE7aQL1+OMUeIDIQRjgy/UVCq1sLAwMzND8s26J95ut58+fXrv3r2xsbFCoaDhn0ffx+g2+sbRrDp1zIkIjhYQABCBcQ2P9MBve82dZnm1VdsAt2Zij6sQZIDC58hAvnYMppRgnEsFUmGoGKDB0AJgIELwXQx7DgQmhjJoht2y3x6SIMAwABzTiRmxGDesEFkghYEktigUKoLvcERQiIxxZERmjlIyBRxCQ7pBp9at7/RqG6aVQDO+321nfwPY8XfRRUJU6VQpAqnQXPD333//7bff3rt3b319nSC+yWRyeXnZcZyJiQkqEmkHceieKcwh/PPt27evX7/+/fffr6+vl8vldrvteZ72TZoN2/d9CgFarVaj0dja2kokEo8ePdLchVNTU1rM1jRNCuioz0Cn4bqufiwp6lF9KeEXrYDjOJ7nlcvltbW17e1tkvopFAqzs7OJREJX36IWlUIb2HM01yOXkUwmT506NTIyQm7Otm3HcehPh0J2oqIIFDLTFUWxRNGmVrRqTIkq4ZOit/hgLTL6KUQkpaN/+qd/KhaLGxsbQRAUCoXLly+fP38+n8/rtF2HaTogpd8QzR30QQuHfs2oOEOTiPoVUiqVlpaWaASe4O60LI1G4+uvv56dnSVcVES27CXssHqVarXaxsbG3t5euVwmBSvSi9/PBrQaBOkIhl3RrbYra9WtZeXXLHANCKXwEITJGUcGQpJ2+Ss/VxKkQDBxX2+dAbMYN4FzCAGDAALPlKHBwkAqFXYCvyelFIoDcm7ZpmFziwcMAALkDEEAGAykVJIBKskAKPVAJP1EIRkAoo9gyLDt1jebezkrlovZaUBHoP2ue0cAeDddZLQWSWVH3/e//vrr+/fvf/75599///3m5iY9b4jY6/V833/48OH29vbc3BwVJY+eggiCoFwu37p169NPP/3888+fPHmiaREoxKDAgR6qaEebsD6VSqVcLu/t7ZGbbrVa77///qlTp6hASY+THgWhAEEHStH619E0P91ud3d39/bt219++eX9+/eDICAF3X/7t38bGhrKZrPRHVKbiMBMLCJGqItu0SWlQ5M3T6fTUXEY7eIpao4CdKJeUrtgamfRIaKkVdHVJp9FfLcQcda0MiQCEY12ox8nb/XJJ59MT09vb28HQVAsFmdmZqampqhEeJD8YkD8S7dlBr5X+gT6MrGgVZ0RMZlMLi0tzc7OPnv2bG9vj7ykUqrX6926devatWvvvfce9f3hMPGyF1m73V5eXv7888/v3LmzublJxYpf/OIXjLH9IoxCpYDRfJ5wwW+H3XKvud0sr1nMMzFkwgcZMATTMBlwoV4vy2ZKoZRaeVoBQ2TIDeAWMAZSofBRhUyFQgGoEJSQoVKBAouD2r/FyKXioQSGPGSy/0pWKMEAQKkkZ0jU5Qj7d4cxEYhO2Nnr1je9wqidKkpwlGGi8c5XIt9NF6mNIr69vb2vvvrqs88+u3fv3r179xqNBj0b0K/p0BMIAISMI+YIDQyix5661TTIsbGx8e233/7nf/7nF198sbOz02g0qHyJfX1aKlSReolpmt1u1/M8mtDQ4xmNRqPb7TYaDRIeAgAiFiSkIc0pU6kUIg5R57CvQmDx+PHj//N//s+f/vQn6opQyS+Xy/2v//W/0um0BqxEve1AI1vDjKK5Of1S+zjamDwdpaI6vFV9jS3y9RRw6T/phr7q855GfZy+CzQCRLBz0k+nDaSUiUSCJBYAgGJYiKjRKqWSyaTv+2NjY8PDw7ourMk1qBoYBVENLGB0nY+ub0Q0tMG2TQCT+ldE+Oa6Ll0szT5ev359cXFxYmIiOvnzopsYFW1vNBo3b9787W9/SwSdtm1///33W1tb2Wy2WCwyxgxu/LAn6aletVXeaJc3gnbZsQMOHmLIDeAKpAhwX4X18OO+4JRUzGSAUgpgiLZlOY4D3AShwPOVCFQYiNBlEALjyBkAMAkgFEhmGLZpmkrJQHmgPF8GJhgWAkMDkQlACA0JCDwQIpQKuVIcGSipVAhKOlx13Fpzb9VK5OzkSCxeAAPCfTH2ty9R9RbtnXORA7HP2traf//3f3/66ad37txZX1+vVCoDG9OTNjQ0pMn9B0IG7T6o6P748eMvv/zyj3/841dffaWjUepcx+PxXC43NDQ0NDSUyWTIn1Lq7Xleo9HY2dnZ2dnRbQeiO7x58yY5DkScm5sbGhrS9XtN6HAMRp9qtbq2tvb48ePV1dVOp0Nzja7r7uzsNJvNoaGhgSbMi0z2DfrYRormBnB8B0PFgZ1od0xEYVGok74X0X/SIlD2TZXEXq9H0avulRGg5+jzpwPRltQbYRGN31fJc49nY2NjCwsL09PT9+/fJ6I8yiHa7fb6+vqTJ08uXbqk+9pH3N/ouTWbzadPn1JjkACthmE8e/ZsfX393LlzlmVJAElUFRCA9ITb9DsV5TVM8DmETAkEySAynPLiQZVDV5X6eoyTQA2TCkJB6TYDRACpQAJKJYUiVL1STEiT5GcUKsUUM5jhgBMzgLMQQ4koAYRUkoHkiIgsoLNSCiUAJ5lDJVXoIgqUraBX8Tq7sWAMrCxHWyn5jlcj3zkXSY8fPW++79+7d++zzz77/PPPd3d3CRxHoYFmDuecE35laGgo6iLheVoEqiWVy+Wvvvrqd7/73Z/+9Ke1tTWdj9u2PTo6Oj09ffr06enp6VKpVCwWycEROK7T6ezs7JDPevTo0ebmJoGZfd8nGm06N6UUsSTQA6yblcegzqWJFBorphi51+vZtl2tVslHD0SIh5ruirTb7WazSZ4FAGjEWw/P6LBxoJukjfBPABAEge/7hKzEPuUt9It9Ud4K1lcGpvy03W5rHknaktrxUZqfQ41OmHarW/w6XB3w6ccYGH2RJRKx2dnZxcXFb7/9dmdnRxcrXNddXV29cePGxYsXC4UCVSSP3hXNv9PrgYBl9G0hoEKz2aRBVUSUEpCDkoDKA9H12tVefVd06zYThpTERgGKgWIKflDMej1TBkiGaCCzFdoCDQWIDAGVghAhBBVSNVhKGYa+Ep4hA1LRlYoLsEMjwdF1Q8mZ4pIhICrFwGBgIwq1r6fNJAIqQ6DkCgBDAGFxDGTHbe+061vx3IRlZhUHQP6Oj2m/cy6SnlIKQDY3N7///vsbN24Q9ZZGvRD013GcdDr9wQcffPzxxx988MHw8HAUIaQHNvQD2W637969+8c//pGyG/JchCwZHx+/du3a5cuX33///ZGREUq3KYoEgDAMu90u9WqePn36+eefU8uI+GaUUtVq9dtvv02lUpzzYrE4Pj5OrR4deR0jiiQYZrFYzOVy9Xo9CAIazSZI4ME27kCTSiet5F7X1tbu3btH/N6ZTGZpaYla2LrkOoDMH9gzcaDV6/Xd3d16vc4YKxQKpVIpn89HR7wHPJSOFgm4GovFaGpTN74zmUwul4uy7R80WsMB6LUe34S36haj5vshkR4tLi5ubm7WajXtrBuNxv3792/evDk5OTk7O3v0+y+K/3cchwYuq9UqLQVRE9E9ZYwBggJAJiH0wGv3WuVuoyy9tsORKHLJ9TDSUwB47VlnxUFhqEwBBpgJI5ZidkIxhkpI4QrpCemi8kAFoKSQgQg8FXZQ9gAkMJPxBLeLLByG0PDCnoHAmWIgDBAMGAqGIBXKPsk5E8i4YgIlA2BccUNK7Lmdcqu6mcrvWPEhsAw0Yicu8vVMZy7Uq2k2m1QM0rMlFMUQFnJ2dvaf//mfz549u7S0pJVMol4SInJRm5ubX3755fXr11dXVzUDWDweX1hY+PDDD3/961+fOXPm9OnTVDujhxD7RIQEigSA6enpfD4/OTnpOM6DBw82NzfJcddqtVu3bhmGMTExkclkhoaGXNel8zleGoiIIyMjS0tL1Mon9drFxcUzZ87QUDMc6FMPeAp6N3Q6nY2Njd///vd//vOfSfx2ZGTk6tWrH3/8cSqV0j13jdaO7k0HfUKIra2tGzduXL9+fX19nTE2PT390UcfXb58eWxsLIqfh36IFx1edhxnbGysVCrdvXsX+1yQw8PDk5OTNBT0oug1enV6A+K/oNiTrvGlg9LHM2r6X7p0iebZdbhNQzvffffdmTNnxsfHaez9iPPXqxqLxRYWFi5cuEAM7SQEcu7cuYmJCSqjM0YoxwCEG3QbvVYt6DZRBBYnODYI2I8fAYFTfvqCSPLQWqRS6IemQFtYthnL2akhI5kRhqWk6PaartcKgw4o38BQSggDN/A7oVuRosQhADuRTI9l/Y6R5DJs+J0eBK7qdcNePfRbSgQKBUOBEAKSvCwD5AoVV0whMJCAAUgVhs1ue9dtl1Nei5mZvkT5u2vvnIv84cwMI51Oj4yM5PP51dVVHTI4jlMqlc6fP//RRx+dP3+eUuxUKkURk/awUfC5UoqKhtevX19bWyPFFQBwHGdubu5Xv/rVP//zP7/33nvpdJo6ALopoae/dVOCKLNGR0eph1upVEiJRSm1s7Nz48aNxcXF+fn5oaEhzXFwvOfWcZxTp0796le/ymQyKysr7XabPCbld7r6eej0EURKkM1m85tvvvntb3/73XffNZtN3/cLhUK73R4aGjp9+nQqldKiNAMRaHRXQog7d+58+umnn332GaFVRkZGXNc1TZOudKArEh1JllLGYrGZmZnz58+TQEIYhkNDQ2fOnDl79iwVVY9wMZocSJ8M9AudA8iwYy/1oWZZhlIwPDx89uzZmzdvPnjwgDIGGlStVquky+i6bjqdPnpXem2TyeTFixeFEMVicW9vj16oNBm5j8RQISADCFXYabeqvXZVBa6JkispFCjchxEqYABSHuUhDzcJRqgcNNN2Ip3MjycLo1YiK7khAr/RaridhvA7KD2DK6EUhL7wO+3WdiIzHE/NADqxzOiwbWXCohAtJoXfbnZr253ahttcV249DAIDAmSCKalQgmIKmVIAyDiwUAZMCiVCkDx02267JvwO4wKUfLdLke+ki+x2uxoOMj09ff78eeLOoeR6dHT07NmzV69evXTp0vT0dLFY1GQ89EAOlPAR0fO8hw8ffvHFF3fu3KHgjvLrhYWFv//7v//7v//7a9eu5XI5XarTD/xBVDPnnNRRfvOb39Cw8M2bN5vNJgC4rru9vX3jxg1ClesA7XjPrWmaExMTlmWNj49XKhXP89Lp9Ojo6PDwMD1OOlg+dJSNHLoQ4unTpyQPTakiTaBvb2+TmqDu5ESXDp6PImlZaEJ5ZWWFvPPKysrt27dPnTr1ySefDAAkybRmA2MsHo9PT0//6le/SiaTT548CYKgVCotLCzQvOOhGM/ofjjn1C5rNpue5zmOk0qlLMuibwhBnV402v+GlkgkTp06dfHixXv37t24cUMIQVlkEARUgKb85ogQUtd5AMC27ZmZmWw2Ozc3R1Hk0NDQ2NiYrjYEwldcSAgCr9tq13rdFoIwkSkZokIAUEhT2URrdpSK4KGnpIDH0sNmYig5MpQam4sVRpmd8BRTUjTaDdFpCr/jqMBkIBBAeMJvNxpbdno4FquiEwOWiCUdm2el6pkIwm17mc1eJtOpGu3amteoCK9jQEik4gpBKmJlY7gfqQhAyTCUQbfbrrntmpnpgZ16u7fsrdu76CIty6LHPpVKnT59+te//nUsFtvZ2QGATCazsLBACgSlUikej/fryqHWv9bfSOiP5Xmet7Kycu/ePcJgA4BhGMVikULRpaWlTCajMYza9eiGqXpezJeCytnZ2Y8++qhWqzWbzTt37tBT6nketSyr1aqWizrec0uodeoaab5rGq1hTCPbfkDtDJgGJN6/f//+/fvlchkiw52+73ueR+ccJV489Gzp977vt1otIkMiOCo5LIryaMuBCmmUMGl4eJj4FsmzpNNpqmbqiaMjcDPdbndnZ+fJkydPnjxptVokwfbBBx9gX8WQjnV0tnsMk1JRieDs2bOLi4sbGxu7u7u6H4X9uc8jaH4AIHqzaPVodLXRaNi2nUqlnme/l0KFHDwZtMNuXXgdrkLFIAwF8v3WMEMAkDR/gyC5EqCYQB4yUhlkqBAUM9BWCApAogSUCgCVEUI8nZuIFyYKpbH48CSkigBGGHZl2Ja9mvRbMhQCQCGXKJlyVdgK2rtea7OXeGZKxc0cc+Kc2xwQQPEEj8eMWNKxEyYaphAyDLpKWkB04hgSZAgVKOAmjysImBIcMAy9oNMI2lXotcAuvsVb9pewd9FF0pdGKUXTZvQmp8QklUoNDQ2VSiXCaZMHjH5rBzgX6Au6t7dHbWjqQRNMcmpq6pNPPiG+nGiXHPrlS3rePM/T4x/UmiRfnEgkpqam3n//fXpytre3KWqr1+vff//9J598MjMzA4fBoV9rEainEf39QNc+KiKsh3Zo+kVK+c0339y7d+/x48fUiabLpI4NARKFEAcbygP9B9pbOp2mGWfP82g4J51Ox+NxzV0UbWrTb6LnRpiB4eHhZrOJfQILy7Locrrdri4lDxjVo7/55pv//M//JGqJTCYzPT1dr9f/8R//MZFIuK5LfCJBEGj6yLdkkjGeSiVmZqbOnTuzsrLs+66U0Ol0Mpn07OypfL7IuckYYe+fA1dGTb8AKPwnvCcBZuH594rBDQW+9Dvd2pbf3DZVW6EXikAZXCEgKFMGqCQoqQAFGkzJhPTCEHpm0kikwEki2paK2ZhAERMKPBYIHqApuenYPAssmSxNmom8lcqDlQHpQK/jlbcaeyth5YlsV5hhMpbyMZQYcMNH2TB6RnP9QdjtpAqzieQkM9IGs8DghmPwRAzMFGbiNksV7CHkznq7xzxE1VUggPU486mBriT6gWFyA2TAgHEMRa/mN3YgaEPoS8N5aZFkoIX417R30UVCxLPYtj05OUlIaeyzv0TVoPT7fGDttBPpdrvb29sbGxvVapXgx4iYy+VOnTq1sLBAgQxtSRklZYgUbBLaXKvZaDAgTdfmcrnJyUlK9iuVCvWOq9Xq1tYWCXu9CiLkbRm5fh3acM7L5fLy8vKDBw92d3cJU0JrRQl7qVSiFnwUsH1w/gT6jelTp04tLi5Wq9VKpcIYo97RqVOn9JpEW7c6Q48GubSAuVwOnh+RJMrIF10X5fj//d///dlnn9GFcM6Xl5dpWJ7SCH1r3vpq09dgZGTkypUrFEK6ri+lHB4evnTp0tzcXDabZQyFeDs5PgIwUCL0hNv23Ybyu0yFAiXqKBslKoEgJDAAAxQTylSGifEhMzth5YqWnXZk3IKkgzkB6BpuyD1lhtxwHCggS9qZDLPjYNqACrp1r1V2Kytu9YnqbKJoopJCGIEKpWIAwFCG7YYKgjb4oWx3mlWGaRsTaFpWNm67OadgGmaSW8PKltwZspyc8noKAgABKAAJ6GmB4ghcAgAoAMakQOFi2IOwC69Jw/HXt3fURUJkeozyzYNIFIKVRUOVQ7+mnU5nbW1tdXW10WjoPWez2VOnTs3MzFCMppuV9LT3er1KpVKv15vNJoVLxWIxk8mwvjozbUZUsiQuSqqkdLiNjY3V1dV6vU7UZ38hVMpB00chkPP29vb9+/eXl5eJlUOHycVicW5ubm5ujsgTX/R+1qdNt+Ds2bO1Wi2TyWxubhJHJJU7KMQ+uIdoaeKI+6uLni/yboi4s7Nz//79Z8+e0UuIeiYPHz5cX19fXFxMJpPa0b9F05hZIUQ2m7169SpjrFQqdTo9asefPXv2zJkzmUwK3gB4FH0n7b9dFASe3+u0vW6Xhz4DQSE6NX4lMAYCFANkACxE0zWzEMuzwmxibDY+VErEszbYoOKgUiagw13gHhg+MBNUDlQcTAdAguhBZ7fT3GrUntV3V3qNzcDbsyHgTIpACsE5t4AZACglBJ4b1Hfbrs9YF1XSQocblp1NxfIjBYyniw4zY1Ysk4rl2/FCq7GLiACogCkFuK8yxqhgoy82DEPfd1UQvNutGoB30EXqXEkXFuF5hQbajOpQBJU4Ym/0ONXr9Xq9riNEorohnTwqpUUr7r7vP3369ObNm8vLy3t7e5Zlzc7OfvDBB+fOnUsmk4R/JgkXy7IoIiNl1Ha7TUdsNpu7u7utVkuruxwjunndRy4aiCFivV5fXl5++PAhzSPpGis18S9evDg5OZlKpXSv4+C66dIkzZiPjo5+9NFHCwsLFEUODQ0VCoXR0dEjqOeOvoSjHag24vHsdrtRPS/TNMvlcrVaJfDpS6cAj2EDUIF8Pv/+++9PTU11Oj0NAqNJ+eMd9tCaL6AEJaTv+W5XBCGXinOkQZcfNgOmUClABRiiqey8k5lJlM6nRk85+bxtxwA4CAsCB0ABc4G7wFxQDIQDwgZXgd+B3lat8bRee9RsPPVaW8JtctkzuMklCokINjMs4CwMpeOY0vfcwBeyyRlD2ZOCAzDPj3uBa8ULqWQRY0kwEzE7l4jn22gicKWYUmH0aQUNYmUKQIYi8APP81znlVfsx7J3zkVCpJ2qH6EjuJ2PeA61yh1xiWOfh4Zy5OHhYap/UfBIcEuKWb755pv/+q//unfvXrVaNU1zbm6O+FkXFhZ0wKIbRDRorBHOVLVst9tRku2/gmFfINu2bSHE8vIyqdRSbKvpi4jGjVgYDka4UT2fKHCHOlRTU1PT09OdTocxlkqlqJk+MMt0qHiOVr+gUqkOHl+xbkjfBNZXqaXzrFare3t7zWaTRgbgbY8hRmFMdLakodbreXSN9Hr2/fAtHhoVgAyl8KQIGEiTIwMFSoDEvi7N/lYKmAQm0AogGYuPxgtzsdwM2E4AygwCCAUIH5QC5oJwA+zJUKEvzaArGt2wV2u1n9bbj1vNR73eBhNNE6SJjEtUIZOCMW4CM0NQbuhz01IKQAnTkI4RMsmU6IWhVN1OwLnXLIfdjmkXQJmcJx0ni2Ag6b4qBEBAhrg/BqSUApDIGEgVhj4V909c5OufUH+uLhrZ4fOqhNEE7YhIRHdsiGaGSo2amJqaD5rWQU/jlcvlBw8efP/990+ePKFQsdlsZjKZs2fPzs7OUgdWfwoAaA6HXKeOeT3P07T+f7VypE5Xqcn+7bffPn36NFoNJJE/AgNQPVf1JW702updDeyZnAK9q7TP0p/SrjZaxNTuUk9Va9VDei3pdxh1hA69KCJX10BX+hQlB51Oh0D+A3f8ba2nVouLst5qdh/OmVK6noAv4yk95GYBDIL/aboQpUSlGCr2PKZHIVPAFEhQIJEpZAK4EAA8ZjkZy0oHgK7b7DTL0O0aHiCI0PAEc0PVlaFSnmn4XDa7Qa/S7q13e6uuvyWDioGBZRhMGSoIw4CjMqQBUklfyRDQ9ZRUVtw2nEQ8xh3pCxEEPvgKgtBrBN1m4LbNQAJywJhppRlaCBz3k2v84fugQCkBIBkD2Aeh+GHon9Qij2n6GdO/OcjE9VLTbpRcpGa31ZNkAM+p9NGnPM9rtVqtVou4LUh/plKpaIUpPfgM/TqdTjYpbx04w79aD05XAFZWVm7duvX06dNot9eyrKmpqYsXLy4tLREjka72aucetYFL0MBJvaWGZEbfZwO4H+zPaFcqla2trWq16jhOPp+n4cVXSbR1/TH6ZSD1cHrtaf91jCnP1zXtgjlnfVpE9ib5vX73/9CNQWBKohKoJEgpVSABkP/wnEpgCAqAKWAAYDGwmbCVACVMKbxuvb33xC1vi2bXRKnMQBq+VD0hBHgmCxj6vu/W/LAmoMFlhwswmMFCgwlD0MvLMCRnnhQBk2ibIONJJ57MO7G4BX7YrdUC6QL4EgwRtoTXFoEPUgIzgNloxhXjTEbRtYPXC/1vhRCBVOFf+pa9ub1zLtLzPCp+HczX4Pk8biDSPGiqT92oZbxot9pRRh/yg06ZtqQPEkpZ94goW4RIDqgi5GxEcB2Ns/4KDzAdgsiHlpeXnzx5QsPUurabTCYnJyfPnDlD1JYD8csRDJvRzRBRKwgeWvsbADkppQhRf/v27a+//np5edm27cXFxQ8++GBpaYkUE48+Lg3nZLPZWCzmuq7+SrRaLYoiNbrzrXe09dRQlJQEAKQEpfY7KEEQ6rz7zY+INIuCCkGCDJUQqPbxZ4JYKxTbn4Cm7UHaFtpMGiBBCsAA/WbY2GruPAprVZMLNCUYApgnhULfgECBDIKwJ5VnmIJxppjNhUDFQeyPpaFt+IwLGShmW3bSVvlMLlcsJR2btasVt1ZXMkQVcJBKelK6CkIAAMYVM5FbCjQnMNOC3dFQcf/5RXnoi/kdtHfOReon8FA7GNq8aEvK3YQQNCdHDKwUUQKAlJL4cmjkVn+/Lcsi/cLTp08HQdDtdql7e/bs2VKpFGVa1NBoQmIDgKbOHsjco15AO9a3HlrSpUkpNzc3ac5SZ/qEHs3lcnRdUYFDqg9o0tmD00TRn6PgAYg0iA69KbSwjLFut3vr1q3/+I//IPa5eDxOvCSpVGp0dBQiDbpDzTCMRCJBJRF9JuSIfd/vdDokTU7l5qP9FL3tKN8nOGd0kF8jOg++MAacuI4lw1AQxQnxjBQKhXw+bxgsDGlKcnCOPrqYA7/vrzZC6AshDGQcWRiGttEXCOF68SmAZYgcASwu4jYwCCH0wFSGdEVvD9wtQ9Z5GIgwUBgCBqAUD22lUErf4gwNE9FQiiuwGJMKVSBczjlw9GXgC2BWwklkbDs3kpsZGhqCWNDYfbq9Uw06PQMRUYUi5LYCpsBEUAFIC2N2N/AMwwCf2jKIyKSkpA0NxhUwIZUUgr48BLFQvq/4D1Wavz7s8aX2zrnIt2X6WSXBPC35QlknMVC1223qm5MzpTCkWCyeOXOmXC5nMplWq5VKpUZGRs6fPz88PEysNlEZv263W6lUiKBMI89pNk5zcUfP6i9Xl6SAkdR47t+/r0fRyZukUqm5ubmzZ88SEayWz/6LGq1VtVp9+PDhjRs3Hj161G634/F4vV4fHR1dW1tbWloiyM4ROyGWIB1FarLLIAioVkivAaLvfen50Cut2Wz2ej3SlqD/6iFOPYlw5CkxRBBC7ezsrK6urq+v7+7uxmKx8fHx06dPT0xM0Hx3EFDs+drrjOo54iU8Ut5FkUArQSpBMCU5eBx7CtscfQShIJQoUCHHECR3A88Ai3FTAVeKK6VCJRAlWBCCVChDxdGIxZJDqdxYKjGcT41IJVrlve3daqvVYX7IlGSMSeUrpNEdlBwZVyBRMuzLYhPfD523BDAV8XDo05Z4EkX++KahQrFYLJFIkAgXABDPSqVS6fV6JGFI21N0kMlkzp075zjOmTNn2u12NpvNZrOkX6jjR53ju667t7dH6BNyiGEYJpNJGiLWNUrK0KODQDomeotOkzFG9ArPnj0j5T/sqwOS3z9//jxJXfd6vaNZGt+KUYjquu7u7u7GxgaBooi5fWtriwbPk8nk0Tm+aZqpVKpQKKRSqVqtpu9sJJTbr2dhnxf9Rbsi3qPt7e3Hjx9vbm5yzjOZzPz8/PDwMJEnaZDZ0W0fISTnrNVq3b9//w9/+MPt27d3dnbS6fT4+PgvfvGLX//61/PzpxAJhgGvSTQBADzqH0Fj8tW+6DRTsi97IAFBIAuYIdDmYANIgYZgIJhADAUXEuW+0CACIjAEhiZDhzNHMVsqJqQQEAAGHJVUoUJumql4ejybn84WZ51EDtxevb61tbNZrZaV69pSKFSKQShBSUTk+ykIokQ6Z3nwkhFRKQkIdB2wXyVDUCfCDD+qafU7mghOJBKNRoMeg1artbm5Wa1WiTNRi9aTQyGc49zcHEHT4/F4MpnUnpR8HDVA2u322tpauVwmCAtFZ4VCYWRkhES4oJ9SRXPA6JTe2zJSH1tbW3v48OHu7m6UczeZTE5NTZ05c2ZqaioWix1dwH2LRgci4UaSw6ackTFm27buFEfZzA6aYRjJZLJUKpVKpWq1SuLpYRhms9lMJkOTUTpVP1qzyPf9Z8+eff75519//fXa2ppSKp1O//rXv37vvfcuXLiQTqfV81o3L1jn/ay80Wg8ePDgT3/60+3bt9vttm3b6XS6Xq8TCGxkZIj2cYw4SSFTyIGEZfo+hQ6uf9LNbsFAAhdg7btIMCUyhSCZRCUlgkQA4AiESOS2HTPNhBHPoh0LwHDDwAvcQPlS+ojKtmOZbGloaDaVnQArB8Aru8uV8tNyfUMGHccALlAJgpQAAGNoMGbQ3CVTACiVEqCE+iGKZJEkmgqUTEn6PWfMeG3Ky7+6/ZRdJAVx9HqfnZ29c+dOtVql2KrVaj148IAEP4vFop7e0+6M2F411Jx2SD/rMNDzvLW1tTt37qytrbmuS/2fZDI5MTFBwGzsMydq2pvoNAWFP29rpphqf3t7e0QKGe0+lUqlCxcunDlzhigvEZEoDv/S60+12lgsNjo6OjMzQzqxNJ5M4osaQHM0Uw5xAJNU7N7eHq3k+fPn5+bmiG6S3m1Ht2vCMHRdd3l5+fe///3169drtRqpTbTbbdd1i8WihhYdnWhTeEg1lu3t7bW1tWq1Svl7q9WyLOvUqVOkYuQ4dhgK43UVrJ4f4qQWMANUQKhxoPiRRMAAABSTYCgwAUwAqcCSwCQAoFIgJRj7BOCICFwhZ8rkZjyVzsdyRenEu4FstjqtbkeFwjCMbCYzPDQay48Ct8Jmp10v72w9bLc3Ar9umWAiYzJUSqBUgMCQG4ZlMBPAAMlAhDIMESTNHQIq2BdChIij7+Ml4ZAy1LtpP2UXSd9127YnJiYWFxe/+eab5eVl8m5EHP3VV19NTk7G4/FEIkEPXhQwjM/LSWveGt0N397e/u67727durW7u0vT35zz8fHx+fl52i19UKM6NDmYJqN8u9hyesKpWgf9OoNt23Nzc5cvX56dnf0rJNdRozXMZrNnz55tNBqjo6O7u7uJRKJYLF69enVubo7O5+jCXxAEyWTywoULlUpFSrm2tkaMRx9++OH58+cLhYKun8DLNIKCINja2nrw4MHq6qouwty9e3d6enpvb29mZoZeVy+FH+g0gmqjFLBTF2h3d/fBgwfLy8vT09OOc1Tj8UVrBogKOSKnrJgOh4D9ELJPqqQkA8lQ7nd5FANlgBSokAGNcksAxUAKMJhEpahYycJQCgmKcyeV5YWRFFhW0zOaPRTcsZxMKhlLx8FA0apubq3W91aD3qYIawbrMlBSGigEqACQmcwEw7K4ZXETgIOUypfSD5RSuB9C/rBcA9eoFCIwg5uWdYwl+mvbT9ZFRvUG8vn86dOnT58+vby8vLW1BQC+729sbHz11VdDQ0PxePzs2bPUAT903Biel+UjJrHV1dVvvvnm008/XVlZ0XDoQqGwsLBA5S3dAcA+z7bneSQ3Sv2cV9RBfEUjfodMJkNaDuR/SYZUC09rVre/QplcHyKZTC4uLmYymStXrpTL5Xg8nk6nJyYmxsfH9ZIe4SXpjTI8PPzhhx+mUqlyuUzq29PT06Ojo6Tp9ipkuoQ3aDabhG9VfUVZTTvS6XRIa+xodl4pFWP7AiG6AkMvSADodruPHj26cePGwsJCNpu1LOO1l1oHj4ohcES+r1HT3w3pVQuijFTAVWgoaUoJSoJShlRMSlMKBSFXoSTfqphSiApQAbe4J9xqq66a9VyqYGZG0lbSSpggrLgZQwsgbPUqT3f3VnbLj93OpiM7Nusg95SSShjQn/IxuIXcMrkJzASFECoVhMoPUelb32/X4H7ZkmBSugrPuTmAkXg37SfrIqN6VbFYbHJycmFh4cGDB+VymSDH7Xb74cOHmUymUCjEYrHp6emoktQAIwNE0Oyu6/Z6vTt37vz5z3/+6quv6KGlz1JSXyqVNJ+u/mC1Wq3X67VajSRkc7lcKpWybVuTYr2hGYaRzWZPnz5NCSmJTySTyXPnzp0/f356ejoej9PQ5F9iovmgEfCeDpfJZFKp1OzsbKvVIgcXi8X043E06zg1rxGRVBwINkCoHQIYDPBdvmg/1F6naZzoLGOj0djY2NjY2KjVatls9qUOdx/Vh5BMJvP5fKFQWF9fJxdJseTm5ua9e/eePXs2MzOTy+WOARxQgCHykBkMDYFhv0GMgFICIDBBG4FkEDIFTPU5dBQwkFxJBAlKcSUBFSjSYZVcMlQyGXeabtCoVXy0pJUbtkZ4KpGIZcE3wLBBudDZq+1t13bWgl7ZxJ5QTTSEAUxJxhU3ABULpRJgMDQMxSxAExSAkCBCKQRXoCQTAPsCZAiAjCFnCkGFoHBfdYchmBw5f9dna37CLpJMSxhns9kLFy4QJqZWq1GitLOz8/XXXxPvJHGYj42NQcR9eJ6nhVko9CDH+uDBg9/+9rc3b97c3NykuBIRh4aGxsfH/+7v/m5+fp4KWxoGtLGxsb29/cUXX6ytrTWbTSLOuXLlytLS0ptfo3YNQojR0dH/+T//5/Dw8MOHDzVFjU6xo3XPF7kSqutFGTO1DyKnpuGHRyekemidsN+0DplM5tDBu6M7yFHU6tFLcfTAvlKKSswrKyv6Yi3L2draefZsrdXqBIGgTIKQ4YcaY0DUZ/l8/uzZs1988QVpFmluXd/3iYOOONUPfde++DwRAGOJZCJbbFXynW4lCHsmhIiSqHIFcIGcS2AAXEkBCkDJgZ2hREV9GoVKMkCAEJBxFMiY53aY5ByY22hvP33i9VixFCTyI5DIQKvVK280dtd6tVXerlm9jidbIu4FDEw/bYW2JYCBkNgODIE2544TSxeB2RBKgKDjtTyv57d8G9EwMAAIUSjGUDEpua24CIVhWgrBCwIr7cQL6dBAg/3Qt9Tf5IOJxY+Il/zJusgo0pgYYakiee3atS+++IIEWBhjOzs7f/7znwklvrW1RR2AVCpFLDgAQMhzghxWKpW1tbVbt27dv3//m2++If9IrY8wDMfGxn75y1+eO3eOgDWE3DYMw3Xdcrn87//+719++eWzZ89IQHllZYXkHK5du3aM69JMPBD59nDOKZBMp9MXLlwgsol8Pp/NZqkwquGQR+S25Bw9z6tUKoSLIvD2yMjIyMgIvHL4qUk2D8ptDzwJr85n8SZGVYhSqUTKFo1Gg+6v7/uNRmN7e3tvb68vp8FftisSoonTtNLt27ebzSZdDo26lsvlx48fr6ysFAqFdHown3h5TcC0DScFVkJyW4LFmAQVKiAAEQdgAgFAcgUMpGBSMiWYNJgEJgXN4OxPc6NCJoGBMli/FukFbYUmoB2GKDq8WTW4oYRopN1su1lt7G3Uyxteawe8lik9ZkKHCQCTKZMLG4WQEIamClBZTsJM5exkFswYKAmy6/rVXneXgeQSQ2BAcS3up+ZKKaYYAyEAkBncsnksxuNx3XaKLtE7ZT9ZFwnPOwKi5vV9v9frua57/fr1brdLL//d3d2vvvqqXq9PTk7Oz89PTU0RClL3cKSU9Xr92bNnKysrT548efDgwbNnz549e6a5zmzbHhsb++CDD37zm99MTk4SuTSx4BDQ5Isvvvj8889v3bpFlVCqXo2MjPziF7843qUdxAzpOmMmk0kkEgRmImg0bUCp5UufUprdrlarN27cuHfvXqVSicViw8PD7733nmEYhUJB9YmHj/42H5quHjz6SzvIb9Gotz42NhaFfwFgp9PZ3Nzc2trq9XrpdProc1EKlAJae1oWzXii6Tx6vR5Byi9fvhyNx1/pMtFEO5lIZmwn4Zo2BxMhUABcSQUggQHsj0ArAIGATAomBQsMJoAJwWTIWIhcoQmAEiwJHNBgwCRyhoFkIRohZ4JJ4YlAdXyoe77YrdetXrvVru90W2XltizwLUNwE0zJQXFLoomADCWi4gZaNhipeHLESeTBNCHwhWy67nq7t57AngLqnjFUDMDgEriSoARgACAVGsiZ5SRjsZwTzwr2rrugd/38jm1ReA3FLKlUamJiotvt7u7udjqdr776ynVdguPUarXvvvvu2bNnjx49GhkZIVLudDpNyTJ9ZHV1lYgY9FiOYRj0YExNTf3yl7/8p3/6p8XFRR2vUfRUr9dv37796aefPnz4kARk6K+VSmVvb09XxI5xXVGjRFUTtVEnga6a2ji02YB614sOUalUvvvuu//8z/+8efNmuVwmyclGo0GQeN3tOfqBH1j/qB88qAv0Uof75kaT9VQMSafTJKShlDIMk+idtra2Wq3W0NAQY1w7wcOui0azBSUQp06dOnfu3K1btwgsQRfe6/WovtnpdFKpxOs05RAUAzNmx7PxRKZrJiBsIXCaYZEADCTBrUnnSyFDAEkDNhgCSoVSIghkCFwiQW/YvtINqcsyxbhQjBvoSQVK1P2OhLDle6EI3dDvMdXlZmBggCCVVCYASmYAIJPIpAKOVpzbCTAyVnzItHOgDBBu4Nc9b0eEZck9KQh0hGxfQBu4UgwD5KHiIEGAYZmxlBXLgplANKK1l5Mo8scx8iAEQp6fn4d+E+Du3bsQoY0Jw7DZbK6trTmOE4/HHcchugrXdUl+jyQDAYDI0EzTdBxnYmLiH/7hH/7H//gf7733npZjpISr2+3eu3fvu+++owEMguMQho5KVzTcfeyLipLEDMQp2gcdRJ+9tPZXrVZv3759/fr1J0+e0Mtgb28vFouRzrjWsTjaokRn+gw1UFT/8xX70W9udBTSQC8Wi8+ePfM8TxcNqtXq2tpapVIZHx9HdKSUlmW8eFeAyIWQlmWNjY2dO3fuwoUL1IujtIPu7LHuL5PSZFygnYwncrFkxvNrKuyAUkwBV0phKIEpMACAwDVcMS4BQfa1EPYjOJpHBFCAwb53RAsgRKVkICUEgGBCiIpBt+m7HREqUMJUIUPJOONooAqlDE1EJQMlPIkgFPpMCRYDMxtPTyXS02AVQVrg+W675nbKIDuAgWKhQgBlcMVQcS6Bq5BBqFiogEngzHDsWJbbWWAJxk1499xi1H7KLlKHJ9iXbXEcJ5lMWpYVi8UMw/jDH/5AjP/00Pq+T2JSmoiBOIc0I2xU7Q8A4vH47Ozs3/3d3/3jP/7j2bNnc7mcbds0aEiziU+fPv3888+/+uqrlZUVrehAiOWpqalTp04RbfUx7OD84oDEq6ZSj5b5dEB3RO0vDMNer1cul8vlslaR7Xa7xF8bBIGedn/p4tPbgqQTu92unnSKx+PU/KVa7V8ncKCjUAliZGTEtu1erwf9Fkqn01lfX9/Z2fE8Lx6Pc37UdI1SinM0DKYUpNPp+fn5y5cvr6ys9Hq9TqdDffxisTg8PKx7fa9sTCJnYIIRS2QK3VTeb22JgJnMQOUDAijFUEqQ5GsAkCluCMOgQJGCRqKapDwXJYBkIIAhKMEkU4orqlYyZnCOwKSQMggtbkglpRAAVPrgyBhnTMlAKCVBAfCAsQAtNFNGrJQbWUzlJoEnwPODXrddq3iNmgES0BdMgWIIiIoxxbiSqCQyoUAqhcBM005biaLpFEBZ0K/8DnTw3p1w8qfsIg8SxJJrsG17amrqV7/6VSaTGRkZuX79erlc9jyv2+3Sa58CPXqG9W80vsSyLJI/PHXq1NWrVz/88MOzZ8/q9g4Ba0gK8datW//93/998+ZNYgyCfmyVSqUuXbp07do1aoC87kVpWJLv+91ut9freZ5HwmfJZJLAfZR0a5YHFRFBO/rLRwRINKkSTZaz2aym23mVx15H02tra3fv3l1bWyNKHlJVm5qa0vTm8LapcF9k1IsvlUpjY2PpdJo0b+nQnudtbW1tbm7SVD5jL1wiwkJwbgGAENIw+Pj4+MWLF6kc2Ww2adTy/PnzCwsLBEuKLiMcmUsqAGCmkhINx0kVY5mhxl4ygApnlhIhgKCMFFBKZAoAlGGElilMLgzCaxsSmORccpAGQshQSgwUC1ABIgc0UdmMcQSOClCaTAEAAnAUIARIyQQgYwwY0VL4yiAMkcOMFBhp00pa+eF4fjKVn2GxIVAcem6v1WyXa0G966ABQKGuAYoxZaACaq8zkBKUQKa4bcaz8eQQWlmFDrK3QCL3F7WfsouMWvS9RDNwtm0PDQ3Nzs6Ojo4+fPhwdXV1b2+vUqlosUAqtNM/idAMEePx+Pj4+NjY2Pz8/JUrVy5evEhS8cQ0o5QiP0LIxO++++7bb78l4GSU05DK/BcvXjyGi9SqzdRkX1tbowwxlUrlcjmqomazWa2GqLksoz7oCJcUj8eHhoYmJyfHxsbCMKzX677vk3S1VgbXSwovfuBpNfb29r7//vv/+q//un37dhAEqVTqvffe+/Wvf51IJEgK8aXn8xaNGms0QZ/NZqmmTFmB53l7e3u7u7uNRoO0y190OpxjEOzzRQohDIMVi8X5+fl/+Zd/SSaT5CIB4OOPP7506RIBLaNrQj8chbsEEMAMtNBJGU4GzIRER3GphI+Ec3zOGABHxQkUCQgKuFKWgBiopESuVCDAU8AQJaAJaEvlMLQs5EpKGQqUChENjjIEhQyZhQyBM0E6H4pzw/ARgeWs2JhpFVginx4ezw5PcCsDyCFoB24t7FT8ZkV0XDPFApASJSikYJYpQCUZKqEIiGRKHjPMjOnkwE5JZXHF4F2JFw+3n7KL1Olk9PHTsD5Cbsfj8Vgsdvr06Xv37m1vbz99+nRvb4/cIgWSVOYnCgZK0xYWFsbHx99///2JiQkqPupknI5ILOWffvrp7373O0IFUk5Hxy2VSr/85S+vXbumCShfy3Qlsd1u37t377PPPvvuu+/29vYSicS5c+fef/99x3GGhoYAwHVdPeE38Ewe4Y/oNXDlypW9vb0//elP1Wo1k8lks9m///u/n5qaSiaTlCNHiYRftB/f9588efLHP/7xD3/4w5MnT2gYsdfrjY6O0sA47rNPi5eug64b0IVEIZkqoglx9K5o/U3TnJycnJqa2tzclFIi7ks+0MT99vb29PT0wPLsM4Lj/s+2TZBPME2TMJILCwuGYZC6Nw2Vk/TFABPaq7wGFIBCE8AEM5HMjWSLk9Vevdvu2WiZCEoFQgqJUjEFjAOiAuaGQYoJZjHgUlpxIzXCGzWADAcvNDxknmIhAHBhgjIZWGpfZFZyJYlVAkCZjAOAREZdIEDGAAwmmSFjzGasxO2RWHIimRuN53OxVMKIxUG6qltrVh+VN2+L3k7KAkPKAOUPl6sQKeYFEAp6kglmp7LjI1NLqfw4cJspS/vH6OL81bRMXsV+yi7yUIsS9pAkdywWGxsbm5ubq9Vqm5ubFEp4nkfjt/TUOY5Donfj4+NU78/n86R+Q3ujlI0+UqlUbty4cePGDerwkH+kIDSbzV68ePGDDz6YmZmJx+PHoKqm4l2323327NnXX3/9xz/+8d69e91u1/O8zc3NbrebzWZLpRJ1tI+3PtlsdnFx0ff98fHxTqcTi8Xi8fhHH300OjqqwdvkmI6uGREz4+bm5t7eHs2f7OzsAMDW1laz2ex2u4SOOvp5OJR6R+veDDA+HO1qaScUSGYyGT0hCn2etFqtVq/XPc8DSL1oJweBTPS/2dlZasFprQ6lVBAI03ztGVNEAG4DJIxYzk4PG4m826sxEaISCJJa6lQbD1H2Qrcn3Z7qJaAHyMC2YrnRrAAzkAhhyAPBPYUBA2aGMQAjUFKiZCARFJf7KTAqCcAUggSmgAnGFIBEBFDcUJwnDHPUsked2LCTzBpxB2wJfi1o7zR3n9XLj7z2ExXsgmgGygUmALBfD903haC4raTFYwU7Neokh8FMAhhSwevTaf617WfnIrXpPDGXy2UymYmJCc/z2u02Na+j+oX07FFumM1miQtSC7lEFRo0g+ynn356/fr1RqNBXWzHcYhXbXJy8he/+MWHH344NjZ2PCp/Ou1Wq/Xo0aOvv/765s2be3t7VCddXl4uFAofffQR1UOPNwBLARo1NBYWFig05pxT80EviM7ij9iVlLLX69XrdSrFUurdarX00FE0Z3+Rq9V8E/D8iOHBNv3RNVadyxP3balUoqIt9GcT2+329vb29vZ2u90eHi5GB2z6EqeDFmV0ZAxMkwNo1QryYq/9lpICGAdAAwwbk/nk0ES7sdtp14JuAEqaTDFApkBJJUApFNLwA+4GvBvwHqLD0qkMn8lkRtFDAAiZkFwoFgBwI0gAGAG4igliwUAlEdTzLpJg5ygRFDBUwIRnGnHLHGJWEYw0MAD0wO96jc1m5VF541Zr7wl0yobqoHKlCIEjKLo1EoABSolSMBRog5V00lPZwnwyMwlmEhQoEADvOtnPz9dFYkSvihgfHMdJpVLEjaaZKXSXhpwOPZmUrYdhqJ8BouQKgmB1dfXLL7+8fv36xsaGpueiT42Ojl66dOny5cuTk5PkNI9x2vSpSqVy//79Bw8eNBoNgogTORvV13q9HuHeHcd53c6gxugQVTtdgi7L0pVGeTBftH9y06lUamhoKJfL0dAnAJRKpWKxmEqldLX0aFqNgcCQMu6DSEO6la9ysYSOpDl6wzDCcJ+qTgixt7e3ublZr9epQPlKQO/nt9Fskpxzw2DHIENUChBAAUMwwEnFc6OJ4ni7sdvxO1wKpRSwkCulQElAA4FhGIZ1t7dn+hnTyZlg8EQSrDS4FgCzmVRGAEyAMjBMAhjAAmACQEJ/gntQgxD74jMIABI8F9AAngIwQHjQ6/q9ahjstOqPWtWH7b2HfmvLEF3OQmYoKSVThiTfqgBAKpSCQYiGp0wzNpTKz6SLc5AYAmYJJeFdSqhfZD87F+n7Ps29RCUVNXRZK3np7aO94CjKDyLq3rqYtb29fevWrT//+c/Pnj2j1ifN/Pq+n8vl3nvvvV/96ldnzpxJpVLH5rVFxE6n8/Tp01u3bq2srJDboilJQjXFYjG6uuPBJrRLIpEy/XsNY4wW/vDFIr10MtPT0++//369Xn/48GEYhqlUanFxcWZmhlLs6Noecb1U56XVpveQPjpBU/EV+In1nSKO4VKpVCgUHMdptTq6aNBqtba2tgjeYFnWKyJPaBshFOfImA54gfzsa99k2huAEmByGxL5eG40OVTxujXlBoHnA0iGCkAwQAShek2/ttlwsspgiWLJtuI8NMA3QWUIFInSlxggWAAWSNWnVetz8mKf+psuA39QDtufHzQ4yBD8GgRB4HZ7rVqvsxe65VZlOehuQ7dqCNfAEFFJRIUGAGP7e5AAUjApEALGfIjFkiOpwikrPQ08rUIluWSgJSXeXfvZuUjyj/SzfkSjkx7R5+3gZIj+WeMc9Z7r9fr9+/evX79+9+7dZrNJ7FtE1mtZ1szMzJUrV65evUoCD8fu4SqldnZ27t69+/jxY1KnoSAoDMNisbi0tDQ7O0sasMdbn0MVIw4WBF/Kzk37GRsb++STT+jySQDr9OnTFy5cyGQyUUQnHJmzR1lFyuXy3t4eDY9alpXL5YaHh4kmI0rIdNC0ZyfWu1KpNDk5+ejRo1arowniXNfd2tra2tpqt9u5XC7qIl/FV0oJjO1PKGpgP2OvkUgigNEn9hHAAdBktpUqZoYneo0tv+4FXhtEaDCFkqRiBXe7slru4RoDrvx24KR9YVhBzMaWRAi5J0xPMA/A4GEaJb3z9gVp9YlH1r//y37rnEEYBj3P63puO3AbXrcRtOphr9FrbHHZMaRnAoAyhFIAXCll7MMhAUBKlBKVYBAyZsfy6fxkOjcFTgHAFkog9tj+RZ+4yHfJBtyf9omHpr0DUVI0JdQuUreYq9XqzZs3v/vuu2q1SmV72tI0zZmZmb/7u7+7cuXKxMQE1TGjgPbXOv9Wq3Xv3r1vv/2WSDQ0GolzPj09ffHixampKa1t63ne69LoUqEQn9NEldFTPfhuONRoY8dxFhYW8vn8xYsXfd+nvJtQNRCJ7I6CCvZFLIjD+Pvvv6dRJVKOXVhYuHjx4szMDAXRRwszYF/g0DCM4eHhycnJdDq9s7Onb0ev19ve3t7a2mo0Gtlslia4D+zncHdJzWvyj9CXPzyGcQaCZFW5KSBkYHAnmcoPe8NjzbAdtCsqDBARUIBSppSxUImw5+Ger1C0a9wwHbBtFefCVih9sytMNzQ6AIyHaS5tkJK8n+q7SCIK2o8VFHGGAyoJAApZANwPul5QE0FThR3ptVXXU55vhJJLQECFtkCmAAUyBlKiH3lglEIQDARiYWg0Vxw306OADkjgBrXjQ4QTXOQ7ZlFCquiTeTBuoh8GaF91MDLQDCGqiydPnqytrZEToSmaMAwdx5mfn//oo48WFhZSqRRECHqPYcTndu/evXK5TNQyhJQcGhqan58/e/bs2NgY6S/CyxR3D7WBIkN0BaILQnYEH5oWX6U21/T0NMlFkOoZ6dmSozw64NVrFQQB0bx/9tlnNK1Eclqat/GIrB+eH7XS3MPxeDyq6hUEQaPRqNfrnU7nYHlUa2fDgaAy+ie9PNSxOYYCIk0OMgAAQwBn3DHj+WR+qtesg1WWSgEPgLtMhEwCQ1TSV27drQZhY1sA2ugkrQSEHECFRkcYPcE8hshEjEtTih+Sac2ippCixn3/yCiTAKmAKW760hNhU8keB49JgX4IvrIMBwD3lw5BISiUoCRXkiupACWyEHmILADbg3Q8O+Okp8DJ0hUixcAqYPhXZcI/hv3sXOQRlKtH/PMge13UaZKmoOu69XqdlLsBgEjSEonE1atXP/7448uXL2vpGL2fIySkaf96A2LcILL07777bnt7m/Jr1ZfDzufzV65cmZubIwcEAOSgX9Q3f2kAe7DdfLA/8yqxpIqomxE2gFLdVwyfNWdau92+f//+Z5999tVXX9FA/dbWlu/709PTS0tLtLYHyxfRwjFEZM2JZXl0dHR9fXNvb09v0263b9++vbe3NzExkc1mdcxISXQQCM5JemXg+/DDf6O/5BwPvcVRbuMoyXkQBAYzSWcVERRKBM7MJBqmkw9zgfIDWd9+1PF2bYMZTAa+p7gpmQqwLUMXlWUgF7LZ6AEDE0AChgCC9AqVQqGMUBHbZNSkQgCpIqm3zrKljcqi2cb9uqHBwAAOoVSAQhlSolDoSSYQJZMQBzPw/QCEtGIeWK5KpAoL4+MXhqaucWcClAUc9l0qSI4GvOPA8Z+hi3xbNkC8SA9/MpnUTXAaZ56amrpy5crHH3+cy+UGNBHhZW0K6D/Y5FOIo+zOnTurq6vNZlOzBFFMdOrUqampqUwmo7ls4fmQ8ND9H2qHBVCvDV6hAJP42CnapasgFNQRkenB/dCW7Xa7Vqs1m00C9tO0ux7BDILg6Gh0oOWdTCaHh4fHx8dv3LgV3abX61UqldXV1bNnz0opByqJjLHXFX2lVwJd/gDCQd8+vcj7XCQKAIGBlCABUIGlAMxY3sm6qaGm53XduucHvpIICMxkQikGIQMJSijkgAwMBOHTrhAkV4opoCYQghAIqJhCiX0GIIWSkmJUFFHu/8wgNEBwJUmWS4JB0jgKAFEqhgpJOUxxVACKo+z1fNuIczveFoYnbDNVSg8tFkrneGyEWSnFoa9PFjI0EdQ7XoiEExf5hqZnCk3TzOfzc3Nzo6OjAEBiodPT0x988MEnn3xy4cKFZDKp/Z3++Cv2YTWd9erq6q1btzY3N13XjU4W5nK5c+fOnTp1KplMktc+ut08YFHGoAHE4puzCZBjogEk6EPf9erRgY6IpqO0abpeTFRJ0fa6epn+9UAIHI/HS6XSzMxMKpXS50asTjs7Ow8fPvz4448LhQIip5WguiRjx5T9oRUYGEaMBvI/lLYHS+IMlARgaCfj2SFDuhi2q6rtNv3QF0wqKYCjlAqVEgICUPviq4rEbehYSNPd9BufoWSKSZRsH7sIEiVDkEiT2T/8F0AJ9PfPSDEABUTNq5hCAMUIpgnA6c2BIEPVNQxbYsxXlhUrFkqLo+NLyeIoWHHgDEAqYKAUKkDggO96rwZOXOTbMtM0R0dH33//fWIm39vby2az77333gcffHDu3DmiM6Ato92Jo0M5HVbQA0zSUU+ePGk0GtBvZCulEonE5OTk2bNnJycndXJNxT6twni0DdQN4HlHeTwiP+3coe8WB+jaom2fowcZ6YdEIkFt6O3tbT3nNzY2NjIyQmD+VzkrjfFExHQ6PTIyUiwWSeNXr0Or1Xr27FmlUpmcnLRtc+A0Xtcomj74AqDXGPQ7ftEQUqGkaI5clUSGykApwElZ+dKQ6CK4NQ7tOgtCYKqHIBmiVIpJqaREFKhCg5sKGCD0CS+YQqTeCUcBfcT2D//FQ/4LIMMI/TEoiYoBSLYfV5LYIgMwCOgjUZpxqyu55xlGbCg/dm506r1kfhKMBHAOQHkPo8AVlAnw7ufZJy7yuHYQ9ZLL5S5cuGDb9u7ubq1WI5qsubk5atFAJHB4FWrbKOua7ueSwCmR8VDuhoilUunMmTPz8/NDQ0Okpg2vP+V66GlEoaDHFmsk70PLRZhNAAjDkHxHlO/nUNMOOhaLzc/Pf/zxx6ZpUhw9MjLy/vvvLywsZDKZI64iuh/oAy2pHFksFmmYutvt6s8StGhra2tpaSmRoOv+KZ0AACWfSURBVM47HCt2BADwfV8zmxB81bZtOjrVCugm/rC8z2Fx9tGLCiCUhsEZ2FmrMFFQQjHuC2x7gelLUD6AMpAhY8AkQ1QoEUKFIIEjKglMoQKktFtRt/oVvgBMIBeAiiqtlP6jRMVkv/eNijFgoAD3iX55YJgdn6FVyI0sjU5eShbnwMrDfk9GKQgAEMEANPYrnO/6cM2JizyuRWuRVGyitnI8HnddlwDqqVQqkUhQHncoRvoIFznQcK9UKg8ePLh37161WiXvSTFIMpkcGxtbWFgYGRmJhmlHgxYH7CBV30Cv/xjro5V/KKYm8PzY2Fg+n7dtW3N/0MZHJNoU99H4EzWjpqent7e3fd/P5/Ozs7Okxx0NxI64X9GFjcfjo6Oj4+PjiUSiVqvpkwmCgMqRrVarUMhRV/rYXtI0zVartbm5ubq62mg04vH4yMhILpebm5sbmF8AepHs//sHL6YQpGLALFASEMAZsvMyp6AbKCFA1ZQIm0oIJgODAUNgijgflVSAKAUYDKRABmAAUGWDKoAykuSyQ8I5RX7PJLZzBaRWuz+Noxgyxfb7LqhAKVRMoemztJXJZwtzpYkLyaEZsApgJIAbUnqUnaO+XrpE9a4Hkicu8o0s2gQgJBBNIkZjlhc9ukf3lOlJpv0T6+L3339PjBXE9auVBmZmZhYXF2leRQt4QZ++92hHqYNEfc7UYKVDvHT05QgTQjSbzbt373711VdPnjwJgqBUKs3NzRHFEbGEaTaKowt8dD5KqXw+T2RLrVaLmM2I146u9OhT1QhWHa/Ztj08PDwxMZHJZHZ2diiwBQDf90mqqF6v+/4YAHBuHNtF+r5/7969L7/88v79+3t7e6Zpzs3Nzc/Px2IxGu+BwRKqPOAyGNVBpQImFGAMnJF4wSqCFXOSHctUnd1OuxG4bSV9k4lASlTS4IAAgBKJXBKZIp8kGSrjMBd58MvBgDGOBqNJRBSgFWtRAiKAVMjk/jAkA8VC5tjpqcTIQmlsMZmbALsIRgKYDQiIDoAECPd7UfCue0ZtJy7ymKa7IhT+DBCvabowvf2AjtUrTteQwwqCYHd398mTJ+vr6+Qisc+hXSqVZmdnFxYWNO+Z7pkePfscvRCiKdLM6pqrXAMJj7E+3W53ZWXlj3/84+9///uVlRWl1MjIyMTEhGmaS0tLS0tLFPrRUY7I4gfAVSTATY17fJ50HV721tEuUvUVyoi9ichD9X6klJ1Op1KpdDqdvvKPAS8GjR9t5XL51q1bn376KbHtCSGIpfzcuXOWZdFdozXf//KIw5WlpQIhAIXBmDItA5JWltvxeNJh6NbX/b3NHlZF2EblGYpJqVAKSqoVSERAZIAMFFeKKRWtQ9LS6At73nUKMGhSBiWVNfvhLVOI/RYQBzAUcEDmYSIztFAYu5AcmQA7DRAHNACh54aWYwEAAt8H5KOOlE/aNX/jptHRNKBGGWKv12u3277vU5eA6L71locmuUfjLg/aQKq7sbFx584d3XilcDWdTl+6dOk3v/kNqR3orJ8+9VLko+d5xHZTr9d3dnZWVlbq9TrnvFAoUAaay+WI3u0V9WqiZhhGuVy+fv36N99847put9tdXV31PO/+/fsXL16k0JiGQY/IsiGCrNTzSIZhHNx+AEV06DJCvzukuUgSicTw8PDMzMzdu3dp9Jv20Gg0Go3G+vr60tJSIpEIQ6nHVhFf75FuNBpra2vLy8vLy8sU4z9+/NgwjBs3bkxMTBBuiVhI9k8VOdJ8C+l39QMuBEADwOAMOCgBgOgUbCcuQ2ElctIqgvGsXd10exVLgW1wP+hwpgyUBlNCKSWFVFKiVIor5Hp0Iso5gIgA+zAe+qehQIU+pe2EJgLDlMoIafBGKCG5QhNZzIklC/mRWHEuM/d3yhkBywFGbe5AAVqOtQ+5Vxz3kesBkFAiWu+4lzxxkS8xCjro+0SxRr1e39jYePr0abvddhwnm81OTU3pgZa3ZRpXSK6ZwMbEXEkTNdTInp+fJw7tYx+o1Wo9fPjwu+++u3HjRrlcRsRCoXDhwoVf//rXxKZ+DJlGAHBdt1qt7u7utlotYkgKgmBnZ6fb7QZBEIXyvFaUqjcm0M/rsnVEoTb0Jsvn85S/dzodiMxfkrJ2t9tNp9M0TSglIL52IImIrut2Oh0KYKnPppntdcD+3OhkBLQIIBH4fr2u7/8pZCPvGctP27E0mllmp5xEvlffDNt7gd9EyRQECgKUUimpUDKGyJBxE/E5rYjny7gU2e3fcaYQVUhNdoWoJAt9CBQLFVPMCiQHHrdimWSymMwWc/mSk5sBs6SMDHAkGKbcr2DunzfVLfv1SDqKceIifwqm+9etVuvOnTtffvnlzZs36/U6DWlcu3YNAChl+0sQJhuGQdTfJEtLWJ9UKnXu3LkzZ87k8/mjCcAPNQrHAKBWq928efN3v/vdN998Q1FkIpHY2dkZGxsjoKUQ4njUltBP1bUsGjlHeF5l+xUD6qgz1QTvh2750guPov1JhyuZTO7s7Ohp9DAMt7e319bWyuXy0NCQpsU9RqJNHHrxeNy2bQpU6W7q5j5hy3WzSPWjLFAMUDJgQKW+A/GxAo5gg51jZixhpc14tpsqtsrZ5u4zt7krew6orhCuki4DxZAAvELsj9zQUogfXKT6AWXRF8IGJqUNwEEqxaQyBFoCzBCtEGMCYmClYunhbH48WxjLZEtGMg+xIhgFtEwACRAoCKgbz4ArxX7wjwMu/922Exf5coumro1G4/bt2//1X/91586dbrdrWdbw8LDv+/SYaXzPm5uecWaMZTIZmr/e3t5eXV0l6qBz585du3bt1KlTlmXpYtarmwaa7OzsPHjw4OHDhyQtjYitVmt5efnJkyfVapX0Do+YxX6ROY4zPj5+/vz5nZ0dqsHRVYyNjSUSiWhB4BX3H222DLTgD3bhj76JGnqFiJlMZnR0tFAo0Ny3hnNSG5p0GkiJ4XjvPsIqXblyBQB2d3ellJOTk5cuXRoZGdFYTn3yUkpE1ie/IacpAYCrfsc5wlSGwBRSRGkw23bMuOWkbCdh2slevditbUHQCr1m6LeF9CRIBYAQKPCFCvorsf9mVSAYIHlGBUqpPk2RlIZhSMUkcCkNgZZgCWYkGUvZsaKTHM4UpnLDU/HMMNgZ4A4wB7gJCGpfpRb73fN+b+aHW8T+Vvo1Jy7yJabBzwCglOp2u1tbW/fv39/a2gIAKuSVSiUilXjzWZSDRknQzMzML3/5S9u2Hz58mEqliHjxgw8+IPbyYxyX3EGv11tbW3vy5Em5XKYese/7SinqV7Tb7aN7KUeYbdvT09OffPKJlPLhw4etVmtsbOz8+fMXLlygeWo6AY2Nf9FRtPeM0tB1Oh0igqPKg5a4OLqsSTZQ5E0mk5OTk5OTk/fv3yd+Yk2SRCTkhOs8lL3iVaxQKFy5csU0zUKhsLW1RfrAly9fnp6ejsfj+ur6b0TYn3hEgB9SVIEAz3dX9t0LKqYAAThwE7jJjFjCjjnxbDg0Wd15Jrym2ym7nVrgtoXXC0JfSdcwAqYCQI3+6dc9UfZp2BQVQwnFHhoGKEMqLtFRLM6sjBUrMiuXH56KpUqpwriRyIORALQATQCmmB4qpDiXo86j8XmIj7IVAr7bWTacuMhXMf30+r7vui6JN2i6szAM2+02qcccI9p6kenUntqvqVTqgw8+mJ6eXl9ft22b+gyE6aPtjzcY1263NzY2Njc3iduGZnLokqO58Ku4ngFjjBWLxatXr2az2a2trW63m8vlJiYmTp8+nU6ndSj30tGdgVFIIQRhDJ8+fYqI8Xh8bGxsZmZmeHgYXkarcWikyRgbHR2dnp7OZrPtdpveiEop3/dJNrbX61EJUgjqv7+em0ylUvPz8+l0ulQqERs8zT4SPjQ6IHDoTcQoJTgpHWqiHpCAjOZwlGKIJgADK8uzFk9mh2Kp0Gu6rUqvXfG6da/T8jrN0O9g0AEVSBkKKaQSlGv3OX4oGFfI9n9QYATMRtMxjLhtpUw7F0sOxdMjZjyfzIzwWA7sNDBTSFTADJMpAKkk4QsQEcDUXEKAAV3Pvv9UTCF/90GRcOIiX2raNdC3ORaL5XK5fD5PdLmkPTA2NkYpNjVV3spxB/JQwzAoHzx16lQQBKTd+CbUvPRZkt/a3d2lmRwtR5FMJqm0KoQIguAYhyAsPUmhkVYaKX0TlwctnabpPGLRBg7daDS+++67P/3pT9QfdxxncXGRFFmHhoZeGk1H2xS6Ijk0NDQ1NZXP53d2dmgd6Hbv7e2tr6/XajXfnzRN4xVBVAeN1HIymQzVJX3fp0XAPg0wPA+w3deRQQYQAMh9Adh9X0IL1YdwK0DF+yk4Q1SAJvAEMNsoxAyv7SSySW8k9Jp+t+W2m2Gv6TUbXPjhvvlChFKFitDmDBgDxoAbuM/GgrZy0txKO7G0FUvbTjaeKpjJAsTSIDmYcTAMIWSIihkyhAAAOIZEcrTvW/bj1AC4AAz7Ura2Qg4a8/Nue8kTF/kSiz5LjuMQ/nlxcVEpVa/XbduemppaWloaHx8n1dm3ddwo8JtmnOk0stlst9ulITZd5j+Gaybf12g0dnZ2aLaE1F/pQXUcJ5fLpVIpOugxlMK63S4N29GcOLWYsC9QTrgleIUBcJ2J0za1Wu3OnTu///3vK5VKo9FQSlFxNpfLEfTqiPt4qKMn/hFCBTiOQ6kALUW73S6Xy7VardvtplKpPg3a65mmONK64dFpzijdvcaK0Vmi0jIyAKh1FCjhh/3/6vS/Py6wvzGaABxsE8y4kQgM6Tt+N9Zth72O6nZUGIggcANP+IEXekoEAgRTABwNBsxkJuPMZAYyyR0zOcSdtG0lDCsGzALDATMGpgOBBGYBcGCSI52NDCHkwBAUYF/aGwAUSCXZAArzb6NVA3DiIl9qup2qqQZPnz79b//2b59//nm1WmWMnT179pNPPonmvG/L9COtfyB8oian0C2XI7LgAdmDKKNwEAQrKyubm5vQn1ympD6Xy01NTZVKJapyvkqKfTCYdRxHt7PpPPWYJkS4fgnVdEQtMuo76vX6nTt3vv3225WVFdd1qUr48OHDYrF44cKFM2fOkOZM9MZF72O0WKxDwjAUjDGSR3/8+DFRhOi13dnZefz48blz59LpNKEjj3ETo9wZGkgQBAHnXIND+43+fWJKAADgsE9LRicEz4Nj2P5vBqMwvt/nURagCdwBBoASLGkmwQQh2w0EBULGQYGQoZKohCD6X0SOSjE0kAFnHFAybsSygAYgAjMA+Q8kFHb/LH9otnMOJurgEPtO3AAGNqDU3gbpr0xf1zttJy7yJaZVEukrHo/H5+fnqcbfarWIRWJ6eppihGPU7P4KdnDgmp7VTqezu7tLMhI6IOWcZ7NZopslYPmrXFHUP5LrITg0Ze50uAG9sOgpvTTRptql7/vtdrvVanU6HT0v2Ov1arVauVzu9XrHwIeapgEA2Wx2eHiY8l8SAtI9K4qyC4XCm5RQoq6Z9kPvBlqiH1Ls/RkhXTNlEJ17PFBHhcNxmkTpiM99qg+XYkkHQIJSRr+lDQBGH0Cuk5X+D0woBhGo+aFnggeOftjf2Iv/9E7bO/c8v2sW/caQo8xkMuQiCQBMI3Gqr8n3Y5/vIed/KCeFlLJara6srGxtbekzp1gvl8udOnVqfHycZqiPdg3R+PHAqAboKcyBvsTrLhRFYcTn2Ov1fN/XO3Rdt1wu7+zsdDqdYrH4uuVCOpFCoTA9PZ3P52nEXktrVKvVzc3NSqUyPT1tWccBh0bfSfQbvVye53W7XYKdkkKZVhvXUeexC6AvPiGu8/eXFg4YoJKgAAe+RT8rO3GRLzH9FafiIJXzqfNAOZ3m+3sH40eA5xoU8HzdYHd399mzZ7VaLbo9DSBOTk4S04QeeXxpx0YX1OgQvu/rjrzmu4XXZ2mLfpAKHdT08DxPFze73W6r1fI873hLJIRKJpPj4+OkO6aJ2ghdtLW1tbu763leIvFK5JsvWn9NSgIAQRDUarXNzc1qteq6bjKZJOZKUuCBAyXaY+DJXrA9ghD73OIMfvhvn218n+ZcIYAEhQoVIqf3bPRGw+u/5P527V18qt8pi45n0VOq/0k/02bv/jdmgOPadd3NzU2Sf4ky7lCDfnh4mHgiyO+/CsmYpj6kfwZB4HkewaEAgES+Bsq1r4j61hvQmAq9nCgdJo9MOThJih/DKI4rFosjIyOJRKLdbkOfa67b7W5vb29sbDSbzXQ6zRg7hlyXel78RylVq9VoQGttba3VauXz+bNnz7733nvXrl0boOd428aAGYQW2v/vPjmuJOiQJjkHAEBGmcA7/9X+y9qJi3yJRUnJ4EjZr5dSFv4oFn0+9Q8UxTx9+nRvby9aBQOATCYzPj6eTqeptaL/+qLrOjSLD4KgXq8vLy8/fPiwUqkg4sjICHVUogTs8Gohif6rYRjkIrVnpIuSUnqe57ruSxVsXrR/RKQKbC6X29nZ0X8SQlSr1a2trXq9PjY2picRX8sGmlGu6+7u7n755Zd/+MMfnj592mg0crnc+vq653lUAiYmuuj6HGPA9MXGDvmvosgR+zk4+0Ey4cCdefu5/7ttJy7ylYz6vxAhGdPhj/Y70Urcu2MHczQqF+zu7j59+pSybOpOkAJPLpejLFs7zT4h2Ev2r2MfaqrcuXPn008/vX79eqfTQURyPZZlzc/Pm6YZHZh56eCg3oDmxwkQqv9KRQPXdT3PO167jM4hlUpNT0+PjIwsLy9Tzk5iZPV6fXNzs1wuu66rdRpeywZcZK/Xo0b5gwcP9vb2lFLNZhMAbNsmBnXLsuhFomsXb/cL8XwHh769fYeocH8Csj+ueWg/6N3Pmd6inbjIl1gQBBRMDUSRURjNQZGGd9moHdFoNHZ3d4neRgtvmaaZzWaJ8lbLUWkM46EWJc6h35CLvHnz5h/+8Icvv/ySQC1UQJybm5uZmYm2sF/qIgmlqNULKIoc6IyHYRgEwZu0y5RSsVhseHiYhl6iaXuz2dzd3S2Xy61Wy7Ztx3ltiOhANcb3/WazWa1WW62WVvHe3t6+c+fOrVu33n//fUQ0TVOXcd+2P9Jd6R9cJGI0qHzOgf6Fxmr/huxv46n+EU0/jdFp5eiXhgqUx/aPVFPTP9MPNAion1KNnjmGUYRI5087NE2z0+msr69TRqkf4CAISDBgaGhIQ2oIrHNEdEwP+cAve71er9ejXrnv+57n+b5Peb0m6YliAI7Yv6bzoA/GYjHCVOqxHETsdrvtdjsIAmISItP0QnCY2gT0vXOfC5IRhfvo6KjjOJqsjLL47e3tnZ0dTZ/8uveXvkI6HqSYmhiF9dtCSlmr1b755ptvv/220+mQagWdlf5WvB3DV+hkP79Kb/Pof4N24iJ/ZNPUNdRzaLVa1Wp1Z2enWq0S6zW5D3o4j+EoKRiMdpODIKD6WrPZpKEX2tKyrHQ6PTo6SnMm0QmQ13pOGGPUTqGEWiPD6Wk/NnyEPmUYhm3bGnmuITLkiPX7AF752e4nB2CaZjKZHBoaGhoaisViqq9JSyTk9XqdvPDrnnZ09eguOI6TTqfHx8cLhYLu+BGZJskT7e7u0oW8dDrzxP4KdpJo//hGD0MYhjs7O+vr6+VyudlsJhKJkZGRubm5QqEQbZu87s6j4S09bJ1OZ3t7e3l5uVqtRp9527aLxeLs7GyhUNAMC6/SgIq6AAp84vF4LpcbHR2tVCq1Wo2UvsfGxmhO+eAHX2rasZJeDaEIoe8ihRC9Xo/w5K+bGOqLMwyWSqUmJiZGR0efPXvW6/Xo2unV1el0PM87hnOPAndoh6RaMzc3VyqVaPQT+ySV6+vrX3/99dzc3OzsbDwe1yCqqLDwm9rPPSh8bTtxkT++0UNerVZv3rz5xRdfkFK24zhnzpz5h3/4hytXrhA1DpWo3uRA9Ji5rkugPBKb1c8e9WrGxsaiMgxHjAYeeiGUDsfj8YsXL+7t7cVisY2NDcbY7Ozshx9+eP78+ePFRNGTTCQSA1GkUopcJCXXxwtUpYR4PD4+Pk4r0Gq19N5isZjjOJZlHWNWXZvm7DBNk7js5ufn19bWer0eRfq+7/d6PeLuvHjxIjF1Roe7jn3oE3sTO3GR74T5vr+5ufn111//3//7f2kA2TCMtbU1emhTqZQWJnzdPQ8IjZHMA2mzUAipM1PbtguFQj6f19mfLuEd3VcdwBUxxhzHee+99zjns7Ozu7u7nPOxsbGlpaUzZ85oYUV4tSgyOp1CfBDkIgfgVuQiqWSp2+WvCDCQcv/M4/H4xMTE4uLigwcPiKbEdd1UKlUqlUZGRpLJ5PEKztFKqJ7OXFpaunTp0qNHj+r1uibWIwa25eXljY2NUqlE9Qrojycc59gvuOKIjNfR/z2xExf5DhhJXO3t7a2srGisImPsyZMnd+/e3dramp2dJbn6Y+w8ytRN2Vyj0djc3KQoSW9GagFTU1O5XE53kI+entZ28MQ455lM5ty5c1NTU8Sl5jhOKpXSPQp4nSxbf0RKSS7ScRw9rke/pwEbanNFY65XJCRHRMb2uSOvXr3aarUSicTu7m6v1xsaGrp8+fLs7GwikYhwTBznFuiUmXOez+fPnTtH6PFyuayrzO12mwbnCUrxF0Daytf878/dUZ64yB/ZKDOl+RbSNtF9T8J4UxeC4qZjoOT0iLTuCO3t7T1+/LhWq1FkSjVHy7KKxeLp06ez2SyNnEd3crR3PohNoZNPp9PJZJIKqdSooccenkc7vtT1R90c0QlTN0k3+slFkialFgR/9SiS/CP0c+2zZ89yzkdGRiqVShiGQ0NDRH+XSCSEEIy9dqFgoINE5VrDMBYWFi5cuHD//v1Op9Pr9TBiUTL2t1yLPLHXtBMX+SMb+Sm7b/Twa2lWAhLrcO8YgaTGlNA/aa5mY2ODhA00UQJFkUTpprNaejLJjR4dTg4A6SEixBoFlh+j3RQ1Arc7jkMvjOjbggp5x+g4R1e01+vZtj00NAQApVKJdBpyuVw2m02n05ZlBMFx8DcHEeDUl5+cnDx9+vT4+DiN1mgazUQikUwm6R2gE/C3SEV6Yq9lJy7yRzaKqhCxVCpdvHhxZ2fHMAzXdYUQly9fvnz5MpFpk3jpMfZPzsswDBrOq1Qq9+7dazQaFL3q/C6dTi8uLmYyGeplD6DBj2gTkXuliR29GSKSSLf+DQV3Gld46NjiiyyK0qfglM6TKHUBgK6OLkpP71ERllphR/j3qO5rIrHfpyqVhguFHPks6pL1GcwO2Q+d1RGH0IugLwQRCX15/vz5f/mXf1FK3bhxw/d9qnsuLS0Vi0VC8uvY+Ri3/kXL+fZ29bOwExf5Ixs91aZpkosMgmBmZqbX66VSqYWFhffee69UKhGP4fFqkTRqTc9wGIaVSoXEaoIg0P6RtFLHxsY0M/brWpTRh2IfDfCmAiJVEo5RKBgYQAQAEoDUVLXQhwTQSMzBVTreqyWKEtcQRXgeRKUZNo+3aJZlDQ0NnT9/3nXd6elpQoy/9957Fy9enJycjFafTzraP6KduMgf2XSFMZ/PX7x4cWhoqFwue56XzWZzudzw8HAmk9G0svD6Dzw96pQCd7tdkmylgIs2IHc2Pj5+6tQpcpHHexr1LJ12GXpwiOK447Vlo71yCodJ8jAakFJRstvt9no97cuirfDj3ZdDfz7o5Y/nv7Avs3Hu3LlisXjt2jXijiSpsnQ6HT3WiYv8Ee3ERf7Ipp9w6nImEomZmRlyNJRq6X70sYdSdC2s1WoRh7auDBIij8Au4+PjxMSlP/jq+4/2GXT32XVdqg/4vu84zvHEbMmil0+UaLrbq8um7XabJAxfpYv9igfV/XF9XVHJcn1rjh0dE31GLBabmJjQjSbq+w+o/fytMAD89OzERb4rRs+D4ziEaBn465s88DqUo0ZNtVqN9n9IiYHm4V7XP5JFQS30wWq1Wq/XCTRj23Ymk6Es/q2I6BqGkUgkyEXqbq9SisS1qal9vBmegYuKkgHrf+oj6l7W8dwxRviiXvQupOMe+xJO7K3YiYv8kY1gwzptHGBU03mi6mvLvC6TAvkLxpjruvV6fXt7u16v686vEMK27ZGRkYmJiVQq9brj2Pqco/+sVCo3b9785ptvlpeX2+12Pp9fWFj46KOPlpaWolQgr2U6giPGoHQ6fRBiSfrmWs38IDrydS9KN+W73S410BBxaGgo2j56k+AuiidXETGGgdOgSP8d5Nn7mdiJi/zx7SCiMBo76Ofn2Dun/ZCY187ODrFq6yTONM3R0dFSqeQ4zqEP/EtroAM0Daurq3/4wx9++9vfPn36lCS3FhYWpJQ03fgmS6Tz0Gw2S8S60ZPsdDrNZpPaUATtfJMSHsWJRIn05MmTcrlMk4iXL18uFArZbJYaUHoZ3yTQ09Ar2g/tllrzJ1XIH91OXOSPbJoZTJPx6PpaFEN+vPgO+q7Q87xarba9vV2pVFzXxb4kIfW7M5kMhZCHfvzVD0To962trZs3bz59+nRnZ0dK2Wg0ms3m2NjY1atXj+EiD4LMTdOMx+PU1I6ixEktiwZs4HnA9vGg157nbW1tXb9+/f/9v//39OlTwzByuVyv11tYWDh9+nQmkzleXULbANNoNISM/jJa/Tyxv76duMh3wgZG/QYSrjeJIzQwUEpZLpe3trY0Yw0l4LlcbnZ2tlgsHnqglx46mu1alrW3t/fw4cNnz55VKhXCXUopm83m+vo6DSO/ySrREjHGkslkMpmkcR1yIpQF7+7udrtdwmnSGh7bvzDG2u32jRs3/uM//uOLL74ol8umaZJexb/+67/Ozc3prhS8Pl+cPsSh5zZQizghQ/tx7cRF/sRNe4poZGrbNjlKRMxkMoVCIZlMHk/BMQrKCcOw0+k0Go1WqxUEQbSHo9Vm3soVcc6JW5d0FqmXEgQBVQzfylGIg7JSqayurm5vb5M6RbvdfvDgwdraWqPRSKVSpmlqbvYT+6naSQD/E7doT4Cap+RTGGNBENi2PTExoXs1xz4E9CVxGo1GuVyu1+u6skYeTXdsj2dRr0cdm2QySWOI+gJ93+92uzS7+eZhOGXB3W63VqsRCTmxmTWbTSJvpxgwGkue2E/STlzkT9/IWxmGkU6nSRKA/AjnfHR09MyZM5OTkwepK45hBE6s1+tEyqB5zzjnxLf4VmpqtLdYLKbLuPT7IAh6vZ7v+1EGozcBSFJmTQTDBFONxWKjo6NDQ0MUQr46E8eJ/e3aSaL9EzftpDKZzNzc3IULF7rd7u7uLiJms9mrV69eu3ZtdHSUipXH2H+0Fkkocdd1oV+e0wSOtm2/CR+tPhYAaAUbrfqgR1BInuGtiL1Q/3pmZubKlSvdbndzc5OYPi5evDgxMeE4jsZFwkm58CdtJy7yZ2HUljlz5kyn08nn89vb24yxQqFw8eLFS5cu0dzh8UIhjXohn0guUgucktvVPLjHHkCMGjlcGrCJnraUMgxDoswZqHser5cSj8fn5+f/4R/+IZ/Pr6ysMMZKpdLVq1dPnz4dFao9sZ+2nbjIn75pSZmJiQnO+dTUVKvVoo7H2NgYhZBw3L55NNkk5I3rupojhzZIJpOZTOZN3MoAmYVGj0fPgYqhVEM49uVEj2gYxvDw8LVr12ZnZ8vlMgDkcrmRkRFKvaNEv29l3vHE3k07cZE/cdPIc01XUSwWiX2HcOOEjtR1vdd91KOgbuoCD1QDaaSaJpHfMCHVgSEJatu2HeVzoyjybXW0VV9Zt1AoDA8P+74fBIFlWTQseKJN+POxExf5E7cBxKVpmgfJH6M8hsc4hCZ6oBGa0dFR6MuOEwFaPp8fHh6GY/kUvXNNN+n7fi6XGx8fz2QyjuO0221yWIZhZLPZ4eHhaBR5bG0sOlVN1DiwaNELOcm4f9p2cndP7E1NuzDTNIeHh2dnZ+fm5og+3bbtUqk0Pz8/NTWVzWaPAb08FM1OwgkzMzOjo6PkxVKp1PT09Pz8PPlN2vKk0Xxib24nUeSJvZFF5Q8ty5qYmLhy5Uqj0YjFYr1ejzF26tSpa9eunTp1KplMvpUjEspyYmLi6tWrUspEItFqtUZGRs6cOXPp0qVCoZBIJKCPVTypEp7YG9qJizyxt2MUS+ZyufPnz1uWNT093W63GWPT09MXL14slUok9Hi8GZ5oPKhJ2j/66KNSqbS4uNhut4eGhqamps6ePZtOpykpfi0F8BM7sRfZiYs8sTcyDa+hYI365oVC4cyZMwSQzGaz+XyeSDDfkA5H/8w5T6fTZ8+enZ6ePn/+fBAENLVNZN0DHzkeW/uJnRjZiYs8sTe1qA9SSiWTyVQqVSgUiFqCppiJz+J4YV00hIweK5FIJBKJfD4PAHqSh/zywMdP/OOJHdtOXOSJvanp4ZaocA3RCNHPmp3sGF5ygPZxQCNbCEGZu2b0OXT/Jy7yxI5tJx3tE3sj02OLUUAiKRESD5uOJY+tXTMQRQ7wDdPvgyDQ0J8fe0lO7CdlJ9+nE3sj06Fi1DfROLYeYT648avbAK5zgFVTwxU10EebPp8T3OKJvYmdfHtO7MRO7MReaCcu8sRO7MRO7IV24iJP7MRO7MReaCcu8sRO7MRO7IV24iJP7MRO7MReaCcu8sRO7MRO7IV24iJP7MRO7MReaIZhGDQUodWWifjvRNTtxE7sxH5uRiMPJDhMbM1Gr9ejf9BwmOaaP2FJObETO7Gfm+kxVuK0BwAjHo/TLARFkWEYUix5EkWe2Imd2M/NPM8DACEEabIDgNFoNHZ3d588edJsNklMnSSVTxibT+zETuznZoZhMMY457VazXVdIcT/D+ecTiBU8vNpAAAAAElFTkSuQmCC`
         _d.getElementsByTagName("html")[0].innerHTML =`
 <!DOCTYPE html>
 <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>学习通小助手</title>
        <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
        <link href="https://z.chaoxing.com/yanshi/css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
        <div class="row" style="margin: 10px;">
            <div class="col-md-6 col-md-offset-3">
                <div class="header clearfix">
                    <h3 class="text-muted" style="margin-top: 20px;margin-bottom: 0;float: left;"><a href="https://scriptcat.org/script-show-page/336" target="view_window">学习通小助手top1.0&ensp;</a></h3><div id="onlineNum"></div>
                </div>
                <hr style="margin-top: 10px;margin-bottom: 20px;">
                <div class="panel panel-info" id="normalQuery">
                    <div class="panel-heading">任务配置</div>
                    <div class="panel-body">
                        <div>如果显示视频已观看完毕,但视频任务未完成,可以点开复习模式,开1倍速,多刷几次</div></br>
                            <div style="padding: 0;font-size: 20px;float: left;">视频倍速:</div>

                            <div>
                                <input type="number" id="unrivalRate" style="width: 80px;">
                                &ensp;
                                <a id='updateRateButton' class="btn btn-default"style="color: white;background-color:darkcyan;">保存</a>
                                &nbsp;|&nbsp;
                                <a id='reviewModeButton' class="btn btn-default">复习模式</a>
                                &nbsp;|&nbsp;
                                <a id='videoTimeButton' class="btn btn-default">查看学习进度</a>
                                &nbsp;|&nbsp;
                                <a id='fuckMeModeButton' class="btn btn-default" href="https://scriptcat.org/script-show-page/379" target="view_window">后台挂机</a>
                                &nbsp;
                                <a id='backGround' class="btn btn-default" target="view_window">激活挂机</a>
                            </div>

                            <br>
                            <div style="padding: 0;font-size: 20px;float: left;">章节测试:</div>

                            <a id='autoDoWorkButton' class="btn btn-default">自动答题</a>&nbsp;|&nbsp;
                            <a id='autoSubmitButton' class="btn btn-default">自动提交</a>&nbsp;|&nbsp;
                            <a id='autoSaveButton' class="btn btn-default">自动保存</a><br/><br/>
                            <div style="padding:0;font-size:20px;float:left;">章节测试正确率(百分比): </div>
                            <div>

                <input type="number" id="accuracy" style="width: 80px;">
                &ensp;
                <a id='updateaccuracy' class="btn btn-default" style="color: white;background-color: darkcyan;">保存</a>
                &nbsp;
                在答题正确率在规定之上并且允许自动提交时才会提交答案
            </div>
            <div style="margin-top: 10px;">
                                    <div style="padding: 0;font-size: 20px;float: left;">考试功能:</div>  &nbsp; <a id='Button' class="btn btn-default">打开考试界面后自动显示</a>
                                </div>
        </div>
    </div>
</div>

                            <div class="panel panel-info" id='tikupeizhi' style="width: 100% ;height:100%">
    <div class="panel-heading">题库配置</div>
    <div class="panel-body" style="height: 100%;">
        <p>关注微信公众号:一之哥哥,发送 “token” 领取你的token,可以提高答题并发数量。</p>
        <p>不会的话可以不用弄,一之哥哥公众号有详细教程,可以看需求决定弄不弄</p>
        <div style="padding: 0;font-size: 20px;float: left;">题库Token:</div>
        <input type="text" id="token" style="width: 150px;" value="`+GM_getValue("tikutoken")+`">
        <a id='updateToken' class="btn btn-default" >保存</a>
    </div>
                                <div class="panel-body">
                                    <img src="`+base222 + `" alt="love" width="120" height="120">
                                    <p>🔔恭喜你啊年轻人,你被我恭喜到了<p/>
                                    <p>✨你还年轻,你把钱给我,你自己再去赚可以吗?(珠海科技学院的不准白嫖)
                                    <p>如果你觉得这个对你有帮助,欢迎您的打赏。我会非常感激你的慷慨和鼓励(*^▽^*)<p/>
                                    <p>❗❗❗每一次优化都是学长透支身体的结果,熬穿了不知道多少个夜晚,您的赞赏会是刺破黑暗苍穹的亮光照亮我前行的路<p/>
                                    <P>❗注意哦倍速不要改太高,不然会被学习通检测,进度会被清除。<p/>
                                    <p>因为淋过雨,所以想替学弟撑把伞。学长已经把路铺好了。学长都快点不起拼好饭了,打赏一下呗。<p/>
                                    <p>✨✨✨有的学弟很调皮啊,给我的赞赏备注个学长CPDD,哎,说来惭愧,学长现在还没牵过女孩子的手,所以可以赞赏安慰一下学长吗?<p/>
                                    <p>❗❗❗不支持把正确率修改为100%,因为这个是题库,题库很难保证真确率为100%,脚本定义的是正确率达不到用户定义的正确率就不会提交。(注释里面也写的很清楚哈)<p/>
                                    <p>学长也还有学业在身,如果加微信未能及时回复,请多多包涵哈!!学长目前准备优化 1.激活挂机的自动打开(已完成)  2.简介的修改,脚本的使用介绍(持续优化中) 3.刷考试题目(已完成) 【目前的计划】欢迎大家加微信咨询:Why15236444193<p/>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="col-md-12" style="margin-bottom: 20px;">
                    <div class="panel panel-default">
                        <div class="panel-heading">StudyAI-题库连接失败时可用于手动查题</div>
                        <div class="panel-body">
  <iframe
  src="https://cloud.fastgpt.cn/chat/share?shareId=healvo7h60bo7xdjk06b8ao7"
  style="width: 100%; height: 600px;"
  frameborder="0"
  allow="*"
/></iframe>
                        </div>
                    </div>
                </div>
                <div class="panel panel-info" id='videoTime' style="display: none;height: 300px;">
                    <div class="panel-heading">学习进度</div>
                    <div class="panel-body" style="height: 100%;">
                        <iframe id="videoTimeContent" src="" frameborder="0" scrolling="auto"
                            style="width: 100%;height: 85%;"></iframe>
                    </div>
                </div>
                <div class="panel panel-info">
                    <div class="panel-heading">任务列表</div>
                    <div class="panel-body" id='joblist'>
                    </div>
                </div>
                <div class="panel panel-info">
                    <div class="panel-heading">运行日志</div>
                    <div class="panel-body">
                        <div id="result" style="overflow:auto;line-height: 30px;">
                            <div id="log">
                                <span style="color: red">[00:00:00]如果此提示不消失,说明页面出现了错误,请联系作者</span>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="panel panel-info" id='workPanel' style="display: none;height: 1000px;">
                    <div class="panel-heading">章节测试</div>
                    <div class="panel-body" id='workWindow' style="height: 100%;">
                        <iframe id="frame_content" name="frame_content" src="" frameborder="0" scrolling="auto"
                            style="width: 100%;height: 95%;"></iframe>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
`;
        var logs = {
            "logArry": [],
            "addLog": function (str, color = "black") {
                if (this.logArry.length >= 50) {
                    this.logArry.splice(0, 1);
                }
                var nowTime = new Date();
                var nowHour = (Array(2).join(0) + nowTime.getHours()).slice(-2);
                var nowMin = (Array(2).join(0) + nowTime.getMinutes()).slice(-2);
                var nowSec = (Array(2).join(0) + nowTime.getSeconds()).slice(-2);
                this.logArry.push("<span style='color: " + color + "'>[" + nowHour + ":" + nowMin + ":" +
                    nowSec + "] " + str + "</span>");
                let logStr = "";
                for (let logI = 0, logLen = this.logArry.length; logI < logLen; logI++) {
                    logStr += this.logArry[logI] + "<br>";
                }
                _d.getElementById('log').innerHTML = logStr;
                var logElement = _d.getElementById('log');
                logElement.scrollTop = logElement.scrollHeight;
            }
        },
            htmlHook = setInterval(function () {
                if (_d.getElementById('unrivalRate') && _d.getElementById('updateRateButton') && _d
                    .getElementById('reviewModeButton') && _d.getElementById('autoDoWorkButton') && _d
                        .getElementById('autoSubmitButton') && _d.getElementById('autoSaveButton')) {
                    if (!backGround) {
                        _d.getElementById('fuckMeModeButton').style.display = "none";
                    }
                    allowBackground = Math.round(new Date() / 1000) - parseInt(GM_getValue(
                        'unrivalBackgroundVideoEnable',
                        '6')) < 15;
                    if (allowBackground) {
                        _d.getElementById('fuckMeModeButton').setAttribute('href', 'unrivalxxtbackground/');
                    }
                    clearInterval(htmlHook);
                    if (cVersion < 86) {
                        logs.addLog(
                            '\u60a8\u7684\u6d4f\u89c8\u5668\u5185\u6838\u8fc7\u8001\uff0c\u8bf7\u66f4\u65b0\u7248\u672c\u6216\u4f7f\u7528\u4e3b\u6d41\u6d4f\u89c8\u5668\uff0c\u63a8\u8350\u003c\u0061\u0020\u0068\u0072\u0065\u0066\u003d\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u007a\u0068\u002d\u0063\u006e\u002f\u0065\u0064\u0067\u0065\u0022\u0020\u0074\u0061\u0072\u0067\u0065\u0074\u003d\u0022\u0076\u0069\u0065\u0077\u005f\u0077\u0069\u006e\u0064\u006f\u0077\u0022\u003e\u0065\u0064\u0067\u0065\u6d4f\u89c8\u5668\u003c\u002f\u0061\u003e',
                            'red');
                        stop = true;
                        return;
                    }
                    if (isMobile) {
                        logs.addLog('手机浏览器不保证能正常运行此脚本', 'orange');
                    }
                    _d.addEventListener('visibilitychange', function () {
                        let isH = _d.hidden;
                        if (!isH) {
                            logs.addLog('挂机功能不稳定,不建议长时间最小化窗口', 'orange');
                        }
                    });
                    _d.getElementById('unrivalRate').value = rate;
                     _d.getElementById('updateToken').onclick = function () {
                         var token = _d.getElementById('token').value;
                           logs.addLog('题库token已更新为' +token, 'green');
                         GM_setValue('tikutoken', token);
                     }
                    _d.getElementById('accuracy').value=accuracy;
                    _d.getElementById('updateaccuracy').onclick = function () {
                        var uaccuracy = _d.getElementById('accuracy').value;
                        if (parseFloat(uaccuracy) == parseInt(uaccuracy)) {
                            uaccuracy = parseInt(uaccuracy);
                        } else {
                            uaccuracy = parseFloat(uaccuracy);
                        }
                        GM_setValue('accuracy', uaccuracy);
                        accuracy = uaccuracy;
                         if (uaccuracy >= 0 && uaccuracy<=100) {
                            logs.addLog('章节测试正确率已更新为'+uaccuracy+'%,将在3秒内生效', 'green');
                        } else {
                            logs.addLog('奇怪正确率', 'orange');
                        }



                    }


                    _d.getElementById('updateRateButton').onclick = function () {
                        let urate = _d.getElementById('unrivalRate').value;
                        if (parseFloat(urate) == parseInt(urate)) {
                            urate = parseInt(urate);
                        } else {
                            urate = parseFloat(urate);
                        }
                        GM_setValue('unrivalrate', urate);
                        rate = urate;
                        if (urate > 0) {
                            logs.addLog('视频倍速已更新为' + urate + '倍,将在3秒内生效', 'green');
                        } else {
                            logs.addLog('奇怪的倍速,将会自动跳过视频任务', 'orange');
                        }
                    }
                    _d.getElementById('backGround').onclick = function () {
    let backGroundButton = _d.getElementById('backGround');
    if (backGroundButton.getAttribute('class') == 'btn btn-default') {
        logs.addLog('挂机激活成功,您现在可以最小化页面了', 'green');
        _w.top.backNow = 1;
        GM_setValue('unrivalbackground', '1'); // 保存激活状态
        backGroundButton.setAttribute('class', 'btn btn-success'); // 设置按钮为绿色
    } else {
        logs.addLog('挂机已取消激活', 'green');
        _w.top.backNow = 0;
        GM_setValue('unrivalbackground', '0'); // 保存取消激活状态
        backGroundButton.setAttribute('class', 'btn btn-default'); // 设置按钮恢复原状
    }
}
                    _d.getElementById('reviewModeButton').onclick = function () {
                        let reviewButton = _d.getElementById('reviewModeButton');
                        if (reviewButton.getAttribute('class') == 'btn btn-default') {
                            _d.getElementById('reviewModeButton').setAttribute('class', 'btn btn-success');
                            logs.addLog('复习模式已开启,遇到已完成的视频任务不会跳过', 'green');
                            GM_setValue('unrivalreview', '1');
                            _w.top.unrivalReviewMode = '1';
                        } else {
                            _d.getElementById('reviewModeButton').setAttribute('class', 'btn btn-default');
                            logs.addLog('复习模式已关闭,遇到已完成的视频任务会自动跳过', 'green');
                            GM_setValue('unrivalreview', '0');
                            _w.top.unrivalReviewMode = '0';
                        }
                    }
                    _d.getElementById('autoDoWorkButton').onclick = function () {
                        let autoDoWorkButton = _d.getElementById('autoDoWorkButton');
                        if (autoDoWorkButton.getAttribute('class') == 'btn btn-default') {
                            _d.getElementById('autoDoWorkButton').setAttribute('class', 'btn btn-success');
                            logs.addLog('自动做章节测试已开启,将会自动做章节测试', 'green');
                            GM_setValue('unrivaldowork', '1');
                            _w.top.unrivalDoWork = '1';
                        } else {
                            _d.getElementById('autoDoWorkButton').setAttribute('class', 'btn btn-default');
                            logs.addLog('自动做章节测试已关闭,将不会自动做章节测试', 'green');
                            GM_setValue('unrivaldowork', '0');
                            _w.top.unrivalDoWork = '0';
                        }
                    }
                    _d.getElementById('autoSubmitButton').onclick = function () {
                        let autoSubmitButton = _d.getElementById('autoSubmitButton');
                        if (autoSubmitButton.getAttribute('class') == 'btn btn-default') {
                            _d.getElementById('autoSubmitButton').setAttribute('class', 'btn btn-success');
                            logs.addLog('符合提交标准的章节测试将会自动提交', 'green');
                            GM_setValue('unrivalautosubmit', '1');
                            _w.top.unrivalAutoSubmit = '1';
                        } else {
                            _d.getElementById('autoSubmitButton').setAttribute('class', 'btn btn-default');
                            logs.addLog('章节测试将不会自动提交', 'green');
                            GM_setValue('unrivalautosubmit', '0');
                            _w.top.unrivalAutoSubmit = '0';
                        }
                    }
                    _d.getElementById('autoSaveButton').onclick = function () {
                        let autoSaveButton = _d.getElementById('autoSaveButton');
                        if (autoSaveButton.getAttribute('class') == 'btn btn-default') {
                            _d.getElementById('autoSaveButton').setAttribute('class', 'btn btn-success');
                            logs.addLog('不符合提交标准的章节测试将会自动保存', 'green');
                            GM_setValue('unrivalautosave', '1');
                            _w.top.unrivalAutoSave = '1';
                        } else {
                            _d.getElementById('autoSaveButton').setAttribute('class', 'btn btn-default');
                            logs.addLog('不符合提交标准的章节测试将不会自动保存,等待用户自己操作', 'green');
                            GM_setValue('unrivalautosave', '0');
                            _w.top.unrivalAutoSave = '0';
                        }
                    }
                    _d.getElementById('videoTimeButton').onclick = function () {
                        _d.getElementById('videoTime').style.display = 'block';
                        _d.getElementById('videoTimeContent').src = _p +
                            '//stat2-ans.chaoxing.com/task/s/index?courseid=' + courseId + '&clazzid=' +
                            classId;
                    }
                }
            }, 100),
            loopjob = () => {
                if (_w.top.unrivalScriptList.length > 1) {
                    logs.addLog('您同时开启了多个刷课脚本,建议关闭其他脚本,否则会有挂科风险!', 'red');
                }
                if (cVersion < 8.6 * 10) {
                    logs.addLog(
                        '\u60a8\u7684\u6d4f\u89c8\u5668\u5185\u6838\u8fc7\u8001\uff0c\u8bf7\u66f4\u65b0\u7248\u672c\u6216\u4f7f\u7528\u4e3b\u6d41\u6d4f\u89c8\u5668\uff0c\u63a8\u8350\u003c\u0061\u0020\u0068\u0072\u0065\u0066\u003d\u0022\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u006d\u0069\u0063\u0072\u006f\u0073\u006f\u0066\u0074\u002e\u0063\u006f\u006d\u002f\u007a\u0068\u002d\u0063\u006e\u002f\u0065\u0064\u0067\u0065\u0022\u0020\u0074\u0061\u0072\u0067\u0065\u0074\u003d\u0022\u0076\u0069\u0065\u0077\u005f\u0077\u0069\u006e\u0064\u006f\u0077\u0022\u003e\u0065\u0064\u0067\u0065\u6d4f\u89c8\u5668\u003c\u002f\u0061\u003e',
                        'red');
                    stop = true;
                    return;
                }
                if (stop) {
                    return;
                }
                let missionli = missionList;
                if (missionli == []) {
                    setTimeout(loopjob, 500);
                    return;
                }
                for (let itemName in missionli) {
                    if (missionli[itemName]['running']) {
                        setTimeout(loopjob, 500);
                        return;
                    }
                }
                for (let itemName in missionli) {
                    if (!missionli[itemName]['done']) {
                        switch (missionli[itemName]['type']) {
                            case 'video':
                                doVideo(missionli[itemName]);
                                break;
                            case 'document':
                                doDocument(missionli[itemName]);
                                break;
                            case 'work':
                                doWork(missionli[itemName]);
                                break;
                        }
                        setTimeout(loopjob, 500);
                        return;
                    }
                }
                if (busyThread <= 0) {
                    if (jumpType != 2) {
                        _w.top.jump = true;
                        logs.addLog('所有任务处理完毕,5秒后自动下一章', 'green');
                    } else {
                        logs.addLog('所有任务处理完毕,用户设置为不跳转,脚本已结束运行,如需自动跳转,请编辑脚本代码参数', 'green');
                    }
                    clearInterval(loopjob);
                } else {
                    setTimeout(loopjob, 500);
                }
            },
            readyCheck = () => {
                setTimeout(function () {
                    try {
                        if (!isCat) {
                            logs.addLog(
                                '推荐使用<a href="https://docs.scriptcat.org/use/#%E5%AE%89%E8%A3%85%E6%89%A9%E5%B1%95" target="view_window">脚本猫</a>运行此脚本,使用其他脚本管理器不保证能正常运行',
                                'orange');
                        }
                        if (_w.top.unrivalReviewMode == '1') {
                            logs.addLog('复习模式已开启,遇到已完成的视频任务不会跳过', 'green');
                            _d.getElementById('reviewModeButton').setAttribute('class', ['btn btn-default',
                                'btn btn-success'
                            ][_w.top.unrivalReviewMode]);
                        }
                        var backGroundStatus = GM_getValue('unrivalbackground', '0');
if (backGroundStatus === '1') {
    _w.top.backNow = 1;
    _d.getElementById('backGround').setAttribute('class', 'btn btn-success'); // 设置按钮为绿色
}
                        if (_w.top.unrivalDoWork == '1') {
                            logs.addLog('自动做章节测试已开启,将会自动做章节测试', 'green');
                            _d.getElementById('autoDoWorkButton').setAttribute('class', ['btn btn-default',
                                'btn btn-success'
                            ][_w.top.unrivalDoWork]);
                        }
                        if (GM_getValue('unrivalbackground', '0') === '1') {
    logs.addLog('挂机激活成功,您现在可以最小化页面了', 'green');
    _d.getElementById('backGround').setAttribute('class', 'btn btn-success'); // 设置按钮为绿色
}
                        _d.getElementById('autoSubmitButton').setAttribute('class', ['btn btn-default',
                            'btn btn-success'
                        ][_w.top.unrivalAutoSubmit]);
                        _d.getElementById('autoSaveButton').setAttribute('class', ['btn btn-default',
                            'btn btn-success'
                        ][_w.top.unrivalAutoSave]);
                    } catch (e) {
                        console.log(e);
                        readyCheck();
                        return;
                    }
                }, 500);
            }
        readyCheck();
        try {
            var pageData = JSON.parse(param);
        } catch (e) {
            if (jumpType != 2) {
                _w.top.jump = true;
                logs.addLog('此页无任务,5秒后自动下一章', 'green');
            } else {
                logs.addLog('此页无任务,用户设置为不跳转,脚本已结束运行,如需自动跳转,请编辑脚本代码参数', 'green');
            }
            return;
        }
        var data = pageData['defaults'],
            jobList = [],
            classId = data['clazzId'],
            chapterId = data['knowledgeid'],
            reportUrl = data['reportUrl'],
            ktoken = data['ktoken'];
        UID = UID || data['userid'];
        FID = FID || data['fid'];
        for (let i = 0, l = pageData['attachments'].length; i < l; i++) {
            let item = pageData['attachments'][i];
            if (item['job'] != true || item['isPassed'] == true) {
                if (_w.top.unrivalReviewMode == '1' && item['type'] == 'video') {
                    jobList.push(item);
                }
                continue;
            } else {
                jobList.push(item);
            }
        }
        var video_getReady = (item) => {
            let statusUrl = _p + '//' + _h + '/ananas/status/' + item['property']['objectid'] + '?k=' +
                FID + '&flag=normal&_dc=' + String(Math.round(new Date())),
                doubleSpeed = item['property']['doublespeed'];
            busyThread += 1;
            GM_xmlhttpRequest({
                method: "get",
                headers: {
                    'Host': _h,
                    'Referer': vrefer,
                    'Sec-Fetch-Site': 'same-origin'
                },
                url: statusUrl,
                onload: function (res) {
                    try {
                        busyThread -= 1;
                        let videoInfo = JSON.parse(res.responseText),
                            duration = videoInfo['duration'],
                            dtoken = videoInfo['dtoken'];
                        if (duration == undefined) {
                            _d.getElementById('joblist').innerHTML += `
                            <div class="panel panel-default">
                                <div class="panel-body">
                                    ` + '[无效视频]' + item['property']['name'] + `
                                </div>
                            </div>`
                            return;
                        }
                        missionList['m' + item['jobid']] = {
                            'module': item['property']['module'],
                            'type': 'video',
                            'dtoken': dtoken,
                            'duration': duration,
                            'objectId': item['property']['objectid'],
                            'rt': item['property']['rt'] || '0.9',
                            'otherInfo': item['otherInfo'],
                            'doublespeed': doubleSpeed,
                            'jobid': item['jobid'],
                            'name': item['property']['name'],
                            'done': false,
                            'running': false
                        };
                        _d.getElementById('joblist').innerHTML += `

                            <div class="panel panel-default">

                                <div class="panel-body">
                                    ` + '[视频]' + item['property']['name'] + `
                                </div>
                            </div>`
                    } catch (e) { }
                },
                onerror: function (err) {
                    console.log(err);
                    if (err.error.indexOf('@connect list') >= 0) {
                        logs.addLog('请添加安全网址,将 【 //@connect      ' + _h +
                            ' 】方括号里的内容(不包括方括号)添加到脚本代码内指定位置,否则脚本无法正常运行,如图所示:', 'red');
                        logs.addLog(
                            '<img src="https://pan-yz.chaoxing.com/thumbnail/0,0,0/609a8b79cbd6a91d10c207cf2b5f368d">'
                        );
                        stop = true;
                    } else {
                        logs.addLog('获取任务详情失败', 'red');
                        logs.addLog('错误原因:' + err.error, 'red');
                    }
                }
            });
        },
            doVideo = (item) => {
                if (rate <= 0) {
                    missionList['m' + item['jobid']]['running'] = true;
                    logs.addLog('奇怪的倍速,视频已自动跳过', 'orange');
                    setTimeout(function () {
                        missionList['m' + item['jobid']]['running'] = false;
                        missionList['m' + item['jobid']]['done'] = true;
                    }, 5000);
                    return;
                }
                if (allowBackground && backGround) {
                    if (_w.top.document.getElementsByClassName('catalog_points_sa').length > 0 || _w.top.document
                        .getElementsByClassName('lock').length > 0) {
                        logs.addLog('您已安装超星挂机小助手,但此课程可能为闯关模式,不支持后台挂机,将为您在线完成', 'blue');
                    } else {
                        item['userid'] = UID;
                        item['classId'] = classId;
                        item['review'] = [false, true][_w.top.unrivalReviewMode];
                        item['reportUrl'] = reportUrl;
                        item['rt'] = missionList['m' + item['jobid']]['rt'];
                        GM_setValue('unrivalBackgroundVideo', item);
                        _d.cookie = "videojs_id=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
                        logs.addLog(
                            '您已安装超星挂机小助手,已添加至后台任务,<a href="unrivalxxtbackground/" target="view_window">点我查看后台</a>',
                            'green');
                        missionList['m' + item['jobid']]['running'] = true;
                        setTimeout(function () {
                            missionList['m' + item['jobid']]['running'] = false;
                            missionList['m' + item['jobid']]['done'] = true;
                        }, 5000);
                        return;
                    }
                }
                let videojs_id = String(parseInt(Math.random() * 9999999));
                _d.cookie = 'videojs_id=' + videojs_id + ';path=/'
                logs.addLog('开始刷视频:' + item['name'] + ',倍速:' + String(rate) + '倍');
                logs.addLog('视频观看信息每60秒上报一次,请耐心等待', 'green');
                logs.addLog('如遇脚本使用异常情况,请检查脚本版本是否为最新版,<a href="https://scriptcat.org/zh-CN/script-show-page/3029" target="view_window">点我(脚本猫)</a>或<a href="https://greasyfork.org/zh-CN/users/1446006-%E4%BC%8F%E9%BB%91%E7%94%9A%E8%80%8C" target="view_window">点我(greasyfork)</a>检查', 'orange');
                if (disableMonitor) {
                    logs.addLog('解除多端学习监控有清除进度风险,请谨慎使用', 'orange');
                }
                let dtype = 'Video';
                if (item['module'].includes('audio')) {
                    dtype = 'Audio';
                    rt = '';
                }
                let playTime = 0,
                    playsTime = 0,
                    isdrag = '3',
                    times = 0,
                    encUrl = '',
                    first = true,
                    loop = setInterval(function () {
                        if (rate <= 0) {
                            clearInterval(loop);
                            logs.addLog('奇怪的倍速,视频已自动跳过', 'orange');
                            setTimeout(function () {
                                missionList['m' + item['jobid']]['running'] = false;
                                missionList['m' + item['jobid']]['done'] = true;
                            }, 5000);
                            return;
                        } else if (item['doublespeed'] == 0 && rate > 1 && _w.top.unrivalReviewMode == '0') {
                            //rate = 1;
                            //logs.addLog('该视频不允许倍速播放,已恢复至一倍速,高倍速会被清空进度挂科,勿存侥幸', 'red');
                        }
                        rt = missionList['m' + item['jobid']]['rt'];
                        playsTime += rate;
                        playTime = Math.ceil(playsTime);
                        if (times == 0 || times % 30 == 0 || playTime >= item['duration']) {
                            if (first) {
                                playTime = 0;
                            }
                            if (playTime >= item['duration']) {
                                clearInterval(loop);
                                playTime = item['duration'];
                                isdrag = '4';
                            } else if (playTime > 0) {
                                isdrag = '0';
                            }
                            encUrl = host + 'chaoXing/v3/getEnc.php?classid=' + classId +
                                '&playtime=' + playTime + '&duration=' + item['duration'] + '&objectid=' + item[
                                'objectId'] + '&jobid=' + item['jobid'] + '&uid=' + UID;
                            busyThread += 1;
                            var _bold_playTime = playTime;
                            function ecOnload(res) {
                                let enc = '';
                                if (res && res.status == 200) {
                                    enc = res.responseText;
                                    if (enc.includes('--#')) {
                                        let warnInfo = enc.match(new RegExp('--#(.*?)--#', "ig"))[0]
                                            .replace(/--#/ig, '');
                                        logs.addLog(warnInfo, 'red');
                                        enc = enc.replace(/--#(.*?)--#/ig, '');
                                    }
                                    if (enc.indexOf('.stop') >= 0) {
                                        clearInterval(loop);
                                        stop = true;
                                        return;
                                    }
                                } else {
                                    strEc = `[${classId}][${UID}][${item['jobid']}][${item['objectId']}][${playTime * 1000}][d_yHJ!$pdA~5][${item['duration'] * 1000}][0_${item['duration']}]`,
                                        enc = jq.md5(strEc);
                                }
                                if (enc.length != 32) {
                                    clearInterval(loop);
                                    stop = true;
                                    return;
                                }
                                let reportsUrl = reportUrl + '/' + item['dtoken'] +
                                    '?clazzId=' + classId + '&playingTime=' + playTime +
                                    '&duration=' + item['duration'] + '&clipTime=0_' + item[
                                    'duration'] + '&objectId=' + item['objectId'] +
                                    '&otherInfo=' + item['otherInfo'] + '&jobid=' + item[
                                    'jobid'] + '&userid=' + UID + '&isdrag=' + isdrag +
                                    '&view=pc&enc=' + enc + '&rt=' + rt + '&dtype=' + dtype +
                                    '&_t=' + String(Math.round(new Date()));
                                GM_xmlhttpRequest({
                                    method: "get",
                                    headers: {
                                        'Host': _h,
                                        'Referer': vrefer,
                                        'Sec-Fetch-Site': 'same-origin',
                                        'Content-Type': 'application/json'
                                    },
                                    url: reportsUrl,
                                    onload: function (res) {
                                        try {
                                            let today = new Date(),
                                                todayStr = today.getFullYear() +
                                                    'd' + today.getMonth() + 'd' + today
                                                        .getDate(),
                                                timelong = GM_getValue(
                                                    'unrivaltimelong', {});
                                            if (timelong[UID] == undefined ||
                                                timelong[UID]['today'] != todayStr
                                            ) {
                                                timelong[UID] = {
                                                    'time': 0,
                                                    'today': todayStr
                                                };
                                            } else {
                                                timelong[UID]['time']++;
                                            }
                                            GM_setValue('unrivaltimelong',
                                                timelong);
                                            busyThread -= 1;
                                            if (timelong[UID]['time'] / 60 > 22 &&
                                                item['doublespeed'] == 0 && _w.top
                                                    .unrivalReviewMode == '0') {
                                                clearInterval(loop);
                                                logs.addLog(
                                                    '今日学习时间过长,继续学习会导致清空进度,请明天再来',
                                                    'red');
                                                setTimeout(function () {
                                                    missionList['m' + item[
                                                        'jobid']][
                                                        'running'
                                                    ] = false;
                                                    missionList['m' + item[
                                                        'jobid']][
                                                        'done'
                                                    ] = true;
                                                }, 5000);
                                                return;
                                            }
                                            let ispass = JSON.parse(res
                                                .responseText);
                                            first = false;
                                            if (ispass['isPassed'] && _w.top
                                                .unrivalReviewMode == '0') {
                                                logs.addLog('视频任务已完成', 'green');
                                                missionList['m' + item['jobid']]['running'] = false;
                                                missionList['m' + item['jobid']]['done'] = true;
                                                clearInterval(loop);
                                                return;
                                            } else if (isdrag == '4') {
                                                if (_w.top.unrivalReviewMode ==
                                                    '1') {
                                                    logs.addLog('视频已观看完毕', 'green');
                                                } else {
                                                    logs.addLog('视频已观看完毕,但视频任务未完成',
                                                        'red');
                                                }
                                                missionList['m' + item['jobid']][
                                                    'running'
                                                ] = false;
                                                missionList['m' + item['jobid']][
                                                    'done'
                                                ] = true;
                                                try {
                                                    clearInterval(loop);
                                                } catch (e) {

                                                }
                                            } else {
                                                logs.addLog(item['name'] + '已观看' +
                                                    _bold_playTime + '秒,剩余大约' +
                                                    String(item['duration'] -
                                                        _bold_playTime) + '秒');
                                            }
                                        } catch (e) {
                                            console.log(e);
                                            if (res.responseText.indexOf('验证码') >=
                                                0) {
                                                logs.addLog('已被超星风控,请<a href="' +
                                                    reportsUrl +
                                                    '" target="_blank">点我处理</a>,60秒后自动刷新页面',
                                                    'red');
                                                missionList['m' + item['jobid']][
                                                    'running'
                                                ] = false;
                                                clearInterval(loop);
                                                stop = true;
                                                setTimeout(function () {
                                                    _l.reload();
                                                }, 60000);
                                                return;
                                            }
                                            logs.addLog('超星返回错误信息,十秒后重试,请重新登录或重新打开浏览器', 'red');
                                            times = -10;
                                            return;
                                        }
                                    },
                                    onerror: function (err) {
                                        console.log(err);
                                        if (err.error.indexOf('@connect list') >=
                                            0) {
                                            logs.addLog(
                                                '请添加安全网址,将 【 //@connect      ' +
                                                _h +
                                                ' 】方括号里的内容(不包括方括号)添加到脚本代码内指定位置,否则脚本无法正常运行,如图所示:',
                                                'red');
                                            logs.addLog(
                                                '<img src="https://pan-yz.chaoxing.com/thumbnail/0,0,0/609a8b79cbd6a91d10c207cf2b5f368d">'
                                            );
                                            stop = true;
                                        } else {
                                            logs.addLog('观看视频失败', 'red');
                                            logs.addLog('错误原因:' + err.error, 'red');
                                        }
                                        missionList['m' + item['jobid']][
                                            'running'
                                        ] = false;
                                        clearInterval(loop);
                                    }
                                });
                            };
                            GM_xmlhttpRequest({
                                method: "get",
                                url: encUrl,
                                timeout: 2000,
                                onload: ecOnload,
                                onerror: function (err) {
                                    console.log(err);
                                    ecOnload(false);
                                },
                                ontimeout: function (err) {
                                    console.log(err);
                                    ecOnload(false);
                                }
                            });
                        }
                        times += 1;
                    }, 1000);
                missionList['m' + item['jobid']]['running'] = true;
            },
            doDocument = (item) => {
                missionList['m' + item['jobid']]['running'] = true;
                logs.addLog('开始刷文档:' + item['name']);
                setTimeout(function () {
                    busyThread += 1;
                    GM_xmlhttpRequest({
                        method: "get",
                        url: _p + '//' + _h + '/ananas/job/document?jobid=' + item['jobid'] +
                            '&knowledgeid=' + chapterId + '&courseid=' + courseId + '&clazzid=' +
                            classId + '&jtoken=' + item['jtoken'],
                        onload: function (res) {
                            try {
                                busyThread -= 1;
                                let ispass = JSON.parse(res.responseText);
                                if (ispass['status']) {
                                    logs.addLog('文档任务已完成', 'green');
                                } else {
                                    logs.addLog('文档已阅读完成,但任务点未完成', 'red');
                                }

                            } catch (err) {
                                console.log(err);
                                console.log(res.responseText);
                                logs.addLog('解析文档内容失败', 'red');
                            }
                            missionList['m' + item['jobid']]['running'] = false;
                            missionList['m' + item['jobid']]['done'] = true;
                        },
                        onerror: function (err) {
                            console.log(err);
                            if (err.error.indexOf('@connect list') >= 0) {
                                logs.addLog('请添加安全网址,将 【 //@connect      ' + _h +
                                    ' 】方括号里的内容(不包括方括号)添加到脚本代码内指定位置,否则脚本无法正常运行,如图所示:', 'red');
                                logs.addLog(
                                    '<img src="https://pan-yz.chaoxing.com/thumbnail/0,0,0/609a8b79cbd6a91d10c207cf2b5f368d">'
                                );
                                stop = true;
                            } else {
                                logs.addLog('阅读文档失败', 'red');
                                logs.addLog('错误原因:' + err.error, 'red');
                            }
                            missionList['m' + item['jobid']]['running'] = false;
                            missionList['m' + item['jobid']]['done'] = true;
                        }
                    });
                }, parseInt(Math.random() * 2000 + 9000, 10))
            },
            doWork = (item) => {
                missionList['m' + item['jobid']]['running'] = true;
                logs.addLog('开始刷章节测试:' + item['name']);
                logs.addLog('您设置的答题正确率为:' + String(accuracy) + '%,只有在高于此正确率时才会提交测试', 'blue');
                _d.getElementById('workPanel').style.display = 'block';
                _d.getElementById('frame_content').src = _p + '//' + _h + '/work/phone/work?workId=' + item['jobid']
                    .replace('work-', '') + '&courseId=' + courseId + '&clazzId=' + classId + '&knowledgeId=' +
                    chapterId + '&jobId=' + item['jobid'] + '&enc=' + item['enc'];
                _w.top.unrivalWorkInfo = '';
                _w.top.unrivalDoneWorkId = '';
                setInterval(function () {
                    if (_w.top.unrivalWorkInfo != '') {
                        logs.addLog(_w.top.unrivalWorkInfo);
                        _w.top.unrivalWorkInfo = '';
                    }
                }, 100);
                let checkcross = setInterval(function () {
                    if (_w.top.unrivalWorkDone == false) {
                        clearInterval(checkcross);
                        return;
                    }
                    let ifW = _d.getElementById('frame_content').contentWindow;
                    try {
                        ifW.location.href;
                    } catch (e) {
                        console.log(e);
                        if (e.message.indexOf('cross-origin') != -1) {
                            clearInterval(checkcross);
                            _w.top.unrivalWorkDone = true;
                            return;
                        }
                    }
                }, 2000);
                let workDoneInterval = setInterval(function () {
                    if (_w.top.unrivalWorkDone) {
                        _w.top.unrivalWorkDone = false;
                        clearInterval(workDoneInterval);
                        _w.top.unrivalDoneWorkId = '';
                        _d.getElementById('workPanel').style.display = 'none';
                        _d.getElementById('frame_content').src = '';
                        setTimeout(function () {
                            missionList['m' + item['jobid']]['running'] = false;
                            missionList['m' + item['jobid']]['done'] = true;
                        }, 5000);
                    }
                }, 500);
            },
            missionList = [];
        if (jobList.length <= 0) {
            if (jumpType != 2) {
                _w.top.jump = true;
                logs.addLog('此页无任务,5秒后自动下一章', 'green');
            } else {
                logs.addLog('此页无任务,用户设置为不跳转,脚本已结束运行,如需自动跳转,请编辑脚本代码参数', 'green');
            }
            return;
        }
        for (let i = 0, l = jobList.length; i < l; i++) {
            let item = jobList[i];
            if (item['type'] == 'video') {
                video_getReady(item);
            } else if (item['type'] == 'document') {
                missionList['m' + item['jobid']] = {
                    'type': 'document',
                    'jtoken': item['jtoken'],
                    'jobid': item['jobid'],
                    'name': item['property']['name'],
                    'done': false,
                    'running': false
                };
                _d.getElementById('joblist').innerHTML += `
                            <div class="panel panel-default">
                                <div class="panel-body">
                                    ` + '[文档]' + item['property']['name'] + `
                                </div>
                            </div>`
            } else if (item['type'] == 'workid' && _w.top.unrivalDoWork == '1') {
                missionList['m' + item['jobid']] = {
                    'type': 'work',
                    'workid': item['property']['workid'],
                    'jobid': item['jobid'],
                    'name': item['property']['title'],
                    'enc': item['enc'],
                    'done': false,
                    'running': false
                };
                _d.getElementById('joblist').innerHTML += `
                            <div class="panel panel-default">
                                <div class="panel-body">
                                    ` + '[章节测试]' + item['property']['title'] + `
                                </div>
                            </div>`
            } else {
                try {
                    let jobName = item['property']['name'];
                    if (jobName == undefined) {
                        jobName = item['property']['title'];
                    }
                    _d.getElementById('joblist').innerHTML += `
                            <div class="panel panel-default">
                                <div class="panel-body">
                                    ` + '已跳过:' + jobName + `
                                </div>
                            </div>`
                } catch (e) { }
            }
        }
        loopjob();
    } else if (_l.href.includes("mycourse/studentstudy")) {
        var audiofile =
            'data:audio/ogg;base64,T2dnUwACAAAAAAAAAABwRPFFAAAAAGFtEqwBHgF2b3JiaXMAAAAAAUAfAAAAAAAAUHgAAAAAAACZAU9nZ1MAAAAAAAAAAAAAcETxRQEAAAA7J4IBDP8F////////////tQN2b3JiaXMvAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxNDAxMjIgKFR1cnBha8OkcsOkamlpbikGAAAAJQAAAEVOQ09ERVI9U291bmQgU3R1ZGlvLCBsaWJWb3JiaXMgMS4zLjEbAAAAQUxCVU0gQVJUSVNUPUFkdmVudHVyZSBMYW5kFAAAAEFMQlVNPUFkdmVudHVyZSBMYW5kIQAAAEVOQ09ESU5HIEFQUExJQ0FUSU9OPVNvdW5kIFN0dWRpbxUAAABBUlRJU1Q9QWR2ZW50dXJlIExhbmQjAAAAVElUTEU9RW1wdHkgTG9vcCBGb3IgSlMgUGVyZm9ybWFuY2UBBXZvcmJpcxJCQ1YBAAABAAxSFCElGVNKYwiVUlIpBR1jUFtHHWPUOUYhZBBTiEkZpXtPKpVYSsgRUlgpRR1TTFNJlVKWKUUdYxRTSCFT1jFloXMUS4ZJCSVsTa50FkvomWOWMUYdY85aSp1j1jFFHWNSUkmhcxg6ZiVkFDpGxehifDA6laJCKL7H3lLpLYWKW4q91xpT6y2EGEtpwQhhc+211dxKasUYY4wxxsXiUyiC0JBVAAABAABABAFCQ1YBAAoAAMJQDEVRgNCQVQBABgCAABRFcRTHcRxHkiTLAkJDVgEAQAAAAgAAKI7hKJIjSZJkWZZlWZameZaouaov+64u667t6roOhIasBADIAAAYhiGH3knMkFOQSSYpVcw5CKH1DjnlFGTSUsaYYoxRzpBTDDEFMYbQKYUQ1E45pQwiCENInWTOIEs96OBi5zgQGrIiAIgCAACMQYwhxpBzDEoGIXKOScggRM45KZ2UTEoorbSWSQktldYi55yUTkompbQWUsuklNZCKwUAAAQ4AAAEWAiFhqwIAKIAABCDkFJIKcSUYk4xh5RSjinHkFLMOcWYcowx6CBUzDHIHIRIKcUYc0455iBkDCrmHIQMMgEAAAEOAAABFkKhISsCgDgBAIMkaZqlaaJoaZooeqaoqqIoqqrleabpmaaqeqKpqqaquq6pqq5seZ5peqaoqp4pqqqpqq5rqqrriqpqy6ar2rbpqrbsyrJuu7Ks256qyrapurJuqq5tu7Js664s27rkearqmabreqbpuqrr2rLqurLtmabriqor26bryrLryratyrKua6bpuqKr2q6purLtyq5tu7Ks+6br6rbqyrquyrLu27au+7KtC7vourauyq6uq7Ks67It67Zs20LJ81TVM03X9UzTdVXXtW3VdW1bM03XNV1XlkXVdWXVlXVddWVb90zTdU1XlWXTVWVZlWXddmVXl0XXtW1Vln1ddWVfl23d92VZ133TdXVblWXbV2VZ92Vd94VZt33dU1VbN11X103X1X1b131htm3fF11X11XZ1oVVlnXf1n1lmHWdMLqurqu27OuqLOu+ruvGMOu6MKy6bfyurQvDq+vGseu+rty+j2rbvvDqtjG8um4cu7Abv+37xrGpqm2brqvrpivrumzrvm/runGMrqvrqiz7uurKvm/ruvDrvi8Mo+vquirLurDasq/Lui4Mu64bw2rbwu7aunDMsi4Mt+8rx68LQ9W2heHVdaOr28ZvC8PSN3a+AACAAQcAgAATykChISsCgDgBAAYhCBVjECrGIIQQUgohpFQxBiFjDkrGHJQQSkkhlNIqxiBkjknIHJMQSmiplNBKKKWlUEpLoZTWUmotptRaDKG0FEpprZTSWmopttRSbBVjEDLnpGSOSSiltFZKaSlzTErGoKQOQiqlpNJKSa1lzknJoKPSOUippNJSSam1UEproZTWSkqxpdJKba3FGkppLaTSWkmptdRSba21WiPGIGSMQcmck1JKSamU0lrmnJQOOiqZg5JKKamVklKsmJPSQSglg4xKSaW1kkoroZTWSkqxhVJaa63VmFJLNZSSWkmpxVBKa621GlMrNYVQUgultBZKaa21VmtqLbZQQmuhpBZLKjG1FmNtrcUYSmmtpBJbKanFFluNrbVYU0s1lpJibK3V2EotOdZaa0ot1tJSjK21mFtMucVYaw0ltBZKaa2U0lpKrcXWWq2hlNZKKrGVklpsrdXYWow1lNJiKSm1kEpsrbVYW2w1ppZibLHVWFKLMcZYc0u11ZRai621WEsrNcYYa2415VIAAMCAAwBAgAlloNCQlQBAFAAAYAxjjEFoFHLMOSmNUs45JyVzDkIIKWXOQQghpc45CKW01DkHoZSUQikppRRbKCWl1losAACgwAEAIMAGTYnFAQoNWQkARAEAIMYoxRiExiClGIPQGKMUYxAqpRhzDkKlFGPOQcgYc85BKRljzkEnJYQQQimlhBBCKKWUAgAAChwAAAJs0JRYHKDQkBUBQBQAAGAMYgwxhiB0UjopEYRMSielkRJaCylllkqKJcbMWomtxNhICa2F1jJrJcbSYkatxFhiKgAA7MABAOzAQig0ZCUAkAcAQBijFGPOOWcQYsw5CCE0CDHmHIQQKsaccw5CCBVjzjkHIYTOOecghBBC55xzEEIIoYMQQgillNJBCCGEUkrpIIQQQimldBBCCKGUUgoAACpwAAAIsFFkc4KRoEJDVgIAeQAAgDFKOSclpUYpxiCkFFujFGMQUmqtYgxCSq3FWDEGIaXWYuwgpNRajLV2EFJqLcZaQ0qtxVhrziGl1mKsNdfUWoy15tx7ai3GWnPOuQAA3AUHALADG0U2JxgJKjRkJQCQBwBAIKQUY4w5h5RijDHnnENKMcaYc84pxhhzzjnnFGOMOeecc4wx55xzzjnGmHPOOeecc84556CDkDnnnHPQQeicc845CCF0zjnnHIQQCgAAKnAAAAiwUWRzgpGgQkNWAgDhAACAMZRSSimllFJKqKOUUkoppZRSAiGllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimllFJKKaWUUkoppZRSSimVUkoppZRSSimllFJKKaUAIN8KBwD/BxtnWEk6KxwNLjRkJQAQDgAAGMMYhIw5JyWlhjEIpXROSkklNYxBKKVzElJKKYPQWmqlpNJSShmElGILIZWUWgqltFZrKam1lFIoKcUaS0qppdYy5ySkklpLrbaYOQelpNZaaq3FEEJKsbXWUmuxdVJSSa211lptLaSUWmstxtZibCWlllprqcXWWkyptRZbSy3G1mJLrcXYYosxxhoLAOBucACASLBxhpWks8LR4EJDVgIAIQEABDJKOeecgxBCCCFSijHnoIMQQgghREox5pyDEEIIIYSMMecghBBCCKGUkDHmHIQQQgghhFI65yCEUEoJpZRSSucchBBCCKWUUkoJIYQQQiillFJKKSGEEEoppZRSSiklhBBCKKWUUkoppYQQQiillFJKKaWUEEIopZRSSimllBJC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',
            audioPlayer = new Audio(audiofile);
        _w.top.backNow = 0;
        audioPlayer.loop = true;
        _w.audioPlayer = audioPlayer;
        setInterval(function () {
            try {
                _w.jQuery.fn.viewer.Constructor.prototype.show = () => { };
            } catch (e) {
            }
        }, 1000);
        try {
            _w.unrivalScriptList.push('Fuck me please');
        } catch (e) {
            _w.unrivalScriptList = ['Fuck me please'];
        }
        function checkOffline() {
            let dleft = _d.getElementsByClassName('left');
            if (dleft.length == 1) {
                let img = dleft[0].getElementsByTagName('img');
                if (img.length == 1) {
                    if (img[0].src.indexOf('loading.gif') != -1) {
                        return true;
                    }
                }
            }
            return false;
        }
        setInterval(function () {
            if (checkOffline()) {
                setTimeout(function () {
                    if (checkOffline()) {
                        _l.reload();
                    }
                }, 10000)
            }
        }, 3000);
        _d.addEventListener('visibilitychange', function () {
            var c = 0;
            if (_w.top.backNow == 0) {
                _d.title = '⚠️请先激活挂机';
                return
            } else {
                _d.title = '学生学习页面';
            }
            if (_d.hidden) {
                audioPlayer.play();
                var timer = setInterval(function () {
                    if (c) {
                        _d.title = '挂机中';
                        c = 0;
                    } else {
                        _d.title = '挂机中';
                        c = 1;
                    }
                    if (!_d.hidden) {
                        clearInterval(timer);
                        _d.title = '学生学习页面';
                    }
                }, 1300);
            } else {
                audioPlayer.pause();
            }
        });
        _w.unrivalgetTeacherAjax = _w.getTeacherAjax;
        _w.getTeacherAjax = (courseid, classid, cid) => {
            if (cid == getQueryVariable('chapterId')) {
                return;
            }
            _w.top.unrivalPageRd = '';
            _w.unrivalgetTeacherAjax(courseid, classid, cid);
        }
        if (disableMonitor == 1) {
            _w.appendChild = _w.Element.prototype.appendChild;
            _w.Element.prototype.appendChild = function () {
                try {
                    if (arguments[0].src.indexOf('detect.chaoxing.com') > 0) {
                        return;
                    }
                } catch (e) { }
                _w.appendChild.apply(this, arguments);
            };
        }

        _w.jump = false;
        setInterval(function () {
            if (getQueryVariable('mooc2') == '1') {
                let tabs = _d.getElementsByClassName('posCatalog_select');
                for (let i = 0, l = tabs.length; i < l; i++) {
                    let tabId = tabs[i].getAttribute('id');
                    if (tabId.indexOf('cur') >= 0 && tabs[i].getAttribute('class') == 'posCatalog_select') {
                        tabs[i].setAttribute('onclick', "getTeacherAjax('" + courseId + "','" + classId +
                            "','" + tabId.replace('cur', '') + "');");
                    }
                }
            } else {
                let h4s = _d.getElementsByTagName('h4'),
                    h5s = _d.getElementsByTagName('h5');
                for (let i = 0, l = h4s.length; i < l; i++) {
                    if (h4s[i].getAttribute('id').indexOf('cur') >= 0) {
                        h4s[i].setAttribute('onclick', "getTeacherAjax('" + courseId + "','" + classId +
                            "','" + h4s[i].getAttribute('id').replace('cur', '') + "');");
                    }
                }
                for (let i = 0, l = h5s.length; i < l; i++) {
                    if (h5s[i].getAttribute('id').indexOf('cur') >= 0) {
                        h5s[i].setAttribute('onclick', "getTeacherAjax('" + courseId + "','" + classId +
                            "','" + h5s[i].getAttribute('id').replace('cur', '') + "');");
                    }
                }
            }
        }, 1000);
        setInterval(function () {
            let but = null;
            if (_w.jump) {
                _w.jump = false;
                _w.top.unrivalDoneWorkId = '';
                _w.jjump = (rd) => {
                    if (rd != _w.top.unrivalPageRd) {
                        return;
                    }
                    try {
                        setTimeout(function () {
                            if (jumpType == 1) {
                                if (getQueryVariable('mooc2') == '1') {
                                    but = _d.getElementsByClassName(
                                        'jb_btn jb_btn_92 fs14 prev_next next');
                                } else {
                                    but = _d.getElementsByClassName('orientationright');
                                }
                                try {
                                    setTimeout(function () {
                                        if (rd != _w.top.unrivalPageRd) {
                                            return;
                                        }
                                        but[0].click();
                                    }, 2000);
                                } catch (e) { }
                                return;
                            }
                            if (getQueryVariable('mooc2') == '1') {
                                let ul = _d.getElementsByClassName('prev_ul')[0],
                                    lis = ul.getElementsByTagName('li');
                                for (let i = 0, l = lis.length; i < l; i++) {
                                    if (lis[i].getAttribute('class') == 'active') {
                                        if (i + 1 >= l) {
                                            break;
                                        } else {
                                            try {
                                                lis[i + 1].click();
                                            } catch (e) { }
                                            return;
                                        }
                                    }
                                }
                                let tabs = _d.getElementsByClassName('posCatalog_select');
                                for (let i = 0, l = tabs.length; i < l; i++) {
                                    if (tabs[i].getAttribute('class') ==
                                        'posCatalog_select posCatalog_active') {
                                        while (i + 1 < tabs.length) {
                                            let nextTab = tabs[i + 1];
                                            if ((nextTab.innerHTML.includes(
                                                'icon_Completed prevTips') && _w.top
                                                    .unrivalReviewMode == '0') || nextTab
                                                        .innerHTML.includes(
                                                            'catalog_points_er prevTips')) {
                                                i++;
                                                continue;
                                            }
                                            if (nextTab.id.indexOf('cur') < 0) {
                                                i++;
                                                continue;
                                            }
                                            let clickF = setInterval(function () {
                                                if (rd != _w.top.unrivalPageRd) {
                                                    clearInterval(clickF);
                                                    return;
                                                }
                                                nextTab.click();
                                            }, 2000);
                                            break;
                                        }
                                        break;
                                    }
                                }
                            } else {
                                let div = _d.getElementsByClassName('tabtags')[0],
                                    spans = div.getElementsByTagName('span');
                                for (let i = 0, l = spans.length; i < l; i++) {
                                    if (spans[i].getAttribute('class').indexOf('currents') >=
                                        0) {
                                        if (i + 1 == l) {
                                            break;
                                        } else {
                                            try {
                                                spans[i + 1].click();
                                            } catch (e) { }
                                            return;
                                        }
                                    }
                                }
                                let tabs = _d.getElementsByTagName('span'),
                                    newTabs = [];
                                for (let i = 0, l = tabs.length; i < l; i++) {
                                    if (tabs[i].getAttribute('style') != null && tabs[i]
                                        .getAttribute('style').indexOf(
                                            'cursor:pointer;height:18px;') >= 0) {
                                        newTabs.push(tabs[i]);
                                    }
                                }
                                tabs = newTabs;
                                for (let i = 0, l = tabs.length; i < l; i++) {
                                    if (tabs[i].parentNode.getAttribute('class') ==
                                        'currents') {
                                        while (i + 1 < tabs.length) {
                                            let nextTab = tabs[i + 1].parentNode;
                                            if ((nextTab.innerHTML.includes(
                                                'roundpoint  blue') && _w.top
                                                    .unrivalReviewMode == '0') || nextTab
                                                        .innerHTML.includes('roundpointStudent  lock')
                                            ) {
                                                i++;
                                                continue;
                                            }
                                            if (nextTab.id.indexOf('cur') < 0) {
                                                i++;
                                                continue;
                                            }
                                            let clickF = setInterval(function () {
                                                if (rd != _w.top.unrivalPageRd) {
                                                    clearInterval(clickF);
                                                    return;
                                                }
                                                nextTab.click();
                                            }, 2000);
                                            break;
                                        }
                                        break;
                                    }
                                }
                            }
                        }, 2000);
                    } catch (e) { }
                }
                _w.onReadComplete1();
                setTimeout('jjump("' + _w.top.unrivalPageRd + '")', 2856);
            }
        }, 200);
    } else if (_l.href.indexOf("work/phone/doHomeWork") > 0) {
        var wIdE = _d.getElementById('workLibraryId') || _d.getElementById('oldWorkId'),
            wid = wIdE.value;
        _w.top.unrivalWorkDone = false;
        _w.aalert = _w.alert;
        _w.alert = (msg) => {
            if (msg == '保存成功') {
                _w.top.unrivalDoneWorkId = getQueryVariable('workId');
                return;
            }
            aalert(msg);
        }
        if (_w.top.unrivalDoneWorkId == getQueryVariable('workId')) {
            _w.top.unrivalWorkDone = true;
            return;
        }
        _w.confirm = (msg) => {
            return true;
        }
        var questionList = [],
            questionsElement = _d.getElementsByClassName('Py-mian1'),
            questionNum = questionsElement.length,
            totalQuestionNum = questionNum;
        for (let i = 0; i < questionNum; i++) {
            let questionElement = questionsElement[i],
                idElements = questionElement.getElementsByTagName('input'),
                questionId = '0',
                question = questionElement.getElementsByClassName('Py-m1-title fs16')[0].innerHTML;
            question = handleImgs(question).replace(/(<([^>]+)>)/ig, '').replace(/[0-9]{1,3}.\[(.*?)\]/ig, '').replaceAll('\n',
                '').replace(/^\s+/ig, '').replace(/\s+$/ig, '');
            for (let z = 0, k = idElements.length; z < k; z++) {
                try {
                    if (idElements[z].getAttribute('name').indexOf('answer') >= 0) {
                        questionId = idElements[z].getAttribute('name').replace('type', '');
                        break;
                    }
                } catch (e) {
                    console.log(e);
                    continue;
                }
            }
            if (questionId == '0' || question == '') {
                continue;
            }
            typeE = questionElement.getElementsByTagName('input');
            if (typeE == null || typeE == []) {
                continue;
            }
            let typeN = 'fuckme';
            for (let g = 0, h = typeE.length; g < h; g++) {
                if (typeE[g].id == 'answertype' + questionId.replace('answer', '').replace('check', '')) {
                    typeN = typeE[g].value;
                    break;
                }
            }
            if (['0', '1', '3'].indexOf(typeN) < 0) {
                continue;
            }
            type = {
                '0': '单选题',
                '1': '多选题',
                '3': '判断题'
            }[typeN];
            let optionList = {
                length: 0
            };
            if (['单选题', '多选题'].indexOf(type) >= 0) {
                let answersElements = questionElement.getElementsByClassName('answerList')[0].getElementsByTagName(
                    'li');
                for (let x = 0, j = answersElements.length; x < j; x++) {
                    let optionE = answersElements[x],
                        optionTextE = trim(optionE.innerHTML.replace(/(^\s*)|(\s*$)/g, "")),
                        optionText = optionTextE.slice(1).replace(/(^\s*)|(\s*$)/g, ""),
                        optionValue = optionTextE.slice(0, 1),
                        optionId = optionE.getAttribute('id-param');
                    if (optionText == '') {
                        break;
                    }
                    optionList[optionText] = {
                        'id': optionId,
                        'value': optionValue
                    }
                    optionList.length++;
                }
                if (answersElements.length != optionList.length) {
                    continue;
                }
            }
            questionList.push({
                'question': question,
                'type': type,
                'questionid': questionId,
                'options': optionList
            });
        }
        var qu = null,
            nowTime = -4000,
            busyThread = questionList.length,
            ctOnload = function (res, quu) {
                busyThread -= 1;
                var ctResult = {
                    'code': -1,
                    'finalUrl': '',
                    'data': '未找到答案,建议使用AI作答(https://studyai0.com/'
                };
                if (res) {
                    try {
                        var responseText = res.responseText,
                            ctResult = JSON.parse(responseText);
                    } catch (e) {
                        console.log(e);
                        if (res.finalUrl.includes('getAnswer.php')) {
                            _w.top.unrivalWorkInfo = '查题错误,服务器连接失败(使用高峰期),等待一段时间';
                            return;
                        }
                    }
                }
                try {
                    let choiceEs = _d.getElementsByTagName('li');
                    if (ctResult['code'] == -1 ) {
                        try {
                            if (ctResult['msg'] !== undefined) {
                                _w.top.unrivalWorkInfo = ctResult['msg'] ;
                            }
                        } catch (e) { }
                        busyThread += 1;
                        GM_xmlhttpRequest({
                            method: "GET",
                            headers: {
                                'Authorization': token,
                            },
                            timeout: 6000,
                            url: host + 'chaoXing/v3/getAnswer.php?tm=' + encodeURIComponent(quu['question']
                                .replace(/(^\s*)|(\s*$)/g, '')) + '&type=' + {
                                    '单选题': '0',
                                    '多选题': '1',
                                    '判断题': '3'
                                }[quu['type']] + '&wid=' + wid + '&courseid=' + courseId,
                            onload: function (res) {
                                ctOnload(res, quu);
                            },
                            onerror: function (err) {
                                _w.top.unrivalWorkInfo = '查题错误,服务器连接失败(使用高峰期),等待一段时间';
                                console.log(err);
                                busyThread -= 1;
                            },
                            ontimeout: function (err) {
                                _w.top.unrivalWorkInfo = '查题错误,服务器连接失败(使用高峰期),等待一段时间';
                                console.log(err);
                                busyThread -= 1;
                            }
                        });
                        return;
                    }
                    try {
                        var result = ctResult['data'];
                    } catch (e) {
                        _w.top.unrivalWorkInfo = '答案解析失败';
                        return;
                    }
                    _w.top.unrivalWorkInfo = '题目:' + quu['question'] + ':' + result;
                    switch (quu['type']) {
                        case '判断题':
                            (function () {
                                let answer = 'abaabaaba';
                                if ('正确是对√Tri'.indexOf(result) >= 0) {
                                    answer = 'true';
                                } else if ('错误否错×Fwr'.indexOf(result) >= 0) {
                                    answer = 'false';
                                }
                                for (let u = 0, k = choiceEs.length; u < k; u++) {
                                    if (choiceEs[u].getAttribute('val-param') ==
                                        answer && choiceEs[u].getAttribute(
                                            'id-param') == quu['questionid'].replace(
                                                'answer', '')) {
                                        choiceEs[u].click();
                                        questionNum -= 1;
                                        return;
                                    }
                                }
                                if (randomDo == 1 && accuracy < 100) {
                                    _w.top.unrivalWorkInfo = quu['question'] +
                                        ':未找到正确答案,自动选【错】';
                                    for (let u = 0, k = choiceEs.length; u <
                                        k; u++) {
                                        if (choiceEs[u].getElementsByTagName('em')
                                            .length < 1) {
                                            continue;
                                        }
                                        if (choiceEs[u].getAttribute('val-param') ==
                                            'false' && choiceEs[u].getAttribute(
                                                'id-param') == quu['questionid']
                                                    .replace('answer', '')) {
                                            choiceEs[u].click();
                                            return;
                                        }
                                    }
                                }
                            })();
                            break;
                        case '单选题':
                            (function () {
                                let answerData = result;
                                for (let option in quu['options']) {
                                    if (trim(option).replace(/\s/ig, '') == trim(answerData).replace(/\s/ig, '') || trim(
                                        option).replace(/\s/ig, '').includes(trim(answerData).replace(/\s/ig, '')) ||
                                        trim(answerData).replace(/\s/ig, '').includes(trim(option).replace(/\s/ig, ''))) {
                                        for (let y = 0, j = choiceEs.length; y <
                                            j; y++) {
                                            if (choiceEs[y].getElementsByTagName(
                                                'em').length < 1) {
                                                continue;
                                            }
                                            if (choiceEs[y].getElementsByTagName(
                                                'em')[0].getAttribute(
                                                    'id-param') == quu['options'][
                                                    option
                                                    ]['value'] && choiceEs[y]
                                                        .getAttribute('id-param') == quu[
                                                            'questionid'].replace('answer',
                                                                '')) {
                                                if (!choiceEs[y].getAttribute(
                                                    'class').includes('cur')) {
                                                    choiceEs[y].click();
                                                }
                                                questionNum -= 1;
                                                return;
                                            }
                                        }
                                    }
                                }
                                if (randomDo == 1 && accuracy < 100) {
                                    _w.top.unrivalWorkInfo = quu['question'] +
                                        ':未找到正确答案,自动选【C】';
                                    for (let y = 0, j = choiceEs.length; y <
                                        j; y++) {
                                        if (choiceEs[y].getElementsByTagName('em')
                                            .length < 1) {
                                            continue;
                                        }
                                        if (choiceEs[y].getElementsByTagName('em')[
                                            0].getAttribute('id-param') ==
                                            'B' && choiceEs[y].getAttribute(
                                                'id-param') == quu['questionid']
                                                    .replace('answer', '')) {
                                            if (!choiceEs[y].getAttribute('class')
                                                .includes('cur')) {
                                                choiceEs[y].click();
                                            }
                                            return;
                                        }
                                    }
                                }
                            })();
                            break;
                        case '多选题':
                            (function () {
                                let answerData = trim(result).replace(/\s/ig, ''),
                                    hasAnswer = false;
                                for (let option in quu['options']) {
                                    if (answerData.includes(trim(option).replace(/\s/ig, ''))) {
                                        for (let y = 0, j = choiceEs.length; y <
                                            j; y++) {
                                            if (choiceEs[y].getElementsByTagName(
                                                'em').length < 1) {
                                                continue;
                                            }
                                            if (choiceEs[y].getElementsByTagName(
                                                'em')[0].getAttribute(
                                                    'id-param') == quu['options'][
                                                    option
                                                    ]['value'] && choiceEs[y]
                                                        .getAttribute('id-param') == quu[
                                                            'questionid'].replace('answer',
                                                                '')) {
                                                if (!choiceEs[y].getAttribute(
                                                    'class').includes('cur')) {
                                                    choiceEs[y].click();
                                                }
                                                hasAnswer = true;
                                                break;
                                            }
                                        }
                                    }
                                }
                                if (hasAnswer) {
                                    questionNum -= 1;
                                } else if (randomDo == 1 && accuracy < 100) {
                                    _w.top.unrivalWorkInfo = quu['question'] +
                                        ':未找到正确答案,自动全选';
                                    for (let y = 0, j = choiceEs.length; y <
                                        j; y++) {
                                        if (choiceEs[y].getElementsByTagName('em')
                                            .length < 1) {
                                            continue;
                                        }
                                        if (choiceEs[y].getAttribute('id-param') ==
                                            quu['questionid'].replace('answer', '')
                                        ) {
                                            if (!choiceEs[y].getAttribute('class')
                                                .includes('cur')) {
                                                choiceEs[y].click();
                                            }
                                        }
                                    }
                                }
                            })();
                            break;
                    }
                } catch (e) {
                    console.log(e);
                }
            }
        for (let i = 0, l = questionList.length; i < l; i++) {
            nowTime += parseInt(Math.random() * 2000 + 2500, 10);
            setTimeout(function () {
                qu = questionList[i];
                let param = 'question=' + encodeURIComponent(
                    qu['question']);
                if (ctUrl.includes('icodef')) {
                    param += '&type=' + {
                        '单选题': '0',
                        '多选题': '1',
                        '判断题': '3'
                    }[qu['type']] + '&id=' + wid;
                }
                GM_xmlhttpRequest({
                    method: "POST",
                    headers: {
                        'Content-type': 'application/x-www-form-urlencoded',
                        'Authorization': token,
                    },
                    url: ctUrl,
                    timeout: 2000,
                    data: param,
                    onload: function (res) {
                        ctOnload(res, qu);
                    },
                    onerror: function () {
                        ctOnload(false, qu);
                    },
                    ontimeout: function () {
                        ctOnload(false, qu);
                    }
                });
            }, nowTime);
        }
        var workInterval = setInterval(function () {
            if (busyThread != 0) {
                return;
            }
            clearInterval(workInterval);
            if (Math.floor((totalQuestionNum - questionNum) / totalQuestionNum) * 100 >= accuracy && _w.top
                .unrivalAutoSubmit == '1') {
                _w.top.unrivalDoneWorkId = getQueryVariable('workId');
                _w.top.unrivalWorkInfo = '正确率符合标准,已提交答案';
                setTimeout(function () {
                    submitCheckTimes();
                    escapeBlank()
                    submitAction()
                    //	setTimeout(function() {
                    //          document.querySelector(".cx_alert-blue").click()
                    //	}, parseInt(1000));
                }, parseInt(Math.random() * 2000 + 3000, 10));

            } else if (_w.top.unrivalAutoSave == 1) {
                _w.top.unrivalWorkInfo = '正确率不符合标准或未设置自动提交,已自动保存答案';
                if (Math.floor((totalQuestionNum - questionNum) / totalQuestionNum) >= 0) {
                    setTimeout(function () {
                        _w.top.unrivalDoneWorkId = getQueryVariable('workId');
                        _w.noSubmit();
                    }, 2000);
                }
            } else {
                _w.top.unrivalWorkInfo = '用户设置为不自动保存答案,请手动提交或保存作业';
            }
        }, 1000);
    } else if (_l.href.includes('work/phone/selectWorkQuestionYiPiYue')) {
        _w.top.unrivalWorkDone = true;
        _w.top.unrivalDoneWorkId = getQueryVariable('workId');
    } else if (_l.href.includes('stat2-ans.chaoxing.com/task/s/index')) {
        if (_w.top == _w) {
            return;
        }
        _d.getElementsByClassName('page-container studentStatistic')[0].setAttribute('class', 'studentStatistic');
        _d.getElementsByClassName('page-item item-task-list minHeight390')[0].remove();
        _d.getElementsByClassName('subNav clearfix')[0].remove();
        setInterval(function () {
            _l.reload();
        }, 90000);
    } else if (_l.href.includes('passport2.') && _l.href.includes('login?refer=http') && autoLogin == 1) {
        if (!(/^1[3456789]\d{9}$/.test(phoneNumber))) {
            alert('自动登录的手机号填写错误,无法登陆')
            return;
        }
        if (password == '') {
            alert('未填写登录密码,无法登陆')
            return;
        }
        GM_xmlhttpRequest({
            method: "get",
            url: 'https://passport2-api.chaoxing.com/v11/loginregister?cx_xxt_passport=json&uname=' +
                phoneNumber + '&code=' + encodeURIComponent(password),
            onload: function (res) {
                try {
                    let ispass = JSON.parse(res.responseText);
                    if (ispass['status']) {
                        _l.href = decodeURIComponent(getQueryVariable('refer'));
                    } else {
                        alert(ispass['mes']);
                    }
                } catch (err) {
                    console.log(res.responseText);
                    alert('登陆失败');
                }
            },
            onerror: function (err) {
                alert('登陆错误');
            }
        });
    } else if (_l.href.includes('unrivalxxtbackground')) {
        _d.getElementsByTagName("html")[0].innerHTML = `
    <!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>学习通挂机小助手</title>
        <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
        <link href="https://z.chaoxing.com/yanshi/css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
        <div class="row" style="margin: 10px;">
            <div class="col-md-6 col-md-offset-3">
                <div class="header clearfix">
                    <h3 class="text-muted" style="margin-top: 20px;margin-bottom: 0;float: left;">学习通挂机小助手&ensp;</h3>
                </div>
                <hr style="margin-top: 10px;margin-bottom: 20px;">
                <div class="panel panel-info">
                    <div class="panel-heading">任务列表</div>
                    <div class="panel-body" id='joblist'>
                    </div>
                </div>
                <div class="panel panel-info">
                    <div class="panel-heading">运行日志</div>
                    <div class="panel-body">
                        <div id="result" style="overflow:auto;line-height: 30px;">
                            <div id="log">
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
    `;
        var logs = {
            "logArry": [],
            "addLog": function (str, color = "black") {
                if (this.logArry.length >= 50) {
                    this.logArry.splice(0, 1);
                }
                var nowTime = new Date(),
                    nowHour = (Array(2).join(0) + nowTime.getHours()).slice(-2),
                    nowMin = (Array(2).join(0) + nowTime.getMinutes()).slice(-2),
                    nowSec = (Array(2).join(0) + nowTime.getSeconds()).slice(-2),
                    logElement = _d.getElementById('log'),
                    logStr = "";
                this.logArry.push("<span style='color: " + color + "'>[" + nowHour + ":" + nowMin + ":" +
                    nowSec + "] " + str + "</span>");
                for (let logI = 0, logLen = this.logArry.length; logI < logLen; logI++) {
                    logStr += this.logArry[logI] + "<br>";
                }
                _d.getElementById('log').innerHTML = logStr;
                logElement.scrollTop = logElement.scrollHeight;
            }
        };
        logs.addLog('此页面不必保持在最前端,后台会自动进行任务', 'green');
        setInterval(function () {
            logs.addLog('此页面不必保持在最前端,后台会自动进行任务', 'green');
            logs.addLog('如想禁用后台刷视频功能,请关闭脚本并重启浏览器', 'blue');
        }, 120000)
        GM_addValueChangeListener('unrivalxxtbackgroundinfo', function (name, old_value, new_value, remote) {
            if (old_value != new_value) {
                logs.addLog(new_value);
            }
        });
        setInterval(function () {
            if (Math.round(new Date() / 1000) - parseInt(GM_getValue('unrivalBackgroundVideoEnable', '6')) >
                15) {
                logs.addLog('超星挂机小助手可能运行异常,如页面无反应,请尝试重启脚本或重启浏览器(脚本版本有此问题)');
            }
        }, 10000);
        var loopShow = () => {
            let jobList = GM_getValue('unrivalBackgroundList', '1');
            if (jobList == '1') {
                _d.getElementById('joblist').innerHTML = '请将“超星挂机小助手”升级到最新版并重启浏览器';
            } else {
                try {
                    let jobHtml = '';
                    for (let i = 0, l = jobList.length; i < l; i++) {
                        let status = '';
                        if (jobList[i]['done']) {
                            status = '已完成';
                        } else if (parseInt(jobList[i]['playTime']) > 0) {
                            status = '进行中';
                        } else {
                            status = '等待中';
                        }
                        if (jobList[i]['review']) {
                            status += ':复习模式';
                        }
                        jobHtml += `
                            <div class="panel panel-default">
                                <div class="panel-body">
                                    ` + '[' + status + ']' + jobList[i]['name'] + `
                                </div>
                            </div>`
                    }
                    _d.getElementById('joblist').innerHTML = jobHtml;
                } catch (e) {
                    _d.getElementById('joblist').innerHTML = '请将“超星挂机小助手”升级到最新版并重启浏览器!';
                }
            }
        }
        loopShow();
        setInterval(loopShow, 10000);
    }
})();