From 0f09aebc3909786b441063a933112163f80f98ee Mon Sep 17 00:00:00 2001 From: xiao_io <2238929232@qq.com> Date: Wed, 9 Feb 2022 16:45:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E4=BD=93=E5=B8=83=E5=B1=80=E5=92=8C?= =?UTF-8?q?=E7=95=AA=E8=8C=84=E9=92=9F=E6=95=B4=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/shell-chrome/assets/css/main.css | 100 ++++-- packages/shell-chrome/assets/css/main.less | 315 ++++++++++-------- .../assets/html/pomodoro/assets/css/popup.css | 107 ++++-- .../assets/html/pomodoro/assets/js/popup.js | 303 +++++++++-------- .../assets/html/pomodoro/popup.html | 47 +-- .../images => image/background}/pomo1.png | Bin .../background}/pomo_crystal.jpg | Bin .../background}/pomo_fire.jpeg | Bin .../background}/pomo_foresr.jpeg | Bin .../assets/image/background/pomo_green.jpeg | Bin 0 -> 144866 bytes .../background}/pomo_leaf.jpeg | Bin .../background}/pomo_light.jpeg | Bin .../background}/pomo_ocean.jpg | Bin .../background}/pomo_waterfall.jpg | Bin .../assets/js/mouse-effects/mouse-style.js | 2 +- packages/shell-chrome/assets/js/popup.js | 26 ++ packages/shell-chrome/popup.html | 77 +++-- 17 files changed, 604 insertions(+), 373 deletions(-) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo1.png (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_crystal.jpg (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_fire.jpeg (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_foresr.jpeg (100%) create mode 100644 packages/shell-chrome/assets/image/background/pomo_green.jpeg rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_leaf.jpeg (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_light.jpeg (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_ocean.jpg (100%) rename packages/shell-chrome/assets/{html/pomodoro/images => image/background}/pomo_waterfall.jpg (100%) diff --git a/packages/shell-chrome/assets/css/main.css b/packages/shell-chrome/assets/css/main.css index 700858c..b4e867c 100644 --- a/packages/shell-chrome/assets/css/main.css +++ b/packages/shell-chrome/assets/css/main.css @@ -17,23 +17,46 @@ body { } #popup header { width: inherit; - height: 30px; + height: 40px; background: linear-gradient(to right, #f6d365 0%, #fda085 51%, #f6d365 100%); } #popup header img { height: inherit; } -#popup .article ul li { +#popup #back { + display: none; + position: absolute; + top: 54px; + left: 10px; + width: 15px; + height: 15px; + background-color: transparent; + border-top: 2px solid #fff; + border-left: 2px solid #fff; + transform: rotate(-45deg); + cursor: pointer; +} +#popup #article #weather { + width: 100%; + height: 150px; + margin-top: 3px; + background-color: #fff; +} +#popup #article .left { + float: left; + width: 200px; +} +#popup #article .left ul li { margin: 5px 0; height: 45px; background: linear-gradient(to right, #84fab0 0%, #8fd3f4 51%, #84fab0 100%); } -#popup .article ul li span { +#popup #article .left ul li span { font-size: 16px; line-height: 45px; margin-left: 5px; } -#popup .article ul li #click-per .button { +#popup #article .left ul li #click-per .button { position: relative; float: right; top: 6px; @@ -42,7 +65,7 @@ body { height: 32px; border-radius: 100px; } -#popup .article ul li #click-per .button .checkbox { +#popup #article .left ul li #click-per .button .checkbox { position: relative; width: 100%; height: 100%; @@ -50,24 +73,24 @@ body { cursor: pointer; z-index: 3; } -#popup .article ul li #click-per .button .knobs, -#popup .article ul li #click-per .button .layer { +#popup #article .left ul li #click-per .button .knobs, +#popup #article .left ul li #click-per .button .layer { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } -#popup .article ul li #click-per .button .knobs { +#popup #article .left ul li #click-per .button .knobs { z-index: 2; } -#popup .article ul li #click-per .button .layer { +#popup #article .left ul li #click-per .button .layer { border-radius: 100px; width: 100%; background-color: #ebf7fc; z-index: 1; } -#popup .article ul li #click-per .button .knobs::before { +#popup #article .left ul li #click-per .button .knobs::before { content: "YES"; position: absolute; top: 2px; @@ -83,20 +106,20 @@ body { background-color: #03a9f4; border-radius: 50%; } -#popup .article ul li #click-per .button .checkbox:checked + .knobs:before { +#popup #article .left ul li #click-per .button .checkbox:checked + .knobs:before { content: "NO"; left: 3px; background-color: #f44336; } -#popup .article ul li #click-per .button .checkbox:checked ~ .layer { +#popup #article .left ul li #click-per .button .checkbox:checked ~ .layer { background-color: #fcebeb; } -#popup .article ul li #click-per .button .knobs, -#popup .article ul li #click-per .button .knobs:before, -#popup .article ul li #click-per .button .layer { +#popup #article .left ul li #click-per .button .knobs, +#popup #article .left ul li #click-per .button .knobs:before, +#popup #article .left ul li #click-per .button .layer { transition: 0.3s ease all; } -#popup .article ul li #mouse-style .button { +#popup #article .left ul li #mouse-style .button { position: relative; float: right; top: 6px; @@ -105,7 +128,7 @@ body { height: 32px; border-radius: 100px; } -#popup .article ul li #mouse-style .button .checkbox { +#popup #article .left ul li #mouse-style .button .checkbox { position: relative; width: 100%; height: 100%; @@ -113,24 +136,24 @@ body { cursor: pointer; z-index: 3; } -#popup .article ul li #mouse-style .button .knobs, -#popup .article ul li #mouse-style .button .layer { +#popup #article .left ul li #mouse-style .button .knobs, +#popup #article .left ul li #mouse-style .button .layer { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } -#popup .article ul li #mouse-style .button .knobs { +#popup #article .left ul li #mouse-style .button .knobs { z-index: 2; } -#popup .article ul li #mouse-style .button .layer { +#popup #article .left ul li #mouse-style .button .layer { border-radius: 100px; width: 100%; background-color: #ebf7fc; z-index: 1; } -#popup .article ul li #mouse-style .button .knobs::before { +#popup #article .left ul li #mouse-style .button .knobs::before { content: "YES"; position: absolute; top: 2px; @@ -146,25 +169,44 @@ body { background-color: #03a9f4; border-radius: 50%; } -#popup .article ul li #mouse-style .button .checkbox:checked + .knobs:before { +#popup #article .left ul li #mouse-style .button .checkbox:checked + .knobs:before { content: "NO"; left: 3px; background-color: #f44336; } -#popup .article ul li #mouse-style .button .checkbox:checked ~ .layer { +#popup #article .left ul li #mouse-style .button .checkbox:checked ~ .layer { background-color: #fcebeb; } -#popup .article ul li #mouse-style .button .knobs, -#popup .article ul li #mouse-style .button .knobs:before, -#popup .article ul li #mouse-style .button .layer { +#popup #article .left ul li #mouse-style .button .knobs, +#popup #article .left ul li #mouse-style .button .knobs:before, +#popup #article .left ul li #mouse-style .button .layer { transition: 0.3s ease all; } +#popup #article .right { + float: right; + width: 100px; +} +#popup #article .right #clock { + width: 80px; + height: 80px; + margin: 30px auto; + background-color: #fff; + border-radius: 50%; + text-align: center; + line-height: 80px; + cursor: pointer; + font-size: 20px; +} +#popup #article .right #clock:active { + transform: translate(0px, 1px); + box-shadow: 0px 1px 0px 0px; +} #popup #btnScreenshot { position: absolute; top: 1px; right: 5px; - width: 64px; - height: 27px; + width: 81px; + height: 37px; color: #fff; font-weight: 500; cursor: pointer; diff --git a/packages/shell-chrome/assets/css/main.less b/packages/shell-chrome/assets/css/main.less index d9eee33..1f4f651 100644 --- a/packages/shell-chrome/assets/css/main.less +++ b/packages/shell-chrome/assets/css/main.less @@ -19,162 +19,205 @@ body { width: 300px; header{ width: inherit; - height: 30px; + height: 40px; background: linear-gradient(to right, #f6d365 0%, #fda085 51%, #f6d365 100%);; img { height: inherit; } } - .article{ - ul{ - li{ - margin: 5px 0; - height: 45px; - background: linear-gradient(to right, #84fab0 0%, #8fd3f4 51%, #84fab0 100%); - span{ - font-size: 16px; - line-height: 45px; - margin-left: 5px; - } - #click-per{ - .button { - position: relative; - float: right; - top: 6px; - right: 6px; - width: 66px; - height: 32px; - border-radius: 100px; - .checkbox { + #back { + display: none; + position: absolute; + top: 54px; + left: 10px; + width: 15px; + height: 15px; + background-color: transparent; + border-top: 2px solid #fff; + border-left: 2px solid #fff; + transform: rotate(-45deg); + cursor: pointer; + } + #article{ + #weather{ + width: 100%; + height: 150px; + margin-top: 3px; + background-color: #fff; + } + .left{ + float: left; + width: 200px; + ul{ + li{ + margin: 5px 0; + height: 45px; + background: linear-gradient(to right, #84fab0 0%, #8fd3f4 51%, #84fab0 100%); + span{ + font-size: 16px; + line-height: 45px; + margin-left: 5px; + } + #click-per{ + .button { position: relative; - width: 100%; - height: 100%; - opacity: 0; - cursor: pointer; - z-index: 3; - } - .knobs, - .layer { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - } - .knobs { - z-index: 2; - } - .layer{ + float: right; + top: 6px; + right: 6px; + width: 66px; + height: 32px; border-radius: 100px; - width: 100%; - background-color: #ebf7fc; - z-index: 1; - } - .knobs::before { - content: "YES"; - position: absolute; - top: 2px; - left: 34px; - width: 20px; - height: 10px; - color: #fff; - font-size: 10px; - font-weight: bold; - text-align: center; - line-height: 1; - padding: 9px 4px; - background-color: #03a9f4; - border-radius: 50%; - } - .checkbox:checked+.knobs:before { - content: "NO"; - left: 3px; - background-color: #f44336; - } - .checkbox:checked~.layer { - background-color: #fcebeb; - } - .knobs, - .knobs:before, - .layer{ - transition: 0.3s ease all; + .checkbox { + position: relative; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; + z-index: 3; + } + .knobs, + .layer { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + .knobs { + z-index: 2; + } + .layer{ + border-radius: 100px; + width: 100%; + background-color: #ebf7fc; + z-index: 1; + } + .knobs::before { + content: "YES"; + position: absolute; + top: 2px; + left: 34px; + width: 20px; + height: 10px; + color: #fff; + font-size: 10px; + font-weight: bold; + text-align: center; + line-height: 1; + padding: 9px 4px; + background-color: #03a9f4; + border-radius: 50%; + } + .checkbox:checked+.knobs:before { + content: "NO"; + left: 3px; + background-color: #f44336; + } + .checkbox:checked~.layer { + background-color: #fcebeb; + } + .knobs, + .knobs:before, + .layer{ + transition: 0.3s ease all; + } } } - } - #mouse-style{ - .button { - position: relative; - float: right; - top: 6px; - right: 6px; - width: 66px; - height: 32px; - border-radius: 100px; - .checkbox { + #mouse-style{ + .button { position: relative; - width: 100%; - height: 100%; - opacity: 0; - cursor: pointer; - z-index: 3; - } - .knobs, - .layer { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - } - .knobs { - z-index: 2; - } - .layer{ + float: right; + top: 6px; + right: 6px; + width: 66px; + height: 32px; border-radius: 100px; - width: 100%; - background-color: #ebf7fc; - z-index: 1; - } - .knobs::before { - content: "YES"; - position: absolute; - top: 2px; - left: 34px; - width: 20px; - height: 10px; - color: #fff; - font-size: 10px; - font-weight: bold; - text-align: center; - line-height: 1; - padding: 9px 4px; - background-color: #03a9f4; - border-radius: 50%; - } - .checkbox:checked+.knobs:before { - content: "NO"; - left: 3px; - background-color: #f44336; - } - .checkbox:checked~.layer { - background-color: #fcebeb; - } - .knobs, - .knobs:before, - .layer{ - transition: 0.3s ease all; + .checkbox { + position: relative; + width: 100%; + height: 100%; + opacity: 0; + cursor: pointer; + z-index: 3; + } + .knobs, + .layer { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + } + .knobs { + z-index: 2; + } + .layer{ + border-radius: 100px; + width: 100%; + background-color: #ebf7fc; + z-index: 1; + } + .knobs::before { + content: "YES"; + position: absolute; + top: 2px; + left: 34px; + width: 20px; + height: 10px; + color: #fff; + font-size: 10px; + font-weight: bold; + text-align: center; + line-height: 1; + padding: 9px 4px; + background-color: #03a9f4; + border-radius: 50%; + } + .checkbox:checked+.knobs:before { + content: "NO"; + left: 3px; + background-color: #f44336; + } + .checkbox:checked~.layer { + background-color: #fcebeb; + } + .knobs, + .knobs:before, + .layer{ + transition: 0.3s ease all; + } } } } } } + .right{ + float: right; + width: 100px; + #clock{ + width: 80px; + height: 80px; + margin: 30px auto; + background-color: #fff; + border-radius: 50%; + text-align: center; + line-height: 80px; + cursor: pointer; + font-size: 20px; + } + #clock:active{ + transform: translate(0px, 1px); + box-shadow: 0px 1px 0px 0px; + } + } + } #btnScreenshot{ position: absolute; top: 1px; right: 5px; - width: 64px; - height: 27px; + width: 81px; + height: 37px; color: #fff; font-weight: 500; cursor: pointer; @@ -189,4 +232,6 @@ body { transform: translate(0px, 1px); box-shadow: 0px 1px 0px 0px; } + + } diff --git a/packages/shell-chrome/assets/html/pomodoro/assets/css/popup.css b/packages/shell-chrome/assets/html/pomodoro/assets/css/popup.css index 3c92d2d..51ddb04 100644 --- a/packages/shell-chrome/assets/html/pomodoro/assets/css/popup.css +++ b/packages/shell-chrome/assets/html/pomodoro/assets/css/popup.css @@ -1,12 +1,12 @@ @import url('https://fonts.googleapis.com/css2?family=Fira+Sans:wght@400;500&display=swap'); @import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro&display=swap'); - body { /* background-color: rgb(51, 11, 116); */ background: url(../../images/pomo_green.jpeg) no-repeat; - background-image: "../../"; + background-size: cover; + /* background-image: "../../"; */ /* color: white; */ - font-family: 'Source Sans Pro','Fira Sans', sans-serif; + font-family: 'Source Sans Pro', 'Fira Sans', sans-serif; margin: 0; padding: 0; /* width: 280px; */ @@ -19,6 +19,63 @@ body { padding: 10px 0 20px; } +#left { + position: absolute; + width: 25px; + height: 45px; + top: 180px; + left: 0; + border-top-right-radius: 10px; + border-bottom-right-radius: 10px; + opacity: 0.5; + cursor: pointer; +} + +#left:hover { + background-color: #b4b2b2; +} + +#left::before { + position: absolute; + content: ""; + top: 12px; + left: 5px; + width: 15px; + height: 15px; + border-top: 2px solid #bbb9b7; + border-left: 2px solid #bbb9b7; + transform: rotate(-45deg); +} + +#right { + position: absolute; + width: 25px; + height: 45px; + top: 180px; + right: 0; + border-top-left-radius: 10px; + border-bottom-left-radius: 10px; + opacity: 0.8; + cursor: pointer; +} + +#right:hover { + background-color: #b4b2b2; +} + +#right::after { + z-index: 9999; + position: absolute; + content: ""; + top: 12px; + right: 5px; + width: 15px; + height: 15px; + border-top: 2px solid #585551; + border-right: 2px solid #585551; + transform: rotate(45deg); +} + .buttons { width: fit-content; margin: auto; @@ -26,7 +83,7 @@ body { color: rgb(169, 172, 172); } -.buttons .slider{ +.buttons .slider { color: rgb(247, 226, 230); } @@ -37,7 +94,9 @@ body { padding: 8px; } + /*计数部分*/ + #countdown { clear: both; width: fit-content; @@ -48,12 +107,13 @@ body { color: aliceblue; } -#countdown span{ +#countdown span { opacity: 0; } - -#start-btn,#end-btn,#reset-btn { +#start-btn, +#end-btn, +#reset-btn { /* 文字颜色 */ color: #f5e4b9; /* 清除背景色 */ @@ -71,24 +131,26 @@ body { /* width: 40px; */ font-size: 16px; margin: 4px 2px; - -webkit-transition-duration: 0.4s; /* Safari */ + -webkit-transition-duration: 0.4s; + /* Safari */ transition-duration: 0.4s; cursor: pointer; text-decoration: none; text-transform: uppercase; - - text-shadow: 1px 1px 1px rgba(255,255,255, .1); - border-radius: 25px; - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); - - + text-shadow: 1px 1px 1px rgba(255, 255, 255, .1); + border-radius: 25px; + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); } + #start-btn { background-color: white; color: black; border: 1px solid #f5e4b9; } + + /* 悬停样式 */ + #start-btn:hover { background-color: #f5e4b9; color: white; @@ -100,12 +162,16 @@ body { border: 1px solid #ECB390; display: none; } + + /* 悬停样式 */ + #end-btn:hover { background-color: #ECB390; color: white; } + /* #end-btn{ width: 40px; margin: 10px auto 0; @@ -115,6 +181,7 @@ body { cursor: pointer; } */ + /* #reset-btn { width: 40px; margin: 10px auto 0; @@ -129,7 +196,10 @@ body { color: black; border: 1px solid #DD4A48; } + + /* 悬停样式 */ + #reset-btn:hover { background-color: #DD4A48; color: white; @@ -141,13 +211,13 @@ body { display: none; } */ + /*选中的按钮*/ + .selected { background-color: rgb(244, 242, 248); } - - ul { padding: 0; } @@ -164,13 +234,12 @@ li { float: right; } - .hide { display: none; } -footer .settings{ +footer .settings { position: absolute; bottom: 5px; right: 5px; -} +} \ No newline at end of file diff --git a/packages/shell-chrome/assets/html/pomodoro/assets/js/popup.js b/packages/shell-chrome/assets/html/pomodoro/assets/js/popup.js index 122fa0a..cffd503 100644 --- a/packages/shell-chrome/assets/html/pomodoro/assets/js/popup.js +++ b/packages/shell-chrome/assets/html/pomodoro/assets/js/popup.js @@ -42,121 +42,117 @@ let pomodoro = "pomodoro"; //番茄钟按钮-绑定事件 document.addEventListener("click", (e) => { - if (!e.target.matches(".button")) return; + if (!e.target.matches(".button")) return; - // reset when pomodoro button selected - pause = true; - seconds = 60; - startBtn.innerHTML = "开始"; + // reset when pomodoro button selected + pause = true; + seconds = 60; + startBtn.innerHTML = "开始"; - chrome.storage.sync.set({ pause: pause, seconds: seconds }, function () { - if (!chrome.runtime.error) { - alert("初始化pause、seconds"); - } - }); - - // 定时器初始化 - if (e.target.matches("#pomodoro-btn")) { - countdownTimer.innerHTML = "25:00"; - pomodoro = "pomodoro"; - minutes = 25; - chrome.storage.sync.set( - { minutes: minutes, countdownTimer: "25:00" }, - function () { + chrome.storage.sync.set({ pause: pause, seconds: seconds }, function() { if (!chrome.runtime.error) { - alert("added target pomodoro!"); + alert("初始化pause、seconds"); } - } - ); - } + }); + + // 定时器初始化 + if (e.target.matches("#pomodoro-btn")) { + countdownTimer.innerHTML = "25:00"; + pomodoro = "pomodoro"; + minutes = 25; + chrome.storage.sync.set({ minutes: minutes, countdownTimer: "25:00" }, + function() { + if (!chrome.runtime.error) { + alert("added target pomodoro!"); + } + } + ); + } }); // 开始按钮-绑定事件 startBtn.addEventListener("click", () => { - // countdown(); 在后台运行,需要取出状态 - debounce(start(), 100); + // countdown(); 在后台运行,需要取出状态 + debounce(start(), 100); }); function start() { - chrome.storage.sync.get("pomoData", ({ pomoData }) => { - const { minutes, seconds, status } = pomoData; + chrome.storage.sync.get("pomoData", ({ pomoData }) => { + const { minutes, seconds, status } = pomoData; - chrome.runtime.sendMessage( - { - status: "start", - senderId: "pomo", - content: { - minutes, - seconds, - }, - }, - (response) => { - console.log(response); + chrome.runtime.sendMessage({ + status: "start", + senderId: "pomo", + content: { + minutes, + seconds, + }, + }, + (response) => { + console.log(response); - startBtn.style.display = "none"; - endBtn.style.display = "block"; - getTimer(); - } - ); - }); + startBtn.style.display = "none"; + endBtn.style.display = "block"; + getTimer(); + } + ); + }); } endBtn.addEventListener("click", () => { - setTimeout(end, 200); + setTimeout(end, 200); }); function end() { - chrome.runtime.sendMessage( - { - status: "paused", - senderId: "pomo", - }, - (response) => { - console.log(response); - - startBtn.style.display = "block"; - endBtn.style.display = "none"; - clearTimer(); - } - ); -} - -function getTimer() { - clearTimer(); - timer = setInterval(() => { - chrome.storage.sync.get("pomoData", ({ pomoData }) => { - // console.log("pomodata****",pomoData) - // const{minutes,seconds,countdownTimer} = pomoData; - countdownTimer.innerHTML = pomoData.countdownTimer; - - //更新后倒计时判断,如果结束则重新初始化界面 - if(pomoData.countdownTimer == "00:00"){ - - audio.play(); - //不能放在页面上,要在后台进行 - chrome.runtime.sendMessage( - { - status: "playend", + chrome.runtime.sendMessage({ + status: "paused", senderId: "pomo", - }, - (response) => { - console.log(response,"**************下面"); - countdownTimer.innerHTML = "25:00"; + }, + (response) => { + console.log(response); startBtn.style.display = "block"; endBtn.style.display = "none"; clearTimer(); - } - ); + } + ); +} - } - }); - }, 200); +function getTimer() { + clearTimer(); + timer = setInterval(() => { + chrome.storage.sync.get("pomoData", ({ pomoData }) => { + // console.log("pomodata****",pomoData) + // const{minutes,seconds,countdownTimer} = pomoData; + countdownTimer.innerHTML = pomoData.countdownTimer; + + //更新后倒计时判断,如果结束则重新初始化界面 + if (pomoData.countdownTimer == "00:00") { + + audio.play(); + //不能放在页面上,要在后台进行 + chrome.runtime.sendMessage({ + status: "playend", + senderId: "pomo", + }, + (response) => { + console.log(response, "**************下面"); + countdownTimer.innerHTML = "25:00"; + + startBtn.style.display = "block"; + endBtn.style.display = "none"; + clearTimer(); + } + ); + + } + }); + }, 200); } function clearTimer() { - clearInterval(timer); + clearInterval(timer); } /* @@ -164,59 +160,104 @@ function clearTimer() { * delay [number] 毫秒,防抖期限值 */ function debounce(fn, delay) { - let timer = null; //借助闭包 - return function () { - if (timer) { - clearTimeout(timer); //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时 - timer = setTimeout(fn, delay); - } else { - timer = setTimeout(fn, delay); // 进入该分支说明当前并没有在计时,那么就开始一个计时 - } - }; + let timer = null; //借助闭包 + return function() { + if (timer) { + clearTimeout(timer); //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时 + timer = setTimeout(fn, delay); + } else { + timer = setTimeout(fn, delay); // 进入该分支说明当前并没有在计时,那么就开始一个计时 + } + }; } // 重置按钮-绑定事件 resetBtn.addEventListener("click", () => { - setTimeout(() => { - chrome.runtime.sendMessage( - { - status: "reset", - senderId: "pomo", - }, - (response) => { - // console.log(response); - countdownTimer.innerHTML = "25:00"; + setTimeout(() => { + chrome.runtime.sendMessage({ + status: "reset", + senderId: "pomo", + }, + (response) => { + // console.log(response); + countdownTimer.innerHTML = "25:00"; - startBtn.style.display = "block"; - endBtn.style.display = "none"; - clearTimer(); - } - ); - }, 100); + startBtn.style.display = "block"; + endBtn.style.display = "none"; + clearTimer(); + } + ); + }, 100); }); //页面反复打开时页面初始化 chrome.storage.sync.get("pomoData", ({ pomoData }) => { - console.log(pomoData); - const { status } = pomoData; + console.log(pomoData); + const { status } = pomoData; - if (status === "start") { - startBtn.style.display = "none"; - endBtn.style.display = "block"; - getTimer(); - } else if (status === "paused") { - startBtn.style.display = "block"; - endBtn.style.display = "none"; - chrome.storage.sync.get("pomoData", ({ pomoData }) => { - countdownTimer.innerHTML = pomoData.countdownTimer; - }); - } else if (status === "init") { - chrome.runtime.sendMessage({ - status: "init", - senderId: "pomo", - }); - countdownTimer.innerHTML = "25:00"; - }else if(status === 'playend'){ - countdownTimer.innerHTML = "25:00"; - } + if (status === "start") { + startBtn.style.display = "none"; + endBtn.style.display = "block"; + getTimer(); + } else if (status === "paused") { + startBtn.style.display = "block"; + endBtn.style.display = "none"; + chrome.storage.sync.get("pomoData", ({ pomoData }) => { + countdownTimer.innerHTML = pomoData.countdownTimer; + }); + } else if (status === "init") { + chrome.runtime.sendMessage({ + status: "init", + senderId: "pomo", + }); + countdownTimer.innerHTML = "25:00"; + } else if (status === 'playend') { + countdownTimer.innerHTML = "25:00"; + } }); + +// 轮播图 +let photos = ["../../image/background/pomo_green.jpeg", + "../../image/background/pomo1.png", + "../../image/background/pomo_waterfall.jpg", + "../../image/background/pomo_ocean.jpg", + "../../image/background/pomo_light.jpeg", + "../../image/background/pomo_leaf.jpeg", + "../../image/background/pomo_foresr.jpeg", + "../../image/background/pomo_fire.jpeg", + "../../image/background/pomo_crystal.jpg" +] + +let len = photos.length; +// console.log(len); +let index = 0; +document.getElementById('right').addEventListener("click", function() { + change_r(); +}); +document.getElementById('left').addEventListener("click", function() { + change_l(); +}); + +function change_l() { + index--; + if (index < 0) { + index = len - 1; + } + change(index); +} + +function change_r() { + index++; + if (index == len) { + index = 0; + } + change(index); +} + +function change(n) { + document.body.style = "background: url(" + photos[n] + ") no-repeat; background-size: cover;"; +} + +let t = setInterval(function() { + change_r(); +}, 40000); \ No newline at end of file diff --git a/packages/shell-chrome/assets/html/pomodoro/popup.html b/packages/shell-chrome/assets/html/pomodoro/popup.html index 1301838..ec337b8 100644 --- a/packages/shell-chrome/assets/html/pomodoro/popup.html +++ b/packages/shell-chrome/assets/html/pomodoro/popup.html @@ -1,5 +1,6 @@ +
@@ -10,34 +11,35 @@ + - +8!8cjV{(Tdrgg@`Z~x9MFS7d_MNXmG!e>V*t$`oD z$|=|9h!nIV95_nl70KVWTz*k&NhxoJ5obaB?-@4M#w9exj!(lu(7PwxMWMo zbjp9)WmSRscg?7k^@se>Q*WkoE@vUx8&s;PY?;n=)el*0y`$d!D1Djw){}#1;fy2w zvd|*e#P_3nAJQ>bp9&wVv!3^%>gl6|&aId @2)tilrC% zr4`cf+QXx)-q3dciy4v!48Arh>A_>p${c3`w;it-)q_$)lQPmYzg-?9JkR#o+&~5v z9p9J#014bZA{Bp5ubJW1RPrpk_XuLb*GKeYNA%QXs@C%JgKh63nLTF!)DI)EtKHR_ zFM-ErJ2sr4IXV(%hd)P}DPE_6u8WX^Rvvu}=Y8emh;)LFJwY>3@)L#93@~K{v4Wo! zV<|R{DuNT4{c~XVp8>~Um gtc9;-l5g^@fr4&GE4D||bh zV0R3NtFYseA7UjF+8K8~xqBf=((kDoJzq8N^x8fRN4kF1=VWrS{`+I@UuD!j#>sN+ zhqrqmDo;kRVoTM65aUAHORA4)AXN8p&p8I-DNS T3swC*Re|9kO6@#}V06Ht+WlkGTr5uD^U$G9vg|MV8Pz zH6tD2M}AprMl;5FMxqYs*A$Dq>M8RSnt z#}OX*DOYKaja>+iFK*Xm8}e4MDP@hJTjevU`U+QdZX(k8*%S4C`Vc})otzd{dgAYd zI9A7H1uIpF?l06UTG8``uBAJdEA@QQ3Tc>nizv`u906H7aoGIYMZB?-65oJYT#`bA z$!FFum5s=K%<_5ZmN#r)zbzY2GFa4dcVILtS;Fuu1cF$dd-eqZgQ9;P^_F-mJ|o!t z1ClwlXj2u;=Q{)nc9Phptw?PUbqdys_!KGux?>K(J*$$kc=!CdhRg;_1GG`KJM6fX z#|AaSa~^e6@&fXiW!9f5&vJ6`Dpj?a@};oTmB^Fu_kX4{9*#;lT*Qs=^u2n^HS}i2 zrkKaQ=n1k{O20)|E0JzW+YGj{p^)4x$)3vdV04lDwBOTG4D<3T+ CL*&-@lK=)9ItM)P0af{yju{c-a+(`p$Q2o$xdnmIVLS ze!1|~rEO-(L}o7F)dPi9EQmal+6{K(RNZ`HSDw=tLQ%x{nfr*L1ebe2h`^x8U*RZ0 zYQVcZ#TH@h@+%+5Vcp^~;aA+9g|lGqU2(78jagrMX-c+ *N=WceAN2mCAGeBD>9X^W6hrZMJU%nk z1bhnMmWrx~H-;fs&H7=bT_y3+>@oB$tq^9jy<@@p+JoH2UpG@ly IuVZD({Mw*_4)#;Q+#LbDoHF2N4fTU&3*N%Sx z{630lv1ao|AY-zHp#D9m@e+U35ZX8Y=O3WX|5lCqK{TRBop=r*lo9KtLyqXW @8vYfBwt@v#s0is%ebnVyB- hZWtL-SIn =T3Oq!YVprl?q#A^`4{$m?5F3o`mGyOfL%>{OKur+eznj(>ysSJ8vFBK_MLh! zLIVgsicDTfP%jMaInj(4XG}1o^41hV=vv4;?NT6c?vkogI(3)CvV*0+9qYRK3d0%V zO%`_A8x!rjFv(1YIfX(kVuYW0kOjr-Ps-`n4B?T&le@1v1Ul{_X5Y|!@Wzh+mf~j_ zWzl}0+%_xUySzDo%ln?3Ej*${UF-|&w?eL;TJ~ZLQLctmOuc|?4h||A3puaZbp6-! zPe*ZCCKIQ89H;Qe)F(6rOSo}RMz*NX&)vCS3!m2><0gZPhSC|VG;G>+v3nb@#)-+a zYq4O98}aiSZ70QHg^eZ0?+%cHh;`96y))yLeooC@9}h1A(gVF13|G`Y0Nt<9)nM1W zg${D-0pEO4Zn9E0-nzw8m&NSzb=IYPgKRW3GB~6XbErS}NFVFlsV5vAU+(Z;CS+5s z-8VtTZB$V6^4z!m&&g!$0s4u8z|7%^am4OUM+XK2+j$JK24TrtHa&$uV=H7eD{N-H zgm8calhalW)uyeZr5I}%5!TjZe*stJfEWZqc=*i(nm-}jbm6?o8Dzxy&Nkq(ltY(? z*VUK-oDF||I7gb$7=nlswBv2MuJChYZ?P$wjy?(5yv_>ZCE!s^i|D4!%bwUo9$sA` z8IJvdKBk1_A uLX2H>_^dGNyuIXia8V#CCe8Bvat+jHTp75R@zPm!w{OrcL;lN$DePcxJ zre~i0+;2J1YHfGGCf9-0)weE_3stGjbPp|%**Rql4VgIU6=X7HT}P^~N?k8g^MP=q z--o_Cb@)_FC)sL1PT)%USpRAgxv5+#US>f{dQeOU^^+1D^bw^c z>Cv|@N-gT|VO?D(-%sW@?HG739`>9;>*^x>{{d1A7(`6TIwj+YM@=oU4NbH;IHdM^ zU>V+_9;She5eIV}f5t@x* !ib%^bVvJXGS`#N+UHYP`+z9kKR}R&6Q8oG1Mw8s z4F{S1ZjW#?)H*wdy|vb_Vx*z4?XkIuU(<6I-_&n+D;?t7^N5Ct_$>5R8=nnb*HMTp z_lne>g9rcF+d^i=v5zVqG;rbq@Ht)XmS^s!&Aywx)KTBTvCfKVzHsFl{@#i})GfXF z{aUXDr5{`}G<_ShB9r-w+5aYGW30tHL#5^RFYA5utk0RuMf%?_G!5&-lJ>h-6x4mx zW`v59y?HhxU>q5glZOl0t?0)|eFyNp`^%#e6;yALGK 8t5Yxr^BXG33cTE2tI*4LWcn@2sBJpXGE~(2ZqIp`bD} zfX1E&1WE# SEACWF5*a%dY=^*Sx BeNf3XLc%^ zNP?o~xH{~0t=wldiFq>zlT^Pek^!WdSZa`UX728K`54*469@@}YXnM^Q&offqL#AZ ztktg}8lns^MD98G@Eo?Iy~-~@82h;0H>pCa@RNwzX)A2&8r}zc8$rg_sIVX<2nU4% z-zwjlt<=uy8-_%h)q^Q`?-~mpT0^~lI4({VY}_d92Xa4_Pexh*W%kZTa%f-A!3fNB z)OooY>%k}G%-6B?@RDb?Yt6Y*vs(C!=tzK?^B|tZTLWm6>24^hB8gBGNVRQw2U66z z32YgD+1sn4=1~rR$!hyz!Cn6vqxd>8{qY~5w2l($@Tx%Ay$1DDQxGLu0Fn}PR~P!d zi^|1ws_tfwDB^FkP08*J2vkk|J{5UX|EJLKN^eiY4OdJyBhhmwXEa &q(IpCvgAgwgTBpi38V}M*1(!GGc?(;y zx7h6=I@QhwT|Qy0O^|n*NgIyBGw(!Jx0q{mFK1h(w?E;J84y8ic;*T}S170 mRh4X1ZB^j{7VvuF74GE0 z1t_n)imV1~(HdC{2C^_Rz^&OwHD9+XE(d>l)V*%s+9mq#&Ad+K`VUa%Yw7Hpv{ g#YRC}4K@55BkW>lR_yPkPQO|sYJGO+ zTFTk%O$53|*$#{BcL>BDkHXwTIil4^QSA0qzlR5|>sZuZfB3U;KfP8}j}XomuQ8us zL(T}6X4`h0XWtR?_?TA_QO}Uh`5T9IcK>)dF>N$~jm26Kkv}SKY9bw)S%I2$hzd8H zCDrZ~pX_{D!7KaI6*kdosEQaD=C{^aYS&Z!@g&!tARO$!6gutmoY*21WyR*VihsS_ zv}^sX2yaqognQoj?St=~m0i>_ecs!ZhO((Uk;M-OIbuuA1LmXH8We_@m>iTAiP b^zG=;GTDhUuD6T#Wx2M!&G&ajcT;6a2JS3m z`+pMeCn6R& fG$%YecPOYMCAZ2N7|3s$9c1jUl}6|euB+f)Zu0z`C3+mM8^kUj zHSJ@TZAA3L3g_&;2{4w_Vv)%K+pLr9jz=a9%~=IZbx#fks9P#^>leROiY-<%eT$Y3 z#kJkZ+toSN&J@rI;5gmPyZ-PXI37^{N$dgRFuT{L&HRNxTTR+A&~)w;IX~?fAmCRd z8vCv{OpDtYrhU$*xWdqCINJu)PIhrnSaTjcKkJTRIhkmJ>GgQ4z`mx3tw@)3wAb=> zcQO&}=<%6KcVl~!neQis3cbK3FAC|$q7ioRVojPgOWH%~s~dEdeJ^mrPIp9?DajMw zRk6%*EnJibTIzZe8orx+diGR4Cu$JwZedqxkFg!cP8 mlz92xmr#mOvl^)nR5rm(qIP 1+^oHP n>B!>sgLx!fU%yLnG^e6H!O|Z{ zl1a9@X;dgL;>g{ext2E>WNDwR&BZ}DYO_W*3tY;);g&!f@qayYzxnBYz;^FRL!4Qr zd43FexPR91RNbuKA*gBXeIBFckL=D_kSI3k$woE6j0u6LqXd8LJ`u9@0#h`yQg% zRJxS2HWvGeoC(!wjb+WA!-Pw>n8F#L0{WXC!xdl6DxkUR46R}$kMqk~n^+5pa4WNa z0FAa3JdM^RJE0j1_3kRqmef1k7dam~ygol4jtN}vIF8ajk3Zl+p1|bC<42k~ESbgP zOWtTdL$w;-WpFJrA+<91!lLCdBL?)Kb9-0tgdaGu00LhI5H&n>QXqTic8+Vigc3V? zM|n=in-w}FHyU_1VQyCgJJYU@KMhtsdy*d>z@j)R`D|$>rj{A#zg{`?XTb9zWNc61 z4Qu+M_i-$$NnYwzmZ8& 5}022-ou7ZT}-hjQM;kA_Y0Rwt_LYNy(8jR~U+Hia-J zc9Adx9w#TQ^^ztHNZo3PSMj^!c&p~iSX8pNTidlsxW-477e2a+l)+NR0k6VbG((tV z`gVVas7Un5byQU#q~S^;vVmX4*(Aar_>lyMy@PDZpktOg3_^Z{)(;h_%fW;nD2-M+ z8&dswYDBtOeWCetU?MNkY&{Vy|Bc=N<69jA;~SiJ Sj+8z&MpivCDG#J%JF3wT nuIKZyI&`=E@$K9FlQMuwapt z=?;k1E`6`)T$6KW<}JJ+&(cb>iK-1RZsO%i5BVJT$JKgePSQE@H9D9?Amz9eBy5aq zh^l0AL#M3KV=?PxQ4Tev*WIaak^POxRINy)zyUdJ`0*`ES_mh|d9<=8_FDEIK*%GY z*1u_6Np{Z}%X3$SDDX~Or0!FDjw8DUKL>)Eoe#>T_n~D~I5(!NoE=|Ov?FwdZ(;q7 zoC(`n|IH%DZirq*N%Cv_#tL?MM)KfTTMYD}(6>R{+*Si(2%+Scv{B;tm0#4$AWYu2 z3R@dS2&01I*CwEH_kxwmg C!yIsQ{#t{Y0f8W#NesskB+$v%Dk2f*vK z2z>Yu4r-FL_6*4=ryRmnginGC^ySKDV`^8J7w7y%5BK&i+e%#7E1>j~km6 ^&9H(ya*C+lj=6f)B zR?iNFx`PvMX*wlKaeGag{JYNfbzUD`tbWBwgg5xA=GL`i=wmygW8m#?l7PBNnf*8J z>umluwbM)7VI$0Mwv3T*eK(g(C@gB*rBXsk9YVj=_RDe7+Kal@}BV(rOj7s23os znorTo9^#Q|{9Gy?Ee7tw(g9&K8Go%U|2%9mBX5mS`bK4jbivU}&$iA&{U8Kt^}Y16 zRTNoY{JV&Xdv}pT5UAK-KPgea?1N!@yJ*JNj*;m~RoUSeSsiv=ojWi|~f>3%ghR zxjvC7@S7L#ej~ZlnQA@16QN@(U5wwJWZj7N>eX#!!umThFM-xX&3zz?YMwlcY&abM zpgV6daTe%~9w2f*9$)&M^*Ah@d;(GFZju{n)~YC99+{557Hqz`0PJ-|MgYx$YD%PE zG^-~u1XFsV8H@rJbNyPT%S&tgG$p5Io5wt?_WidsnTxep101U;4{Vwr4!a@(aDLd? zElSusUJ|&`W+9%;uZE%>s7M~>u-V58b&}MbvU+|sdmdpdm|O)W167e9UvE=;IGi!n z%1wWr(~ae^!un-P{mx?88e!t#h~s~6IREq7*CP%z&id>y<2U@MO5dtv&kA@uI5raD zi1d-PZwPxyA1-OlH6KSc(U)4TjuwlnyyM+B)&x)0@-zQ24jkx%?Ds&@tZ$JPt9|Wo zhufr3w*+XJLm|0)wVSG~LX-ZV%d>@#%84}Y-W8A8*Srtr{pmL`Kle(1$1~(5GfO3Z ziom9_sMT+?Z$=IGfIY}r7cI Sxmt2ibUcJ?B8fUrpHfjBm zG4G+%P!2j#-HkkkNUJL%hvirs&IR36pAvTUfNmW`fgj0MIGjf%a?y=;5v?}Pl v+JRy`m4Wlt96icp~d2f2WPqhg~^&!Q=$_5R~@1G^cMmj^#)XCoV(K(WZL3o zUCq>p&iH%=a-8E!$2&qMD4wIStiECmU9?$vl GBC*U z-3{bKNo?!2Q!0!o<7dfvUbUiARt?*$px)@|qsuh=q7*syKhR3Aa>Z%_BBm&I^r&n{ z$>hz|`wXMop+v{56)tFDE$f 4G#zDLMnO)I|t(e?%qZV+~pBDOZDWXSE+ejv+(|?t8|vUFy5oy`h6FTw|O2 zX4@QmkfWcuEK-tt9i{-oEUg%=glht|b$pZFe#!I6SkCdAT9aOXyJne6W@}EKRGG0C z_{H=HWl@`!-A3>uifDI7%EjL#QZzpq=7pq`?2e4jf~2W6?A1>;Ngk!l{Jq&@I}WQL zK}P&`2H`C@x~xExT$AT5udV5qI_x|9nBX#*aI|XGt^15obMhFg2o44Pazzc6B3kSj zJR$S|)_VW#MRB>Kl t` za`s7IN%qoxy_u=PpGR6%r5)YL(c|}9x|s(?hB I#xfuxT;dU97aTD*suApx#JxFNu=*8 ztgGO(X=aTj@W49xMOv}?(KWtxSE6d3@p{a_`0>*^?x+6yZqB8~G>Xp3jy|2Xl t_o@&x5S-;jxmihH!KrW&kbVJ6#5 zF)g(FK08+Qg145RXWAjQQZbh(j&KUCAGV%)4SL%tue<+L(9YI9F**p;xlpn&q++T3Q}4zn>KK9#v_9=+#yjlRbYt1?aPL1Xf$jHD zWqGPuidgYd9;k3M7uI!4wX~jNpGm|bgnmy7v8Ap41AKybr5ZfhLv=_yyAC+rr!)f9 z66gM0wDZ+FuHYyR0CFjy;aCD4lK kXs71d@-uR zLVHGWtyQlbfy#Fe+K1*3qLdahHva(WA8me>9}FW=KhA91R8vLDRS};*hB-Jp)GW|L z=yRHl^$DnxNxVzjH_%BdrIalJ=VRM)>{5%0JF#nVgp4RZa2#3P!mNQ51`bNB;o0RV zbN$V}7o$GY(Oc2-R$@h0Q@=$@JKMW9?4Q7!MPkiK0j&M^_U2s|@QopB=dza`_mS)F z8=ev#qLba731n7#Iuv)hLLAGVSNupJCY=7Y$K8J~mx}!_31&S0K4;>`8YTpK)?s)o zQU5>Cl>Wi)ZsK$Vzn>g}wffx3x!PzZJu>>6ztN^;9t0`J0_zJJreN GT zF{il1I-5Yj!M+pyn~S<12Ju$8Y?Ira4uuKJwzIX7xqkrmEtbIy%b&**H&dP>T@%}J z#o7Y-#)J6#__6C2Dg)58Lt5Y{fzS?@CkNSBm$ hpP?NcZ{?;$?FxqI`DU*l$kg+5^|wM^U3+PD^f=&d!d465`MJG1la z&n_IT$@49$oZ3@9)->kXJo@Ix#?0R_%-F@kRn3ZR5^d*tOSQ-1nRn9f6qIT#aH-h$ z=NFx5R}Z{6L^hSN@*Q7ZC8C@Uc)%t6dUfzq?dDT@rKv {_jC5qD!yGs-h_TSG+OPO|-1H{U!w_dPBeWS@dVp`|4*|84scS>WuCBu(BMd ztn~cFM#peFp}rU1 J*&&$IZG#$4+F z3;!$A!bVyr->zWVn*wpacjeo% kW^eaHL=;z|yF9 zV|C@S3$PDXZ@?K(?f^~~OK^NN-4gTY723V6Xz-E)`wmg%1iXdg-e*^J^=kQlk&T=Y z1RRa(8>cPi3>x-CJ1ulDMCN8W!MEmp(v-@s;Oe}Jqb~W1oma(O9xXUCSNw8_Xoj9; zCIM#?$ANg$Pvk!Di@BPYpc?`Ncn4>ZxrIJgxyLWK7%*9Nq4Q$rR&zdAqq%}uy$>gC zWfAH&tISC;{Kl!Lo+6i^Wgne;6%Ka$8j@N?;*8izIgv{!*t20qdEabcAxaH%?@G#v zb|#5cw{HEZK1tN@r29D$*8;n)OJW?&g*t_epi?i|b8I&~GIitLRB{``ni|NS8URWo zluX(RrZ+cH_j26{=qjxutS_k6TO;&aX#48M-?P!$ChYWe87Gy98qF}XNoU@0)jmBh zP9;pBrv`tT^03D6`&v|1`*og(XA)ClQpZQB=U-tWZS&J8p8}-X$aQnY=e{W(M~qP{ zmcNF05bddC@KQQND9;%E=)9{7 MSaJnBQ?Q7ul$&ebZ>dV*WgJ@8B?ojeo zmMQMjG=xe<%f%VQ>d(nYRnMCY^w}q+3)S*A?&OH$SE4rcmiE6=H#){TYl*j{19Yl2 zAQD&~hAhp qW7ua(EWA0-sQA}$mX=<8*%O^!eIqi&u!^8%qL4sT#0evxm?MBii6sWZ J(t{ZJEKOoU`CY43*tD?`%|wUgTF7%wME$CCMk3d?MEORQG(yHw=TG7e+JI znCOwf4#J*{C7iSN+wC2{K(lrVbguKZo~~L@K}+PJAhU2WmekA*-KIaO5&c{sE;v!L z06XmzSM_ JAy^i=&0`gb5FGd#W&d@v4J?TLHBVZ;Pyjv@I~ zE+>A<1h{1$n av<&V ByX zUt^}C$8ZH-jM7CxVN_3-3eT%KH+7w>=<+&&gd9=7<=KmG;7Y&rnmb+56RY56pS^X4 zf;{V$` MmVhv=f&1q; &Xg>yh!FpV7g}`jnias4CtA^07~jZz=4wzsd(Tr(HHp&jkZ};= zu4#|FX^EU`S1|0ZiMyBD$V|yd=!FCYO{07s)4(yYc=%H{hgj+E3ODj?p>U3=H(EN5 znP`l9(DODA5%qjgi7bdQWQ^AxIpz~5OwkJp$j#L4Ym;2xsQJx`Qa8gBZ`frmC#KRu zZBekFuGmZ e@+a4Z8+FKvUJ;|d$CUg*h@4z5bH$v*t-?K%DRyd6@eZif~pQw$ZWxs z)eQ^e8 za-pTD-Uz`gD^4sIYkR$-Y(L7L7JXfr=zT5FKxc14wiCtZGC3s?I9Tk?aI_%?)nF0j z7eV=nMV+*-OX)ey;kzQXwbVLx7Isr=j7-|>^#5*u-8&q=Vn-P8tPGA28X8H1AzFq# z^VwE5UEx-h;?A#2e3HgX?&IMLAX2<0y;GlauR!;#eYapNBVf77)Qm2U^|4M?Bc8O* zo1F$8iuW~Xu3KEez2i9~#%yV~e`lcpCiwtmOcOcPzM@1VrIA r3Yd(yadYBbe6Po?Zo)-8NQ+beja*%7b7YXmDOs~I>P@gJGegm$-f-1f z; r7+XDAc9o^4j1}fyS12AUQP3+X&G-!3(Zdtn(6{QgbZhZ-O|ou&AIuaLfP=Bf zfnsca@%14B`>Iu%k+~>g%s#`agQR;zVrBmT@-R2?@f_3Qc4TFzg|*Iwv6t%z7-VwQ zsGYrQUy)Lv;VXs|$KD-(KRNST%^2nR*T{9Ey*+N3@3K1ues(j ?=S~P!tvWmt^E!1RWv?Z!Gq&Zh z*8VIQ<+a}(o!g)`qQ94n1LGb-hz|mP;ZT{uZ3_{2I`e^yA c>?~HXeI;u` zkEK=LC*W}_S4vSaW+!6MZ<7dP*K9#m*$9lasHZ{ >y=w)X87=lO(90) zVIe(ZQe#oREw0wsPCZpR W20>(IK@eCVBw)@3r *}V~I#oFUtP~xj;t0<%zE~%}!?J63Zo9 zi=2iC7|q|q7Tp~Hp|Bunr`&HIV}sLOrzZs*%EX!39tn!5x^dV+Nyju P+1c znXZrq%Re;e^_BAHu{uJ|o1nCy7u2?-YqjOCHg#B2%3DgKLYIpdHL$bT@|yM4qONsX z-ItYm%NH{NWLgZ(63tq e2@t(voxyYV!rJJNT;xddwh-oR zW3_WTbyo0~U2MrY=Ru=$X>5qsLY+d#&H4{k9tW81Jmg->l}>%oJWYW^$cw89NGUIu zZ9$M&&Jl_f$}dTQi*A95X1*7FT@*4~r3OWeO^<@{&Vh#fy)=@qMOCTn?X%TTl_gbm zg|8;)NLzBdhc`+tB6)dhrf1(Y8yoBgpBmCloFjE~5}k9V@JJ>~8N#o38-ANbU$M_f zb9{9rC!T?`Q2}FNUuPW>&R}ZGk(#M_Jr2=Xb0#LGBq}M3MI_Q<-Q{k;D!Cn&yd=ef z_Gc*C(V?Ys5PB$`c3U+q6^}M0KAT7@z$06_zX`u)>bi5UGg H4Cis`0BglKH}F{M^{mHvGY4?sxXWRUZ`%0dG-CB8FsCd zRJMf^jMCR#%dGYg-K<3gH>i#o*Jir66b$2 Q>Khu5 *pQCe0o(KnR%HC-*jfo++8wi7e1MJY=H>-W8A^_#sy@11e&YmS`*G)LBLmuxFk zw&<9#aJW_Y?68sKsMkJJoa1k&wDi|~PR7w`vGGL)#u}8+=jo#G-0+~F!9v)5{x-+;??j&yQeU8x3vcTI=G1pNzbCZ z@^aswx6e>x*n=du*Lp=#zivgtgM0;q5Gs8@!YJjuDKd99ob}J1De1%^;qJQCMpUYS z)qR(Xkme{mRw|)#n!{0;N2so^H?0RO_};>6?X@S~3}ZAhi~vD34Ny4E(;$#Ck1Ao@ z=uuQoFu^n}U;%c<#HK?7AXuYU7 56Ds&DuakNqh>kG)Mc6c~OA`xm?qVd*xzK_P82QEpQLMek}8+f-)WtGc(VJTwR zP(g|*L|FRiL${T%9Zk5t0UgJmyzgdn%kJoiX|YyR2SG_S1^s2bI!*}TD9}f?xpWZm z@Kpg~35yiKG^Qm@qia>BnEdotXq|eOk$6w#=X(h9E3(O9M;R81xTUJ&XF4}KMkw?Y z9Ll7#R_51j^v$=Xwz9p^N0`~=r#fY)x4jud%8~Yp?2isl^xaZhmtSi(;Q81_6e{Ae zhHRz+!bh9S{7|4Z5dm@!INL=g#K9R7kPi6Q42oX6F2TZp9 m(k}b>th_34_ajuD5)RML^)9O{* zs-?SGA!EMj=L2h0?kXO*FPW;@6 cE#OKA@83m|cd3E18eEQMP P{|zGtGic_klwn@(>WxggxsKs9b?tu>#>-;Xn`^n5iuQ(Vu>J{vZ$Jk zvbdSWG8{+3tQ-dpFy52Qk;r83s{F^yyry_f WxuljG_T5dkV6M-Of;Z2eg-D LCdb>ZpXbkTFeG0E=Vf1p5?-&SiuJf9k2kLaNeKex>o$+@p-w4 zsJ6)xzF#v@jgVw&&@x!q+@!Pi6yRJ3+L9%yH#SeH(M7-wn1IJI8yyKSWP^McoO2@K zFOB4Ev5Upt1qev%-#oI=&`)Jz*v(xBUqZSYRXm*-jB!;B7)=!j(@ns}WZ8t)s-y0> zKCjr98rC=1ep(l(V&xeznjbvUV8CH_1hBI;WbL{tL)p}gIJOmq66kab)C^}sr4Dz( zrnui-thO$E;I*OL4?Efjii*KP+XCo1e;qXNXe`{iBFl<{^g1^Y+FgMw6KA+FsNA}_ zDhtOGnWWG{4BDQOHyT W$0KGXtqW&@EK*7LJ`~l=Ro1FP*GB^+_`r4v1!&l>q2N$V#ozDlk@9 zvo0HR_KiNhA_5-NboTTDbJ}PO*?JeNjE&nVE&*i$Xr&==XHqolROpyjPN9e_$ejr^ z#h$!M!qfO2Tpi`Jm3+#$&bgCShu1cpQ54LV=q4jAX$*>y+i0qr%%e@8W6r!__ZAL8 z>k4FT21<=zCbJ)0v{OdNqHge4-d6`zSQ5tJT* `SL6BJjuF( z)rok+Vb~fnn(LtDs{y`U6Rm-B#;G& &=?9kSFZ zofRUA@y=M`SAUT+5-ucm6Wa=O*dJhb_PE0{Ycm AL#!>hQIH#(R`QJe!(lXvfr; zXak!PFu|%E(yL&nJ+zFq>rQ<}>RjKJIyecWRFXnts6mIpTA1FCZnT*kf=WEq>{b*v z9WarXKwgphSD2RUN94X(s>~mza_d7!qW+c<>cnC^;5epkn^KC!8(pH!aYU}0GZ~i3 z+H{QvQCL`V=yOI5iCA0N;Fmy Xj9Qe!&A3W=aKenE$UP)(ezB4YOi8Qd)U*@|EPp#8M8dTeq`4f8=`l<5K zp38R3cI!7+F=VkUptx0RGeT;8JDOJlO82RbHw99Nk-SK=g`&s8L?y9nt6OZnfXoVo zwz}PR5I>7Xb4~U{o~pgDnM64YRKT5a=k{HiF2qHh7ZZEx!aE&KZyYM)K;sH$7}*y{ zb1g=XZ%VsTt|U{v6zl_rL#JKio9qh$@%nEzK?Td4a>nap }E%vMac)X%dw6PMDQbn}^e?$*U0U3RXOCmKvD@43>MRJ7o9iiX=a$Q|z^r9FyxJ zRjv4Q_m06WWJPXGL0P-fEH17ow|ZU<0t`tPjOnkc%vPMSR-(T5ZI?F^e|V&d+V@lp z`sq;IYPaIuy=|F(pve`JqpO-#FC6=E$sAfLG>{UO(`QVF*Lb7{(M<3HtuBkI2THQn zV)V=Jft>Fr)eW;a;$4x2H_a9R$%O4NO}6N+lqTt&IzZnvXl#q~AeG*POnfC%ZJA^& zv2BS!Dg44YqP9ymN#5*y^22tPi*u|4PJ(DwMINEHB<-|e_tHEQ923M>SzwWrk7F!1 zoN1VB*-0e5@V={8*;8y>9Ph3)yB(`9E9^Ao16xccfqhQRPK{v2T==u;<*e3jv(Bw7 zoe0{QMDtV^D$LwjC1HSvH5d(g{{RrWvF*ZC*z{v+mXaj&OWJN`v>MY{C`+{tnV&+T ztlH}FJr9};wPN5sRfLKCE&Dx;MZgNSx$~moUXY@(?9w4d2S*=Yg0g99*{e)s>32ST ze79X!l=cosq7InVdCp>;fTImz+frQP1j}Ttkf*OAr9Yco7%&&2Me^=}M1$3xG;a}x zhwsp6Az$nkPDk$3$|ccL6{xX!4ia?-kDL-&A(urCGSuNYC?*SFR}fg{Fho>$C{`39 zo+|M6G@A=WP9qq!AUZQK^d&%CUugj)>MW;vO$gdaBHZb9$B2*F)E2&n%+t|&6>>7! zveHGP5=kj3Wfg4gigBPccC}QmAX Z9jbjs+C*(?+KJ#;0a&HE!&MwzocU(XcLo z);FVYMwh;A%2{-6&UT{nu9?g#2z6Sv&l%Av0%};%=wU>VJF71@lAbZiEJ$Wc+mW-Z zOurFPhe-E#M@FNd2J28$X{(h=(K`|^7hZ8}*LTeN4RxQDZDvPKD5i%Dt_faPp+5BG z_m>3 $G_Oafy|rDrR6PoyognCJ5^yxw z0TazYYxBJtA`Y&`)ncJCMKQ}0*%OmJg0jI26mtqpn+G9H=GRP 9*UN6#1C@T?ya9=rP)lz9f1t98+6x>NvzjAZggoLRM0@TGcui*KJk67da2lK9Kv9 zu#=%2HXREr`fem~>Lo_8**X2V=1D9labaQSg2KH@t#MG(vDm5h+nT>2?z~lsyR{kQ z+V++ZizIbk^1{Vl6HKv8H2CF9>f*8MPPi23mV0C@!IHM67U+A^Z>L&DA+@&%*5I;0 z+itrXstUNY%J?crjHpxJ!mMhIH!;plnA34f-W8#l)uzD6ZdS+L=#B?DlmmI(j23$} z$z#auV*x7N?Hsu4KTGDtK-~fiK*>eQ86zC}v_UcFw3dab!~?jX7D%SB2~*|d*U8sV zbGCDqEXO8U_srp8BSINs9N_~1wVK_bAWfJVu+wKJA?b-RMd78~X_z1FJX@&MTJo8& z5@D;v0iL2m86XDX`fZ>MZ+ld-#)8ysD{R6$k9{4I9ub(*`*pTjXj+MwR>{jdO=U`7 zEOk45^)aLVIyXq 65HKRR0kSL-EXy!NJ%Kk0B +E5%yBCMA!g%grmaz_JsUK*5hJ!J6M z1ZpGE+VHx_9;2LSGY&JBl4UoZkHpv|J7*+X%+lXevZ$>2zle^WeuwJSD!qn5hf5I# zkQi1R3nLfcT{G2|TjpU^C!!?+uVNLX*|l2AUKCY5e|t-l+7pVjwNdVCC~HNXJ0j9b zmrw+DMCiKM1$Pkw8zSw{id!2jm8P-lx=+!04W|{dz!&NmsJ)e+BpH dzHCkV~Gh22-Il-fqQX^tlL}zIRZ*Sy6b{H zreSmt8KBZ9T+60BB!`Z%=XPy3Jk3B`65P~pIQF+URcNn9dus%0jDYqC%u^YG_Qel} zO=_!ks j{S`ukITNC;km1mMFfh`B_5Dvcc7fDaSPBbeXN%kM0V^;o|Nef6Ws}qIArF{ z%C3}xmcnbyT&>kh%`MJtlS=YCO=&1ws>1;$f`K^baOEuGGgnMlDXSW(x_9-82PJUC zMy??P9x*K=cb{qT=I9FqtP&?kfe@U;Y*}50nBOQ2(O7E?@TlG)b!n3#?KZGXnsur1 zg$lIThjK}n5)NVLHal^M0p$q9Yo)B(lx7}{NiM9$#~Z9YnFh 3B>dTM^eBvm^$Vm&VDm7+Rq&7 z+0%TAPts|2OnRcw>aHBIpj_pfa?77R)KC)uG(?j*Y2b4(K~R~g-2&4SwyL!4Xz{F3 zS`9O!M{28WsuR{|;k{Zn4c<~LD%~(NyNkfA==B$Eh)QnND~&69lM#kcP%Y%@; %&V%LZc`Vpzx3X1W}*7GRQV8G*cULFzu1BNAQBn3@c# z6tF_Yn?xNL6&bsWj6qDYS8B4oq}8q1TdPb;?bfAs=YSOw0K#IRuZπ$>Sn7ef-p zuL+5)Dl9f0MS7iV<3!i1ax$7DSQl8mY8#xlx5TwdX2LBq==EgPY5I|)I0;HKQ6`Sd zn8s+9*z&|dy#{e|T7sSQEXyN3aQ$H&1i_%JnhCUGA%M+Jma+{5%Vw1#@aTlqEG?JU z?bWvmg`P6H$)@8)88MNGH!*0tR)7;c(6uZR0+ *v4$_6d;x5P_ASk zBB(Smpb{U@c*$%T0IcS!!GofeoVCzg3{b88v9`KzozouD`)vEzBN@ioV-&^uK%TyR z7Vt}|Dsf!tRn5uL$==Ws3r-c)cJvu4dplP*>$k2Q(`feYZ_yLbaHV}Go5N%iV9Tq; zT48}?X3J@O@wTFb7HSkJ&kyMc>j+p<6m4fts|=QQ=xyq47?fw}PA;WGpe5EQG9bx{ zOiE ~4jx(^t| z4!i|cfvkZP*uln`n}zI27uscm+4G{$Kx^|%y|_xT6j4K>y`-ZM#t#5uz_m>E{U4z{ z6XGvzK9NP21Iajw=W(|RY+DH=YSVPi>}q?8y3x@&O^jC0OEnSJgicIl=gfQrEqZN3 zW*G|Ej;A0Sx{bwoUHvgtcJ%I*?$J^AOXWLs(;YR>F1Qvqig#N708F^qmI2nRt~|Mz zhge93fpD9pvxHBjg=IQXud?i|T4-6rLNk#K6HIT83?{HmtBP#N)&n^a*i_aP_}cuI z$0tDMGdN^{5{|H%qnC+eR+%=9hcky$wnvchij`yzSZO_RG_In?&tegb_A;xR>d;u$ zFcZ2lwl*g)=oTc10;CO>E)h_{#mJF(7=oDgJj*U(mp+)+Wq7@x9bRK@(!3~0({yLV zE{hbkiPV}p9AW~nV7q*>Kq&O+W1{?$W(JfghbksWUcQqDZQ-!so~>X^3;>?6GYyH< zpa$&KDW&mVDbTGAg053Tk(D^j0|o&WdmsjGV!}%_m2(DH4^EM)2R(i#J5j98t8F_b zId;c2f*`9Y;ncM >p_`4k6!Bh0uuAhK5Kc16JA<0N4O^ zlvQ?=PPTJW7W{RCYvskdR*17lT&CMSbrw57#G{qWgCo)GD$26nViCyNViU;UbCLPp z;gL$`A=mG)%F+x1rOg*E4G`t}8;0q}jZ4^aCnkeVMtbWI~y{$wc z<{$#kQo2?R2tX~=+NTpAu5&dbZQ&l8$G**7CXj(RWh9hErdS^!rpsW|VH&GkwRsSw zilv0rEfy}T)|EK0>|^#|V-(S=iZdGdnrsBf?p{~z3J?N)KMPm1oh<|mcA}lFef+Ci zxPky3d7nD9UvrfGTbwi_1mKh{beXU{HSJnjwV#>V6Uv0x`ID7 KA$E$~GXZ2LeS+N21`krlT(vEMa_VYJst5|k#>OH)rj4Pd@seab`P8Y?ib!d_?CJ-k z&>e}jm{3no>{8om_onBwpkjoe<1KiMIbyw0Q>^wPDmcV8v>DXOz)dZu@moSr<4%_2 zDY;f5#dh!#q6;y}fs*S8rfWB)Q|v)!RMdyFuHCvzN?Niji(Vz%zHlo&&jr?(Ze$mo z^y*^=OzF%d&bF^cuW=nvr24lhEi&v%CrVtov+98oYawqkStfQu@vKSny6Q_T_B1qi zy7W5JN2ZhLn;`5M+zsuD*jY{^I%T%o<0oyla#nId@y(`3J7+T_nS)qG-w9?GAkDC& z$2G!y5Z^_f*@i&h1~Mzl2C^sE=i8zwg9xF{(1kdvR;hFZRU9qh5mggy3{=R&R#6~v zgO^CkY^ybJHe|yzUzbeB+i|dbIFG zfy*SYKEW`y$wewg*c$4uZ>m&6SKIa*n%Q>|dYb4IGVCj5y1d#*u0|z?h{yp}*luFj zuZn0zmV$W~1Rxsd=UX`CIr968R3YnnN>M{528vgAhFr!EX0$r g^vs^;D+nOE4;3$@c!4QoUZxF3_DUz$MKc7%re9vcqD?hMSt zYp(6RpJZs{k72O^(F_iZ0!#|V;pr~SBrNulSp(~=o0pv3H+sx8qwE0W3T2N4qUM^f z@y6v|!yBO5l6=d{%+;E=HN_Q!YlVf3OsNB~F9^0+p;eS^vK9|d;*}1s!X807y>h5H z2P?U;#S@z%XIg4Fcb7>x_Ur~ca*sCSVNO%@M*X#cduIr|zDwnLiUA^rtzv~Ulsi}5 zS1TE}6M9VTguv3CxQKK-%0s7CDQxO-_OkAxs>R~h7NONVM-DcMSziSh>#diLdw%E@ zr5Y%PeAY{iny0%3vNc|5+j)_|JxJnW=W?nvx;fT%w!k2 +r6`rxr zRm;d+xM6a+)a}%6?O`swQ!}lBC5+zFa!K%|W4Nb^GU1qDC0ox#5*kgT1cC?7bG;5V zWQrXO ?J5;Q$CvP>NxD7D4aJ!DyEHy zO0oNYVao?*x^bPQW>EI$+{oqKmER)XLM4&v^g3a2wlu}2oYl!X1c7 tZRhvUQoLXp->jAbQoPW9H@(oR`T0OwJAK~5D83Hotdc%iQNVmyBgL~>Wr$+ z_YQh4!_Tomp>4h>JomtGHRX>U1(7un^$YJtUU>!GLB^_`GkE~;TMd_*%6a;9T>eGR zjj!E=`O6C>5`(1^$_`pLj1ue4qy}nfvz>R(B=E>%zVT-%JHafvJZk;s_E9DwnidO5 zDB4hDS}Ig_CyIu{TvlC^XUc7wu+5m{t(TVp;#QeoFjF%Z!e(}UY|-+mt%Y>!HrCBV z6l=LW;^0@K4WPAV2J`E38trSOa&$~A!sO6Fwi`*lrJO!yhbgQSHrbB)m _Yy!)ZK-ig)eO}UuFkEYWs4^vZL)9Y1ArvA%3n@1*=bFZ){pd^n@ z;(H*pw^OZ3=BQ|m(V-x)8a)};730xiVA+{hnWbd~p01$iRA8@{!r J}*>jW*- z97w0_4yBG7Y-zQtnZortTWT>4O-T^7(vh^oXemOX0s#Re;8bu1K@P`aincO6g^0-W zK`x?)d4;(uZ-(*PVmX?d5I?mTFio+0Ayv|xzVd%D;z6}ioU_OdGZr2^Ti(x!n!{LN zlCup1$;AUZG`eV)S`;9kceQujQi7Exwz*ehq-+yDTQ)8Va dzF9XtiqZu41o2j20gKGW&ReFs0j)NRkhbC2Rqlm2JP4L}pBqBqTwUA=m~0 z3fTlk2v$)H@D%JAmKzOSa7IORjHuS5nFP7Y_I*X=>x|CkR|~+kK=E3fE+x?Db>9bB zZ*(gZIqb965TUfyo7xPN+3Alq_ayB+cEoo{CT8n(`mA$IYn)ad_p%Pz_DX9cd+jbg zAX!}}VLpS0Ak4bC1oW=N_{{Q=xkA(m)%Lz5b=P<2u?2SNRa~A(H9Yg `S++AUzAMalnd^$&4A-3os;xKiyl{~T z5JxmEqn15O@3{WQq1}0BREHjU-&N!emX3K3wfCAC9c7vcv}DFICGD~8x6YZ%owdml zP9Z}uI3`HUPYtTmQ#?qdg+@rR1x8k)nc5Vunf;e_>fVMmWJgMu4xptAA~%h5M!;gi zS<75d4t3TD% ^0w%OKl>EK)=UJ?xlkq_DR>HTI1;w}Wvr z3|df&rb(L5p`IZ0`ZSa*y`IPsP14lmqE}qfo9Eu*Rgb)U~XSKFgYifd($0I{~(Z zoM>_}Ne0+fT_TP$o9PY?n@IK4lhNZe+YdIx`%I|xnq F(_khoc{)xR zq-i&67B!zn@E9h$167{=4cQ<#S&I3CR?=nhoO}>y`Hn^LRs<@Ykmx;wAlA46W}GIW z3920Ug9E9sV 4vFvu+O|X-A_7mQCCDWgH{h_{e!O~+G19?TC0;GaN&nD4q6vKd>bN3a-v#p54 zr;9X@DRoI9aTvEDNqUFMvSQLBXdu XT~;3PwV5TMyK8d2Cl zG?6sp_BAcGHO_r~?_-&vml@}RW!vxU33y_Men>Un4JdcULuPn)$a@t=g=>g&K9+un z<>?&Jv$`bQL3XhYvt_ZPXI3HXD40AlvRfC#CNY8Y2bYivhS{NR}yLAikvbGC*BD(kC @R#Bmtc32{sBC$s{gnM1J z)Ym!j+K~)^6D(7y-_mR*Hl#rO!~1R8Bl=7OuKVXMO&U@dZwB+}Y|UF`?C|WwUX? z)`&6E3nM= zD8}he1Lc9l^!{b#fX5W$AG5PpOi6$tjEot>f;7NgCy3fVZJ~c_wz;$Kcx|@Re7pNh z<=;B(mRVt#OMPU)mbl*-;#l^=d0?ABl7S#0WUbgMq7s&j-*tG|j;eGS-pKMpy^#B7 z_(`3Lz*x*?n!>e^^yFu8;I=A6apw;YJVyx;FtS4d(G?FvH8@=i*ErZCO|{IDWc1qX z1lwznxE!q;n0<)Bh}+911MNOC#U!~8iEvVNp5b$W=@kLd4y3V95KNLT>|11Mk4WIO zg_1WywsGRhGL-{IaI>Qs*sH6^t_v0v+&Hh#kj+(jQGim&!WW3$6Ju_%?K=SxnDesV zZ{oZIIK<=av4f@evywk=ozJ91#uQP^fZTm|jru)}@D91tY;(3ThTiu1eZDryywH#% zzI~G%V>=C|{*aAi^qDr3Ndik0kpZzF$%81M*bTiOvu}-II($K)Q+5v+Fu?dKc1Or^ zB^GeR=T9l0XtxJwq|VT3H;9K)V={v!>6lLuoZ&`pqYEtiWQ%N1k}MSlSoV`Gq?4 zfcx+4BlOYZuKwL$&4g^7^R*R_^yC^*_ezLogu*!I4YL_U+}!N1D6`h->=tGQ4BF46 zOk$%h9gGT8FR(97R!MPH8PGwxS0%~`1CS)?@_PknTP2#FjhBWb%wAdLpZ~-FBM<-s z00II70RaI40RaF2000330{{dO5(N+wAQUhaKnDNX00;pA009C4$ULohRtErtRQ;Z{ zZ^`w?q4^olZhu4H3_m0CaC_&R9*3Yk@$1CGNg#o6dLN^Q4mLJ0-a@`XKl18VS*AX3 z3TxX>b3m`)VqSYEE~-PlzRhF$CMmD4yW*Kg@1NN9#vj1^AN1gU&}c$oLWTT~$-|9@ z8#YGr@6Z1LDxVv(0-&Qw<85Ch z?~Fc&;NktBKz;@v&XnMYssK-8_Hg0G2P{0oSsZ`m)~}D)kr~4y&tq4~c>e&&9IG)B z5Sq|_yl!vEQg>_Xs$csC-tNcwkHdb?qnr=O^~MYse?Ary3KR@c{wEF`Y+-Ek$u!ze zTz}#j }KU^}hZfbcA9N{&NvrLW^LKZbA^0^CBVxbw{dyllc3$c5DnEW@fgYbQf z9{A1%57^HU3F3eNALMZ1#>N%TJeq^aPyYZkpT=#*fQ%uPmw!ulP-Hf~l$CY(Q}$~! ze$mUWHZ$>xtiR>Q QEc3_qQ8)I hYlQUu=6wV`Q+ioamF9~T36B8 zn*)VeX+J5U)Rov>lUI`|InU!)TAn9kQ3=C`Ca9RJY5xGA_Hg g^a>t;^6-PGlvhR%4Xu}jilY59C5)6Kk)0<$85%mz~K&^ zhFT7pGD2#dOV99(m-^jgjGsQ4&;CJ!{Kv6_2kL9%(J?V`PIJ#c;6Vo)DVrffr;vwU zy-M)I{{RR&8#;RubveNq^h)f+k(%fjzTx$)r2Z|Zir-jHQ~4ct(yYJpA7}D?3?9d$ zg!|J?V7R!rJp=w{4mMLR2vNN!m|mrNm2v+7hHc|^;aM`A;iLT2)K|1q5chjKahkgy zU5V8(39@YskLgW~pY@!R#$Q|Y#ve!g!2FEyvx=@DP(K6wjvQ>JTODPaQ`(nOg$gp& zfAMNxM`lipJy0gfTEJr^TfZ@b_}4^r*!tc0z^4#43sT>Zy?+p#BRly|!1OR-!|4A2 zh|V~{>|&1@8HL2f&IS+jIB?^NWrYMX$+;fAI+SIs&;BJoJ8NFDbt4fsJbKbqa*4mH z!A69f?d#wnx#3reF1gu%#~edmem>fCUqdy>y3=-?dLD Qs-w%^jUP$>z$6p#tv9LH2x~@wS@K?4^H_x{jC&J`d83c}{HK(S4Fs zX=qc%>}qgZ@GyUmACZIfx#8l0R0RV#&OgxOV~5HJ;mQlAUZqO9Y{|#?3;|Hgp;A4~ zyl&JhCQZ@5ud~-+bWHoU#hIQB8X(@%Z0FGYB$G{`Z7s1@&5uZR_h+|Zumt}Aou&IY zeGky}z{B~9X-xuvpmF}^8yg=eCF#YLl&Mm#ww~Po0Kj4isGCXTP_M3at)aCCj>6wG zyuXlrcsw=|V`3xJ@2|I8T>2QRJvwV Dyvr z>9Y9VN_#)i+s0GMMJGn=tlK?E!J4Za*~)=MySe--7 (_R%yZ_E^NLwBdHF#6>G0Ehz* z=3~c60tLnY0LF2HV`F6S;|E_{6=kY#!;Uy3@fL 3L?E3@5N@{^X!H3r$?%2TN2MOqg z48FJ^uEh4?*P)vsUOj75RppC-baZ&y8~VPVH+PrFZf#9V{Wl0zBVF}>i}`vCR(zak zKD-fthdz;Ksb~j-x*b-Ru03(+;lus|(82mq;-xTwK>q;9aN))b7tzMX132_UrsO_h z4BBlrLcA&Q_lZnV)Tv5KcUNLLLFUq1A4F41Q)Yo96d~6wIv&eOf*5>$E}6%@be3!_ z=LVZ3_BH+RKL-dnaDG)pjJOzm@H1L^vzSZ(9(#7|7$4UkqlXS0VaKKnJ#mB;*_Gm} z(WKIOG~F{+x>lYpaluwv%gJdlBg}ZcU=Pjnb8ECrvYGW;J3QWMsHE~Rim$FPX1P}; z>D6r=%WZn&(DZPOIDaD~vy;ZN!|RM0;$sz1xO0}T+wb>AT;u%?95``@vyFsj7)KOc zi3x-=X*8Zxld7K^crp>36=h`Fhmh6&**?pr%&V|2!B&Z~+h18a;hiEPk~3Hs@o&c+ zP>N2uNwO8~`bGFs2M!;|$g~~ui_xd-4-Xjx3J84P*_V+1xLPGY*x|#68x9OOaj=hE zahzIZ0`xO!JgXh3=B+euGMF=ttgfCzR9nZt{{T KgwaEA1K93Xq(`l8Zm0`zG#-dBa@jpJ_yLb=8e$+H%(h!z`jYewwU)o46kdcHsY zTWZ?{Q*Zhl(LtWVzr;bLnc9 ^PTE$HTpqY(bl0A=cPX? 8wMOckD=^?>6MjmX9Y^SZENjDZR0NoOkaF5 z>8_^lp4zq SWV?`7VDj#$PXh{mYlWHN`nugdFMGF;Beu_0~;IDVFU5N!;GT_ zaluwvPsr+((5|f{z>mhV4D#)4)sOQ>D`C0)U(-#g(K5KyosC`lEB0ksc |H1 *-&4YS4Pj1|UgZxe$IDIfajtm~o5r+;88O9Z5 zr1!O{KOb#+NtXw>?5^MR*Cj*%Zj|!c+sAD-Jgi_SmBEnlkKs&uXKi{VQrh*cH|`VT z{Pcq6y(em&fKPt^07Sps;tthjKZVKUaT%Vh%^N1n-_0a-(>Yyv>TYlA7&2fd4lyhn zl_LfZ(Zh!h96p~IdgD0sM;?YQ0l@`Xc4fV FokBdoT!M)-sFYv8#VG#(b7pQn zQpTfF`w6r*HB)0Fr9D)dj5tddAg(S92lRa(M-B{pY(B zwKZ~E8#q=;^QvPn6U~1gvEk_?Zq16xQDbL%pJN6OYno}Y&ej?wN+!O;*&b-ChYzET z>yDrR00aC^96pF}eUHm$2L=pZTyeuKlWsIkI>F}3Mhm6n(aoamqn<||sZNeNcaUH& zTNH-Awu|`ElXzF1oxOU}H1Wt3Iy!L6 93+#67Xpj`0q>7z(e%LJ!;Bly!TC5r7%+Mn#|#}dC%Fw~*QA AM*>);c{&2~VFpdVzm90Xud zg9rH>FW3|9gJJYAXCBTGg9Z;kamG4Ydr^tjd9o3)ZNCcp)|NFqrXN5{806_&>*q;q zE3(>Q*6DiEb80P4!dC3dJOX-@)}|w^Befmn+22A{((6@z^Q7r)EhRoV{B5;ygcaNR zC$cs*Zj_!37(E;(2pBNGbt4Jx8w+;~Fqdtuxoph)VAw|k2jJoKeGFei*#uQ~B=gs4 zG89kb@cHI^roBEVUj8Rz$E 2p+@X0uH|Tf `AC z=U$?;ughML*=*R+{z=W@uP>Kg^l_XuR |GhoPuZ6&}PQMY#V=1^qrpc#Z`~SimtbYs%UIzPRX #EO9cr45mD|4KdH2VrU*v% i8EA%T6F!~Xl^!CG3F~;e zc+xUqLyF JZ|@g((#(j ?WH?%&9P|tC|{kWT0-rAEZ#b?*=?7D>eGK? zc`OR1mZZWDM-DbOp^N%BM;N%cKLjv!Wa^mKiQ8!}k=#u 5OqmToRJw41}%Ut1W?;@7$L;uE!ILe_5*DYmmZ+j6Q!+Bx?Z@> pf z?Xz8#D>}ByZEI|8ESlP@mRP@w+Txn)taaa8{%lc4;NxRq^tcbcI3SNh7xTfwI)#{< z2cyNl;^w>CBNIE4F|dj1O@q}H=VOkXeVb(LowT~KopL)9+}>m8`c>DEW!r=K3g={W zAb&G!e^hq%EU;O2svy+Vo}8mBOl+oa$_+i&-tSFs`RU^KF+!}=Ypmt0`hUTpu7j^m zhGs~glZ}my=wjga!NZ(zFk;~JJ@7{y3{z`;W3%=y`y6xw(86>)e%d=qmD^Fwwij;9 zD6Lb`Ox$JX)mn|{{C<)HsW}=14>}2SH{H6d!@@(DX-eEDNPb$b<@h>PnZiooG@$cYa9j^ zO^fUX6c4SAsj6ohZXw0l*YX>;oc_j=&mAe|-Q!i;*xQZm @8_cNX}g-Ygl3+ zPMrb;00Dys>z_joHa0dB%9TH^8_+3>gYbQERMJh)Qq6HYeOj|TzF419s#z>t>^=z< zTBU{GY|*HtVs(O3SV3!coi_DDrJ1UbPa?9kT%DWh(^zdrv5oV--oVX#@uib(lK%i{ zXOY^KTAPf7A0Mw6q}^`SZ8TNu(;QugBisGg4QdBfRMc#3YLkYdMp0_dBKC+8d(Wyp zW2+IXw%B{`tzvIlvsSb >+d82@84{_+O=*gFiAS8 zkaNn$bf&JKlk)ji>kdCBld}7B4v$dJz9lW`xsv$(%qaWtlijQDDnco>gyQ%fiK7sY zJU_G&7C@t)8S1}-tgHyRxiSa(bE<+%nll|4b4{vcQ_I}ZK@7_|$DLd?V_%A~q~nJ6 zQL2@HiEZnjlh)VnCU$=1XwS=}7#KU+6`CX{ D-L|iq`LELKFQ|u sv$c%YSi0#qiHcJuu9@&Y`@B>(@gL9vy^rQ0VwTH1T|>`+?I&Bae9 z&8z4B1(64wyZN$ZJ9`t82HX1S?*}gUjfo(KT(_Wm=0P1(=SahDI(?N+stS`LsnkZp zuEJwTH3|H5s(5oV$J8i$El+90SZRN2XD#*Y{S&%%cvJJx!o#zi*G}~)Q5$E!m-d&Z zEA`F~VR+M= tt6{U5_i<%Ar? L|99sa63p6dAjbS66F&89qfd$j+bR)pS(QuQC4H&UdoP)j~W^(#=eo`HyaN+ zI-DIv46d8#f#4?I+$LD+jg6J8S<$lN*q|5RRZzx;TCz-kn7i`mHTE&)Bxl$+RHs<* zDy+48QNE$aV ypXn#?)*0O&n2C9C4n%bzV87ek9czZ3^)gpgO?C@pU z^K`cOH0XMB7xf~W?Wjx^`S^I{wCh(MIMvykRt3(eV3RK~IPQp@ti2t>Nvmg5RDFNR zYuNG1*^jdhdneCbclR4l$RZm~)%yQ@Z)cPY`PXG_H0g3kNBVV`^<1qxR{lw m@e((jH11Y>lB6~T zQJcJW-Xmhf(;H^ -Lb$7unK_g(9GZ&C*DJ0NS655w z!wX8gnzaR(4{je#*eDQL+c `LHPQmxc{rq8o` C0d(3&&GAkUZf|kZz!dBGHDn=uFIlo>88tz&4;%o=Ujc^qp)B% z#NZ$L_x1IAWSVDEZ+k}2#V@{0YOtq9rkT{LN${^Zv3{+fSn0Ke1x=;KmpXS?2#Trq zs3mv@hTTf>jwLFQGqB}tw9t$MEAqT3*DL@sjZHAN1~A6dzgeYVC2QY!1r7|q;y7xo zVpo39uFz9U>zZ+sn+V~5f_>x;Op$^oVz+A^RV~_g^Xug(%zpq2iJmt%O ))|;SV@6(tWFfyrgs%?6W$_ERo1O^OTauZMn)&UiowGaV{&)m z(Gj$ts!Snn2;kE7PF(fdRA{)+%3GxLGmTe-7A#(I5~g*< T}+7tq1ZnqtAR>eFRIu= z)-AXh6A!aezneM32}qPIP%qQc!E{Mq@>YuC&D$p%C1y<%YF2wuMI U5 SPpA3P z=r5AvwCpyHm-NI|dj|VHDW7oE@4=)I3|7-6Xd<}n5Yc0P3i)MD&}? p+4bDoK%r6{{sf))P# zH5NfO+J76qYBpn6PR>(;{wU2pEUnT6?js@2>R>1SV+}X#ymEnWuc+6>f&ydj^@SPR zPsiEnIakmoxl?*2(T@RA=dKxGX~m9pOlMXNDkq1D-#z3}zNVdMj<*73k*+m-ecn#) z$s>%m=1t1Bn~>C#cfk|jp;M{w*A2`1##P5A4qWXo!<@v7M|ZM!b@Z#{<`?5TB4h+J z9G1M5wBOUiGF<21%qrtO#ZE@9Dq#aWmOWh&Vrz7ldQ!Yk=Ef hv_qHx?&!4^|Qw$+tXn- z n#gP2|Zn(qb4jwhWpbMqlO)FqA|bZ{u1Us$~q@VkfK@c_zwWPa?tU1 zNHAS{YJ`gVxl}qcwu8G-zu7sbPWFjwzD$zEsr+Z@-1?D8=^AzFvf~}i2#{%#fo>qY zkHF(3#h5!?S~gNt74~LF@Qf1rlOFk8#QHpxD=fRKDlPX(qRi^tQ=^ONr1-^#h&byB zun-%q0V2b(JyyA?cDu>4y@|c*PlBW3u!(HF3{RuTl+6vX#4UMqdBgzx>0NrK_ Bm1*)E`z6Fg+s9VZq(Sb1KcKT@JM)ZdfxJATWS2Q{qsl}%{eO{Ef`d5p| z9ag|o#h5=)F4a#j@HN%Xg>tC+(a9xaK{d4u&5 1vp!Oe*W zYsO#5tm1rkejW!_IvbxaOB!#QbnI!_Z~nzHzsgsWJzb>cA3j7JUhgqxZ^^~0=r8Uk z-JRYkP|7JTC* n8U0?Yi5d{W zS-Z4~ODQ&WS;TMtRi1G5^Ab0*`Us$v7=CVKj*XG?4dDL(jd#|=`djH63tKzIHO%UH z+Ox`|Z@nFECBC4PV79;5ru@GZ#Dt7D }*}HHsq+WzlstPavEGrL-LTlxy%fK2_6mWTb~K@SdHL~uwDq|?WvutH zT`Pj4ZE0n`1Go)fkQUs+M-+0m?wmfE$*XB@(9Iitt@H2W!L#1c`?S7!&z91CALhwt z$79%TIxC7k> (Yv010hJm?08~t!DpP8%fG@pE^YV6K z6$*Pyp=!L;0Vl@1cR8wOzFnKy*r?f1fuA^ai=)3A!{Hddr>WD7g+XQ_M02`xYnv0G zZ=Uee(P?9?lm*+CYO%YRIfn@Uh{cJifmcgaKRlPa?BW^ASAHbWk3{?Vmn2UbNPdDM z^lT-a)B51>6+}-82`qIvyJ4%MX2urgfids1#-c|mu^;-EjvBx@E>>1J+HG!U-F6y5 zi*qLpE>aV(V~5DIvzzpbK4AE&EhhrOX a+lsVP?h{YeTzq$C|$CXOZ?bkN5jGmsamy`*ntX_CCACjbBb5kw{lU z-IC=Wz4ltaV_oExVD9UWi?$Bv7Ghabe22SwOZd2OfEluw|Jkc0i1b)VGFlF5ZS0%D z_M^CEd&p|%O8vEt`*>sdqZWF5Ju$K7VB>!hJ>pz0nWnn8M6JocXW4GxAn z8`Z4L6`XyYl$4k81F@x-VqhJIbz?YY;l1Ne$6F)6mi5_KE3(LseD(V%9Ua4toxKVt zo*SPt_5295*Ruqb6Eee?Ws}k$-`cg?G6iF;wFpiwO-!N#udead-~aOx^^;c%-Hi0z z45}teq}u5U)Xj}-W^IJlbW<66H7{vr4e&CHkg3jTu%n2Kb?r^oj%6XPNk$Q!McIon zdG9$EN5;2!^gAwdY1Y9u^~?=gSK!|}0%&PT-|w^))H1i8J&{Xc6(c++MsNoSqYUWA zjLoH>_0zkJX?>%VFR%9#+^ffjd2AIKYJ6|?Mic>tr**ZJrsZ=^?Tr~%C1hT@f`)$r zPJfzCj8q+VbR@@WtS5>#Fp2&of6{AmF_HJ40(y=4pk*4B?k6E$B9}R 7Tte6+5{2wZ`Av-7KJT8)PO=E9o40wIdd7@_A|9 zo1 V&B)-@A1sVJ;0ILZp`wWci^!a$>l!FdpXP0v!B3Q&EBMrOW5R_rxdzj~ zbsI*3_O(v0 k0}a;J FH6< zdUE{uB-`iW GL*Hd8Y$lYqtJ42QUrBa99O6h2<}8yJl1L)$$wFw@4bE( zjo|ptW#7!$l&akGygi*bNInfe*Lk97)NC4^Q8E5iZ7l~UJ&s|!?nkp#Ghc0IQm3EZ zF>Sa6*DD(vi?G!R3ck|ilI8=to}Q%|Z^FkoOOvxdG_4bP x zWeX`PSkH5!pJ0n=7a1Aj!42&a^q98a #TZLXJk?y@g9hbDQ?cbs|urz?UXoU zY0PW+)}DQofPaRa3T$L_d^b%_g=;r*(vSzKUJmwFX _7oIYGz1W*H_vMeMfr2nDPiwK}lgnms`f~=j_xRzok e|egadORhPOTQ6QjWECCZ6nXBO0_cIWM~3 z8^fEdxDH 0xWcW_Dde-Q$9Jdk4UG!9dh6NAzJF}7b(Oe5+83heqjm8%z#ZLk+;ysfq z)WW*eVxt+;7Me0YJx%B`9pZf3@QZ(xX!6AV=WA+_UwoMupWLuUr`&c2-y5EV^@&&3 zNU>m|1{vIjS^f@*qS58&A73=;FZX0Fzk7t!@ByV->6%q(erPbC|GciYwpI+mkE<-| z6yfKvH?c(=6UChlqF^ZnJ$65nOfl!dpW_gNf-6xak=i z*ZTca0`dyHNDW94Z-Dp$FSlp_EN;QC)M?ZNFQ~<&<$BGRvs8M%s`4_>Yg2Cf8{!6- zEuiMI!z6mlZ|r49uP=7?TbRGH@oM#36Q)@$!M26vj*o1ZayAPW8MrrD#ACgF>hufq zo;y$7nD2UaEo0Qun3+2!nL92f=IFdFh+=H`3%qoC-O60pGRY<`M@UmhcG#5I)~7@= z@CCmGyn`Jk74c7O_8I+DZ5o9d_<-kcm68Dvpi8whmM4N84X!ilY@5;4aG9rJ51!qR zsC6l7_;C~A<=qv6*g%XX7LlqXyMO&rwZ#vCgBaMoHuYobNy( x`nh8DSJ_|#^ahl)`gtRkcHHnma~>mW|{ISE#r}JYwg#( z?Yt6G CJptCo8a1c|Kp$0g|*jyLsxt$w_wiKfnRT*C|1eyRGw?OB3u}(;x%cdtNb>tQPC1e>u}$I0E{YI zAR#;kP#bp8mdxdpB1$A!(wp`4xD}D+5^ur%$>k7CPcM9MRG52T 6U!pC|6}@Ewc|6c^1`VsT(D+@f-AnYXbjfp|tG9CY67 z_2iK{vJs(EwiRIjsQ#%Wh*%))TF^2?=u>}eue9GKE)US`ZKqcG_gu;4*ohSAx$>;M zE}Zv20QaQz_Oi)pt6+gCEyvfnRhoYhU)C+LgYKEj1n7Eeh=e2#$c$;hBR#`rPA{!K zV5&3nXMSC(u$Q0YW=1AQ=hv)%PWL)p3$2&9WUw4lhKcVaheVP|Lh)k+B7FO3R|k)I z^h= rGn aGcnecH)dvJFBz2dtSH2RhKOQO#3|b7$A}YooNxe{D?>WB7D!< zUIJd3pyqitzFXe&PD93bLRtTJUfYuJGR|73*s6EEUhJ%QyZl&@5$91vSIqnO&iX}s z!MRW!W^!5sd2vM `m(ewO?7zyJ9@Ar%tat$v%Wk7cf=s0g2a8s?Vcc`ih@689g#991(E zsj5RRZ*0XftF|{~uQt+8&wI8l5Hx;T`t`*4iQ5^Xr>Xfs4Cq+TSo1LD=(G)%< SN;P; zC@ei|h!A@_>nq-5iOCKiep@Gb>;DmU#h9B=%^PUh-kE6O+1`yr>k@dxtarROX;C0A z@nr|&;oD_hDWgQNWHI)5PVN`KS6fpXe$J1R3W+PEmo+|!t@ya;;JyCy({3@tA-ZMQ z=crsiM!`)>)xK#>gYZ+VhCWe<)-{-vD^H-*ax)VNFDnXr!H(e6Hl$sq4mEbWGVvBO zdH0Imh_s?)yG2sqeCj*w^lF_5w*^dm!9mk5=oIAtd|l0W;f&AHWB0e=lK6 06;aiFg-Ze*O0Sdi_YmljFhWMuU`M{OT6Of9t9 z*s(*rvppEEmkdNbdk*?y>**h4C4UG=UoMOHs9_Xc_2&3X6G`xE-QLlUWM{6Ai=KC+ z19R+|j0~3hoQO^?9)2#8U j+(}C)k!7 zptvjpG$@~vp%io~C(=_a&HIs|HBHpO{^Y0Tw!<&)xuDp`gYOugsfSe#gl~!Q(z>qQ zE}l_nos65(W=Ma%W^eRC1d;c3(+Az#7ki6-*G=&KdGbQx13ZEKE#COcmIy3uPTnBG zVW<*5>i<`m9kZVqQOal0 ;I}iFXCx#=B{n~FWa0pUxM`OXJKMUDX#RpWy{X_1t%ZF^oDg= zze0Mg!1I|!&*sKsZQEjeog9%F(zIrut0iK}5A{V~QT6s`m+y1*BmTa__=g3ZsK-df z3`{Bu=n;?>-V;~ZUX<$vmP6FvO%3CFXEyX8My-d3`xC+&N!V#pDfPJ4Us(nb+y&`3 zT7}W$J*-=bDG~ZSovQor^0(H?%xO5HqgjnZ#!2Vl!u+L}S
)n|dxAea%Lv7D*k{@PIkeFat*J*>k1}T{(214b9v%ubYXFQWc_G zmiynFYG;>pjpGbVJv?F>dC^E1Ieb4C;dZ2__yjs%Nqmak4~n;%lthYDSyNM=EB~I% z|7b9zwxq+7YE?1xonU?qTB1OU|B;J|zMgV)Q~9B)E2B{s^-}Tw{(dva= rDmuU%$^4aDQ4dqig@I^f(rVt!LBda@|D3H!MZt;&IhVAQ~cEwbxdi=B* zr_$rod8d=s7^)C{h3{5ols;_z_=BhADei_Mw}{xoIhB*Q!J}-g={9FM>T%lZ;^)Gm z%PSFPR5Wis-)b2i8Ee%cT>>p1YgAf5DCDasH5J4@n|)HwmOhok8S&aB-~g7sDQ2Cw z+GdJWgNbDs@NeYH6E=-A6yQ_Hmy4YU)$-x;*29cvuT;x(7V3v5X0N;~PmG?16++>a zCQnlfEPoe)2R=b_ZR9RH(u^Em?kn`i%G&-&bVxC#C+^3Xqt)Nk;2y71^qV)1R$mj0 zbUJB8 PaOq?rpP_Q2yjL J$&U=pU_&}|@s6ia?7RInU9wl?pF#|UlDJ&S`EDBTF{J6PXP76@-64EBy_uXU zi~s;I?Y4? O$*vH=py$cs;iQ*!x cEW6paof}14? zUqS2E0QXE w+ z7h(*aE#|GKYxr(&RZn)&oMtc)N XFtyDyJP-xkVHeE}L3pQ8j(-BkrQ$WA~aXkQVC?m8?9YXMr$8<`P4cfoUV0{-Z z5|E(iB>Q+vOf~2JgGUsx*Fmr3$?6AmiBoHmU8g~F^9s$a }Ue;s@g5*h7qfY^N16xB}36^?$rw#`=*kAwl}~J_c7^M7J-F zkX!o9i&_T3qoq{qmu|+#?X~Y+rj0r(?BK60$dSsQAVEo3vM@3u&vE`0^)q!tN_`5( zQR*eth`B^q1z$4*^ y<%r zFu$Bbg#k@y;wM&d8(=3@;e1}M^<^$c>acr-N{0l#jAQDYlT vQID((+q zBJ}r1LUPJjKe7gZW)Ip8M;NAA;z}-Yb<*FT!b< PQ1!+ZHRXX7hIk{hdJa-jG3 zZ=5PiFA5MJvVjcNJ`%KH<)~AE&2lSdk{a=Q-e>z%oC7G3HE~4WBv;DsWWTo1T3v z@$RkmIQc%N&82Kwcnj%6LR>9{59GRp&qf|Adfi@5zrZ$S(Gp2Dovh9^5h@6&CvMTg z{fXh%r;4H=-2;(a>-RAAfRhC+wl;2S-4q5}iWfLCfZO}8s?S7X`Gi))?e$zoG^vP( z?aLn>@qJL&Fbv(by8G5CwlpKrBWE;u`RlqHk2jKdp_V-11@RWXf_k{CD*~&FxP$J} zg@B}hB*)wC4tjE1k}24>I&i{j_ds&ij^ X!7^ZQow1D-p@6o zmU$ZgN&8k#1%>>i3=S3>`yCx FG _+@Si(N{#M6JJx6Wa}f<>2t?R@lKIK)g=0Vq)j4TamUw+ITi0BjgI-$jPv{Y z09yyVw$03Smqes-aUom-bpGNsTPymkh;Ehe@XWabd+(8z-sMJ;5u=9>f`@wgPWB;( zMHO=0*$FYPC$n@6|KN=;r&)iQ&oJJZk&w`2LcdeQ93b~BcRK2v`#Tv<`b|kZuP9m6 z;5;Sfp7ZZw_k-L*a7Ll*F@xcq-atAxS4%8m=#FiRp5>4xOz@btf-=K!<4y5U{~?n^ zl3pZHf_>w6ghU8d28MW?R=2pcXmV&(K@?l`*v-C6-yt@@+xDQ<*^h3FrGhZYZ;!cu zz)y|X4kUF|)HL5z*@XE~nim2f7fBiJbi1&hgAwop1kL-fQOaX-mX3aWLR2m7MIc+~ zELyn3Q$Z^(jKEd)DYLZgWv%XDLhLBHU?4=;#VZ|FU#)W7l!u*rZrcqN4yW=1p3Hnj zKz0EjEYGqZxrGi&jiO2J+35bha6Ru~#xPHG3;@8` ;n`xV zq4ocx5@pp-)NN`baW*4h`biOIv_^dIFT~>~*w{smej!g}(!fl0clU00nLVrXsVxOZ z24!8EF5YY9Hwne9@1GjMR~j{`i_z ZiCrS|y_O+78 c6x+KCn!p1pcEL~#zz_44g;7vJ=S|IUGtQu^WQGV!5w|%D{(Au z4&vEbEr;VWY{>{d(b;tHKcOF4K6?8-4P2t=6HL%3Co#9!(~t$D8LReab={}|!Z}-= zH?A?pt ;L(wid|}do~0EKuh)NqQ ~sOqxi+%MU5od^lfQ;%h`$f1p~R znys++GRo-1H)-xpJGB>ikvd>Jo)0}0H|rmg`oF-^Czv(||D1krbsnydN?blyj<=<@ z!K(}>;i)vBrn#CB %(V(%U>%@4}ZN+*Lz(bx*xoBPxw< bCD$?S~ymp3r4X#WNLHrPHF{ z6A KNeQnISa~IRF^yFj zwMw2vE4tN^l}1?KzEyq6GxhFds5>v!SM(x(z_vXd&zbF7$KK4IeV2CRUBh*%#3D`k znCm`!kjvhUtaV079Zb;9hG6bogY{f+ufacc;ozf@P^=t2FKSQp^9%nvIH*l%ke3G^ z;C0xaR^#z1&bvi7b%invvWLx9F3@;mLlFDcIQwq_B9(Q46>?40$*Su>Z?9f1$}&R% zdI^XB06~%)-xtjja>9(NeCU+DR%ppT8@YWbUd*nh*Jv^}$$5ptDXwz^@=)~1v9V{b zdVlOhmfo$EVnMna-lvr#asSWpqy;Pp+KL#mpPdRLClDw?-a(||0WhAvrD@`0Hn8Za z8sr}L8!v1HOT_*7hgXBi*n^E60HrIdDO}t&)EHrR%BEKITFqz{aTtmCTlA2TuZ#(* zR!gYBDCVG2oV>-G=*9Ob-sA%Lm(t_{@4E`$je7;to^kK2LnGBuai^{ojGd@!TiCB$ z0$#9q`4&JhPu>De0NnbEud3LrebLr4&+_wfy|}zu;@5;{?q{pN-k-NGl#5N3#Jp3T zyqU(Org~%*6Ji>5Tjs22UB|x414Zctf ! b!=i9|1wTE z&y~-;J25s*)w#+6q?EQQTi*xVRM%32Iomq>zQ4REnDQ^-`bwv(*-rLi*zCk%nj?Qo zO*6d@mTWH-x#!BDE%m!7w7&L%wfS0k+St}VqsE=z+dje{py>SwB7nfTJQ}Kd%HRLj zy#Gdg8X^c|gGql9@O#_NPnVs!;--#Lj{RksF>Jr&bvJ9k+9H7dmhEt&R#u-e9$hP^ z-_`T hVNBLgI?9f5I|vxEsh6wO#j*z}+?Jp%cqT)vEua|I>^?+Jh__)AD0DBQ%VF z?@2|PtZXA$?QzkUFTY9#tU jOl%l1xe(~~ z0Z1wq1Wa>1>uk7t6 7qc-tD_l%ay0j0iWU;(zEptqu+{83b$a#Iq$Y zNWZzM>3S=hzW67_Exyu8=AxsQ3=dxu_rQk5YYJLA+~V?)vC_kR)DAoUwn`l=Ee@%w zqKoMdN!qHFM&R~DeNhK99JGpK@BCPQtWUX{E`fCs)SxL;$%&+R4$k0@Lw{VW!>z$7 zHSPd+Vnnh*YPk~ 5YSCXaffk(}Kq#z({Yr(ehV-eLyn8FIw=;75p&9SF)&)j23tdg%pl0q> zI=d#a)i^8uq!_FH% DT#nWT!eL@56{2q0%yT>QY0Ypeo|1VDg3on#+ zh9?2zz?y)v-><*Zs~YLSsh*myfpmW$*w{6@9(8^PE|Z>X_q8U=w2QqliOS@p;L! zEf$#&;WIHPM~EuV4lH;x3!!?le6$BvfAM>zEvl0$o(_QR{GkY3lt}9OL*khu#YaIJ zE;2k-i$qMN81#62y fNS9)&o;$`*8jRv1_;NJAR!mG< PR| zIH%oUFc)+;Ot_5xY8|=f4-&~!cP;0 K4$1)Lujx>~q=sV@^>KLiOmzklKu zMdSysy!h}zyby(0Xu(ZT`O zopQ7v8-N69UP++xkw-u>B}fnw n3zu4$70M|IgaFjY2foY9ZJchF9Y-S9NwH20Ij%6pkv zbwRGlh-GRomPepL0wMjJ2fO=Jw7c@9A~5frU|{*~%5XoDu4+~S{|fyC+V1}F_abW5 zBDd`5Owr>car~un)>iF^(c0Z#z1&43c2g=7|3Mq|c|S9y?{irtpm(u47%%QZ-|Lsc zf_YU3`qX%#CF(4y#|G3$IQ)(lpHb+CEAk-ag9j2vGUwTAuosUKQ!0&IVBfCzLEbM# z5A~r$lTMFto=0CeOL>t<0L8fY=)2MV0X2O12qol4yEta3>DtQ&Y-U>+Z0W+FyMS98 zl=Jmu87$`QC5 bZzZDY%bmGsk}Qj{LKs60S_td% zo7BU~7rTTXnj1o0uyig^)5N2r|NW+VF7VFtXaV)qyU=~(AA#E_gT j> z