diff --git a/project-work/.gitignore b/project-work/.gitignore new file mode 100644 index 0000000..5398167 --- /dev/null +++ b/project-work/.gitignore @@ -0,0 +1,15 @@ +/resources/public/js/compiled/** +figwheel_server.log +pom.xml +*jar +/lib/ +/classes/ +/out/ +/target/ +.lein-deps-sum +.lein-repl-history +.lein-plugins/ +.repl +.nrepl-port +.idea +*.idea diff --git a/project-work/README.md b/project-work/README.md new file mode 100644 index 0000000..dceabe9 --- /dev/null +++ b/project-work/README.md @@ -0,0 +1,22 @@ +# game-2048 + + +## Overview + +FIXME: Write a paragraph about the library/project and highlight its goals. + +## Setup + lein figwheel + +and open your browser at [localhost:3449](http://localhost:3449/). Click btn run or new game + +To clean all compiled files: + + lein clean + +To create a production build run: + + lein do clean, cljsbuild once min + +And open your browser in `resources/public/index.html`. You will not +get live reloading, nor a REPL. diff --git a/project-work/project.clj b/project-work/project.clj new file mode 100644 index 0000000..f8765b9 --- /dev/null +++ b/project-work/project.clj @@ -0,0 +1,45 @@ +(defproject game-2048 "0.1.0-SNAPSHOT" + :description "2048" + + :min-lein-version "2.9.1" + + :dependencies [[org.clojure/clojure "1.11.0"] + [org.clojure/clojurescript "1.10.773"] + [org.clojure/core.async "0.4.500"] + [reagent "1.0.0"] + [reagent-utils "0.3.8"] + ] + + :plugins [[lein-figwheel "0.5.20"] + [lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]] + + :source-paths ["src"] + + :cljsbuild {:builds + [{:id "dev" + :source-paths ["src"] + :figwheel {:on-jsload "game-2048.core/on-js-reload" + ;:open-urls ["http://localhost:3449/index.html"] + } + :compiler {:main game-2048.core + :asset-path "js/compiled/out" + :output-to "resources/public/js/compiled/game_2048.js" + :output-dir "resources/public/js/compiled/out" + :source-map-timestamp true + :preloads [devtools.preload]}} + {:id "min" + :source-paths ["src"] + :compiler {:output-to "resources/public/js/compiled/game_2048.js" + :main game-2048.core + :optimizations :advanced + :pretty-print false}}]} + + :figwheel { :css-dirs ["resources/public/css"] } + + :profiles {:dev {:dependencies [[binaryage/devtools "1.0.0"] + [figwheel-sidecar "0.5.20"]] + ;; need to add dev source path here to get user.clj loaded + :source-paths ["src"] + ;; need to add the compiled assets to the :clean-targets + :clean-targets ^{:protect false} ["resources/public/js/compiled" + :target-path]}}) diff --git a/project-work/resources/public/css/fonts/ClearSancBold.woff b/project-work/resources/public/css/fonts/ClearSancBold.woff new file mode 100644 index 0000000..caf5f66 --- /dev/null +++ b/project-work/resources/public/css/fonts/ClearSancBold.woff @@ -0,0 +1 @@ +data:font/woff;base64,d09GRgABAAAAAGnwABMAAAABBWAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcZ3kXJ0dERUYAAAHEAAAAIwAAACYB/gD0R1BPUwAAAegAAAnlAABVlOmtYhhHU1VCAAAL0AAAAGMAAAB+Q/9NoU9TLzIAAAw0AAAAYAAAAGD2EVzsY21hcAAADJQAAAGJAAAB4hcJdWRjdnQgAAAOIAAAAEAAAABAEdUV9GZwZ20AAA5gAAABsQAAAmVTtC+nZ2FzcAAAEBQAAAAIAAAACAAAABBnbHlmAAAQHAAATw4AAJSYO6WXrWhlYWQAAF8sAAAAMQAAADYEWdSQaGhlYQAAX2AAAAAfAAAAJBAaBmdobXR4AABfgAAAAicAAAOqBLVPnWxvY2EAAGGoAAABygAAAdi/2ONGbWF4cAAAY3QAAAAgAAAAIAIIAaVuYW1lAABjlAAAA64AAAoXJukaRXBvc3QAAGdEAAAB8wAAAu6RgB68cHJlcAAAaTgAAACvAAABLU9jg4d3ZWJmAABp6AAAAAYAAAAGlEZSsAAAAAEAAAAAzD2izwAAAADMZS+TAAAAAM7WRMR42mNgZGBg4ANiOQYQYAJCRoZnQPyc4RWQzQIWYwAAKzwC8wB42u1cXYwbVxX+vMnuZp3Ndpt1kqbN1kl2N8EB2giXsCTrVgg1GipUwFSlgNuoId0HiCK5QhVoJYRI3EQ8kAfEAy4SaVmgD5WrhB9tBQ8ho7xU8isuPxWaCt4sHv04l+/embFnxuP4b7yeiZhP176eO3Pn3HPPOffcc+8YCQBJnMSTmPjW91+9iLmLL3/3Eh7GTp6HEJDl7nziO6+8egm7ZE6lnZjg9w7MJg5PaPz9b3X1fpzCGs7jIl7DD/ETvEP8Ebd59n2m8y7cJhJ4FpuYwYoo4TGRxyoKuMz8FaYS0+tMV5muMU1gjp9LoszcTaRwCzmZEzXmkqRjTmRV6RuigWnMsaYl5PFrUcBveN9vmW7yjlvYUPcnmdNULsNcvlnnOqYwyevmcJ33b+Bdlt3k2VswSO1+zLJkBSfwODm3itM4w9bm8BSewTlcxhWQZlzFNdzAXSQSFjcnWfP7+AD/TezCJ1Vb/Um23Z8kL/xJ8safrgSkUkB6PSBdDUjXAtIOvEg+3Wa6wzSJ00LHGaYc+X2D6S7TFFaFxpISS0os0ViisUQjD1ZFhSUGSwyssTTBOubY9xfwI7yJifxZyadn//zl1/Bt8hGiLmqiyk/5rSOGhyiIiqRcXGdrM8iolhhI87xGiYw27TppJZirxpDzdSZDoRY72ssiaecU7eKg3Z66owVKjiS22EsVO1+Jio5QZy2KjPhpbcvSSI73py9RoF5JfVX1QKXZIpf1lLrsaDa/dXmtlLj+2zuiFhQp/ZKaomlwvHQsJkzD3DK3OKbD3TuyBRb14+c/6S6QqiSSFm1mo+2SFNsSwGWrp8Zrp5Tk1G17HzuLaUu5tPb1GNqcgih6pFqjLa+q/rhAv1P6DbJXsmyhxs8sdURTOfldV9pSZl4fG+er7tEqZrzXW7xXXC42x1q7NdLmKCujW1DnDKUrLl2WNmpcno5Ei/uWDnvtpKJYtqHSKh3/6EyvWLM11/JzstZIRcrKzd6pixLPblC+S5TyioQaJeq21SxHQe7G1/uj8JvjTrWjpQHzgUZMe6URWco3PNq3iXVs9HzvZmT5bdiW1BoJIqsTPh+TnoLLi/D7minXdTGxOWpsiL5FSvu5rOSm0dLa6Gnvvcf+Fs/jZzGjPxY7HmcHm2PYPp0RzRhDB7mP6iFnT5WQ5idWXXI2pnL8rm4D9Rq9XTkrybZJQ17k/Trb9H1ywXUx6XatrE8s2n51SXnWdf7Wt9PODKo3stZEcvs01ZmPDDfLb9UaRn09PLE8irqCo23q9/j9ilxPV1WHunvcx9aIpUYTyc49Ka531m45m2+rS87wWZ9c8ZK1+rXWFZnWw7AVfurdFtJPfw/UZ7eZ+pJI43498pZ+2XGbipMLPN6Khufgl+RBLb+UOrHZGqnV/KDoHrtb8caozc1EtTfJ9sYdh3xqtv+6gkY7R9tFyTuqu6+1I7rW+sdGJPvAP9ZWYjITq/UqY/GYTVpR9nisL1mrMm5aFfX64L3U/TANj43MdPcHqefJgHlNxqnPVXfDrAvNineZNVNX2mprvan2B5m0P2bdbERFasSm1zbKvRqj4XvIcmOosbngtjc8W7RsqLU+rFZpas2W2b/EwPHcsHqNM1nLliS7RSrcK2ZR6xHP6CR5Xx4lnXK1uU+tDVxtdiTGIzkFanjB0nC1ci1382WttTs+V+5Ayao4RgQi0vb674Z73CU2nN0ZVizatXpat32GIdZRwxrJ+xlBo+s9eORe2qHrcqdS80w1XL+h+5rh0J5C29rFqCxMCNTX27QhRvtoPDsx6sGrdtH1Mv2R/tGuYIxc/1MjnpWHOud0c0PFwPVmhEJvxila3o7cbasPsR86E25veSxmubWXyfbHdC93lFeqR9XvRMwOz9yquaO2kxaHuw9dlLwRjUFiUq78ptpZWG7JWjutQ1IfclTTN3a7bL29CtYI0/KPdiS0Ka57KfVpbmS1w7GLXirjsh/O5rrRiff2DqDauDgbZDXaR4Tu45HzNsYw0av+77V2dyKmx3gjfabRHhfrQm/WuUdkZGTMrCNleiIHIilgVr1nepNCGX0zGyInY0OiYr4jkmbVlDP5//sC7VGESnjvyw3EicxA6/AZe5xO2/luXnx/a+U51pscmLaRxUL6mZX1pLX64Hsu6H9pts1M++b2Za/N7+772WOH3NtTlJ6eGsXS/KVJz5H19SBX/a94qie1xwUr/fJksB4cJoasdkDVFf0l30w2OZAEpmzPojKo3vfQQxn3HHDY+cCQuqL121L1tlzRkhrF96IasTzSpHZduM8Uu9ZaVe/lZK23pKwolpB73dLqfSkt4han1nmVboReTi2s2V47H8YzD2h/6mC7mJvvJRmdfS7PeJbrZe0k4FyxbWTNDG81umtLxDwnoxUv70n+wvElukUmsgPVmhlxFDQ4xlQe9zgwrBWNuufvie+VQ5R7I+Bsh1ElnB72UZ/BwLt34/3u4/3z5mbY3sj9NHO31+r1cHwrV6TQ+a+QSsCsJ+bvlW9j7zSCWhpeFDa4z52Ie9TedVOSs04UoCEfeEn+nl7J+N5iyN+zzFuaUp5XiqNOTpXJ0kL77Habeb/Fuajkvdyrvt6Bu7lI8j53T97n2nif5GdKlWRVaT4SrejNt46eVZzAFzBFHMdu4jhmiSXsIZYxT6TxIHEUe4k0HlVphUjgGDHBO45jB04QO/FxYhKPEVN4nJjGSWIXniBmcIpI4jPEbqwSs/gssQenifM4Q8xhjXhASeo8niQexFPEEj5HLONpYi/OEgt4htiHLxIpfInYj69QElL4Kp5j6fPEAXyNeAgvEAfxDeICvkk8TG0t4BG8SBzCS8QizhFLeJlYxiXiML5HrOEHxBFcxjW298fEDvwCvyTNN4h5vEnM4C1iAb/C26Ttd8QCfk+k8Ae8x/yfiAX1X5GH8BdiAXeIQ7hLzOOvqJG3HxAr+BtxDH8n0vgHsYJ/EsfwIZHGv4g0DOIwPiKOkKIp/Ef9n6V1yNwxlZthnTMd+jvpiQsm2PrdigfW9xH26Euu3zLtlf+Ryd6d5POmST+az5H6uEI+S6SZVtgj+5R07CcO2Okh8usguf4IW73IPnbf7z0OMy01c63jaVd+2UV7C482WyHbYMFqgwMwzdqYZsmKsiItHGhinw2LfgdgOmhjkXcvsr4DrKnbcZSYpxzP2J9QacluxwOwVi4kJthqqYmS0j1s0zw5v1Np3DSf9zHed4L6tYfadZL3ZakXe5VepMmfs7xXasRRpRFLSiOWqRHP8c7nKf8ZSv85fEJJ+KeUhGeVhD+hJPzTSsJPKQlfw0+JHH6Gn1P/3qBUf54y/R7rkpL8AuX4Dr6upLdA6f2QOiQl8xXK5UdY/x8DPnaBAAAAeNpjYGRgYOBiMGCwY2BKrizKYeDLSSzJY5BiYAGKM/z/zwCSR2Yz5mSmJzJwgFhgzAKWZQSKMDLogWkWoHlCQBMUGF4xMDN4MQQwvATTvgwvGJiAvOdA0heokpHBCwAwjRAkAAADBHMCvAAFAAQFmgUzAAABHwWaBTMAAAPRAGYCAAAAAgsIAwMCAgIDBKAAAu9QAHj7AAAACAAAAABNT05PACAADfsEBdH90QAACJ4CnSAAAZ/f1wAABBkFaAAAACAAA3jaY2BgYGaAYBkGRgYQuAPkMYL5LAwHgLQOgwKQxQNk8TLUMfxnDGasYDrGdEeBS0FEQUpBTkFJQU1BX8FKIV5hjaKS6p/fLP//g83hBepbwBgEVc2gIKAgoSADVW0JV80IVM38/+v/J/8P/y/87/uP4e/rByceHH5w4MH+B3se7Hyw8cGKBy0PLO4fvvWK9RnUhUQDRjaI18BsJiDBhK6AgYGFlY2dg5OLm4eXj19AUEhYRFRMXEJSSlpGVk5eQVFJWUVVTV1DU0tbR1dP38DQyNjE1MzcwtLK2sbWzt7B0cnZxdXN3cPTy9vH188/IDAoOCQ0LDwiMio6JjYuPiExiaG9o6tnysz5SxYvXb5sxao1q9eu27B+46Yt27Zu37lj7559+xmKU9Oy7lUuKsx5Wp7N0DmboYSBIaMC7LrcWoaVu5tS8kHsvLr7yc1tMw4fuXb99p0bN3cxHDrK8OTho+cvGKpu3WVo7W3p654wcVL/tOkMU+fOm8Nw7HgRUFM1EAMASPaKkQAAAAAABBkFaADjAQYAzQDTANkA5wD1APoBAgCyAQIBIwD+AQIBCgEQARQBGgDtALkBEgEcAPcArwD8AOoAOgBEBRF42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAEAAf//AA942r19C2AU1bn/nJnZ93P2kc1m89pskiUsyZJdQggB5CVEjBEpTSlGREWMiCLFSJWLSClSRFCsD7SoXKSWUkpnNitS6gOq1lovpZYCl1rqpRZ1qyL1WoqQDP/vO2dms3mJt/f//4vZ3cxuds75ne987+87HM9N5jh+nuHrnMCZuBqFcPExKZNY/ElCMRr+NCYl8PCSUwS8bMDLKZOxpGtMiuD1pBSWKsJSeDJfqpaTTWq74evnfjJZPMDBV3IrL3xG3jC0czbOxd3IpSwcF0sLIucTYyk7z8WI7I7L3JG00cl5xZj21Ok0cuaY4vJnZFdcccKT090ZczqcMcXuy8j2uOLwZRSJxBSnS/IoFqGhgVPsguSRnQ3Da+tHjEwm8vw+Y6Ss0hsWIiubZrc1tbTOmRwg+SVH181omjKzddLlhljXdBzfWkEUmmB8OO/xXAquxGQxiUM0iTHZmCCyOS4LR9K8H8cs827FRGCc9DfFAkMw8TAEIsIQhtfi7Qj8rCXe6p+TFfhoaO/ezM/r3oz3auI4Q51hARfiSsgcLlUAWKT8ecFkMpkywX1TZpsdXqc5UmByxDp5qbCoPJBUOHum0xfID5UHEmmDSN8S3MUl+JYB3jJarA54i8ilcbngSDrIxhl0K3kwTj/9DW5ijXWO93stMTnPLZtKj0hpM3vHZMZ3TCK843crNvgTO5tamMTkkQV7x7726TjOH7PuHfvmp1fiC7nA3ckXmLwwCPpoxEe4XaclaPbi13da82xe/LZOh98OH3DTR4k++vARPxOgn4G/yqd/Bd8Z0r+nUP+eIvxMZ7H+yRK8Lox38wLO2C0hJIVFxSU1ff6TxxfgStSFvRH4SQpJ/PGH6U/EG4Gf+qQ30kTyp/yNhNr3t//z5n3tJ9W/TflQzWi/nT576VmyIk34NFmprsCftKqm1ZVkBf7AdQ6oZdmFZeJGw2qujKvihnMPcikHUk44LhcnFVHIyEMTqbCI2IZLEfW4HE0qLrhuh5WqjcuWI0pEysgRt1JKYinRXplIJNIlbE2ceUPhN7nErVQDfYWkjJKA54gF6Js0KKFqoDevB0leDMOlogY5Txpv4YjF4w1VVg8vD8Ae8NYXk4BUw9eNGFlfl/TDL6YaEpWKedgWJn+krtzrywvUOQkZR+pGVEaXHaj4t6ZtP/z6n/elHzrYuL9s8ZRXNl/17oG0+ptnx7ZOmEGmTpt16TUksq52tpk0Vl19X9uWXdKCBbY7rlsbn25VP0y0rb7+uT3Sa/tKhdujo/M/ERu6A+ZJI5ITioAFcAZu1oUD5pBhM/CAANB+lBvBPcmlKoD6lZg9A7wFXvjtmbTFVSE4YFPBy5IEfVlizxC5DhmEYncBdm7FA0gYgSEY3UohvBwCV4e4lRp4WebKKCPh2WOXPCmLkN/Q0CAbJTnUoAwpBJiCDXKNlCqpKGhA5CwxydNZWDakBtBS/CXwi9Hu4Rh0Oeyj3peXTIwEhCJlRgtJWsgA79UQeHPWWy/ue/M3r/z8t2emTZ0+efzMlkmE4z861e0hb//6lf1vHniJvnPVpNLRo1smCa8eP/nhH//z5Mn/3LR4xf3fu2/l+eWGg+dqydvvfKBdvn3F2uvuTq5EOmu78J5hLtBZMcXtW1wqH7lGIYJXZsykLAheogemEgk4QglyzyGODJJQHCCxOxg0Q2CistAgx6W0pbCswg3zle2elBQsp6CU5TOcEtLznNGeVxHT8aivASphM3cSExlZHzCavOGoE2ZeXoEw1BMnQYoaxzOs2pbsapz5h9d/+IdxCxcR0/jK95LLj6k/b2raufIT9RNive+Oldep/zFn2oZ4fMIVhZPrp0wlHat2LmzadMWW7Y+sabr39svUt77x4IhDG1W1tXbiH3fPvrGZzGtcxG+oml4Xu7SuqmokSCuOIO8mmynvLmOcW2PbRBZzeLZiIDGNN6/VOTJH/36x2iHEDZ8BXeZxsjVOQLIghkBfioP9jZuEjbzk9gTC3GLyBKk4dvr0MfUd9Sa+lncT5YBarb4L/xIHiILfV6V28B/Q7/Ny9MuEI4ql58tGeiQ3Hw1zkptU4ReRCvKEepPacYD8loTh36ED6pXdp7v/oV4J31XCHxcWG05zElcI3+WJy64jsphIOxl7NyYUL/vSalJvEJJCRcBBTBXeiNdQQgrU92cT3rrLQQyz1ZMkNFvttu2yq13C0fUPP/oMEdWuZx7f8OCjz6hdRHwGx72a4w1OcR2M++uczMVlU1IhhoxsSKQ4giyMs1piKcLhSyJYYnRq1iMyn0hb2HDERMpixbctJvik1YIvrZwlps+8LiyBkuAPSxFpNXn3ADmuRg7g87tq+IAaIcdhDCvVd8gbpJZzAp3Llnh2JV1UPTAw9YA9KW76rVTOIz+LjCNAoSunzN0ys1apusQwsXHjtNb0snebLt2WEJvhu2eQB/n9/HpKJzA/hVgz+INkonAg8gQn3kunk7qwfwa/iDyoqogN1V9gXDaurkd7cQCXznmtEU5vJUabe642ktVENs5oaZ7ZetkMjlz4XD0sPAfrLMBmBxqw8wB0d7N62BQ6exJ1hnkXToibYf8j75zMRqC4LDrXtMAk8hl/dPbwR2dGCWqcUFOO/KgnGbkG3M9uLlwKNIiPJIe/zSNG4icBYlTPqRn1I/UciSxdufKuu1auXApjWkLmqlvV9eo6dSuZQ5ac/SBzFn4An7Mw7uthD1q4sVzKjLzJgBuRcGYDMHCCnMkal81HFJMvkzKbkDLMQBmyya0YgI8b4qh0UNjH8fWoSZ596PvfCB5V3xe2vGxJLrz+3CZhC67DfI4TmwGHAu5rXMqJKNhsGgoBXMpQXPYdwamnjD68idEBlOgz4kufEygRpAWn2JzA4VwNckCCT6EkkAWPzCEo44jG3kQTaLJ1I8upYARYTPO/ntl15J/Xdar/KOFv6Sp+ltgfvur61mvujIpPrlj46+dXv/nSXwOq+vHacz98/GsTmlsbYawTL7wnlsBYo9y/aXJOtGZSQRyrx5pJ26wVQcDGhos3BHbbEaUMFq/MLReBYqa4nFTrLYKZuIpw+C4bDL8KNU1YRLkE5X6FhMOWrZJCymASNo9SUgrPHknxF8Fz0CPnwaQuIcWELm+M1GWX2RTFqRYTv9sADz4RyHLiexW3XfvtW9Vlt6y4Y+bcuUuqTszIvLDu4AL1w7Xb1cznu/7+6g8aprRdu++zedMbW8aOe3rRgm88eYP690stLz18+MAKoNFLYG12AQ1YOQc3k9Foikcq4GwW3oH6tMJZMlSZdqLqA0qQYvZkZCGRMlNeYTbCYlmoKmpBtuHCxeJtqFg7kGbrJQIcxB/xh+vA0LiE30bCO3aon6ltZNtJIgoruhZ9dvLkZ3wJYF8L2DfDWILc1UxWKgJgj6aG4rJl0h5zvh2w98AOMnvorW3I0ArisuGI4oeNEwKg/Qa4s8OJG0fIZ1CbAWo/QuyR3RTavGQpBdQU8QLBmGCTi34f7KnaE1fsIb6NK++f+voMoap7T+G1d/yZEBASp9WfvvHMmlPzlkwTnKr639FTJ/+CHIbt8fdElPEBrpy7lUv5cdSF+h63WDJpV5kf1SEXUkwF3e75QCX5bqUEtznYQpXwXAJDTVsEl9+Och1owWigUh20H4UDfVF2SbK9QbZ4ZCPQvSQbdGaAuiFShrYHuEgZMAaNdBhnqCQFxHbvltrbmtcsk6avmPXqSfXzk+fUT0lFzbzWOUvvvKFlKT+XfI88tfhYrHrPjpFDPz3x5wscuZwMeeKhWfNWLrgnyeQt0MkKWBsjymsDUgnBGXI2mJYprphx1QlHdRQYGggMYIiLRWf3WfU1oorzCb/z/GRxPmImcDMBszmAWZCr4BLcHVwqgKgVCZpKNNwE35mkUBWAyVjglitxcxm9QIZxpdKLl1D1VnzwbjW+ZfdmlBFwodLIlKRqqTNQFLEwHQkWnVOGF0ke1Ix8kaG9NKNyuvagGaF6Leo6EYIXRbUIlG+dmcxc13H7IsKdfJeIjXPmLrmtQf3HF2fU0yR0+7Jli5YsXbGwYMg1zR2z5y5aOpssXbanrv6pq1/Yt/cX4xa01o26/p6WfX94642Wee3Nrd8aNepb/KXV4y4tTl6fnDh7NtAQ4jEd8PBzYaQhKiecOg2VAA15gxakIS/SUBkFJg+mnsf0aBQZEXjOA/QVmx2IpRB0RKfgRR2Rgy8CTGwNspdSUBDhkEskXaCM4JKaQInWw8S9qBdWMgzq2bSJ7U/EBZLlHfUD9W9rnrrxB5khY5bPOpwhwY75LXeWLFp+/e3C9v8kBnWXeli9R71mydFZ5Pqq+tMf3HxPMv/Qrrt0P4IYpHKwsbckdhF47dckMZWGwGA0KSx79FcoEvvIY2kg2dxXRgt19MW0GWyvUj0FxuEESRTnUh68d7527xC9tyuh6SmyX39FpU8/jaXX7XO0l+wIcrQYIZkdBeFWcSLV14wc560jfgvxrxLXdT0tXE9OvEXePaE+rT51Ase6mssYnMJW6tsoYJoPqHWg9BgMGfRroP8ChwUaD4Gf1eLa80vFtZkDB8jHBw70vk99nYXArVYJ13c9La4TT5AbyPUn1PBbFJPIhc+ED4D28mBfz+ZSpbg2BczHQ8mP0lwkLgeOpIuYg8deFAATxQYyoMhNHTlIgOXwbAOdpVPwFpRSuvMWwG+c0ZbH9ltWSJtAlURbA7lWrr0WufR9+dT5qx55Tj397ENTXp99a3WVDqa4ftny11M3PHnPVZ2kevKs68c/MXVa19oZTU0zWiddDnNoV98y1cEc6rmJgFRKxHFX2jPyiLhSA0/uuNII2NmQU4BVmiqxofAoCYEmMz6uBBDPSVQHHMo04qFuxQfTGQUqzii3MpbE5GBCKYTfCt240dImZppMhs+MHQVsRXRX1owIILMplGRngxzxpGy1CWqW2Wpg89XihoM3lPGNwOVNvgiHPAgUGTDYcAt6ynEP+ujWiwIUyJc8yUSgLinhRgQGBPuzTAQG5RFxXwaM4dJynhlvEu7R9r+SJ/9JHia/mv38fTesKly/YYXc9pffLL7zaHXR+JnV6s/UV19VX/vZj0nyt8sOLYm+rP5B7VJvP87fettN37zvWzM77uKrPiXr/qJOVL/14zP3j5x6/Z1HN3xApClV3U0Ti9u2tZMm0iqrb7xyUP2PZz2hdPxtsu7Eg6vbyHOXbmT7KsRxhhKQDSbQIn4G1hxKB0E0oW8MhYTMJ9NGM0dAm7AkFaMFrRMi2ygfA80S1UkRsBSAjOzMczXmvz9eRh1WnFsm+5zwCdm6b++r1R/n4VXFZDXLIl4yyIJb5vfJVnenwSp6UTPtNJqs3linGR/xugWvC2Ai1pDdhDcYQWnp5WxKovkmhAUwMUPkN2QReUt9t637o9k7SMdeQ/u5TSSofsC7+TEotx4DGQgXgX/kA6e+QdNlXaCjoMakhIFTB/OdoDUpwR5O7YIZBhOyixGVDWQ/VRUNPsa1fSCYZDOQSr6L8emgBL/KYQ+V8aBUl+L+MDF9L0qpYURlVimMkcdIhljfX7561zPqX9RTD/5wecM9P31l5/K77rg7bWj/wfaVW0L5Ox/53f5zpc2Tr7nizJRvXDmW2c9zQeZ0URk8StO1JKsmcWyokxfQwTuZVgWELOFuNvn8SLmggBg1BSQhggbCAw36mcwIGMVI6VwyhSTfItykd4ZPnz91R+pHLyxbO+rdb6rdL3Uv59NkMZm7dtGOpvGlx9RP/janZdvq5ejLBWzfonqoH0dk1a0EiqwftYw8OiIbwGlzoxlJ+U4AB+cHbZOOCOBKiB6/jxcjAoOqhsTIWrL1HyR8//3q37rWLfzRj5um7vjRQkP7BvXQF+fU391P+CvSnc//DG1NXN8g9XdPZVSsWGAEVM8BIyBtoDSsGBAe5m2wwGDQfqbmtQW0UbCrmSGtWZDMcqY/0mPCqu7HeXP3Wf5mQ/sX6rFzapoqkey+bmqHjdd2D7unrfc9rQPcE0x67YY2/YYSu+Fjwt3dW4iq8oZ2VVUPf9H9sr7uBh7WPcTdxaWCvejXAnP0+oJIv168X2GucYqMHpUOQyIlUY+05IWbFsFViTrt+CCaZHlIGZziCkpoxig+L6gkdtA0ZAu+IfMeTXNldEN0ugEpVheWkHS4ufzqF0n+ZcfqNi156cc/+vkDd6qf8VVz1fceV19U9/Db+eP33L2jdcZ/nz51fPTRL7o3N80iM7IYfkzX7hKGoWzSuI8hmRasFEXBll05JCM+gZQEmivgiYyoZ82y/x4jBXyYhNST3e8a2rvf5wvObeKbu9PMphX4XrRCTBnZkqAmtCLCa1OC3oynSwYAZWnEmEjx1HTi0ZiGe2v3BX4fAVEeAWtp/v79/OZ9+44Ju48d65p2DO7nu3CC3s+NmotTt0stNAwjUSMdpoQuBDAxnczuAcxJ1pSEzQDzoZLW11q6fsi0iYUkdPzj5O7AealyyLw5wrNd0jsvFWexfI/ObXgfLMVkbwDp0KnerwiWBrYDwd6zAFM1IXjkdXJZdxdfpW5RV84EBP/KF3bv7PqYn3idWsLp9xLOwL0M3DANR0HbcwS0fbyTAOgJlNoFA5CcKWeRcHmmGNrPP8n8PfBdhlPwXXbQA9i4jTnjdjBy9lByNiH/8GQUJ9rm6GvhMQqkzcSszQSmgdOJELjRpeRmspCMUz9V08+qe2Aqi/iN5zYJW7tf5id2zcnORTxF9/FA99e2L5gvFrci4P3BarGh4LPg/U39709wknjz28hh4gd2YTa0d10t/BDue7wrwmRvK/Bxta+PSefkfuv/PR9TK6xpEvTIEvWgelw9oL5LIuu3Pbdu3XPPrQOePovcpa5Rt6uPq5vIMtJ65sSJM/AD40NM1lK+7tNRYdzGB9LSYuOQ21hQWvrpMK3I3hMguCmHN8BI85DCfMjhDTqHB4EYjgRJVhg+xps/ItxH6tn3l/xgae3K7esN7e/849xn6kx+a2z+DR3tFCd1G+V7qOdexzF4Sq0Z2RNXbGYUKbKTenAEpu7CUAKAWMBNWZwR/ToJquQWBYDbCT4zC1GkbE4PVfRKYc+hkuMrYOquBqKBmuL1AdDtSoVKvi+edYBoiTrTOrG1emnVhLLtzericYc/J5F127evWbdtx1oAFoxJBLb7qWtH1nrt79nyybRSuNh85sRf/xsR5jSMcb86gAau1ijPkmQwBwBmu5PCbO/xODoAZmdCdrjRFU11ESQIrwMtSJiabJBkK9qOdqqcoKraSxuBoffCn/yT2P756FryLfUl9ZkHD147v/qWZe8Y2ve9o/y+qPsQb+/+XODLm69c0MT2CfrY7oK1GMrt41JDkGJBvqV8ONwCpNhYXJaOoBcNLQzgz0oF0MEwphqeWvzLDlQCnbLTLdv3KaX5X8hl+zDI7HBigLLU3RkuLfPGUvBYen/p/REjrExDyoFTaeCet5c6nOEypgCSXr+BOkiUIokG6mSz1GnwFQxBZafCo+QFcIkLDLDEHJECFXjZJ+l+Ol4LJUVrBPQnlPYItkCxAFpbuKx84rHhrXdesWRl9exFC19ZN51Yz5KbHj3asOH665fd+8ysnWtmAFs5s0f9+8nnJk+uvPKqmnHVRUWNczYsfP34me2zmqc2T5paHqibs2np7/58N+IHW1/cSPXt0VzKmOuLkQUW9DYewUVNGagP1QBKQspooJ5V9NAxy9GribiIeJvaqr6PLhpVPf8k89EAL7twwgDshvOAVZVy4xqZrIwvyzZgZl6dNYMGrlhhiTCqjwquFUP57gbtBporCl7RDQH8euSdi//9XlKgngU28nv1H/xEobLr1PqtzT/5DyGv64/qL9S/kiDeH2wKcT/1N3WwOYIcp3GiFBFEsCzQ64RDIDAEwvipCEMwMyr55UufZA0IIxgQBM2EvWOnfrKWGhCENzPLwYB2hGEf2Ad8DUmBedAThKZCLBwC4TmK1IMVcJXaCZLmrGg+twnHF+M4o0plzetcyo5rYLbY0OKhsSwYo9FUHshKHW2URpQ2Xip1cJT7j5x+Ux+lPTvKcZbTl+JVMG5q6Ej5fU7FGvzCINv27d3/xemx9E8sNaCnm8EGcioGF7wnwh/mn76HTk80mGUjzsuAlpMZpgdTQ7OHjLfwArxrsdrsfYPuMFX8n4RtJBwjweMnSeCD90hAfVJ998OMCuyl6y5hTdcSYT1In+933YoYFMEaZaieUKlxHTPjOrBWhKZ6UF8wyjTRSmWaheoG9P8iclAdSyaQElJF6tXR5DX1VfWoeojfzafUGvL77pndkzHWhPfxaPRuRn3EhFjTVA8BbmKhPngjrDwSodEExMfDXuXYC30Zgf48ZARxEh+pUlvUv4L4fomf1LW9+zQPmiHmdogVVG7XaDqICXQQ6kagKqOVBToUE8fC+KKg2xt1qCH44aGJX9b9rLCrewX/8Cnh24R/r2s500meVDv4lw1vw16to14cA/PiEObFQa+DycmZMTslgUEV/Tch0bNNqQXxJF+uvkXq1A5T28FzEw/SPTpfPQz2Co0/eYEjzycc36kaTp89Ce+NhfteT+87jkMHLQf3FeJAGuy+piNwC/Su4c2MboX4gUCBb7j1AZh0D1MAYyrwM5aMVH/DV3S/86Lh5YNnt+H9l/EzxCfpHpU4TWXTXMEwbhBtEQvoAqm9pPNPoC+8xc+AHf43vrr7EPzthTMXONF6YT6MvYiDgaVhIznFmPZEo3sspGeC6VtF3/mPn5xP5/yquIffawzD35XSvyMiZ9eixoAl7+QsOVFjb+RV0vjifxjD6uMc9bOeEDJiPVfAVXDPMF89M32LDZmUm6AJhPBU0i0bkjJyyI25NIqhLJFQfI6M7HMrfgDKH1eibAcbju6bjFtOlA01TtiDolKW94VTjuzjOkVDWYRKGUWMaNIlhDvB7gD5GpZSFnc+1RyK/dRWAm1d4dB56/bIDuoWGkcuIblxnzw/mAfGHvdsnclJZl7duf34gvkz7yp6s+4vW/5x7JMnfrYrRazTJ8bXTFi1bhmJ3v7w1yR/fNaEUSNWfvPan7zaXX/rAy98v6muceSv7fYZiMnGCyfEeUAnLq6Qu0nTz2yIiVcA+YGYBPFFkAoSgvGWIgqP20ENKDfNVVLMUkYphmc3RxO5wA5UDDacnVe7wLwaBhYeQOV9ZDKBIXV0eZm8OQEL00bCb9h56LV33pr+0qjI2Niy0Yu+PX/xJSuHG97u/vxb6vELnHpe/f1lo64nkYqGH2/durUxRumiDdb2c1jbIMYyaTzBDeMWcAJWIevPcEiaP8MNapzswzBcijN5tWgic2p4AOpc45Spb2VcW1fXmkP1+yJzpn339iXrxsyrfnXMa4+pahdvJBYyZFbb2nj11h07niobvfabbcSP2MKYxDhg6wYav4X5NJjp5tOHFsIXIWrbmBDbYjpKCUhPcqNvA5MFLA5qMViB8IARYdQoIKGVQGNcPivzGoUktPh6zwGFex0OXdM76yU6qbYP3p62OUn4T5q2zP/V74n1poXjV8er7rqk/R5eJDYyZGycN56Lzx/bBKLP8vjOxhh5q6KhU59PCWDshR00n0tJHAM3xeNUAoZM2meSUNH02TOaQ10xwVR8CXTx+XEjOTI0ZOEH9pzirVIDVTW1cJ1VYqRikmADyD4tuOsOJ/KKSDhHj+ZJeESkzEnayNn/+qh7qunuVc1LYvsueXOX2n2BSCT19qWz6niRT3Z/tuKBuytHrr16NnGT+z+NX8NpuhP/MfBMPzeLS/mo7gSjl11JyiGlhGyLK0aBuZt8mCcBWjHqyikvDU17JQxNe2loGnUp6n+yERi5haYsmXHMdUmachMwIUEXkSSY9LAUq/f/8ur5iaZJzQ2HD6uq0Hxg/qu7gifyL5k+/0BXWmhGfNUOMa7xJy1bSCkGfM0wwpSIIEeEDGgUikfoy6YAXbk0oVgB4CgmniGncbkBXr/U6fCI+aiyWj2yCR2NHqqhKRHU9rm8BtR24Q3GcpBu6pMSaq00IDRyLDHqBMSczW03vbH+a8+NKntdVdX3PpKbn925Zfm9z+/7E7Euabv32wuWz/kOH9j6zzWXjbrh/PnfH5h9qLnt1tYOELymLZtuIjvn7IQ12Ajyth72hYe7QtMbrMmUEecH5lfK6KKaKuU1TM30MF7joUmOdI7UleqhUphTjC6ph69onDIs0QCvBNxkxt5vyg+q6rgrl2wFHrJvxsxfPd89mZ/43MJN3ZOZDb0KCGOrYS/Nc23QtDkHUoUlrghiRstzxcg3ms4uuD8+o0fMpXs+uN7JZ6j7rhp/RcvkpmkzGp2EN9RPGdvYdNnoyefNYvD8Bxx/YY7aQWS4J8aiLgetBm8HGpMAC5wPCyyyHQR6PG5/fwI5gJZdgBvIYoT7evJplNvOvD0m5u0R6KplfT25WW9bR13W0lJB+O2vxB4gjvEtLZOaLpsxRv3+fxXNXSR8fn7vi1u9xp9p46R7BdepDtbJxlX3+IGQDrNOIEePE0gc2AkEC0CuIzH1DrJVfUf98EbD2107yWZ1avcWklqo7tXvQ74P9xFABtH7aOJcEQBq/DFkfT7wdYa3z8U5/e+MHbBfyrl2TW9zF2DMAbeLkQKaVEoB0LyEHnovZ5RU7qa5AgUOGkrGhQRxRgPxoXJKVHKBhBsaXtvRK1OaOzU/2yU9hMYi8DmvYJBNT89dtTww+6mbn3hAVfOqRzR+t0FVPTX1w++ZJga/1zJrNvzbdQDocME17RWzxuOL+VdXXXYlkKS2P2BeHt23iPsjOyvmo/hKO4Pk7Az/gDvj359W1cYZS7bCoGbMlN/CjbHtNrYxGL+fBuOwcnlZ35JTF10+HEWAkYFEffI0FggCNh+dwrasb8nnzPEtecKlKPbDpbmukLbPiJGIn32mdqlmYl20YvltC1fccztvJVYSUY+rZ9Rz6nG+avszT+346TPPos4CfHIejAvl6jVcyqGL1B6ICmDVubguT1FXkRKKABLUTcWqYoFhUknqxrE56DAdLL+IrTzRExmSFDeP5ONhC0WDpJeqcqrpmZve+N38l7+7a1nVXeMXLFtw8yWrh6sdhm03jZuqfqj+48eq+r1b1Si/q6Lh+cee+AlVVXL4POpc12rjR3ULmQADF8ePSY2ariXRgYOFA6SMDIHqWlYcu+DQnescdd+gLlBAdQFTL12ApmcZ+6kCf/39tc/VIitfvxNVgXmLQBWI39VAVQErqZpee8O5NvLuEpJPXE/sQE0gluzM7j1hrFjFOCany1GGPg0guVn0i3EIiYpJjolJIvW4OCm6TFBSkpy4ac70suSQiU0rJ4vBx5rm+P/pu3Ridyu7ZzPoeCm63xdwqQj1gRszNIVA8RtZeo39iJLvouk1aGuXuNiuzkdPp5VQl93zosXlD0VQIJZ4Uh5vIdXCxQjjoiAuid1bgu+6PLIn6z7HhBA9k5YNl/p3eIxoR0qb98WXTdnTvujtHYcPrj86ev+lm6fPmHZr5xNX3rz/39QXNq0ZH7slngzVbL9vXXr27LUL6mNVtaFh31g5p/2RFpxXyYUT/GED2PUYgadald3IqBkMaaqXmBJ6DqeIYjGrm6BwwGCQL5vA6bP01k04u1ZaAVqJRBOxaFC5PoASoU4qWU34zz8fO2rqlOr2Jbu3gFZCytU/HVA9108pOlSybQ/vwlxd1GPFIOh9Uxm1skGatC0H3InIPp1ho0MIBIJsSdDcZVT7HGgvS4CyyaEPRvcN1aMPiiqplWsJX9DYsOTf0Q81+fWrUxtIG/9S98uL7qx+nH/p/AdrLrvmdeYXEs7AWIxcWPN9oTOG+gL0NCTOmDX+0aERCRFz5kP41jWnxGD3FXwnyF/6PUYevsfOTWESH30X+FWKYEz2+G2kHr+Ng0ULjKDsKWY7Eg1ii56VhgbtZkl6Pxve0r71o1c/2Qx3/eCjjz/5GG7cxm/rvp5/+vwH/ObueYyeSzDeSPNicv0n5Mv9JyEqWW2khCxQN5Pqt4+SIvVxcov629/9kTfyXjVNmrvPd39MWtQU2tkfA6+JwD08XIyjiqRsS8oSVTRQiKC8AB1C6smUozdiWsQlhLmEnGCm+epnTho9Kx5SVxP7WZUY1bH17etu/hZqD1NuGye8Tef2zJrvjIZ5NcAatcM9c/wpYGBTBVYwXMyfggktYX8D+ZsaETyqn5x/kX/owC+6Fx3gNJ9Hh9AK+ns518YBe1QKDBmaHGOitUXUfgc2UHpENiSUABYhJVKBUtwSgUILUGqC8oMACHTZiytYANjmYf4lkeCCbAdp4G5guwV13xEjG4mfKvE0Bg9PefRCJbxVGZkfXbT05XenVHW0rrxt4arWjqopx/ctXUReP/6Dh9e9/vbBuR3PrX0pHn3tez/smHvw4K82rN/CERJUO3gz9dkEuKya48/QH6bmECkpkeCnaodp2dnVdM5jYc7V+pzLmS+nMK4ETTS3RdLmLB6RbQmlFP0TiZRI5yyWw5zdbM6lopZoUIj0ZMA5M6Pc7VFsfpxzQJtyfQ3B6dEkg7zslCkGMTIWZrvq1kUrcbbvvrL0tmj0tqX7j095cW7HD7/3WjT+0trnYLJvv77u4R8c37J+w68O4vgf5BvEd4RtXD5XyyHtWQ2ZzjyrZI6xZKYgrCKSQx6atU5QFBSDNZs+irnFyQR1stf7kU/QbIMHR82b3TRhRcei5PRHZ0x6pK1p1V0L422b+ckn4yPya8fUNjf9ua4FnmdreV8d5A1xJtXvr+NQd2VJ6j7xS2vYHH5qbGVr2Fw9NWwuvYbNkVVzLMhoHX2KUIAleFdOntPa0tQ2uylQdrRE2NvSPLl1xtSp5x1i5PxxXR/oEj43mIEngcbM/FJyXhLYZjaJpFDKdOYXwqDSAZajVOhGatFr2SLMGzXupr//mnmj8mtkYw1KwUDBF+jeMxR8sXfctz/zwbs2uNwp5hu8MTng7jQFjN5Ypx0fDZ0O+ksePvb6dBA/3VlMH0vwMQVXeoIrcjGI0gZZbEjB9+DvYGWOt4oGo8keyA/mVnmRF0ST3ZGXc436xYyYs4veAA4wl5jYBb2lkdQnTShto4Ju/EdNEW8lX+ELeMH+7+ryDE+P3Dh+Xyi6zq75Y+qTL4zZtJpYp62+ZR5zzLz9Se1NayMF3Q9Qxwz/ATA4Yvnla9P4WZYngTaBFYt7aC3Y0xqvKrVktIA+CGEnDaOaMmmjiXM6YnIoqRjtGbko0enhnOYYjRXaQOeQMilbPm45G4cZGTYjbLx8t1xMU30kmitfDJ8pplGY4jL8THERyGgMKRpsLMqWL8mlAKZHDgEQHhPG4vKpBQ+yE3njOL4uUpeMVtKs1R4XVQmwy7DPFPbPm9AceXytbShxfij/ffyxqvUzli4ZZiPL1A0dgvuw4+qVS18adu+8X/x62YJVE1punX3ZyqqX/uvG00B/67jNYofYAdpoFXc3l7Iio47CLGFjlqIrZyityClilFfkxkGnPYzyYhgSBfbdSQymQtSayqVOsyMQomnMnk6n25dHswFLg/AZP8feiIKSZXD7mE+i02h2uLTCN5hafbQ+QJWs+oAJNpEpYMKUuKjJq6XCUc173Yampg3L1t+8qmF53YblDzU1PbR8w03fXXXz+mWPtU9YOuWJG+Y/SYJrltyx/Ja1yx9oilQ8sHztrcvuvnXN8nVNTevIJ/Mfm7R0YvvDDyFvqob1P2RoB950G5dy5cQW0pLHxTlQuVEkO9b+pQN59IIpqQTsGYU3JBLIu7C4x5tQnD6a/eGkzgsnaGLAjFMuJy0CyIPfwP4o0IpeMUKhRyaS/rDJz/KDQPLVRcN1yWr0nJMoqVIPHFJ/VU1uUp9Q3wcRf3Nc/dVhloXS/X5qeomsriLL5dBMJFY+R66YmGdcK37F/BIei+7ok+bTJ0kJ47coZj79lIS6Z4uH+ee6ZzNetFE4B/uhmmvk7geNAenfAfKmJK5UILMeQ/lRDZZ/IG2jaVXjpsnXKG0DbrkQL2MB25C4Ugg601i0rmGDd/KR2DBc8iHS8w5zSUVtA82Y9HR6fbYgpZEKLHEra5Ad0vMGW2GEfcDska2UqWqFbKW9tW+aGIeclnmrmJpej+VsmPzFR4FNHGq64tAxUrBcnvlg24zZB+/tGH+oZeqJ17a82ihf/nTT3EcfeWLz52vWT55TMuHmy6fP4MMvLq1b0vTozi2rZtZXlVxx75ULOya/cseYJZds3do6bdXMeHX1zbPbtndU3dJaNXdofnXdxHjtTMBtk5gWllAfUoCLYxWU7E+i8wjzBqgPiQXejT5a/2jH9AuWhtHHc1SR83rTJS0tk6ZOm9FIXoRX1JeUdSRdknXUCNzcC43G7bBmLtAoGzCvC0NX6UI7N0KMpSK4m4ciBcfTPnpJHhVXhuO+Hk1Fn9uPERQ0MDGnvhpWsdqNNjyWGcMbSiMaUNWS5wW7TyyMVI4YRRdr6HDJM95idudzlaXR5Agtqd6D+fQsAa+snK+nCavlnroRfHmkTOQDmvnU27fOR0rn/oEs/eMxcseRQ+r9f3xHvf8PW39Goj/9KYn+bKd6eOcu9chPzrx5bPUTo+Xw5EtvbZt7y4SWivTUazsuU2fz1x8jS44eVh/44zH8IR3HZPV3P/kJiSs/JdU/3aUe2nHsrze1zYtfcueGB5eMrp07a2q5JnOFEn437JcgF+FWc3Igni6yc1UilgGnBRqESoUFWgPsg91rjqdd9G0C+peWpF7A+GEBq+QQfYlE2suYYgX6ljhmjJdIKbMrQG1MTB2R/Rj8UbgS0HLMAvsIre2gVDBIwKee5ciZgJi/89TK+okTxrgfKVm37OGndl17Y8eS/dHK8TMmz54gnLn5TqfDV1sRK7qmrvnG9Wqy4fKl86IlE28zmuN0zmO5OsM04T3OAFTKeakdwR7Hkm0khhU56uEne17ydnJUrVKryFH2THXR1WSywSmcgu9I6lnpeqUhNU2NqIimBT9XCAiKFEGRy6ZtYTVhRFotrj0ohA90t5Lj9Dv/9Ro/sRftD+NGcj/qTf1lSP0je1F/LK5U2zOpWDWOLYYV3kOAkdf33wvpYWyFqxPyMDfWcacr6LTkil77YxSsdmKY5EnbfYVDRZoyIinRKpDc+R55CKx7dQzehJ0SxSJleaQkV3yFvUKkMLIBE1a956TaXHynkGmkNrVt46fnDl0+d+TIYGxG+0X3SPcvhBn33Pfzsep2klQPkBPOing8DuuyV/xAmG3Y0rMuIPZoVeBg67KX3yJ+8POfI60tE7bwGVCnHbDDpmCFLpWiATA87Xo0Ti+IddLUaF2XRccsdRlaqVpNY116sYpex4w58rn13cteuHfl7qu+f9XXHpmRbm6oa26ua5wmHvtO5/P3fu3Bb3z9wa/Xt7TU1Te3sLoKzuA0ZGBOLtD9NEWPxuTBMKbReZDiIlXTRKclljLQRgAGGp0DU8F5BCRp2sEGbk6kHFTCOwRqW6acDir9tbROSUvrpBUaPUW0WKmhF9IeOCCMzSmlRR8Xv0YYC3wpj7uSQ+sDbCXZFwdtg3lbPUcwiJYy0Po3gx0G6KFj9Thgj+WjFWVlPhbZJ8Gn8jDCxmuhNA09HkPqdfVIUJEyU/Pqz9PbSi97sYms7y5Z+NdF1914qWHyzg0Lx1w7+4Gq13e3bPnWqJZZMK5GfqlQAeOq4GZzoPTiMmJ4xApPYNEF7CwgZTwiO8EGRb96ggaiSo20zQGnCBE9KVUhaHtaafcDSVK8BfBbAIOxqAHm9S161FmhlgOP7LDxjfHzmurWL5nfNr5+9E0Tdo/dtmHnc82tbTMPpFe8JITnzxpfdrVcXVVY1XLLtBn3tU2dXRRY2LR29fXIa0ibuEeYqecPcF+aP0C8Yfj8S6RRPSzuITdjDgHhVqkdYrUY5HxcqxYposlRRrPmC7MkqeOZZTP6mHvex7LYMFpiA9nvpyYkDZv7WLIU2BRYteht0FxjumcsEmVFIdIqwhctHLNqLuFOibW3tYybU41e5m5PdOy3+T+e/2DRlKZIRG3R6tgNHI3nT6KWrimJiaeGJPO8uKmH1ObHgaQ5un2xaJylQSsmf4Z5aq0spoRbrjyJGcnsXw2pIvbP+aMv/m1r5j/+KAZ++/HBL5YY13+xRMjkfYj11nwTeUNYA9KlRq8Dd4hfpdDaO1AxF/+BXmmN83oD9NtTXJSTuKkcTEOT0bQQCmnPg7SnMRSa0+jECJmV5iAI7h7vlrOBVlHacogtClYmkla47I1LF3yjLpaetaNk3Ez1xC5168bqQP4llh3jnHOmvQxj2MGv4dcZ3uUs3OWMdpiM0cSfuafQ3oDcQiuddvUpnU4bGPPoWz0dkXZct2C079ddorxJKBw9rms7X6XpKadg36FeOQVRVVx2moFC+ShVKrW2L1p6r85HvyTDd5AuGW1bdmzfsmX7zqf3XzKt6ZKWhjFXiKt3vvLKzh0vvrx93txrb1w6Q6ujmwF6xBxdj6jPyemaAWpDG4nRR0/P6zpdg8hqEiJXfeGA6XXD04ClA2yvELeHZW2wCnRnMGAAS8uTVJx2zB9IBSmbDbotWJ2O7/XHntYrfDngmIaASRXAm/L8GBJK5QXwg3mg4qUCtKoh4NSqGkxgsoDlIQekTpvdgQaKnMf2alArROewQUnO8mHGU0UdWFVY7BzBYudqtqCvsm4ir5KP31uy5MMLQEji2OwSn38I45mHnuM93Z/v3LJlJ/GxGtkY4LNLw6ccs5VCyGbyQduiCLnLQlij7zZkAJDQIIBUfBVASmnibyblpR5DbwFAUUrzG0pDAEVlDhSl0vMAhdOdTw0A7DgCf1Te0NAHBAsZUNDEGBj3UTD4Mf3FTj9Q+NP95JDINQIunwMuFVwVN4Kr5/ZzqSTSTQANVVAxmPcC+9AMrUtagYhqktT6GZ5I1Q3FadUNAyISIvge20OjeostudStJNGfllASaAslUokk/l1iOCCTTODL5FBApkGTbkpRJfCUpNQZHVJVh2SS8MjDAJ+6oYBarIEKPoWrbxhE9H1VoWfpR11fKgbJh4zolvYQHb9rUMnYfdMARMhzTSDr7OJM2J/l3M1cyoN+SS4p58Wxml0ui6cLNR9qRW6JATCedAnzo5pKgmYwjTw05dHkYcE4k4i17q68wjJKRx4X9cXLZZJisNMgx4hxpB4UJqeQm37VK5OhqeX7O4i7ftXilm8unH1rdebS9+VPushCvQT45i2rvtmp/r5w4sz2yS2zpk1bt2zFQfHO1snNLTOmToW9ResVTYs5E/AvJ/fzQSoW7bRi0dFTsegaqGLRPWjFojO3YtFJKxad2YpFp7vT4MxWLDrRB4uPLI+dVSw6tYpF2HI9zlJFRL+g2UozTnpqF8FK6FO/OBETH1/NKWI0LVYf7zLzY3rN3/ol8+9Xsfk/nP//k4pNNn+bo8/8bair9avf/CnV3XKrOMmLTI/LxcAJOsX+QTBwUQzcPRh4BsLAOygGUi4GEsVAymIgAQZSFgMJMHDhI153SwwDScPA5ZZyMKBxM3ODLEopi83ZkIsFAJH0RqKmvuTAf/T5x4cefrQihyCMZsRi1y5KFFwPJm2ASTEX5roGwaSEYlKqY4I2HYihzkI3LQsHDlxI66sLqQgqQxGULqYCp9NUbIaPcD4asUMMi2n9SdrH3hZ9XjMDNDIooOFcQMMU0HAW0DAAGs4CGsZoBT7i9dIwAzSsAVpSGs4B1FuMRBVooGUd/l5w0o4rtMQjqUef/H1rhesM37trbOvkhnAkvNu6atnE1gkjw5OqcqEu+cHW6mT1lIYfPlU9qnrF+b8j4qKGtxXw9tK6pKODIO6jiPuziEtxhN8moriiEQiQ8k5fphO4TG98nSzbpciZ6RRp1b7ASvUHATcvF9w8Cm5eFtw8ADcvC24edgTER7zuz2Pg5mng+vx5A9VY20jv7o69A2U5eDp1v+cewPCyrOtTB3ONnkv3a34M35j1g+p4PqbhWcz991fGMx1k5kRRPG3TMtBLcnc6WEcYeUPfUIDmjqGpYWe+C50LlP7/xVUJBYBoJWrhFAUxcspyanSe2AtrG/FhDkukrBfOK5Z8a+nipYs7bo8Bzt9onTWrNYtx+pald91825K7zr8GGLfPnk1jA6AVGLFXkAvwvVrLmuCSPUXSXisWIKWdbjtW2zppybQ9W77si8uOIxgH0SuYqbPEwlPXiVbE7GcuE9JTNQ3/gL9LER8fExd1v0kOqzG+vmuXetNDp0lDOxZSHzqn7lVV0q5u4ufyLlrjDHoL1rZXYY2+XtKOa1umre1Qvbgd168CVjPUE82qAPV+t02QikqitP4rJMn5qO4W0QZOsk3q5EyhUloG7xm8DB47ylCbMpq1MssHLouf+KttY2eqf9l5zRRqfNZ1vzxAifzctV60QauZQdpewWXr/oIgwzCufeXFKtbdF6tYx3i2hWMpj70r1wnoFznV612foW7RU8OOmsX/3/GAsM8ZT/dGTc7rA2KSrS9GnouPyXuxMfm+ZExU7ubCdIjJ3L7j2rVL7yURBN6Pdn0Es72/bGToTgonFRdw/FBCC0EMOExaSYYBOI+PFg1gKmaxk0b/MCiBOQqKy9/Qb/CDBKByZ/PWAMGonpmt6ReWAuynY408YI++1plcSqSVnqaM7EiwRk9mExb7UlIwsppUPpFy0JpFh4t5VI2USRixx62ZelQVB9pcAtF69nojJKdsfjoSpvoRK55HsvzibLaEHsaDNftGjT6v+pKqffdXqtqn9IkNhB0uBmjOQJBCtRp+1U6pUx9HLm22wHiQNo1Am19jlW0UE3eCNT2zmbDygJKl5YjihvG46QjcHhgBgujW0/4w8wdp020BoxxEBdMJMfsEdcGcgbUwmvw5G5tOkLkwwWo1wUMkS5urGKdXHCaaWSThyNzw2pvAKGeYRTk1snQeUfwwTD911/gDFuzhlHL6qVfcTnOROo1+Z4+SYgStJZ9eACqlJOrU08hpYZQSCvfPrc+ZjpBrFOoEWqwBr5Nplji/2JNdhTW5dMqD3hCgfV2KsAaKztalVwAGbehisYugMRQmFSIwpauYCjM+obV3SbkonboKLbGUg6YAOJBKtKYvZifNNtbK+82+Bj0ds5TFf6qIRHraleCe5B8hKWIiyUcfVf+gfq42k4IVe168qmXvSyvIRPVlfvIJftJ69Xf/xP4l/GT15elpWVauVF850cPzTpmSnIUr5R7v14kA0zo8oLAXe9A4d4DCXkwHX2xFhT2c06VALsVu01bmLbLG06XsVU/7AtmPH8hjwrMMC3tKMSPSofUCUUyBXk0NFIcHXvnzerc3EAZSsXN6HqwfSLvObYRgONNLu2a2DO2LoO31EOw0lr3u1TsjBHsanLidGb2MDcs6ivQyNjtOIW1xCC4ndVQEvQP3SEAe9KV9EoooV3pnsG4JRi8Y5jv1jgm9xx7IGXvvrg6FA3V1KNJ8vmmLkB+kqTZGSS74av0dMNHzS3o8PEG52KCdHvg5lK3ljt0DGvjXtbHn6WMvxLEz1doLY/dSdxEdO/VDargHpectDqfbI9ApoLeVUwrzBpyCzuO+bAXOMqb33GArIO7QLOHsKujzaIN5lHE13EPaPCr1eQwDoRyKKz7YR6W+EDa8h31USnd+qR33UZzOMeLEPuFyGW4T3UsPaih7FXHT1qDYXCKAH8hn+2g45tKUSZ7nLS4hVElTZvKxVRinDKscEALvQBvoSwF5faAtNWtQePb32l9dj/bQqqjhpMuKOLdIQyqkIxVm6ks1U1+iwDuH610wO+35mGeJukq+m9Y0ABadQ43FcLEcUCmPK0OBMmrhjXLgHJ0WIRSmWzEcGhiIXCmRM/9c9aYfFmd0sVGtz588qEuOvkgYqjSx0bVQp/vjWUFCuJUgR9y0F7OPo0W0sqUnj3t4bb2FwP8BCzFZyEqyW522kbxAdm9Up9EH9bKN5HmS3gjMHh/UyzfiR5hf5sJ6Q8zwNlhdIcB4sdaPoRgQNmq8DCQxlb/CEcXnpHXKWLfs0GSqT0CtwEPLXMNSp9sYoKl6Dg/2LGBFyFhLQjw0J7jTIeRF2MZTzDaaGOytRIATgfqkkIevaD5egCC2Xs28Cf1yDSL75uqFb+xZh9geXNXxWAE5cOni59YtnbT0uXVFS0hRGjgMADpzi/rZbvVHiGnrTiH61A381roT3QvqT5x5mvZqob0ngId4wIqfOFD3icBA3SdQ1xU45ky2wizBWkZiGbARBSqO/ZtRULtmwI4UxqVZe+JfHht2xuh0e2lCpOzQ/EwDjI1aN/3GRpiRM+DoDM4ceyc7viB32UDjKxhofKFe2KUBu0CQkYicN8gwNcbbf6RHGbf9kpGiBURtIDpWK5UUQ7ErT9/RopQbklTygHGUJWhfGDb0Tq+AjCPYaxKdFQ4rXCxxsmRF1jJGKUHXiNvUMBghDGb59JvWAPbPwFNc398UgnWhPSxgXcycnRvRt4uFI9vFwql1sUjxVjvdmf07WQhAH726WYQ087enp4WgagTR03/JDvz58pzucmmbg1qXNksmLQRYe7ScjuQwFN6RSOjKhUnLVVQCmF1i0mq3klorJr/Uo70CcKeyzZjuTIy5e8l6Q/uv3zlz7rP3yLHYvBuvuo7V67O+A6e5Km61pqF6k2z98wQt/9onoNMGK6DlijgezKE7bqocGbmKaQ4OT4ZKVyzPSZXRKGcZ5lWjJ6esCjecmOfFgyJMQRrE5JQiH5psoKHKxdjkSK7Q56Ovfk9KaV32lIi6bOqxX9r40am3ji9ovnvD3nfii8Otk2e1Ntx7zzXzhrVOb79F6Oo6u3vbsofDoXeeOKf6re8Vr3hq4c2x/6q4YvqUy+7cdL5L6398QsgYw1wB0H0Vty23E0VZr04UQ/VzIfA0COTkhsp+nShig3WiqMROFFHaiaIyqnWiiGoZ9yWw11N2RwglQgUoW+78wqJiFtb9H7ejoNGni7SkWIacdfOXt6UwrAU9eElPb4pcnDDau2Pwjh1Dv0LHjtj/tmMHolQZrUJi8iFIQ/63zTtQ475IAw833doXaeMhNGq6dw9eYW4Y99NcvCp64VVN8SqTsHO9MgTxquqHV81geFUhXkMpXlVDNbyGaniV5dDVEGk3pauScBayYszy/h9D1kvFH5zGFjG5M/LLqUws1XT9HErroTU7YFfLjeHO5mJXB9hFUNEaCtp+PDIUvRWg7ceLkdvEQ2Dy9yA7liKbkDKdtQks12GOZTAV0rXsVcJNE0YNDX0B74z6RsEfVLKPVcbTUWYOjBtsHRpwHUbTdWgYra3DaG0dakPMkBpFqbaYNj1X/BytUFJ8lRr1WmApUpydJgm6pYvu8wFDYRdZlIkDWRqeiyxRfW97o61npUS2Toa9sE6VsFJjuddyV2poDpWjOtyYVIpBd6gD3WEcXZgosggUF2FQHaLskCZDTXYp5FH4XgI0iERcGeXM3Q6XDLYMNbgMcboMNXFtGeLaMlA7JR+pPCGl3JahALQyiq0Cp7jzkbfkNVwE9X42DQU716QZEPiZurqyOwu2UddbBoH9Gd24SWY5y94cHUbD3jhZw76BO/kl2KdHsIjaqHi6WIu6jNaXoDMUxb2RYCG0PsvQGfZVw5sj2Zsj4+kwe9WzFI3/ylIkcEfkY/p12lJcPhR74ythfSn6bQRl1AhYnHDoX1scrxZsG3BhTuhBtyp9YeZj5G2QNfmNFofrqs2uyUkajdN4lnGrWA+ysY5r5D7lUmWoR0WTtK0QvlaGGVh9PChXihnWpSGRHplf5nLQnHi9mGcobIqhNMEd3dr5sBNGJtAgr8eWv6yCpzfeIuDNA94JxDu5T+bdnQIverFjvNhTFsh1CmIiyZZBSGrLMDR7SEFC6jS7osy94UlJ5XEEv15KeUNl1HvoUYpLUAEeWQZ/UVzO2tRgtQRsGqlhoHoJWjfWu1dQVDvPAC/UEFybCmweZJx56L3j7XNvXRB6s+7dH6rz7zr5pw+6p5q+/b3LlsT2j3/9GfXwyut+tXgHCOJ14zdNcDhhkfiHSerQ4jkk/tQurz/eOmlCDFZp2bILp/UmQ9tntL7w/eXJ5JCHg7BK6qcrWb1ym9pB+1JF0TOit6NCeVCq7YohemMq7MaJ7eXZKYDUNeRAtIqKYe4RabdVcIdKKyoRsKAn5TXlscajIXaOnBXjksHiXnHJATpZGfuHJfv3tbr58KjLeyKS9erc/i2unsh3t03R45ELRjF6pP2hQP/wgq1RjPPt3SEqZMik81mHqHx71g2IHaLyaYeooNYhCj2BNMXFRz2BvFXy59H2+gbPgK2i8gdvFcUyowZtF7UZ1dLdA7eMMgxXH+9+lbWN6jU31NpvuVj3q5JBul+Vat2vcFahQrpcBinlcBY1/CstsFCD/LI2WMwyHLAZFvmj7jPoPbcwxiJ7zw107XSIzS1kz5Yk49xCdG6F2twiOetWKO2m65ZfwBYOphgYYIqhwaeoa32Dr94DTOFrHnj9hDeYopddQ5HNE3QHL1cCEizBfa/vTCMw01I201Ks8o3Lw5NKQMQTIfUTaXDapQnZh4pCAUsOwTqHaieWzbGayDBw0HCcQoJ1kVE8CMMq8dSnVi1RgWOyUskjl0qDk26vBA4KQq7QHwiQe3WZv5FBQgqznoo+4IhTNMHevQrQ4b+pi3n+wlvAtH5J6yNMwLNozJa2AaTlpOIR2gbDomVx6mFYAXeZFJbqcDvdSHjst3i+iTa6oj6IFfCw9H/4nUja+J0rKAn/gvCsBEP7Wv6CDN+5DL7TyFlB/jF/ipl+p406U7AXElZZWqkzhWgRUYFF6dERNJ1Rj1v/5l27tO8WLmyD716h9QMLcd/s3RFMDrKIpzdBgzB22uOm0+iy945quumFPC0oY89GNfMwEuMNstH06RiW+3ubvpafED7Zr/qTtRHL/qr3ajKc5oq4IZj1QrPFw4LWdaMSfSdVlH6LJZp2h3Xn+VJGGYoJAmi02ewuFLvl0gui1eT2+EMOJpkVrw+3bWUYNVns5C/2bhZXQ6KmaH1lNMwqtj1+7OmoB5bcWFVw22/XVC2oct045MSkdNljxFNb+4tLV21Id3/xT/UCsd66cuWCT+74Nm/e/PnKipLoc/E5jzYPX1hU2/JI/ffV1j+r/1D/QnzE+/SPfrSFxH/A6In2xwJbzQMr/3BPh6wQzxwondFQGWIPNlqUJvVHvZZY3/5ZQ3P6Z3VWeVAfZdWbsjeermKvWFstuZj21dNOeKWeJWywlTbmhcqitI0Q1u33bkPXt9nWgDHO3h24fjuQpdS3LZd4sHeok/HuabAPrLSTnB4r9OhduvKFbCtGF6y8i0ki7NJVqLWvQ53KD0qxXXA6qAcI+wP279fV4+Xp37NLwX3/+4H7dhnHgxidoffuyh1vXs54e3cVCw3UVaxQ6yqWtggBJlWMLCp28f5iVEwO2GNsChOQA3ca4w2aX6VnzBLsLz2m6c9p4ql3GvPAmD0s7caotRjzaBjngylud7gkPabphKGH/AMNfYCQZu7oH2OM65qB8RaPamKvH+Z2GH+Yq8bzjun4K2D8XtpzHbZMibcAtowTT0eiuRslNovWiiyGs6vJcRjJYQxW2tgWsVH7DF8xTxI2KIOZa21K6Am2QwCAtGApoGfSYit5TKeLVQxIZBeLZObicMNAG8Y1CCqneu2b7kYdnKxeMA34vZVm4dZkY5gF+gpjE0FfXB6WVJzA+SsTeng3ALasLYChCMnXc1gAXKwyFsFFGv2NK1UgBDCoG5FoDFM7H6u0YEAEvkIIMxeE+3Uxca8+cTImK/R7QWBo1UW+R6fv7+b0ENDPkRVoVUQNRzswWzP6wWNYZ6edeyMewVQskyuD3ZSyh8T6SV3SL8DPanFt98QzZ86Qdw8cUCNdXcL6ri5Kg2lxmjhPi2HO17reFesIB5HKWF6bT8oGMK2SFsDkWMlVGIOTLHhpxfMgOKUYG/C4tMAlrF+EGUCKwawDi1FLUx6CWxY1ReorSZ/AJaK5/uaxu+9cBYA+1N74QscqYg2QpurJ99y+PD5x+W15DMd4W3ojHq2qHq+eLa8nwZuuIp8EnlXLfU/tWHgFk0u0T5pm/8wYtFNa/iCd0oJ6DM6H4cFOzei5SNM0ZMv9Gqc9hPy4f/c0wzItJvS/Hyd2dOuUfH5qltnxKISLjBODmv0bvMWZe7vfSEVPNn7VM9YC1MQGGWtokLEW9sI0nTVI7B75otBqbLjfqG9h/HewUdPgpsDGrdkaMe7OQUaOJkYVMzEiwFWGZaeRtS96zUe2a2dhlgJnKY0rlcBZ0HdW4KMN9tCcMF2UYgaJePab57X9A54DzHljv2gnz3rOwZphjHyArnOBOKtU/wpd55BsBuk8R/yUePo3oDNOYsSj9QnVeptrWnyvtuZY+kyyXTaxry/vTtCj2nJ7mlON3UAb/nntA3Qz9+rdzAdsEUr4FS/96mC/FqGmtu6Plqkn1bP9W4QKDD+gHRYXv6Evgv2j4t4jNBYeZK1I9NA3Jqx1ChbJpCmpLNhpa/hKyA9GJoOsxqz+xDLAyvyyL7HweB6ZKWRYzfm4Um65lgHgsGVosaGSb2XlropZzyYqtmZAVfXgaahUHrF0RT9sBz/r6YtZxNiXgTZVd+Dxy5iXiIpWyu0RqAvCjtsjxCJQeC6w2SMX6nn8gZzKA2NEz5Bjna/nAq2MuOse4bruX5NDajU/quvZBRvVXwMDi2ze29I+at79u7ewjKEivSqhiKXIFUWE6gl/0n0txnNiPeiRVdxw7glmqcmBJBprmPiL0lA2J5WoLhmrDZn0UEcIZzwUvS+1fc04hwP9E+g9jLEmA+jJVcqxpEkINSDfUwwY7o55UmY3OmFkm6RZdY4wTflQohin4OBDilAt6We04RGUtPdtH5eqEf1POaqJQfPQfNb1+eqGXQ++8353k/Gu1Zd1xPaPf22renbFur+qZ0+jyt1x5x1LQTH7C0m9PXn2CJCqDlL66CWt6oVTumNi0yZSQcTtzzya2vPIs6M+jc9h/imWO2HlzJRKbu+dPYElecVJxS6iG5ESBEul6HQZTaCDYZa8hTbs6/TTCyHYHUgSJpoqbcfjm2h6pMw3KCEjHu6UXzxY5sUge6JXNsaJgfLke1IzxOV99wDhtol7hEXUlxHGvgLYfExvS9HraGVcF00qbWNCSHddMF/zYvFFYSvo+Xlcm9a5ywWqvc/sMtNS55RP0HvDamlKWuouniQMhq6WoUitFxtmWwquBird0WMlmDXHvXaWa18tffGA5msfc7VXrx+uVyef/817JWS7cIbvoD01NYWVHbCSPUUE/6REOEq207Nx4fOmr/B5k/75lYKHvEHzw5OsnijtELF1hlYSm7aylhbsiR5cZqU9W0167np9UqsHAmpZObN2/7hGccKYKXO3CG8se3dq61NRsbl5mtbjeKUQh3uthnuN4GiVRJrLvRd2n7Gx29l6bmdjB29zdG20Rmn0sOKVY8eIExvp+cRCvPVpuNHl7GBidi88D5nUwr0Ser8O/U6WIzKnn4CsH4RMT2Sz6MUvfQ5EZocg76f30w4/pvej/TcFj/CYll/fzBCUPUkNRLkwoVnPGoCySM9/c2EohF3wJqhcQ1BBv1GCLklPS+sNbcXgSJODg8H+fO4S4FjjMNbV+lhxBeT8pLYIsouN1UjRYQuAPgo8fcGVSBcwnHCsNnYSuVLA+ln2X5nwoAtFnNnXid6L1nsB6XnWwmN0/Yq4abTnXCCpLaLs0VEF1VE/09pAUQU2mfb1jNTAcq4Vn4tKxf4rWzH4QpODdJT7+q365b0ogMbByFv8ZtHKOdC2tMbToojHDGlPRHbmHIWkPeFYuayjka5oDWm74nvNS3ZuX9p835V8puW+K55bduf2y++Dnfzihc9MrYAFy0Oeqftowsmk1n9GcYUSidyzxzV7Uz9snHXlS3u0o8dZi69ihlNFv+PHKwZ5/WK2e82O/q/0Y8mv6PNMe/xydYKd9lTh+vVk0xuxUT4Inwuzz9X37bmS7bNCzwt9TzwFdBxFLCoQiyJLhgkFtyWT5kiF2UH1Dg4bfQKJiPSCPwmqLnNuD4ljDBLkYBHwstIwiEls46jLgPpkXaQ+CeZ1nlb5aApjuw9TVlXgI6WCLzr6uljzXHL69bMT3qy7fO7k7z4a5q0x1UQ+iKqzIo9/p+2By96efr+8QjVdR158ZenL5PDaRf/e0lh8W8fLS19Z0T59waN33l5LjqGo5582sjOmfdiXkhbJWeywukZK74rZCatLExvZBe1IPDs7Es9P2wOxvicDn4qHm8OcrUVHB4SLVfmiRERzwIV5g1bW9xtL0GysW1Mda49EpGQIu2pKpkhUivEr3nmDH3P00U1H93fctlTcI8usayf/G/VtEu8eSdZ8+Dd1Kd0X6IAqEAuAgqM5ffT1flSsw1rvRmu1oIngn5x/H3WjCD2jA8+zCXMV3KPsTBu5jJ0XobgiyT4H2+DBcEF6ErrIWnZd/JAbrNIoY669CrSpneyMmTJaD2OmGYRKkMbqbT7W4T8oKXmFDdTNOfiBOKRP9KPPATn8bTnnp/Q7LYd81PtAFXaWPWBRSbEIcks0JPKSfQ/4Ac3HnOx0BoxOYNPa0VBfDQQkg6CDZUvn6bPPHv8z6DwHmNu/DTClrjQ72UTEeRjfpPOIcfVcI/YFwLkoVaO00006XYGKhvIAnVJKyosmEri8WIuHK1yYwEWO4yLXiSzL46vNbygVDjS9tjyRqqLtcqqi8LGhVfhyKPaxraL5a/KwhNKIloaTNXgdqqOhjPLRPD+5UVLidTpNKBYgDzkuKcMSDayuoLhhULzC/xK1OPv8vujLqOeixET3lXGvtgZx7E7FVmCYfr4MrEAy2WsBqkFVL04CZVUDZWGtIBCXHGb1Lv9X8UfbPu5gdTE9wA+rgleFxTpBUsj/hxB/BViXXxxNjY7/D5sRqzEAAHjaY2BkYGAA4u9yb/vj+W2+MshzMIDAuWsuR2D0/7h/pRzS7NOA6jgYmECiAHTCDU0AAAB42mNgZGDgmPc3GUgW/4/7v4xDmgEoggJeAQCQzwaTAHjabZMxaBNRHMa/vPd/d0GKSDgQDSWUo0MIpYiIlBKE6HBIkBJK6RBKhhKCTqFDh1BKSaUcDqUEDpHQQYJDJxEHERdxcCgOTg6O4pZJRIqI8XsvPY3awI/v3fv/3//uvu+ihrgF/jJDIFUVYUe/R2y2EBmgk93AqolRV7OI9SrapKj3UTA93He9OdSsytToK/vXyYk8R5NUuL5BvULsfpu6bLH9Fs7o2jlWZR6hf4iWWUDe5JCYa2iYGcSyhUSWeL3H6x0kuoWm7iPgvETOI/G6rFmWsSIfxmqEtXeo8F6hOeT6I/J+ESXjYVoGyEkHkfqBRzKFJrVsAnQEo28S4I1s8Blf40BC1Kl12eS79xC6NffpQ1ddHa1J1a0PvJ/stf1PxnXbpyOqQlV9QoHXsVxA3ptGXq7zujwa6sdY0D2+x0zmErVs7mI/9d7e99THB2TO9sgKZwd46J9DQ1dY7/MMfbPe2z3WXup1dNzeEapkUYJMXZ7R3yKKbm6At9w/0rfd+Vp2HnOkRBbpfeR8PwM/R6+ZhcthAuaw5LJo4Q6JzCZUmsN/9Jj1Mucxi0lcFszM+WZ9PwPvOzUc5zCJmh0d0/9t6lMy+O2/1X+wvpzW479gFu4M1d9Gw6+xxz5TgAFp62PAT4BU1R7/I5/JzTH4Qt2l3mMPs0jh2UKWpN+58//iH9QJ6qy/smf1GsqkZucy78DroySXAXnBb474VYQIfwG9ncLoAHjaY2Bg0IHDGoZNjDOY9JjOMEcxVzEvYj7B/I/FgSWPpYdlD8sZVhnWANZlbHJsKWz72I3YI9gfcARwTOG4xvGKk4tTjrOBy4FrC7cUdxL3Eu4HPGI8TTy7eD7xavDG8bbwHuH9x+fHN4mfgT+C/4eAlkCWwC5BG8ECwQWC5wT/CHEJ2QhFCZUJTRGWE24SPiNiIjJN5IlohOgC0VtiOmIJYjViL8R1xCvEb0hYSZRIPJA0kCyTnCV5R4pPykOqTOqa1AfpAOkJQPhAZp6sguw8OSY5NblD8gzysxREFMwUEhTqFHUUvRSnKT5TMlKaprRNmU3ZRblIeYvyOxULlSiVV6plajpqM9Ql1GdpqGjc0WzRMtHq0Pqj7aLdp31Lx0dnis4dXQ3dBXocel16L/Td9FcZ2BkcMfhgmGG4zYjNKMbokjGfcZTxDZMcUxbTRWZl5ibmfyzOWbpYbrJSsJpirWYdYF1lvcKGyabC5p9tmO0GOwG7BfZK9kH2RxwkHPIcTjl6OPY4vnCKc7rmXOD8wIXFJQwHTHEpcmlwmeGyweWZq4xrgOsy1z9uQW5Nbo+A8Js7FxAWud9z/+fR4vHCc5WXDwA1BpJBAAAAAQAAAOsAQwAFAAAAAAACAAEAAgAWAAABAAFeAAAAAHjatVZLbxJRFD7TYoPxsTHRalxMWGlCkdqYJnZFaWuJFZpCbdyYDE9JeTkziKy6du2v8Ge4q7/ExP9g4ne+e2cGsOiqkLnz3fO653UPiMg9+SWO6Gd2XeHb4FUig1PyIMZreK+D66RuQuCRPLTYkZSzZfEKONsWr87gFGQifEPWnR2L12TFqVqcloxzavEteexMLL4tOeerxXfWLp3vFt+V9+kvFl/K/fRPi39IPv37othreb5b9QaBuzvsNd2zVr09HIQXciBDGUgorgRAbaCJeOJLC5QiKCOZYteVjnyg1Dc8zyUvm1hdKVG3JT0r7UNeVw/ULi3nwDkCbkBqgDNa0gRlDNwE9oFDWNbTCtD1IGd28zpZUN5SPrB21Ysc/FD7Ln0Lof9SnuE74TcHa4nFHP3qgNubsxyAcoQ4irIvZali3YgtX/BZPHeT3Dw4/49+3q88dSM//sVrwGaLdQiwqqfXmUNXnsQWMgtaGXkqO6BPoTHGuw/7U7wH2If0IqCe6neBXfRQl967eD7T0oiSXZ7YgF4fFK2CRtag5AQ7tZBEMu+FVvndggdDqUPas3Y9a3tkee2ltlzW57p6xpVTSPUopdnQm/QRfneJtG51eqjnjKxdDzSTsR7whP77lOlQy+iFoEZZnPBOhtx1WNnZGI32COtQPoHepDdJPs4occ66e+wil93WYAWKdiLoCXV4Hi61px4EV2qY/grQO67tNI9rBh1a5dyoAruyy73usvSrJDU5lApyWOO+ICf4FpDlGnj71K2AomdWQN2jRonY8A54C8roFldeg6MyWcbXtfH7tjNHzK2pkomwG3emZjxrs613cYx9kuuoW4eM1aVGn7Tk5mdtzFPK6032uQ9pPTmzQemmrabJWtS/NUZ3hLjVWplRbjCmA+RA36/Ae8MurFFG8Qlyc2hzVkCGS+zVGjKSjU89IKXMjFa5N1kt4Dlm1mvs71PoFsg5Bj7BWmG/z97H6NdC+67HaTi1fR9wHg44b6IOb1sPtIdCVqPPzJrsJj1q7ofPG+1zVoTs7qRibTt9Ik1j19wynUTz/ThvPbkBUf97tDuGN62Zyvm0dM4TjcQQFYu8ac5NLpOPqLs0sga1W7G3ozjeIJ7BwRWT3MzRvydglbNg+VyLchvxA56oXrQpaeaLZmLM2aIyHd5pPTupwTI/o1xd1e/Bkl+kxSiuZ+qq1T7kzyBXZx7MfxrzW12DZ+rLHrOh1G2uW/DCrM/lRfy/ZusPoNmmpQAAeNpt0EdsU1EQheF/EsdOnN57oXfwe7ZT6HYc03vvBBIXCElwMBA6IqGDQEjsQLQNIHoVCFgAojdRBCxY08UC2IKTd9kxm0/njmZ0NUTRXn98+PhffQGJkmgxEY2JGMxYiCUOK/EkkEgSyaSQShrpZJBJFtnkkEse+RRQSBHFlNCBjnSiM13oSje604Oe9KI3fehLP2xo6Nhx4KSUMsqpoD8DGMggBjOEobhwU4mHKrwMYzgjGMkoRjOGsYxjPBOYyCQmM4WpTGM6M5jJLGYzh7nMYz7VEsNRWmjlBvv5yGZ2s4MDHOeYmNnOezaxTywSyy6JYyu3+SBWDnKCX/zkN0c4xQPucZoFLGQPNTyilvs85BmPecJTPkXu95LnvOAMfn6wlze84jWByAW/sY1FBFnMEuqo5xANLKWREE2EWcZyVvCZlayimdWsZQ1XOcx61rGBjXzlO9c4yzmu85Z3Ei8JkihJkiwpkippki4ZkilZki05nOcCl7nCHS5yibts4aTkcpNbkif57JQCKZQiKZYSs7+uuTGgWcL1QZvN5jGi3Ygum9Jj6NaVqu92Kiva1CPzSk2pK+1Kh9KpLFWWKcuV//a5DDW1V9OsvqA/HKqtqW4KGE+619DpNVWFQw3twemtbNPrNv4RUVfalY6/BjGhYQB42j3NKw7CQBgE4G7fD/pegiIpDlhDAvQEtKaGoNqEA3ACNAYJXOUvikNwJ5jAdt18I2Ze7HMldtMacvdtz9i962tbtDNKuob4AeHSTckWx1Yjo6jIEDsyi+ppzHXxgwWYA2zAeks4gH2ScAGnlPAAdynhA95CIgD8YW0EBJM/GIXyPUIbCl30Rn0GYzBaKSZg/FBMwaRUzMB0q5iD2UaRg/lacQxyddQRF18EnFR/AAABUrCURQAA \ No newline at end of file diff --git a/project-work/resources/public/css/fonts/ClearSansRegular.woff b/project-work/resources/public/css/fonts/ClearSansRegular.woff new file mode 100644 index 0000000..4034df7 --- /dev/null +++ b/project-work/resources/public/css/fonts/ClearSansRegular.woff @@ -0,0 +1 @@ +data:font/woff;base64,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 \ No newline at end of file diff --git a/project-work/resources/public/css/fonts/clear-sans.css b/project-work/resources/public/css/fonts/clear-sans.css new file mode 100644 index 0000000..8b7f829 --- /dev/null +++ b/project-work/resources/public/css/fonts/clear-sans.css @@ -0,0 +1,32 @@ +/*@font-face {*/ +/* font-family: "Clear Sans";*/ +/* src: url("ClearSans-Light-webfont.eot");*/ +/* src: url("ClearSans-Light-webfont.eot?#iefix") format("embedded-opentype"),*/ +/* url("ClearSans-Light-webfont.svg#clear_sans_lightregular") format("svg"),*/ +/* url("ClearSans-Light-webfont.woff") format("woff");*/ +/* font-weight: 200;*/ +/* font-style: normal;*/ +/* font-display: swap;*/ +/*}*/ + +@font-face { + font-family: "Clear Sans"; + /*src: url("ClearSans-Regular-webfont.eot");*/ + /*src: url("ClearSans-Regular-webfont.eot?#iefix") format("embedded-opentype"),*/ + /*url("ClearSans-Regular-webfont.svg#clear_sansregular") format("svg"),*/ + src: url("ClearSansRegular.woff") format("woff"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Clear Sans"; + /*src: url("ClearSans-Bold-webfont.eot");*/ + /*src: url("ClearSans-Bold-webfont.eot?#iefix") format("embedded-opentype"),*/ + /* url("ClearSans-Bold-webfont.svg#clear_sansbold") format("svg"),*/ + url("ClearSancBold.woff") format("woff"); + font-weight: 700; + font-style: normal; + font-display: swap; +} diff --git a/project-work/resources/public/css/style.css b/project-work/resources/public/css/style.css new file mode 100644 index 0000000..70af734 --- /dev/null +++ b/project-work/resources/public/css/style.css @@ -0,0 +1,240 @@ +/* some style */ + + +.grid-container { + position: absolute; + z-index: 1; +} + +.grid-row { + margin-bottom: 15px; +} +.grid-row:last-child { + margin-bottom: 0; +} +.grid-row:after { + content: ""; + display: block; + clear: both; +} + +.grid-cell { + width: 106.25px; + height: 106.25px; + margin-right: 15px; + float: left; + border-radius: 3px; + text-align: center; + vertical-align: middle; + line-height: 106.25px; + background: rgba(238, 228, 218, 0.35); +} +.grid-cell:last-child { + margin-right: 0; +} + + +.tile-container { + position: absolute; + z-index: 2; +} + +.tile, +.tile .tile-inner { + width: 107px; + height: 107px; + line-height: 107px; +} +.tile.tile-position-1-1 { + -webkit-transform: translate(0px, 0px); + -moz-transform: translate(0px, 0px); + -ms-transform: translate(0px, 0px); + transform: translate(0px, 0px); +} +.tile.tile-position-1-2 { + -webkit-transform: translate(0px, 121px); + -moz-transform: translate(0px, 121px); + -ms-transform: translate(0px, 121px); + transform: translate(0px, 121px); +} +.tile.tile-position-1-3 { + -webkit-transform: translate(0px, 242px); + -moz-transform: translate(0px, 242px); + -ms-transform: translate(0px, 242px); + transform: translate(0px, 242px); +} +.tile.tile-position-1-4 { + -webkit-transform: translate(0px, 363px); + -moz-transform: translate(0px, 363px); + -ms-transform: translate(0px, 363px); + transform: translate(0px, 363px); +} +.tile.tile-position-2-1 { + -webkit-transform: translate(121px, 0px); + -moz-transform: translate(121px, 0px); + -ms-transform: translate(121px, 0px); + transform: translate(121px, 0px); +} +.tile.tile-position-2-2 { + -webkit-transform: translate(121px, 121px); + -moz-transform: translate(121px, 121px); + -ms-transform: translate(121px, 121px); + transform: translate(121px, 121px); +} +.tile.tile-position-2-3 { + -webkit-transform: translate(121px, 242px); + -moz-transform: translate(121px, 242px); + -ms-transform: translate(121px, 242px); + transform: translate(121px, 242px); +} +.tile.tile-position-2-4 { + -webkit-transform: translate(121px, 363px); + -moz-transform: translate(121px, 363px); + -ms-transform: translate(121px, 363px); + transform: translate(121px, 363px); +} +.tile.tile-position-3-1 { + -webkit-transform: translate(242px, 0px); + -moz-transform: translate(242px, 0px); + -ms-transform: translate(242px, 0px); + transform: translate(242px, 0px); +} +.tile.tile-position-3-2 { + -webkit-transform: translate(242px, 121px); + -moz-transform: translate(242px, 121px); + -ms-transform: translate(242px, 121px); + transform: translate(242px, 121px); +} +.tile.tile-position-3-3 { + -webkit-transform: translate(242px, 242px); + -moz-transform: translate(242px, 242px); + -ms-transform: translate(242px, 242px); + transform: translate(242px, 242px); +} +.tile.tile-position-3-4 { + -webkit-transform: translate(242px, 363px); + -moz-transform: translate(242px, 363px); + -ms-transform: translate(242px, 363px); + transform: translate(242px, 363px); +} +.tile.tile-position-4-1 { + -webkit-transform: translate(363px, 0px); + -moz-transform: translate(363px, 0px); + -ms-transform: translate(363px, 0px); + transform: translate(363px, 0px); +} +.tile.tile-position-4-2 { + -webkit-transform: translate(363px, 121px); + -moz-transform: translate(363px, 121px); + -ms-transform: translate(363px, 121px); + transform: translate(363px, 121px); +} +.tile.tile-position-4-3 { + -webkit-transform: translate(363px, 242px); + -moz-transform: translate(363px, 242px); + -ms-transform: translate(363px, 242px); + transform: translate(363px, 242px); +} +.tile.tile-position-4-4 { + -webkit-transform: translate(363px, 363px); + -moz-transform: translate(363px, 363px); + -ms-transform: translate(363px, 363px); + transform: translate(363px, 363px); +} + +.tile { + position: absolute; + /*-webkit-transition: 100ms ease-in-out;*/ + /*-moz-transition: 100ms ease-in-out;*/ + /*transition: 100ms ease-in-out;*/ + -webkit-transition-property: -webkit-transform; + -moz-transition-property: -moz-transform; + transition-property: transform; +} +.tile .tile-inner { + border-radius: 3px; + background: #eee4da; + text-align: center; + font-weight: bold; + z-index: 10; + font-size: 55px; +} +.tile.tile-2 .tile-inner { + background: #eee4da; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0), inset 0 0 0 1px rgba(255, 255, 255, 0); +} +.tile.tile-4 .tile-inner { + background: #eee1c9; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0), inset 0 0 0 1px rgba(255, 255, 255, 0); +} +.tile.tile-8 .tile-inner { + color: #f9f6f2; + background: #f3b27a; +} +.tile.tile-16 .tile-inner { + color: #f9f6f2; + background: #f69664; +} +.tile.tile-32 .tile-inner { + color: #f9f6f2; + background: #f77c5f; +} +.tile.tile-64 .tile-inner { + color: #f9f6f2; + background: #f75f3b; +} +.tile.tile-128 .tile-inner { + color: #f9f6f2; + background: #edd073; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.2380952381), inset 0 0 0 1px rgba(255, 255, 255, 0.1428571429); + font-size: 45px; +} +@media screen and (max-width: 520px) { + .tile.tile-128 .tile-inner { + font-size: 25px; + } +} +.tile.tile-256 .tile-inner { + color: #f9f6f2; + background: #edcc62; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.3174603175), inset 0 0 0 1px rgba(255, 255, 255, 0.1904761905); + font-size: 45px; +} +@media screen and (max-width: 520px) { + .tile.tile-256 .tile-inner { + font-size: 25px; + } +} +.tile.tile-512 .tile-inner { + color: #f9f6f2; + background: #edc950; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.3968253968), inset 0 0 0 1px rgba(255, 255, 255, 0.2380952381); + font-size: 45px; +} +@media screen and (max-width: 520px) { + .tile.tile-512 .tile-inner { + font-size: 25px; + } +} +.tile.tile-1024 .tile-inner { + color: #f9f6f2; + background: #edc53f; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.4761904762), inset 0 0 0 1px rgba(255, 255, 255, 0.2857142857); + font-size: 35px; +} +@media screen and (max-width: 520px) { + .tile.tile-1024 .tile-inner { + font-size: 15px; + } +} +.tile.tile-2048 .tile-inner { + color: #f9f6f2; + background: #edc22e; + box-shadow: 0 0 30px 10px rgba(243, 215, 116, 0.5555555556), inset 0 0 0 1px rgba(255, 255, 255, 0.3333333333); + font-size: 35px; +} +@media screen and (max-width: 520px) { + .tile.tile-2048 .tile-inner { + font-size: 15px; + } +} \ No newline at end of file diff --git a/project-work/resources/public/favicon.ico b/project-work/resources/public/favicon.ico new file mode 100644 index 0000000..22109e0 Binary files /dev/null and b/project-work/resources/public/favicon.ico differ diff --git a/project-work/resources/public/index.html b/project-work/resources/public/index.html new file mode 100644 index 0000000..2af4846 --- /dev/null +++ b/project-work/resources/public/index.html @@ -0,0 +1,16 @@ + + + + + + + + + + + +
+
+ + + diff --git a/project-work/src/game_2048/core.cljs b/project-work/src/game_2048/core.cljs new file mode 100644 index 0000000..0aa414b --- /dev/null +++ b/project-work/src/game_2048/core.cljs @@ -0,0 +1,45 @@ +(ns game-2048.core + (:require + [reagent.dom :as rd] + [game-2048.game :refer [a-grid move try-move]] + [game-2048.events :as ge])) + +(enable-console-print!) + +(defn move-reset [direction] + (let [nv (move (:grid @a-grid) direction)] + (if (not (nil? nv)) (reset! a-grid {:grid nv}) (js/alert "Игра закончена")) + ) + ) + +(defn new-game [e] + (reset! a-grid {:grid [[nil nil nil nil] + [nil nil nil nil] + [nil 2 nil nil] + [2 nil nil nil]]})) + +(defn on-arrow-down [e] + (let [cc (.-keyCode e)] + (cond + (= cc 37) (do (move-reset :left)) + (= cc 38) (do (move-reset :top)) + (= cc 39) (do (move-reset :right)) + (= cc 40) (do (move-reset :bottom)) + ))) + +(defn hello-world [] (fn [] + [:div + {:on-key-down on-arrow-down} + [:button {:on-click new-game} "Run or new game"] + (ge/render-tile-conteiner) + ] + )) + +(rd/render [hello-world] + (. js/document (getElementById "app"))) + +;(defn on-js-reload [] +; ;; optionally touch your app-state to force rerendering depending on +; ;; your application +; ;; (swap! app-state update-in [:__figwheel_counter] inc) +; ) diff --git a/project-work/src/game_2048/events.cljs b/project-work/src/game_2048/events.cljs new file mode 100644 index 0000000..c50cef0 --- /dev/null +++ b/project-work/src/game_2048/events.cljs @@ -0,0 +1,53 @@ +(ns game-2048.events + (:require + [reagent.core :as r] + [game-2048.game :refer [a-grid]] + )) + +(defn calc-idx [idx] + (let [i (+ 1 idx) + i1 (Math/ceil (/ i 4)) + m4 (mod i 4) + i2 (if (= 0 m4) 4 m4) + r (str i2 "-" i1) + ] + r + )) + +(defn filtered-indexed-grid [grid] + (let [ + ig (map-indexed (fn [idx itm] {:idx (calc-idx idx) :itm itm}) (flatten grid)) + fg (filter (fn [m] (some? (:itm m))) ig) + ] + fg + )) + + +(defn gclass [m] + (str "tile tile-" (:itm m) " tile-position-" (:idx m)) + ) + +(defn get-v2 [grid] + (let [fg (filtered-indexed-grid grid)] + (map-indexed (fn [idx m] (assoc m :class (gclass m) :idx idx)) fg) + )) + +(defn ggrid [] + (:grid @a-grid)) + +(defn tile-content [] + (let [grid @(r/track ggrid) + lst (get-v2 grid) + ] + (for [c lst] + [:div {:class (:class c) :key (str "-" (:idx c))} + [:div.tile-inner {:key (str "--" (:idx c))} (:itm c) ] + ] + ) + )) + +(defn render-tile-conteiner [] + [:div.tile-container + (tile-content) + ] + ) \ No newline at end of file diff --git a/project-work/src/game_2048/game.cljs b/project-work/src/game_2048/game.cljs new file mode 100644 index 0000000..a6bead7 --- /dev/null +++ b/project-work/src/game_2048/game.cljs @@ -0,0 +1,147 @@ +(ns game-2048.game + (:require + [reagent.core :as reagent :refer [atom]] + ) ) + +(def a-grid (atom {:grid [[nil nil nil nil] + [nil nil nil nil] + [nil 2 nil nil] + [2 nil nil nil]]})) + + +;; Grid functions. + + +(defn set-last + "Sets the last item of the vector to value" + [vector value] + (if (= (count vector) 0) + [value] + (assoc vector (- (count vector) 1) value))) + + + +(defn pair-compressed-row + "Creates vector with equal fields paired into subvectors" + [row] + (reduce (fn [paired field] + (if (and (= field (last paired)) (number? (last paired))) + (set-last paired [field field]) + (conj paired field))) + [] + row)) + +(defn merge-compressed-row + [row] + "Merge field in compressed row (row without empty fields)" + (reduce (fn [merged field] + (if (number? field) + (conj merged field) + (let [r (conj merged (reduce + field))] + ;(println "f" field "r" r) + r + ))) + [] + (pair-compressed-row row))) + +(defn merge-row + "Move all field in the row to the left and merge fields with the same value" + [row] + (loop [merged-row (merge-compressed-row (filter identity row))] + (if (< (count merged-row) 4) + (recur (conj merged-row nil)) + merged-row))) + + +(defn move-left + [grid] + (vec (map merge-row grid))) + +(defn move-rigth + [grid] + (vec (map (comp vec rseq) (move-left (vec (map (comp vec rseq) grid)))))) + +(defn move-top + [grid] + (vec (apply map vector (move-left (vec (apply map vector grid)))))) + +(defn move-bottom + [grid] + (vec (apply map vector (move-rigth (vec (apply map vector grid)))))) + + + +(defn get-empty-coordinates + [grid] + (loop [empty-fields [] + y 0] + (if (= y 4) + empty-fields + (recur (into empty-fields (loop [empty-fields [] + x 0] + (if (= x 4) + empty-fields + (recur (if (get-in grid [y x]) + empty-fields + (conj empty-fields [y x])) (inc x))))) (inc y))))) + +(defn insert + "Inserts 2 or 4 at random free location." + [grid] + (let [ place (rand-nth (get-empty-coordinates grid)) + value 2 #_ (rand-nth [2 4])] + ;(println "new" value "in" place) + (assoc-in grid place value ))) + + +(defn try-move-with-function + [grid function] + (let [moved (function grid)] + (if (= moved grid) + grid + (insert moved)))) + +(defn try-move + [grid direction] + (case direction + :left (try-move-with-function grid move-left) + :right (try-move-with-function grid move-rigth) + :top (try-move-with-function grid move-top) + :bottom (try-move-with-function grid move-bottom))) + +(defn can-move + [grid] + (not (= grid + (try-move grid :left) + (try-move grid :right) + (try-move grid :top) + (try-move grid :bottom)))) + +(defn move + "Moves all field to the choosen direction, merges fields and inserts field value for random free location. Returns nil if game is over. Returns same grid if move doesn't change the grid." + [grid direction] + + (let [ + ;sum1 (apply + (filter some? (flatten grid))) + res (if (can-move grid) + (try-move grid direction) + nil) + ;sum2 (apply + (filter some? (flatten res))) + ] + ;(for [r res] + ; (println r)) + ;(println "before sum" sum1 "after" sum2) + res)) + + +;; Grid test funcions. + +(defn random-game + "Makes as many random moves as possible and returns final grid and number of moves." + [grid] + (loop [g grid + i 0] + (let [moved (move g (rand-nth [:left :rigth :top :bottom]))] + (if (or (not moved) (= i 500)) + {:moves i :final-grid g} + (recur moved (inc i)))))) \ No newline at end of file