From e4260d33701baa1c124d46d432c891230d298b68 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sat, 17 Aug 2024 11:34:26 +0200 Subject: [PATCH 001/127] webapp: Update dependencies --- webapp/package.json | 14 +-- webapp/yarn.lock | 211 +++++++++++++++++++++----------------------- 2 files changed, 110 insertions(+), 115 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index a427ce2c..f005a523 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,30 +19,30 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.2", "spark-md5": "^3.0.2", - "vue": "^3.4.35", - "vue-i18n": "^9.13.1", - "vue-router": "^4.4.2" + "vue": "^3.4.38", + "vue-i18n": "9.13.1", + "vue-router": "^4.4.3" }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node18": "^18.2.4", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.1.0", + "@types/node": "^22.4.0", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.1.2", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^9.8.0", + "eslint": "^9.9.0", "eslint-plugin-vue": "^9.27.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", "pulltorefreshjs": "^0.1.22", "sass": "^1.77.6", - "terser": "^5.31.3", + "terser": "^5.31.6", "typescript": "^5.5.4", - "vite": "^5.3.5", + "vite": "^5.4.1", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", "vue-tsc": "^2.0.29" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index ac50d1d0..d43a5482 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -185,10 +185,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.8.0": - version "9.8.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.8.0.tgz#ae9bc14bb839713c5056f5018bcefa955556d3a4" - integrity sha512-MfluB7EUfxXtv3i/++oh89uzAr4PDI4nn201hsp+qaXqsjAWzinlZEHEfPgAX4doIlKvPG/i0A9dpKxOLII8yA== +"@eslint/js@9.9.0": + version "9.9.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.0.tgz#d8437adda50b3ed4401964517b64b4f59b0e2638" + integrity sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -449,12 +449,12 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^22.1.0": - version "22.1.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b" - integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw== +"@types/node@^22.4.0": + version "22.4.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.0.tgz#c295fe1d6f5f58916cc61dbef8cf65b5b9b71de9" + integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== dependencies: - undici-types "~6.13.0" + undici-types "~6.19.2" "@types/pulltorefreshjs@^0.1.7": version "0.1.7" @@ -609,13 +609,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.35.tgz#421922a75ecabf1aabc6b7a2ce98b5acb2fc2d65" - integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg== +"@vue/compiler-core@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.38.tgz#326dfe3c92fa2b0f1dc9b39a948a231980253496" + integrity sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A== dependencies: "@babel/parser" "^7.24.7" - "@vue/shared" "3.4.35" + "@vue/shared" "3.4.38" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -628,13 +628,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz#cd0881f1b4ed655cd96367bce4845f87023a5a2d" - integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ== +"@vue/compiler-dom@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz#90348fac1130e0bbd408b650635cb626b3b9df06" + integrity sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ== dependencies: - "@vue/compiler-core" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/compiler-core" "3.4.38" + "@vue/shared" "3.4.38" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -644,16 +644,16 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz#16f87dd3bdab64cef14d3a6fcf53f8673e404071" - integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA== +"@vue/compiler-sfc@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz#954c3f6777bbbcca28771ba59b795f12f76ef188" + integrity sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ== dependencies: "@babel/parser" "^7.24.7" - "@vue/compiler-core" "3.4.35" - "@vue/compiler-dom" "3.4.35" - "@vue/compiler-ssr" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/compiler-core" "3.4.38" + "@vue/compiler-dom" "3.4.38" + "@vue/compiler-ssr" "3.4.38" + "@vue/shared" "3.4.38" estree-walker "^2.0.2" magic-string "^0.30.10" postcss "^8.4.40" @@ -683,13 +683,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz#0774c9a0afed74d71615209904b38f3fa9711adb" - integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A== +"@vue/compiler-ssr@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz#9ded18f6d9c8b2440039a58492cfff36fa1a7774" + integrity sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw== dependencies: - "@vue/compiler-dom" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/compiler-dom" "3.4.38" + "@vue/shared" "3.4.38" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -699,12 +699,7 @@ de-indent "^1.0.2" he "^1.2.0" -"@vue/devtools-api@^6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07" - integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q== - -"@vue/devtools-api@^6.6.3": +"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3": version "6.6.3" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0" integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== @@ -743,38 +738,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.35.tgz#dfbb4f5371da1290ac86e3313d0e9a68bb0ab38d" - integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw== +"@vue/reactivity@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.38.tgz#ec2d549f4b831cd03d0baabf7d77e840b8536000" + integrity sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw== dependencies: - "@vue/shared" "3.4.35" + "@vue/shared" "3.4.38" -"@vue/runtime-core@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.35.tgz#c036013a7b1bbe0d14a6b76eb4355dae6690d2e6" - integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA== +"@vue/runtime-core@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.38.tgz#bead9085e9a1c5a446e27d74ffb450f9261cf097" + integrity sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA== dependencies: - "@vue/reactivity" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/reactivity" "3.4.38" + "@vue/shared" "3.4.38" -"@vue/runtime-dom@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz#74254c7c327163d692e1d7d2b6d9e92463744e90" - integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw== +"@vue/runtime-dom@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz#52678ba0b85f94400a0a9c8dd23ddef4dd65657d" + integrity sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA== dependencies: - "@vue/reactivity" "3.4.35" - "@vue/runtime-core" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/reactivity" "3.4.38" + "@vue/runtime-core" "3.4.38" + "@vue/shared" "3.4.38" csstype "^3.1.3" -"@vue/server-renderer@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.35.tgz#188e94e82d8e729ba7b40dd91d10678b85f77c6b" - integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw== +"@vue/server-renderer@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.38.tgz#457401ef2b0f969156702061e56915acecc9fe2c" + integrity sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA== dependencies: - "@vue/compiler-ssr" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/compiler-ssr" "3.4.38" + "@vue/shared" "3.4.38" "@vue/shared@3.2.47": version "3.2.47" @@ -786,10 +781,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.4.35": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.35.tgz#5432f4b1c79e763fcf78cc830faf59ff01248968" - integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ== +"@vue/shared@3.4.38": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.38.tgz#552a6770098bfd556fa3e2c686c9d3b4f4cd94c2" + integrity sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -1222,16 +1217,16 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.8.0: - version "9.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.8.0.tgz#a4f4a090c8ea2d10864d89a6603e02ce9f649f0f" - integrity sha512-K8qnZ/QJzT2dLKdZJVX6W4XOwBzutMYmt0lqUS+JdXgd+HTYFlonFgkJ8s44d/zMPPCnOOk0kMWCApCPhiOy9A== +eslint@^9.9.0: + version "9.9.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.0.tgz#8d214e69ae4debeca7ae97daebbefe462072d975" + integrity sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.17.1" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.8.0" + "@eslint/js" "9.9.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" @@ -2118,19 +2113,19 @@ postcss@^8.1.10: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.39: - version "8.4.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" - integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== +postcss@^8.4.40: + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" picocolors "^1.0.1" source-map-js "^1.2.0" -postcss@^8.4.40: - version "8.4.40" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" - integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== +postcss@^8.4.41: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== dependencies: nanoid "^3.3.7" picocolors "^1.0.1" @@ -2448,10 +2443,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.31.3: - version "5.31.3" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.3.tgz#b24b7beb46062f4653f049eea4f0cd165d0f0c38" - integrity sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA== +terser@^5.31.6: + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2507,10 +2502,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici-types@~6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5" - integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg== +undici-types@~6.19.2: + version "6.19.6" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.6.tgz#e218c3df0987f4c0e0008ca00d6b6472d9b89b36" + integrity sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org== universalify@^2.0.0: version "2.0.0" @@ -2561,13 +2556,13 @@ vite-plugin-css-injected-by-js@^3.5.1: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== -vite@^5.3.5: - version "5.3.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8" - integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== +vite@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.1.tgz#2aa72370de824d23f53658affd807e4c9905b058" + integrity sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA== dependencies: esbuild "^0.21.3" - postcss "^8.4.39" + postcss "^8.4.41" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" @@ -2603,7 +2598,7 @@ vue-eslint-parser@^9.4.3: lodash "^4.17.21" semver "^7.3.6" -vue-i18n@^9.13.1: +vue-i18n@9.13.1: version "9.13.1" resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.13.1.tgz#a292c8021b7be604ebfca5609ae1f8fafe5c36d7" integrity sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg== @@ -2612,10 +2607,10 @@ vue-i18n@^9.13.1: "@intlify/shared" "9.13.1" "@vue/devtools-api" "^6.5.0" -vue-router@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.2.tgz#bc7bf27f108fc15e5cc2a30b314a662275e2b2bb" - integrity sha512-1qNybkn2L7QsLzaXs8nvlQmRKp8XF8DCxZys/Jr1JpQcHsKUxTKzTxCVA1G7NfBfwRIBgCJPoujOG5lHCCNUxw== +vue-router@^4.4.3: + version "4.4.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.3.tgz#58a39dc804632bfb6d26f052aa8f6718bd130299" + integrity sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A== dependencies: "@vue/devtools-api" "^6.6.3" @@ -2628,16 +2623,16 @@ vue-tsc@^2.0.29: "@vue/language-core" "2.0.29" semver "^7.5.4" -vue@^3.4.35: - version "3.4.35" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.35.tgz#9ad23525919eece40153fdf8675d07ddd879eb33" - integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ== +vue@^3.4.38: + version "3.4.38" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.38.tgz#0ccbb64ed03ef3c4ab73e540793290b18e7c4236" + integrity sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw== dependencies: - "@vue/compiler-dom" "3.4.35" - "@vue/compiler-sfc" "3.4.35" - "@vue/runtime-dom" "3.4.35" - "@vue/server-renderer" "3.4.35" - "@vue/shared" "3.4.35" + "@vue/compiler-dom" "3.4.38" + "@vue/compiler-sfc" "3.4.38" + "@vue/runtime-dom" "3.4.38" + "@vue/server-renderer" "3.4.38" + "@vue/shared" "3.4.38" webpack-sources@^3.2.3: version "3.2.3" From 1f3af949a04c3288a37d4e9f303274e8c69af4a3 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 28 Aug 2024 21:25:15 +0200 Subject: [PATCH 002/127] Add serial prefix 1410 to HMS_2CH inverters This is related to #2235 and fixes #2230 --- lib/Hoymiles/src/inverters/HMS_2CH.cpp | 2 +- lib/Hoymiles/src/inverters/README.md | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/Hoymiles/src/inverters/HMS_2CH.cpp b/lib/Hoymiles/src/inverters/HMS_2CH.cpp index 4ad0157f..4cbc686c 100644 --- a/lib/Hoymiles/src/inverters/HMS_2CH.cpp +++ b/lib/Hoymiles/src/inverters/HMS_2CH.cpp @@ -42,7 +42,7 @@ bool HMS_2CH::isValidSerial(const uint64_t serial) { // serial >= 0x114400000000 && serial <= 0x1144ffffffff uint16_t preSerial = (serial >> 32) & 0xffff; - return preSerial == 0x1144 || preSerial == 0x1143; + return preSerial == 0x1144 || preSerial == 0x1143 || preSerial == 0x1410; } String HMS_2CH::typeName() const diff --git a/lib/Hoymiles/src/inverters/README.md b/lib/Hoymiles/src/inverters/README.md index 8d913deb..6372d9aa 100644 --- a/lib/Hoymiles/src/inverters/README.md +++ b/lib/Hoymiles/src/inverters/README.md @@ -1,15 +1,15 @@ # Class overview -| Class | Models | Serial range | -| --------------| --------------------------- | ------------ | -| HM_1CH | HM-300/350/400-1T | 1121 | -| HM_2CH | HM-600/700/800-2T | 1141 | -| HM_4CH | HM-1000/1200/1500-4T | 1161 | -| HMS_1CH | HMS-300/350/400/450/500-1T | 1124 | -| HMS_1CHv2 | HMS-500-1T v2 | 1125 | -| HMS_2CH | HMS-600/700/800/900/1000-2T | 1143, 1144 | -| HMS_4CH | HMS-1600/1800/2000-4T | 1164 | -| HMT_4CH | HMT-1600/1800/2000-4T | 1361 | -| HMT_6CH | HMT-1800/2250-6T | 1382 | -| HERF_2CH | HERF 800 | 2821 | -| HERF_4CH | HERF 1800 | 2801 | +| Class | Models | Serial range | +| --------------| --------------------------- | ------------- -- | +| HM_1CH | HM-300/350/400-1T | 1121 | +| HM_2CH | HM-600/700/800-2T | 1141 | +| HM_4CH | HM-1000/1200/1500-4T | 1161 | +| HMS_1CH | HMS-300/350/400/450/500-1T | 1124 | +| HMS_1CHv2 | HMS-500-1T v2 | 1125 | +| HMS_2CH | HMS-600/700/800/900/1000-2T | 1143, 1144, 1410 | +| HMS_4CH | HMS-1600/1800/2000-4T | 1164 | +| HMT_4CH | HMT-1600/1800/2000-4T | 1361 | +| HMT_6CH | HMT-1800/2250-6T | 1382 | +| HERF_2CH | HERF 800 | 2821 | +| HERF_4CH | HERF 1800 | 2801 | From b52cd31309f73365a470605c88b07b270de1219f Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:16:03 +0200 Subject: [PATCH 003/127] Output WiFi disconnect reason in console --- include/NetworkSettings.h | 4 ++-- src/NetworkSettings.cpp | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/NetworkSettings.h b/include/NetworkSettings.h index 40ddc914..433867e9 100644 --- a/include/NetworkSettings.h +++ b/include/NetworkSettings.h @@ -62,7 +62,7 @@ private: void setStaticIp(); void handleMDNS(); void setupMode(); - void NetworkEvent(const WiFiEvent_t event); + void NetworkEvent(const WiFiEvent_t event, WiFiEventInfo_t info); Task _loopTask; @@ -85,4 +85,4 @@ private: bool _lastMdnsEnabled = false; }; -extern NetworkSettingsClass NetworkSettings; \ No newline at end of file +extern NetworkSettingsClass NetworkSettings; diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index 55ea428e..31313feb 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -23,20 +23,21 @@ NetworkSettingsClass::NetworkSettingsClass() void NetworkSettingsClass::init(Scheduler& scheduler) { using std::placeholders::_1; + using std::placeholders::_2; WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN); WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL); WiFi.disconnect(true, true); - WiFi.onEvent(std::bind(&NetworkSettingsClass::NetworkEvent, this, _1)); + WiFi.onEvent(std::bind(&NetworkSettingsClass::NetworkEvent, this, _1, _2)); setupMode(); scheduler.addTask(_loopTask); _loopTask.enable(); } -void NetworkSettingsClass::NetworkEvent(const WiFiEvent_t event) +void NetworkSettingsClass::NetworkEvent(const WiFiEvent_t event, WiFiEventInfo_t info) { switch (event) { case ARDUINO_EVENT_ETH_START: @@ -76,7 +77,8 @@ void NetworkSettingsClass::NetworkEvent(const WiFiEvent_t event) } break; case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: - MessageOutput.println("WiFi disconnected"); + // Reason codes can be found here: https://github.com/espressif/esp-idf/blob/5454d37d496a8c58542eb450467471404c606501/components/esp_wifi/include/esp_wifi_types_generic.h#L79-L141 + MessageOutput.printf("WiFi disconnected: %d\r\n", info.wifi_sta_disconnected.reason); if (_networkMode == network_mode::WiFi) { MessageOutput.println("Try reconnecting"); WiFi.disconnect(true, false); From 7b60c92db97476c531000a80e1379a1187f4f0e9 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:18:37 +0200 Subject: [PATCH 004/127] Upgrade ESPAsyncWebServer from 3.1.2 to 3.2.0 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 2d86e9de..82d86f78 100644 --- a/platformio.ini +++ b/platformio.ini @@ -39,7 +39,7 @@ build_unflags = -std=gnu++11 lib_deps = - mathieucarbou/ESPAsyncWebServer @ 3.1.2 + mathieucarbou/ESPAsyncWebServer @ 3.2.0 bblanchon/ArduinoJson @ 7.1.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 From 8529cb0fca82b93435275cc9c0f31fe276566c20 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:21:38 +0200 Subject: [PATCH 005/127] Upgrade olikraus/U8g2 from 2.35.19 to 2.35.21 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 82d86f78..af7c7ea4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -43,7 +43,7 @@ lib_deps = bblanchon/ArduinoJson @ 7.1.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 - olikraus/U8g2 @ 2.35.19 + olikraus/U8g2 @ 2.35.21 buelowp/sunset @ 1.1.7 https://github.com/arkhipenko/TaskScheduler#testing From e00d831103bdcd2aead74616379a798a2bba972a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:28:21 +0200 Subject: [PATCH 006/127] Upgrade arkhipenko/TaskScheduler from git #testing to 3.8.5 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index af7c7ea4..c8c8631f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -45,7 +45,7 @@ lib_deps = nrf24/RF24 @ 1.4.9 olikraus/U8g2 @ 2.35.21 buelowp/sunset @ 1.1.7 - https://github.com/arkhipenko/TaskScheduler#testing + arkhipenko/TaskScheduler @ 3.8.5 extra_scripts = pre:pio-scripts/auto_firmware_version.py From ac5b6f309769264fb0dab6f32f9ee8b2ba89403f Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:37:54 +0200 Subject: [PATCH 007/127] webapp: update dependencies --- webapp/package.json | 12 +- webapp/yarn.lock | 268 +++++++++++++++++++++++--------------------- 2 files changed, 149 insertions(+), 131 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index f005a523..60375748 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -17,7 +17,7 @@ "bootstrap": "^5.3.3", "bootstrap-icons-vue": "^1.11.3", "mitt": "^3.0.1", - "sortablejs": "^1.15.2", + "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", "vue": "^3.4.38", "vue-i18n": "9.13.1", @@ -27,14 +27,14 @@ "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node18": "^18.2.4", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.4.0", + "@types/node": "^22.5.2", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", - "@vitejs/plugin-vue": "^5.1.2", + "@vitejs/plugin-vue": "^5.1.3", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^9.9.0", + "eslint": "^9.9.1", "eslint-plugin-vue": "^9.27.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", @@ -42,9 +42,9 @@ "sass": "^1.77.6", "terser": "^5.31.6", "typescript": "^5.5.4", - "vite": "^5.4.1", + "vite": "^5.4.2", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", - "vue-tsc": "^2.0.29" + "vue-tsc": "^2.1.4" } } diff --git a/webapp/yarn.lock b/webapp/yarn.lock index d43a5482..c9c72276 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -161,10 +161,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.1.tgz#8c4bb756cc2aa7eaf13cfa5e69c83afb3260c20c" integrity sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ== -"@eslint/config-array@^0.17.1": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.17.1.tgz#d9b8b8b6b946f47388f32bedfd3adf29ca8f8910" - integrity sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA== +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== dependencies: "@eslint/object-schema" "^2.1.4" debug "^4.3.1" @@ -185,10 +185,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.9.0": - version "9.9.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.0.tgz#d8437adda50b3ed4401964517b64b4f59b0e2638" - integrity sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug== +"@eslint/js@9.9.1": + version "9.9.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06" + integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -357,70 +357,85 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@rollup/rollup-android-arm-eabi@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz#b98786c1304b4ff8db3a873180b778649b5dff2b" - integrity sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg== +"@rollup/rollup-android-arm-eabi@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11" + integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg== -"@rollup/rollup-android-arm64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz#8833679af11172b1bf1ab7cb3bad84df4caf0c9e" - integrity sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q== +"@rollup/rollup-android-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb" + integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA== -"@rollup/rollup-darwin-arm64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz#ef02d73e0a95d406e0eb4fd61a53d5d17775659b" - integrity sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g== +"@rollup/rollup-darwin-arm64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz#0a2c364e775acdf1172fe3327662eec7c46e55b1" + integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q== -"@rollup/rollup-darwin-x64@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz#3ce5b9bcf92b3341a5c1c58a3e6bcce0ea9e7455" - integrity sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg== +"@rollup/rollup-darwin-x64@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42" + integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w== -"@rollup/rollup-linux-arm-gnueabihf@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz#3d3d2c018bdd8e037c6bfedd52acfff1c97e4be4" - integrity sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ== +"@rollup/rollup-linux-arm-gnueabihf@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1" + integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w== -"@rollup/rollup-linux-arm64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz#5fc8cc978ff396eaa136d7bfe05b5b9138064143" - integrity sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w== +"@rollup/rollup-linux-arm-musleabihf@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266" + integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w== -"@rollup/rollup-linux-arm64-musl@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz#f2ae7d7bed416ffa26d6b948ac5772b520700eef" - integrity sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw== +"@rollup/rollup-linux-arm64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7" + integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw== -"@rollup/rollup-linux-riscv64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz#303d57a328ee9a50c85385936f31cf62306d30b6" - integrity sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA== +"@rollup/rollup-linux-arm64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80" + integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w== -"@rollup/rollup-linux-x64-gnu@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz#f672f6508f090fc73f08ba40ff76c20b57424778" - integrity sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA== +"@rollup/rollup-linux-powerpc64le-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54" + integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ== -"@rollup/rollup-linux-x64-musl@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz#d2f34b1b157f3e7f13925bca3288192a66755a89" - integrity sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw== +"@rollup/rollup-linux-riscv64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09" + integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg== -"@rollup/rollup-win32-arm64-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz#8ffecc980ae4d9899eb2f9c4ae471a8d58d2da6b" - integrity sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA== +"@rollup/rollup-linux-s390x-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18" + integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ== -"@rollup/rollup-win32-ia32-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz#a7505884f415662e088365b9218b2b03a88fc6f2" - integrity sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw== +"@rollup/rollup-linux-x64-gnu@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad" + integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw== -"@rollup/rollup-win32-x64-msvc@4.13.0": - version "4.13.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz#6abd79db7ff8d01a58865ba20a63cfd23d9e2a10" - integrity sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw== +"@rollup/rollup-linux-x64-musl@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8" + integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg== + +"@rollup/rollup-win32-arm64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504" + integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ== + +"@rollup/rollup-win32-ia32-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e" + integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw== + +"@rollup/rollup-win32-x64-msvc@4.21.2": + version "4.21.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b" + integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA== "@tsconfig/node18@^18.2.4": version "18.2.4" @@ -449,10 +464,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^22.4.0": - version "22.4.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.0.tgz#c295fe1d6f5f58916cc61dbef8cf65b5b9b71de9" - integrity sha512-49AbMDwYUz7EXxKU/r7mXOsxwFr4BYbvB7tWYxVuLdb2ibd30ijjXINSMAHiEEZk5PCRBmW1gUeisn2VMKt3cQ== +"@types/node@^22.5.2": + version "22.5.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.2.tgz#e42344429702e69e28c839a7e16a8262a8086793" + integrity sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg== dependencies: undici-types "~6.19.2" @@ -562,29 +577,29 @@ "@typescript-eslint/types" "7.2.0" eslint-visitor-keys "^3.4.1" -"@vitejs/plugin-vue@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz#f11091e0130eca6c1ca8cfb85ee71ea53b255d31" - integrity sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A== +"@vitejs/plugin-vue@^5.1.3": + version "5.1.3" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz#42b55c1a4d6f329aea25c5a24db51a31db31c693" + integrity sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw== -"@volar/language-core@2.4.0-alpha.18", "@volar/language-core@~2.4.0-alpha.18": - version "2.4.0-alpha.18" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz#dafffd68ac07c26d69de16741187fd4c06bfa345" - integrity sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg== +"@volar/language-core@2.4.1", "@volar/language-core@~2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.1.tgz#267984b2b06908b78f1c016392fc75b75516595b" + integrity sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ== dependencies: - "@volar/source-map" "2.4.0-alpha.18" + "@volar/source-map" "2.4.1" -"@volar/source-map@2.4.0-alpha.18": - version "2.4.0-alpha.18" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz#a2413932ff6b1821ae8efcbd9249d4da3f99f223" - integrity sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g== +"@volar/source-map@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.1.tgz#6a6d02b9dac66a5dd99378dcdae63107a0b45fce" + integrity sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ== -"@volar/typescript@~2.4.0-alpha.18": - version "2.4.0-alpha.18" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz#806aca9ce1bd7c48dc5fcd0fcf7f33bdd04e5b35" - integrity sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ== +"@volar/typescript@~2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.1.tgz#6285f29b36c58769ccc14153f329d11e89ee13bc" + integrity sha512-UoRzC0PXcwajFQTu8XxKSYNsWNBtVja6Y9gC8eLv7kYm+UEKJCcZ8g7dialsOYA0HKs3Vpg57MeCsawFLC6m9Q== dependencies: - "@volar/language-core" "2.4.0-alpha.18" + "@volar/language-core" "2.4.1" path-browserify "^1.0.1" vscode-uri "^3.0.8" @@ -713,12 +728,12 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.0.29": - version "2.0.29" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.0.29.tgz#19462d786cd7a1c21dbe575b46970a57094e0357" - integrity sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ== +"@vue/language-core@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.1.4.tgz#7be59322a87abbcd9aa23f45fbdfaa1f77bb6e22" + integrity sha512-i8pfAgNjTNjabBX1xRsuV6aRw2E8bdQXwd5H8m3cUkTVJju3QN5nfdoXET0uK+yXsuloNJPzo6PXFujRRPNmMA== dependencies: - "@volar/language-core" "~2.4.0-alpha.18" + "@volar/language-core" "~2.4.1" "@vue/compiler-dom" "^3.4.0" "@vue/compiler-vue2" "^2.7.16" "@vue/shared" "^3.4.0" @@ -1217,16 +1232,16 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.9.0: - version "9.9.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.0.tgz#8d214e69ae4debeca7ae97daebbefe462072d975" - integrity sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA== +eslint@^9.9.1: + version "9.9.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec" + integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" - "@eslint/config-array" "^0.17.1" + "@eslint/config-array" "^0.18.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.9.0" + "@eslint/js" "9.9.1" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" @@ -2200,26 +2215,29 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rollup@^4.13.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.13.0.tgz#dd2ae144b4cdc2ea25420477f68d4937a721237a" - integrity sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg== +rollup@^4.20.0: + version "4.21.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.2.tgz#f41f277a448d6264e923dd1ea179f0a926aaf9b7" + integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.13.0" - "@rollup/rollup-android-arm64" "4.13.0" - "@rollup/rollup-darwin-arm64" "4.13.0" - "@rollup/rollup-darwin-x64" "4.13.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.13.0" - "@rollup/rollup-linux-arm64-gnu" "4.13.0" - "@rollup/rollup-linux-arm64-musl" "4.13.0" - "@rollup/rollup-linux-riscv64-gnu" "4.13.0" - "@rollup/rollup-linux-x64-gnu" "4.13.0" - "@rollup/rollup-linux-x64-musl" "4.13.0" - "@rollup/rollup-win32-arm64-msvc" "4.13.0" - "@rollup/rollup-win32-ia32-msvc" "4.13.0" - "@rollup/rollup-win32-x64-msvc" "4.13.0" + "@rollup/rollup-android-arm-eabi" "4.21.2" + "@rollup/rollup-android-arm64" "4.21.2" + "@rollup/rollup-darwin-arm64" "4.21.2" + "@rollup/rollup-darwin-x64" "4.21.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.21.2" + "@rollup/rollup-linux-arm-musleabihf" "4.21.2" + "@rollup/rollup-linux-arm64-gnu" "4.21.2" + "@rollup/rollup-linux-arm64-musl" "4.21.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.21.2" + "@rollup/rollup-linux-riscv64-gnu" "4.21.2" + "@rollup/rollup-linux-s390x-gnu" "4.21.2" + "@rollup/rollup-linux-x64-gnu" "4.21.2" + "@rollup/rollup-linux-x64-musl" "4.21.2" + "@rollup/rollup-win32-arm64-msvc" "4.21.2" + "@rollup/rollup-win32-ia32-msvc" "4.21.2" + "@rollup/rollup-win32-x64-msvc" "4.21.2" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -2316,10 +2334,10 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -sortablejs@^1.15.2: - version "1.15.2" - resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.2.tgz#4e9f7bda4718bd1838add9f1866ec77169149809" - integrity sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA== +sortablejs@^1.15.3: + version "1.15.3" + resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.15.3.tgz#033668db5ebfb11167d1249ab88e748f27959e29" + integrity sha512-zdK3/kwwAK1cJgy1rwl1YtNTbRmc8qW/+vgXf75A7NHag5of4pyI6uK86ktmQETyWRH7IGaE73uZOOBcGxgqZg== "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2: version "1.0.2" @@ -2556,14 +2574,14 @@ vite-plugin-css-injected-by-js@^3.5.1: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== -vite@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.1.tgz#2aa72370de824d23f53658affd807e4c9905b058" - integrity sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA== +vite@^5.4.2: + version "5.4.2" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.2.tgz#8acb6ec4bfab823cdfc1cb2d6c53ed311bc4e47e" + integrity sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA== dependencies: esbuild "^0.21.3" postcss "^8.4.41" - rollup "^4.13.0" + rollup "^4.20.0" optionalDependencies: fsevents "~2.3.3" @@ -2614,13 +2632,13 @@ vue-router@^4.4.3: dependencies: "@vue/devtools-api" "^6.6.3" -vue-tsc@^2.0.29: - version "2.0.29" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.0.29.tgz#bf7e9605af9fadec7fd6037d242217f5c6ad2c3b" - integrity sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q== +vue-tsc@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.1.4.tgz#c9e8e4329c828f2f944068ba758d47abbdd47c23" + integrity sha512-XTzMXQcsixAvNbpou/9qngEsZawaiJRZH3Ja+lfgRfv2A1TJv9vnZ/Kyv7XxPqv/TaZVFSnjGpM87VbWIg6yQg== dependencies: - "@volar/typescript" "~2.4.0-alpha.18" - "@vue/language-core" "2.0.29" + "@volar/typescript" "~2.4.1" + "@vue/language-core" "2.1.4" semver "^7.5.4" vue@^3.4.38: From a94977696645eab161bd3c8445c2ea7213c99ef5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 2 Sep 2024 20:44:26 +0200 Subject: [PATCH 008/127] Feature: Add support for HERF 1 channel inverters --- lib/Hoymiles/src/Hoymiles.cpp | 3 ++ lib/Hoymiles/src/inverters/HERF_1CH.cpp | 55 +++++++++++++++++++++++++ lib/Hoymiles/src/inverters/HERF_1CH.h | 13 ++++++ lib/Hoymiles/src/inverters/README.md | 1 + 4 files changed, 72 insertions(+) create mode 100644 lib/Hoymiles/src/inverters/HERF_1CH.cpp create mode 100644 lib/Hoymiles/src/inverters/HERF_1CH.h diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index 1416a73a..0e60301e 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -4,6 +4,7 @@ */ #include "Hoymiles.h" #include "Utils.h" +#include "inverters/HERF_1CH.h" #include "inverters/HERF_2CH.h" #include "inverters/HERF_4CH.h" #include "inverters/HMS_1CH.h" @@ -173,6 +174,8 @@ std::shared_ptr HoymilesClass::addInverter(const char* name, c i = std::make_shared(_radioNrf.get(), serial); } else if (HM_1CH::isValidSerial(serial)) { i = std::make_shared(_radioNrf.get(), serial); + } else if (HERF_1CH::isValidSerial(serial)) { + i = std::make_shared(_radioNrf.get(), serial); } else if (HERF_2CH::isValidSerial(serial)) { i = std::make_shared(_radioNrf.get(), serial); } else if (HERF_4CH::isValidSerial(serial)) { diff --git a/lib/Hoymiles/src/inverters/HERF_1CH.cpp b/lib/Hoymiles/src/inverters/HERF_1CH.cpp new file mode 100644 index 00000000..49531d99 --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_1CH.cpp @@ -0,0 +1,55 @@ + +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2022-2024 Thomas Basler and others + */ +#include "HERF_1CH.h" + +static const byteAssign_t byteAssignment[] = { + { TYPE_DC, CH0, FLD_UDC, UNIT_V, 2, 2, 10, false, 1 }, + { TYPE_DC, CH0, FLD_IDC, UNIT_A, 6, 2, 100, false, 2 }, + { TYPE_DC, CH0, FLD_PDC, UNIT_W, 10, 2, 10, false, 1 }, + { TYPE_DC, CH0, FLD_YD, UNIT_WH, 22, 2, 1, false, 0 }, + { TYPE_DC, CH0, FLD_YT, UNIT_KWH, 14, 4, 1000, false, 3 }, + { TYPE_DC, CH0, FLD_IRR, UNIT_PCT, CALC_CH_IRR, CH0, CMD_CALC, false, 3 }, + + { TYPE_AC, CH0, FLD_UAC, UNIT_V, 26, 2, 10, false, 1 }, + { TYPE_AC, CH0, FLD_IAC, UNIT_A, 34, 2, 100, false, 2 }, + { TYPE_AC, CH0, FLD_PAC, UNIT_W, 30, 2, 10, false, 1 }, + { TYPE_AC, CH0, FLD_Q, UNIT_VAR, 40, 2, 10, false, 1 }, // to be verified + { TYPE_AC, CH0, FLD_F, UNIT_HZ, 28, 2, 100, false, 2 }, + { TYPE_AC, CH0, FLD_PF, UNIT_NONE, 36, 2, 1000, false, 3 }, + + { TYPE_INV, CH0, FLD_T, UNIT_C, 38, 2, 10, true, 1 }, // to be verified + { TYPE_INV, CH0, FLD_EVT_LOG, UNIT_NONE, 40, 2, 1, false, 0 }, // to be verified + + { TYPE_INV, CH0, FLD_YD, UNIT_WH, CALC_TOTAL_YD, 0, CMD_CALC, false, 0 }, + { TYPE_INV, CH0, FLD_YT, UNIT_KWH, CALC_TOTAL_YT, 0, CMD_CALC, false, 3 }, + { TYPE_INV, CH0, FLD_PDC, UNIT_W, CALC_TOTAL_PDC, 0, CMD_CALC, false, 1 }, + { TYPE_INV, CH0, FLD_EFF, UNIT_PCT, CALC_TOTAL_EFF, 0, CMD_CALC, false, 3 } +}; + +HERF_1CH::HERF_1CH(HoymilesRadio* radio, const uint64_t serial) + : HM_Abstract(radio, serial) {}; + +bool HERF_1CH::isValidSerial(const uint64_t serial) +{ + // serial >= 0x284100000000 && serial <= 0x2841ffffffff + uint16_t preSerial = (serial >> 32) & 0xffff; + return preSerial == 0x2841; +} + +String HERF_1CH::typeName() const +{ + return "HERF-300-1T"; +} + +const byteAssign_t* HERF_1CH::getByteAssignment() const +{ + return byteAssignment; +} + +uint8_t HERF_1CH::getByteAssignmentSize() const +{ + return sizeof(byteAssignment) / sizeof(byteAssignment[0]); +} diff --git a/lib/Hoymiles/src/inverters/HERF_1CH.h b/lib/Hoymiles/src/inverters/HERF_1CH.h new file mode 100644 index 00000000..8220272e --- /dev/null +++ b/lib/Hoymiles/src/inverters/HERF_1CH.h @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include "HM_Abstract.h" + +class HERF_1CH : public HM_Abstract { +public: + explicit HERF_1CH(HoymilesRadio* radio, const uint64_t serial); + static bool isValidSerial(const uint64_t serial); + String typeName() const; + const byteAssign_t* getByteAssignment() const; + uint8_t getByteAssignmentSize() const; +}; diff --git a/lib/Hoymiles/src/inverters/README.md b/lib/Hoymiles/src/inverters/README.md index 6372d9aa..b5544532 100644 --- a/lib/Hoymiles/src/inverters/README.md +++ b/lib/Hoymiles/src/inverters/README.md @@ -11,5 +11,6 @@ | HMS_4CH | HMS-1600/1800/2000-4T | 1164 | | HMT_4CH | HMT-1600/1800/2000-4T | 1361 | | HMT_6CH | HMT-1800/2250-6T | 1382 | +| HERF_1CH | HERF 300 | 2841 | | HERF_2CH | HERF 800 | 2821 | | HERF_4CH | HERF 1800 | 2801 | From 5a1d4946fb8ede1100bf4249281b79714f0a0eee Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Sep 2024 18:37:51 +0200 Subject: [PATCH 009/127] Upgrade ESPAsyncWebServer from 3.2.0 to 3.3.1 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index c8c8631f..7a8924f4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -39,7 +39,7 @@ build_unflags = -std=gnu++11 lib_deps = - mathieucarbou/ESPAsyncWebServer @ 3.2.0 + mathieucarbou/ESPAsyncWebServer @ 3.3.1 bblanchon/ArduinoJson @ 7.1.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 From c2e50a9594b657ddd721bab3bf908e7cf021e879 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Sep 2024 18:41:18 +0200 Subject: [PATCH 010/127] Upgrade olikraus/U8g2 from 2.35.21 to 2.35.27 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 7a8924f4..376a731e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -43,7 +43,7 @@ lib_deps = bblanchon/ArduinoJson @ 7.1.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 - olikraus/U8g2 @ 2.35.21 + olikraus/U8g2 @ 2.35.27 buelowp/sunset @ 1.1.7 arkhipenko/TaskScheduler @ 3.8.5 From 3e3cf3cd64652dcb79602ca01a92b17af096c784 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Sep 2024 19:04:26 +0200 Subject: [PATCH 011/127] webapp: Update dependencies --- webapp/package.json | 18 +-- webapp/tsconfig.json | 2 +- webapp/yarn.lock | 334 ++++++++++++++++++++++++------------------- 3 files changed, 193 insertions(+), 161 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 60375748..98263a43 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,32 +19,32 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", - "vue": "^3.4.38", + "vue": "^3.5.6", "vue-i18n": "9.13.1", - "vue-router": "^4.4.3" + "vue-router": "^4.4.5" }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node18": "^18.2.4", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.5.2", + "@types/node": "^22.5.5", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.1.3", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^9.9.1", - "eslint-plugin-vue": "^9.27.0", + "eslint": "^9.10.0", + "eslint-plugin-vue": "^9.28.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", "pulltorefreshjs": "^0.1.22", "sass": "^1.77.6", - "terser": "^5.31.6", - "typescript": "^5.5.4", - "vite": "^5.4.2", + "terser": "^5.32.0", + "typescript": "^5.6.2", + "vite": "^5.4.5", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", - "vue-tsc": "^2.1.4" + "vue-tsc": "^2.1.6" } } diff --git a/webapp/tsconfig.json b/webapp/tsconfig.json index 45b15b49..955add1d 100644 --- a/webapp/tsconfig.json +++ b/webapp/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@/*": ["./src/*"] }, - "lib": ["ES2021", "DOM"], + "lib": ["ES2022", "DOM"], "moduleResolution": "Node", /* Linting */ diff --git a/webapp/yarn.lock b/webapp/yarn.lock index c9c72276..44c74746 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -7,6 +7,16 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/parser@^7.16.4": version "7.18.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" @@ -17,10 +27,21 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== -"@babel/parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== +"@babel/parser@^7.25.3": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" + integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== + dependencies: + "@babel/types" "^7.25.6" + +"@babel/types@^7.25.6": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" + integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" "@esbuild/aix-ppc64@0.21.5": version "0.21.5" @@ -185,16 +206,23 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.9.1": - version "9.9.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06" - integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ== +"@eslint/js@9.10.0": + version "9.10.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.10.0.tgz#eaa3cb0baec497970bb29e43a153d0d5650143c6" + integrity sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g== "@eslint/object-schema@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== +"@eslint/plugin-kit@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz#809b95a0227ee79c3195adfb562eb94352e77974" + integrity sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ== + dependencies: + levn "^0.4.1" + "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" @@ -304,10 +332,10 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" @@ -464,10 +492,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^22.5.2": - version "22.5.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.2.tgz#e42344429702e69e28c839a7e16a8262a8086793" - integrity sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg== +"@types/node@^22.5.5": + version "22.5.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" + integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== dependencies: undici-types "~6.19.2" @@ -624,13 +652,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.38.tgz#326dfe3c92fa2b0f1dc9b39a948a231980253496" - integrity sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A== +"@vue/compiler-core@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.6.tgz#4a771c738fe745b61b963c41077af1405200db33" + integrity sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA== dependencies: - "@babel/parser" "^7.24.7" - "@vue/shared" "3.4.38" + "@babel/parser" "^7.25.3" + "@vue/shared" "3.5.6" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -643,13 +671,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz#90348fac1130e0bbd408b650635cb626b3b9df06" - integrity sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ== +"@vue/compiler-dom@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz#0942c290d3a52eb396243850ec73005f669c210d" + integrity sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw== dependencies: - "@vue/compiler-core" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/compiler-core" "3.5.6" + "@vue/shared" "3.5.6" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -659,19 +687,19 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz#954c3f6777bbbcca28771ba59b795f12f76ef188" - integrity sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ== +"@vue/compiler-sfc@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz#7f730002a18c7be7962741de6a40491eb59e4ad6" + integrity sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg== dependencies: - "@babel/parser" "^7.24.7" - "@vue/compiler-core" "3.4.38" - "@vue/compiler-dom" "3.4.38" - "@vue/compiler-ssr" "3.4.38" - "@vue/shared" "3.4.38" + "@babel/parser" "^7.25.3" + "@vue/compiler-core" "3.5.6" + "@vue/compiler-dom" "3.5.6" + "@vue/compiler-ssr" "3.5.6" + "@vue/shared" "3.5.6" estree-walker "^2.0.2" - magic-string "^0.30.10" - postcss "^8.4.40" + magic-string "^0.30.11" + postcss "^8.4.47" source-map-js "^1.2.0" "@vue/compiler-sfc@^3.2.47": @@ -698,13 +726,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz#9ded18f6d9c8b2440039a58492cfff36fa1a7774" - integrity sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw== +"@vue/compiler-ssr@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz#011eb621ec27c51fea50297d872b0282e6c49133" + integrity sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A== dependencies: - "@vue/compiler-dom" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/compiler-dom" "3.5.6" + "@vue/shared" "3.5.6" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -714,11 +742,16 @@ de-indent "^1.0.2" he "^1.2.0" -"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3": +"@vue/devtools-api@^6.5.0": version "6.6.3" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.3.tgz#b23a588154cba8986bba82b6e1d0248bde3fd1a0" integrity sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw== +"@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== + "@vue/eslint-config-typescript@^13.0.0": version "13.0.0" resolved "https://registry.yarnpkg.com/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz#f5f3d986ace34a10f403921d5044831b89a1b679" @@ -728,10 +761,10 @@ "@typescript-eslint/parser" "^7.1.1" vue-eslint-parser "^9.3.1" -"@vue/language-core@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.1.4.tgz#7be59322a87abbcd9aa23f45fbdfaa1f77bb6e22" - integrity sha512-i8pfAgNjTNjabBX1xRsuV6aRw2E8bdQXwd5H8m3cUkTVJju3QN5nfdoXET0uK+yXsuloNJPzo6PXFujRRPNmMA== +"@vue/language-core@2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.1.6.tgz#b48186bdb9b3ef2b83e1f76d5b1ac357b3a7ed94" + integrity sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg== dependencies: "@volar/language-core" "~2.4.1" "@vue/compiler-dom" "^3.4.0" @@ -753,38 +786,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.38.tgz#ec2d549f4b831cd03d0baabf7d77e840b8536000" - integrity sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw== +"@vue/reactivity@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.6.tgz#d26fea799db554e7c1c3469be3577e0b8fd6deb6" + integrity sha512-shZ+KtBoHna5GyUxWfoFVBCVd7k56m6lGhk5e+J9AKjheHF6yob5eukssHRI+rzvHBiU1sWs/1ZhNbLExc5oYQ== dependencies: - "@vue/shared" "3.4.38" + "@vue/shared" "3.5.6" -"@vue/runtime-core@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.38.tgz#bead9085e9a1c5a446e27d74ffb450f9261cf097" - integrity sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA== +"@vue/runtime-core@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.6.tgz#bbf8c722d5dbf55c77841d3d76ed630a4a5a573d" + integrity sha512-FpFULR6+c2lI+m1fIGONLDqPQO34jxV8g6A4wBOgne8eSRHP6PQL27+kWFIx5wNhhjkO7B4rgtsHAmWv7qKvbg== dependencies: - "@vue/reactivity" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/reactivity" "3.5.6" + "@vue/shared" "3.5.6" -"@vue/runtime-dom@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz#52678ba0b85f94400a0a9c8dd23ddef4dd65657d" - integrity sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA== +"@vue/runtime-dom@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.6.tgz#17c190bee838cd7b4f0531dafea1accb3ba6da14" + integrity sha512-SDPseWre45G38ENH2zXRAHL1dw/rr5qp91lS4lt/nHvMr0MhsbCbihGAWLXNB/6VfFOJe2O+RBRkXU+CJF7/sw== dependencies: - "@vue/reactivity" "3.4.38" - "@vue/runtime-core" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/reactivity" "3.5.6" + "@vue/runtime-core" "3.5.6" + "@vue/shared" "3.5.6" csstype "^3.1.3" -"@vue/server-renderer@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.38.tgz#457401ef2b0f969156702061e56915acecc9fe2c" - integrity sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA== +"@vue/server-renderer@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.6.tgz#f029aecb740c3ff6ad63dd10736875161d22dbb9" + integrity sha512-zivnxQnOnwEXVaT9CstJ64rZFXMS5ZkKxCjDQKiMSvUhXRzFLWZVbaBiNF4HGDqGNNsTgmjcCSmU6TB/0OOxLA== dependencies: - "@vue/compiler-ssr" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/compiler-ssr" "3.5.6" + "@vue/shared" "3.5.6" "@vue/shared@3.2.47": version "3.2.47" @@ -796,10 +829,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.4.38": - version "3.4.38" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.38.tgz#552a6770098bfd556fa3e2c686c9d3b4f4cd94c2" - integrity sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw== +"@vue/shared@3.5.6": + version "3.5.6" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.6.tgz#602b3c2dccfe612f9e2e52e861dd7db340961a4f" + integrity sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -1182,17 +1215,17 @@ escodegen@^2.1.0: optionalDependencies: source-map "~0.6.1" -eslint-plugin-vue@^9.27.0: - version "9.27.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz#c22dae704a03d9ecefa81364ff89f60ce0481f94" - integrity sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA== +eslint-plugin-vue@^9.28.0: + version "9.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.28.0.tgz#e4412f0c1024bafd15ffeaa6f76f4c99152e2765" + integrity sha512-ShrihdjIhOTxs+MfWun6oJWuk+g/LAhN+CiuOl/jjkG3l0F2AuK5NMTaWqyvBgkFtpYmyks6P4603mLmhNJW8g== dependencies: "@eslint-community/eslint-utils" "^4.4.0" globals "^13.24.0" natural-compare "^1.4.0" nth-check "^2.1.1" postcss-selector-parser "^6.0.15" - semver "^7.6.0" + semver "^7.6.3" vue-eslint-parser "^9.4.3" xml-name-validator "^4.0.0" @@ -1232,16 +1265,17 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.9.1: - version "9.9.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec" - integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg== +eslint@^9.10.0: + version "9.10.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.10.0.tgz#0bd74d7fe4db77565d0e7f57c7df6d2b04756806" + integrity sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.9.1" + "@eslint/js" "9.10.0" + "@eslint/plugin-kit" "^0.1.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" @@ -1264,7 +1298,6 @@ eslint@^9.9.1: is-glob "^4.0.0" is-path-inside "^3.0.3" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" @@ -1853,12 +1886,12 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.30.10: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== +magic-string@^0.30.11: + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.0" memorystream@^0.3.1: version "0.3.1" @@ -2082,10 +2115,10 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picocolors@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" - integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== +picocolors@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" + integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" @@ -2128,23 +2161,14 @@ postcss@^8.1.10: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.40: - version "8.4.40" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" - integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== +postcss@^8.4.43, postcss@^8.4.47: + version "8.4.47" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365" + integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ== dependencies: nanoid "^3.3.7" - picocolors "^1.0.1" - source-map-js "^1.2.0" - -postcss@^8.4.41: - version "8.4.41" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" - integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.1" - source-map-js "^1.2.0" + picocolors "^1.1.0" + source-map-js "^1.2.1" prelude-ls@^1.2.1: version "1.2.1" @@ -2284,12 +2308,10 @@ semver@^7.3.6: dependencies: lru-cache "^6.0.0" -semver@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^7.6.3: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== shebang-command@^1.2.0: version "1.2.0" @@ -2349,6 +2371,11 @@ source-map-js@^1.2.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== +source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -2461,10 +2488,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.31.6: - version "5.31.6" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" - integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== +terser@^5.32.0: + version "5.32.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.32.0.tgz#ee811c0d2d6b741c1cc34a2bc5bcbfc1b5b1f96c" + integrity sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2476,6 +2503,11 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -2500,10 +2532,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== +typescript@^5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" + integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== ufo@^1.1.2: version "1.1.2" @@ -2574,13 +2606,13 @@ vite-plugin-css-injected-by-js@^3.5.1: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== -vite@^5.4.2: - version "5.4.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.2.tgz#8acb6ec4bfab823cdfc1cb2d6c53ed311bc4e47e" - integrity sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA== +vite@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.5.tgz#e4ab27709de46ff29bd8db52b0c51606acba893b" + integrity sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA== dependencies: esbuild "^0.21.3" - postcss "^8.4.41" + postcss "^8.4.43" rollup "^4.20.0" optionalDependencies: fsevents "~2.3.3" @@ -2625,32 +2657,32 @@ vue-i18n@9.13.1: "@intlify/shared" "9.13.1" "@vue/devtools-api" "^6.5.0" -vue-router@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.3.tgz#58a39dc804632bfb6d26f052aa8f6718bd130299" - integrity sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A== +vue-router@^4.4.5: + version "4.4.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.4.5.tgz#bdf535e4cf32414ebdea6b4b403593efdb541388" + integrity sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q== dependencies: - "@vue/devtools-api" "^6.6.3" + "@vue/devtools-api" "^6.6.4" -vue-tsc@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.1.4.tgz#c9e8e4329c828f2f944068ba758d47abbdd47c23" - integrity sha512-XTzMXQcsixAvNbpou/9qngEsZawaiJRZH3Ja+lfgRfv2A1TJv9vnZ/Kyv7XxPqv/TaZVFSnjGpM87VbWIg6yQg== +vue-tsc@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/vue-tsc/-/vue-tsc-2.1.6.tgz#d93fdc617da6546674301a746fd7089ea6d4543d" + integrity sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q== dependencies: "@volar/typescript" "~2.4.1" - "@vue/language-core" "2.1.4" + "@vue/language-core" "2.1.6" semver "^7.5.4" -vue@^3.4.38: - version "3.4.38" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.38.tgz#0ccbb64ed03ef3c4ab73e540793290b18e7c4236" - integrity sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw== +vue@^3.5.6: + version "3.5.6" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.6.tgz#025b1d411627883577457797eff93e85e61ef9c1" + integrity sha512-zv+20E2VIYbcJOzJPUWp03NOGFhMmpCKOfSxVTmCYyYFFko48H9tmuQFzYj7tu4qX1AeXlp9DmhIP89/sSxxhw== dependencies: - "@vue/compiler-dom" "3.4.38" - "@vue/compiler-sfc" "3.4.38" - "@vue/runtime-dom" "3.4.38" - "@vue/server-renderer" "3.4.38" - "@vue/shared" "3.4.38" + "@vue/compiler-dom" "3.5.6" + "@vue/compiler-sfc" "3.5.6" + "@vue/runtime-dom" "3.5.6" + "@vue/server-renderer" "3.5.6" + "@vue/shared" "3.5.6" webpack-sources@^3.2.3: version "3.2.3" From d3d92e90e00c02c29430f8094f0f02deb44aab17 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Sep 2024 19:13:17 +0200 Subject: [PATCH 012/127] webapp: Upgrade tsconfig node18 to node22 --- webapp/package.json | 2 +- webapp/tsconfig.config.json | 4 ++-- webapp/tsconfig.json | 2 +- webapp/yarn.lock | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 98263a43..1a6a7483 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@intlify/unplugin-vue-i18n": "^4.0.0", - "@tsconfig/node18": "^18.2.4", + "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", "@types/node": "^22.5.5", "@types/pulltorefreshjs": "^0.1.7", diff --git a/webapp/tsconfig.config.json b/webapp/tsconfig.config.json index 53248ff7..8c793f5a 100644 --- a/webapp/tsconfig.config.json +++ b/webapp/tsconfig.config.json @@ -1,6 +1,6 @@ { "extends": [ - "@tsconfig/node18/tsconfig.json", + "@tsconfig/node22/tsconfig.json", "@vue/tsconfig/tsconfig.json" ], "include": [ @@ -15,4 +15,4 @@ "node" ] } -} \ No newline at end of file +} diff --git a/webapp/tsconfig.json b/webapp/tsconfig.json index 955add1d..88810494 100644 --- a/webapp/tsconfig.json +++ b/webapp/tsconfig.json @@ -6,7 +6,7 @@ "paths": { "@/*": ["./src/*"] }, - "lib": ["ES2022", "DOM"], + "lib": ["ES2023", "DOM"], "moduleResolution": "Node", /* Linting */ diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 44c74746..c62ba5e5 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -465,10 +465,10 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b" integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA== -"@tsconfig/node18@^18.2.4": - version "18.2.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node18/-/node18-18.2.4.tgz#094efbdd70f697d37c09f34067bf41bc4a828ae3" - integrity sha512-5xxU8vVs9/FNcvm3gE07fPbn9tl6tqGGWA9tSlwsUEkBxtRnTsNmwrV8gasZ9F/EobaSv9+nu8AxUKccw77JpQ== +"@tsconfig/node22@^22.0.0": + version "22.0.0" + resolved "https://registry.yarnpkg.com/@tsconfig/node22/-/node22-22.0.0.tgz#0bdaf702f2b7594383d24d7b2b8d557dcfdca1ed" + integrity sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg== "@types/bootstrap@^5.2.10": version "5.2.10" From e8b1e7a71c0343758bef996eb695ad313fa6b081 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 16 Sep 2024 19:30:45 +0200 Subject: [PATCH 013/127] webapp: Parse version string event if update search is not allowed --- webapp/src/views/SystemInfoView.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/webapp/src/views/SystemInfoView.vue b/webapp/src/views/SystemInfoView.vue index adb78929..0c3f01a1 100644 --- a/webapp/src/views/SystemInfoView.vue +++ b/webapp/src/views/SystemInfoView.vue @@ -52,9 +52,7 @@ export default defineComponent({ .then((data) => { this.systemDataList = data; this.dataLoading = false; - if (this.allowVersionInfo) { - this.getUpdateInfo(); - } + this.getUpdateInfo(); }); }, getUpdateInfo() { @@ -76,6 +74,10 @@ export default defineComponent({ this.systemDataList.git_is_hash = true; } + if (!this.allowVersionInfo) { + return; + } + const fetchUrl = 'https://api.github.com/repos/tbnobody/OpenDTU/compare/' + this.systemDataList.git_hash + '...HEAD'; From 00626b63f776cedcb43361071a59a0a432427792 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Mon, 16 Sep 2024 15:49:47 +0200 Subject: [PATCH 014/127] issue template: asks for firmware variant --- .github/ISSUE_TEMPLATE/bug_report.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 5e73566e..b3eb471c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -59,6 +59,14 @@ body: placeholder: "e.g. 359d513" validations: required: true + - type: input + id: environment + attributes: + label: What firmware variant (PIO Environment) are you using? + description: You can find this in by going to Info -> System + placeholder: "generic_esp32s3_usb" + validations: + required: true - type: textarea id: logs attributes: From ee3b62d671fa59e1996cf4c7eed69c49ff7818af Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 16:17:23 +0200 Subject: [PATCH 015/127] actions: use setup-node@v4 as v3 causes warning the "Yarn Linting" action causes a warning to appear about a deprecated Node version. switch to actions/setup-node@v4, which is already in use by the action building the web app for the firmware, to avoid this warning. --- .github/workflows/yarnlint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/yarnlint.yml b/.github/workflows/yarnlint.yml index f1c912c9..23ed9c7a 100644 --- a/.github/workflows/yarnlint.yml +++ b/.github/workflows/yarnlint.yml @@ -9,7 +9,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Setup Node.js and yarn - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: "18" cache: "yarn" From 2f77b9e5008cf0d18ddb95b51dc62a27cbc74a9d Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 16:34:37 +0200 Subject: [PATCH 016/127] actions: switch to node version 20 for linting use version consistent with the version used when building the web application. --- .github/workflows/yarnlint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/yarnlint.yml b/.github/workflows/yarnlint.yml index 23ed9c7a..10d7c121 100644 --- a/.github/workflows/yarnlint.yml +++ b/.github/workflows/yarnlint.yml @@ -11,7 +11,7 @@ jobs: - name: Setup Node.js and yarn uses: actions/setup-node@v4 with: - node-version: "18" + node-version: "20" cache: "yarn" cache-dependency-path: "webapp/yarn.lock" From bd22f005393c311cdde10c7a6703a0ad8c68103f Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 16:48:04 +0200 Subject: [PATCH 017/127] actions: run yarn prettier to check web app formatting --- .github/workflows/yarnprettier.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/yarnprettier.yml diff --git a/.github/workflows/yarnprettier.yml b/.github/workflows/yarnprettier.yml new file mode 100644 index 00000000..1727eea3 --- /dev/null +++ b/.github/workflows/yarnprettier.yml @@ -0,0 +1,22 @@ +name: Yarn Prettier + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup Node.js and yarn + uses: actions/setup-node@v4 + with: + node-version: "20" + cache: "yarn" + cache-dependency-path: "webapp/yarn.lock" + + - name: Install WebApp dependencies + run: yarn --cwd webapp install --frozen-lockfile + + - name: Check Formatting + run: yarn --cwd webapp prettier --check src/ From 1fd09d527a5e56ab169344132c5189534408bb6f Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 16:20:40 +0200 Subject: [PATCH 018/127] actions: fix a typo --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 32bbad64..7e8558ac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: environments: ${{ steps.envs.outputs.environments }} build: - name: Build Enviornments + name: Build Environments runs-on: ubuntu-latest needs: get_default_envs strategy: From 304b898ddcd30ef679b1e588774aace7bfba6a2a Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 16:32:35 +0200 Subject: [PATCH 019/127] changelogs: group webapp-related changes --- .github/workflows/config/release-notes-config.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/config/release-notes-config.json b/.github/workflows/config/release-notes-config.json index 3fa9e3bd..8699820e 100644 --- a/.github/workflows/config/release-notes-config.json +++ b/.github/workflows/config/release-notes-config.json @@ -18,6 +18,12 @@ "fix" ] }, + { + "title": "## 🌎 Web Application", + "labels": [ + "webapp" + ] + }, { "title": "## 📚 Documentation", "labels": [ From 0b59a662df3a193e99f50f2f2cff003001103bd6 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 20 Sep 2024 21:36:18 +0200 Subject: [PATCH 020/127] Doc: Remove inverter list and add a link to the documentation This reduces redundant effort when a inverter is added. --- README.md | 39 +-------------------------------------- 1 file changed, 1 insertion(+), 38 deletions(-) diff --git a/README.md b/README.md index cb9f4ef4..c61c8e60 100644 --- a/README.md +++ b/README.md @@ -40,41 +40,4 @@ Generated using: `git log --date=short --pretty=format:"* %h%x09%ad%x09%s" | gre ## Currently supported Inverters -| Model | Required RF Module | DC Inputs | MPP-Tracker | AC Phases | -| ---------------------| ------------------ | --------- | ----------- | --------- | -| Hoymiles HM-300-1T | NRF24L01+ | 1 | 1 | 1 | -| Hoymiles HM-350-1T | NRF24L01+ | 1 | 1 | 1 | -| Hoymiles HM-400-1T | NRF24L01+ | 1 | 1 | 1 | -| Hoymiles HM-600-2T | NRF24L01+ | 2 | 2 | 1 | -| Hoymiles HM-700-2T | NRF24L01+ | 2 | 2 | 1 | -| Hoymiles HM-800-2T | NRF24L01+ | 2 | 2 | 1 | -| Hoymiles HM-1000-4T | NRF24L01+ | 4 | 2 | 1 | -| Hoymiles HM-1200-4T | NRF24L01+ | 4 | 2 | 1 | -| Hoymiles HM-1500-4T | NRF24L01+ | 4 | 2 | 1 | -| Hoymiles HMS-300-1T | CMT2300A | 1 | 1 | 1 | -| Hoymiles HMS-350-1T | CMT2300A | 1 | 1 | 1 | -| Hoymiles HMS-400-1T | CMT2300A | 1 | 1 | 1 | -| Hoymiles HMS-450-1T | CMT2300A | 1 | 1 | 1 | -| Hoymiles HMS-500-1T | CMT2300A | 1 | 1 | 1 | -| Hoymiles HMS-600-2T | CMT2300A | 2 | 2 | 1 | -| Hoymiles HMS-700-2T | CMT2300A | 2 | 2 | 1 | -| Hoymiles HMS-800-2T | CMT2300A | 2 | 2 | 1 | -| Hoymiles HMS-900-2T | CMT2300A | 2 | 2 | 1 | -| Hoymiles HMS-1000-2T | CMT2300A | 2 | 2 | 1 | -| Hoymiles HMS-1600-4T | CMT2300A | 4 | 4 | 1 | -| Hoymiles HMS-1800-4T | CMT2300A | 4 | 4 | 1 | -| Hoymiles HMS-2000-4T | CMT2300A | 4 | 4 | 1 | -| Hoymiles HMT-1600-4T | CMT2300A | 4 | 2 | 3 | -| Hoymiles HMT-1800-4T | CMT2300A | 4 | 2 | 3 | -| Hoymiles HMT-2000-4T | CMT2300A | 4 | 2 | 3 | -| Hoymiles HMT-1800-6T | CMT2300A | 6 | 3 | 3 | -| Hoymiles HMT-2250-6T | CMT2300A | 6 | 3 | 3 | -| Solenso SOL-H350 | NRF24L01+ | 1 | 1 | 1 | -| Solenso SOL-H400 | NRF24L01+ | 1 | 1 | 1 | -| Solenso SOL-H800 | NRF24L01+ | 2 | 2 | 1 | -| TSUN TSOL-M350 | NRF24L01+ | 1 | 1 | 1 | -| TSUN TSOL-M800 | NRF24L01+ | 2 | 2 | 1 | -| TSUN TSOL-M1600 | NRF24L01+ | 4 | 2 | 1 | -| E-Star HERF-800 | NRF24L01+ | 2 | 2 | 1 | -| E-Star HERF-1600 | NRF24L01+ | 4 | 2 | 1 | -| E-Star HERF-1800 | NRF24L01+ | 4 | 2 | 1 | +A list of all currently supported inverters can be found [here](https://www.opendtu.solar/hardware/inverter_overview/) From e9b5f3eac713114d8eee3fb0a2978e144671ef31 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 20 Sep 2024 22:09:23 +0200 Subject: [PATCH 021/127] Upgrade olikraus/U8g2 from 2.35.27 to 2.35.30 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 376a731e..93fbfed7 100644 --- a/platformio.ini +++ b/platformio.ini @@ -43,7 +43,7 @@ lib_deps = bblanchon/ArduinoJson @ 7.1.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 - olikraus/U8g2 @ 2.35.27 + olikraus/U8g2 @ 2.35.30 buelowp/sunset @ 1.1.7 arkhipenko/TaskScheduler @ 3.8.5 From 0fec55a659c2deb50158709251fa1b6c180b38c7 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 20 Sep 2024 22:13:46 +0200 Subject: [PATCH 022/127] webapp: Update dependencies --- webapp/package.json | 10 +-- webapp/yarn.lock | 176 ++++++++++++++++++++++---------------------- 2 files changed, 93 insertions(+), 93 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 1a6a7483..e3c9b4a0 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,7 +19,7 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", - "vue": "^3.5.6", + "vue": "^3.5.7", "vue-i18n": "9.13.1", "vue-router": "^4.4.5" }, @@ -31,18 +31,18 @@ "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", - "@vitejs/plugin-vue": "^5.1.3", + "@vitejs/plugin-vue": "^5.1.4", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^9.10.0", + "eslint": "^9.11.0", "eslint-plugin-vue": "^9.28.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", "pulltorefreshjs": "^0.1.22", "sass": "^1.77.6", - "terser": "^5.32.0", + "terser": "^5.33.0", "typescript": "^5.6.2", - "vite": "^5.4.5", + "vite": "^5.4.7", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", "vue-tsc": "^2.1.6" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index c62ba5e5..67e2ce98 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -206,20 +206,20 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.10.0": - version "9.10.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.10.0.tgz#eaa3cb0baec497970bb29e43a153d0d5650143c6" - integrity sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g== +"@eslint/js@9.11.0": + version "9.11.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.0.tgz#fca7533ef33aa608770734786e02f1041847f9bb" + integrity sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ== "@eslint/object-schema@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== -"@eslint/plugin-kit@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz#809b95a0227ee79c3195adfb562eb94352e77974" - integrity sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ== +"@eslint/plugin-kit@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" + integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== dependencies: levn "^0.4.1" @@ -605,10 +605,10 @@ "@typescript-eslint/types" "7.2.0" eslint-visitor-keys "^3.4.1" -"@vitejs/plugin-vue@^5.1.3": - version "5.1.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz#42b55c1a4d6f329aea25c5a24db51a31db31c693" - integrity sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw== +"@vitejs/plugin-vue@^5.1.4": + version "5.1.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz#72b8b705cfce36b00b59af196195146e356500c4" + integrity sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A== "@volar/language-core@2.4.1", "@volar/language-core@~2.4.1": version "2.4.1" @@ -652,13 +652,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.6.tgz#4a771c738fe745b61b963c41077af1405200db33" - integrity sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA== +"@vue/compiler-core@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.7.tgz#04300bdc9fb52f89e6f250bbac16e03f0e0ed914" + integrity sha512-A0gay3lK71MddsSnGlBxRPOugIVdACze9L/rCo5X5srCyjQfZOfYtSFMJc3aOZCM+xN55EQpb4R97rYn/iEbSw== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.6" + "@vue/shared" "3.5.7" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -671,13 +671,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz#0942c290d3a52eb396243850ec73005f669c210d" - integrity sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw== +"@vue/compiler-dom@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.7.tgz#604ced082189b66cb811068332a45dcc11ae0af3" + integrity sha512-GYWl3+gO8/g0ZdYaJ18fYHdI/WVic2VuuUd1NsPp60DWXKy+XjdhFsDW7FbUto8siYYZcosBGn9yVBkjhq1M8Q== dependencies: - "@vue/compiler-core" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/compiler-core" "3.5.7" + "@vue/shared" "3.5.7" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -687,16 +687,16 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz#7f730002a18c7be7962741de6a40491eb59e4ad6" - integrity sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg== +"@vue/compiler-sfc@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.7.tgz#1150c49c0e3b39d40b2cf0f7de9edfcba98fa3e9" + integrity sha512-EjOJtCWJrC7HqoCEzOwpIYHm+JH7YmkxC1hG6VkqIukYRqj8KFUlTLK6hcT4nGgtVov2+ZfrdrRlcaqS78HnBA== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.6" - "@vue/compiler-dom" "3.5.6" - "@vue/compiler-ssr" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/compiler-core" "3.5.7" + "@vue/compiler-dom" "3.5.7" + "@vue/compiler-ssr" "3.5.7" + "@vue/shared" "3.5.7" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.47" @@ -726,13 +726,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz#011eb621ec27c51fea50297d872b0282e6c49133" - integrity sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A== +"@vue/compiler-ssr@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.7.tgz#042144dfd574a1f64b685e87730b0196dc1846d2" + integrity sha512-oZx+jXP2k5arV/8Ly3TpQbfFyimMw2ANrRqvHJoKjPqtEzazxQGZjCLOfq8TnZ3wy2TOXdqfmVp4q7FyYeHV4g== dependencies: - "@vue/compiler-dom" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/compiler-dom" "3.5.7" + "@vue/shared" "3.5.7" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -786,38 +786,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.6.tgz#d26fea799db554e7c1c3469be3577e0b8fd6deb6" - integrity sha512-shZ+KtBoHna5GyUxWfoFVBCVd7k56m6lGhk5e+J9AKjheHF6yob5eukssHRI+rzvHBiU1sWs/1ZhNbLExc5oYQ== +"@vue/reactivity@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.7.tgz#a52237fce841d92fc861220a8f26b51f5c3245e2" + integrity sha512-yF0EpokpOHRNXyn/h6abXc9JFIzfdAf0MJHIi92xxCWS0mqrXH6+2aZ+A6EbSrspGzX5MHTd5N8iBA28HnXu9g== dependencies: - "@vue/shared" "3.5.6" + "@vue/shared" "3.5.7" -"@vue/runtime-core@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.6.tgz#bbf8c722d5dbf55c77841d3d76ed630a4a5a573d" - integrity sha512-FpFULR6+c2lI+m1fIGONLDqPQO34jxV8g6A4wBOgne8eSRHP6PQL27+kWFIx5wNhhjkO7B4rgtsHAmWv7qKvbg== +"@vue/runtime-core@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.7.tgz#4181b0a921d331f2efd5eda9aa35549ac97e6530" + integrity sha512-OzLpBpKbZEaZVSNfd+hQbfBrDKux+b7Yl5hYhhWWWhHD7fEpF+CdI3Brm5k5GsufHEfvMcjruPxwQZuBN6nFYQ== dependencies: - "@vue/reactivity" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/reactivity" "3.5.7" + "@vue/shared" "3.5.7" -"@vue/runtime-dom@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.6.tgz#17c190bee838cd7b4f0531dafea1accb3ba6da14" - integrity sha512-SDPseWre45G38ENH2zXRAHL1dw/rr5qp91lS4lt/nHvMr0MhsbCbihGAWLXNB/6VfFOJe2O+RBRkXU+CJF7/sw== +"@vue/runtime-dom@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.7.tgz#646e006d403f2e6337f566fdf461fbe400e8487d" + integrity sha512-fL7cETfE27U2jyTgqzE382IGFY6a6uyznErn27KbbEzNctzxxUWYDbaN3B55l9nXh0xW2LRWPuWKOvjtO2UewQ== dependencies: - "@vue/reactivity" "3.5.6" - "@vue/runtime-core" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/reactivity" "3.5.7" + "@vue/runtime-core" "3.5.7" + "@vue/shared" "3.5.7" csstype "^3.1.3" -"@vue/server-renderer@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.6.tgz#f029aecb740c3ff6ad63dd10736875161d22dbb9" - integrity sha512-zivnxQnOnwEXVaT9CstJ64rZFXMS5ZkKxCjDQKiMSvUhXRzFLWZVbaBiNF4HGDqGNNsTgmjcCSmU6TB/0OOxLA== +"@vue/server-renderer@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.7.tgz#65ba8b60c0ee9e791619c0f8b2b6209a258484e5" + integrity sha512-peRypij815eIDjpPpPXvYQGYqPH6QXwLJGWraJYPPn8JqWGl29A8QXnS7/Mh3TkMiOcdsJNhbFCoW2Agc2NgAQ== dependencies: - "@vue/compiler-ssr" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/compiler-ssr" "3.5.7" + "@vue/shared" "3.5.7" "@vue/shared@3.2.47": version "3.2.47" @@ -829,10 +829,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.5.6": - version "3.5.6" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.6.tgz#602b3c2dccfe612f9e2e52e861dd7db340961a4f" - integrity sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA== +"@vue/shared@3.5.7": + version "3.5.7" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.7.tgz#1eedd1ffbf804c488fe806a17ff26c22e0ddb72f" + integrity sha512-NBE1PBIvzIedxIc2RZiKXvGbJkrZ2/hLf3h8GlS4/sP9xcXEZMFWOazFkNd6aGeUCMaproe5MHVYB3/4AW9q9g== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -1265,17 +1265,17 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.10.0: - version "9.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.10.0.tgz#0bd74d7fe4db77565d0e7f57c7df6d2b04756806" - integrity sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw== +eslint@^9.11.0: + version "9.11.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.0.tgz#f7a7bf305a4d77f23be0c1e4537b9aa1617219be" + integrity sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.10.0" - "@eslint/plugin-kit" "^0.1.0" + "@eslint/js" "9.11.0" + "@eslint/plugin-kit" "^0.2.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" @@ -2488,10 +2488,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.32.0: - version "5.32.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.32.0.tgz#ee811c0d2d6b741c1cc34a2bc5bcbfc1b5b1f96c" - integrity sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ== +terser@^5.33.0: + version "5.33.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.33.0.tgz#8f9149538c7468ffcb1246cfec603c16720d2db1" + integrity sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2606,10 +2606,10 @@ vite-plugin-css-injected-by-js@^3.5.1: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== -vite@^5.4.5: - version "5.4.5" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.5.tgz#e4ab27709de46ff29bd8db52b0c51606acba893b" - integrity sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA== +vite@^5.4.7: + version "5.4.7" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00" + integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ== dependencies: esbuild "^0.21.3" postcss "^8.4.43" @@ -2673,16 +2673,16 @@ vue-tsc@^2.1.6: "@vue/language-core" "2.1.6" semver "^7.5.4" -vue@^3.5.6: - version "3.5.6" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.6.tgz#025b1d411627883577457797eff93e85e61ef9c1" - integrity sha512-zv+20E2VIYbcJOzJPUWp03NOGFhMmpCKOfSxVTmCYyYFFko48H9tmuQFzYj7tu4qX1AeXlp9DmhIP89/sSxxhw== +vue@^3.5.7: + version "3.5.7" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.7.tgz#511df1fab33a4c20cfe6b59659d6f601f0c26625" + integrity sha512-JcFm0f5j8DQO9E07pZRxqZ/ZsNopMVzHYXpKvnfqXFcA4JTi+4YcrikRn9wkzWsdj0YsLzlLIsR0zzGxA2P6Wg== dependencies: - "@vue/compiler-dom" "3.5.6" - "@vue/compiler-sfc" "3.5.6" - "@vue/runtime-dom" "3.5.6" - "@vue/server-renderer" "3.5.6" - "@vue/shared" "3.5.6" + "@vue/compiler-dom" "3.5.7" + "@vue/compiler-sfc" "3.5.7" + "@vue/runtime-dom" "3.5.7" + "@vue/server-renderer" "3.5.7" + "@vue/shared" "3.5.7" webpack-sources@^3.2.3: version "3.2.3" From a204263fb2f50bd278589962999ffb4b9c4bee0d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 20 Sep 2024 22:14:41 +0200 Subject: [PATCH 023/127] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 183817 -> 185590 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index a8d427d0d072659bacd0b3c019369e6af7f4192c..b6b7110bba62b9b644ac092c784f22011467ffee 100644 GIT binary patch delta 132969 zcmV($K;yrOoD24;3$WhMf3Lf3W7!vc-=Biy@xVabrX?pkI~xqlktI2HV%dsiJ3CQy zv>~8LA_f~wqaj%)xz;?->wJN;?#qnt(>$EF`!-thy=GNaccVd34k%~eJ8RZF*diL; zjs9C*UG=M~>|OQ%zI$KuHuuq|#X8q+Typez1I){)0w-3|J%#(^f3&7VGa5S8$)x5p zuEh{q-Z8b&3#q+3$9*YL;fDIn1l7Qr+^ot*QtK(q{nCq;Hg_+I>Kt!x#@krUk#xG9 z1F$aF0vU2~g0cfGUDcmz$v^uN?!vwsD5#Ny&`{KOavH$F4XP<8KcK@%ms-pa3!z)ldwLn4v3-PedOY9$*3Dkb1U-7ssL_2-ht2is|W^*kMh}iBPzUgeO z*1Y{^)x7PHe+V$H+XaJ+wuB0_h3Q>uIi(lYO;qE}taad(y-K1=z8+{%2Q{F2&>_Gk z`VKbBD+t|IINvJ#V+wVO+fS>apmwx(XB5cv#&_EJNhQeh31%#>Q>xpmFf3#c3w%#iBa^juj|Nh^M9r^C8 zdSc9%T6!6|`iR*P6SR9sCgBH@5ADX|=?C-K*L;dW4BCnTVJ|slh+^h(IXQydt*i#( zOhX{^xHG-_I4uAfGlDvZTbc4{AunkK9pLZJUqAJiZW#^oO>5EB8x5kb&lBD<26JYN zN#B%hf1SwVx2%R`vne2+jmNW=Xoi?#ksOw<;&uk`hexk=4z&IR+;%-_=?zC`raryn zDw(vqGhtS(O6Tz`g)qQ*8P1{Ud-|bmS39}@EfH#*1FdIve?rGny*!Ea?d zSMk|+tWSBBjVsU|L4}<&sDbu+{J#B~JOG&ye}whHz}#g9bOY4}dWFX0&HRo(hbt)< zMULE}H1y~-ly)!rB>gisFV^{oQE^-A|H-8(9cHAzw1oUmuV3qrt{)jU)1X^@2aT~B z2b>9i*lN_Z4_HG=UKDDx@}R<7sbklAl5N`p%-(FmCN=0bG-|np3Q21n1bOVxng@FL ze=`^vS$p?bvK1*(IR7adWk;0oSrU<-vL{)`*EI#V3Mj4qSQNKXOkWUse=J^GDd^lT zsHtU3hf7CCTDkPNY+K~9E%Rd)gG=>Rr6{j%-m9|A+VPA>N6+esj%W28@67&$={;;< z!T)%cHx_E@5F#s(nE%fRXK!9+n~zkPe_gAcUbowE|JE_tjW0LtZ+1Ny(l0*)vuNwE zMjghNUk0h<#;=7~?+-`H6+ZS&T`NQNY_^l8t;4YFSVIisT4@@W?^-fKE2b>2TjTFy z#V=Yq^*yZ3S3qwH(4JUR%sufr4i~|mq!Bupn7w4P0n#IMu(P|eoD2pJux-xTpH!~YKxebUf4fjLE~bQU$>RA5fHy2!M+_Y z1fKg_ax`@y1Baj8pghQAuh;P$e>_!f*l)*I;!!2QK&$l?4<+^B@J+kTJE}z6poqIg zMXH5H1uqJf2D(ci6&fek_m1a4Bx+ni_K1a&J%zLIv+OOqE-Aa=vdWB zuxgFhD$75MWiplw;Cr+}(5?+ei8qHzyX%3#dQ;wk5G{yWCt=BZFg0tZFNUo3UU(+b z>^w`WI6sU9&)Xv2h2Z33i%N4Xuzp1`i*7e2RY&pZth_-hS$kℜh<_M%!`edP^y# z4e+&5@l-pMH8o&BdUSp}zpWSCx0zH`obU0oYJ7`25J-IW@vInYw6i`X!Qq_$m1Cn$ftS{+@or4wz; z+w8mo-4S&i)kr^QJWuggO9Ky)($r%`wekwmD z{)9zxTl4{~j14gakRLIY20(xVNnz$&N2J$?%~@j!yyD3F^V=*_0GZoh8f+i1aarpT z!R&EjH3ZKjs4O>-4AuGdebV?|O}Het_wzs73H~7kJ=>td{n3bn6a|d;I?}0K5B}yY zkmj=eN52$h_FX9StM5<;c&nDkJZTphu0O) zZIow-1&!10@)MeVRH|9j{Y=xKNSmet_;Gpz7BuL0f1V>8v9{wxcez&|$FbpP(qe{w zb4%bP+)wvwGh2SnKQzXf!%c@Eg1_E{7H~v-v(CA(ngWYiz(z>Tq*^PgtN-ZazgpK% zWrYCGTiQS+d0duJ59(F-VNKsEM6j;TT2C!mswxxnQdPG%nXNiDw1}!2lA>F9mUe2} zz`E<2e;W#?g4VF$=d}?YS-8O(E@-*J>ZsnM6PVRc!QxxvbDcVZklXRqM{)I0(!FsS zYjACxgLM*u*mCeP2tK+bpCY?kZw$wgr>J+S<9^OKIo83si#-1fNsIRBe#;1YCbW+n z9ma_CX*YMTo;>`j^J0y!_w?@7$7xmvX5O8ue@!ahJ$U`_%dM@QR(02nZoOUrZHMM6 zPY>=JJKeGmH~UH&@(ovif{?og-?%EuYBb8qc#88`D!9EtNOaPQRfvwFJJi}n_g6;b zHmyE-@buvI|G=j2l5_jbCi4{^XN7oR%C6MadKmU01gP<@58ybndTu`#E^}A!vN~bG!|`D5RQncBWirNqo!i ze~!z&$1?tq)cUv{dpju?@d7~U~%lDxR! zsR>3ZF?K9^647JV?d<3P;q?L|dlL)`f4*v`|JP|IIv|eAJF!8?!TtlsW4PtAa>CR8 zwZ8onOVQTJ!fT9EtOGXJt;)(yQK=IAKtfkc&m@M=&IE-Mx8)>lNZreR#~CwpcX!*t(+{5ubew!38NWfUr;n$fS!H@Qr7F|Me-x7M z;3m0ut4(o`2}IbMU6G#I+O-Rro9u|%?YX$Tx$39cc=8!_KaDGObL9u|`_CB`4LrW7 z`XwuM2tCcg-YTNrieIC$8DMV*YBs^OkqpHwil%eH&pN&vN#HJ4cQ;@VP^Rp} z;53k`DY>DD`leOihq=Jm+MS)le&^XWzj`V7H@y0f&evbLe)RfAtf3i{vUPARsSP$t zBSlJIiu`hu;&huQpSl>mXVIjZOyI*6)hf3LG{upGo4hH^zsIYyrWX4i-@74Z`WUW>+_#z3;9*7I+N1CP?5PAX8OK;Ec_!%~#Y0MRjI_7CPdp zwW$?>i#p0!T-C)}uaF%Se^iy^H6gxyAOOhIN#Z=w3`xK9>>7twphODXq-iz{N(+90 zE$NuJ!SQUCXNFIE`Q*v7-Df+`+v3MW8q2hk#uuXF|9z|f&Hwd((%JfA=gsS9yDjT^ z5mzb${)+0^-g;=N*?so*S-U!Rv-8YU@b|Ax`JJQJFJHVoXx);Xe^SXp6w^j)Y^M%l zQ4vV($l%vLv|qorjJDk+S){fXyo+v-U8N1~byeLG3P_c@QeNZk^wv1L6_}wN0p7Z{ zdIa!Hsk^*V*{x6ew;&am0l49VKGx}yU#<+jaawMt0MBgg#Lza)8B8;hoigjh;D4*( zHlBRbyC&!d$PS=)f4Hm=49?9YF0H|Q3GGy*sAKkXDA49It$4rlqEP&UD;_pR@?Z&H z+v@6)=rC~v?8ntd&VX^~7+;DjQ57X`KrhkdUzMY{4?m+FXJv^jtet-)JNrk6Up_=J zA9S+h+OQr3&XYps#h7bk1z0EL{f3#5IrVQ5PTM{CT~s@mf0_IV$G?GkgUN}lcXIv!JNfreAw*+Pw6HpOk$oQ>Ez76CK zwfqV6-uTk0E7qg+yHcAHoRum7r@2`bw*_KCV;{@n9hW#%yshiidSKxLR72g1|E?#H zTS2F&I&qUw{`Z2Phkq9S+*Gk)|D9@#Zz9<_2bngqqrhAxH4<4A;&RGAPe>QuPN?Qq zVOsj3e^pCA7nyI%w{B~r4%Yd-%7|Nue=8~gigSTHbUZ!N;wx001NVZ_+Dd}*0}i7J z@-Udb2SNXTgw4RJ4c2EF1Q5yUH0%OK#x8(fZeSgN6wT6DM0aJ}b#~d-V8EfS4cmdZ zb%=Wnq2JxP4+UukjWq2!S0xvTyqu}vnpprfe{@p-{6g6iWAn54`A@G+Et_uW)uJ2j<>x=WX3afJo}0^S)Z+PtdMWZuY~+Z$ z4(FM2x2aT9dm5>0vjj)e5$ng(hA;&v&F|ISET??t^Y*)=(Z*eHVt}r6f-3vh_o8lr zfBE!}MY~1zV{z2+wZ97Ry8{=CEa3qy+8s7RiCH1i5@4p8SFN#x|l>n3Y8C#GHD%P@$pWqkqqmqxZ_wD!Xp#)Lbd*l>x z%GcG@Uc15Z$fXLKeYjTtrsodX;WiE(f2d{yYb8t1@A9VI64X=ME`65OQf(5TuSEvY z^clL~vSYA-`u>`x8--%n0b)vcXMx^(JI%mIp9^h#u>ntQItr@g0MF|D}?N=Y2;0XN=Ij(~^ICrz;>OTc7a&?&(+C~V%f8&&j zH>a@Q2&D8pE8B)7yH?YtP5{t=O;5Q?G^hD6t+|b z0H}qLfQJU>xFDV}vD&n0O22aihnBc|*`cTxh$#g#e&)uwfI0z|kOAHtmHTi-0Q}L_ ze}$lsGhUr*oH+RmCGom(c&q1ge{*MyJ4tKt24$tOjL-Q?nYLA0$LG9LND~cVkLMiB zS2v&?;GA7%Q+_RQ*M6F*jcPhTZ1DApHZnIO@Uph|`IKGVItw~YN6zEc4lGRO#+LmY zdbuW&o~ic5Mv{p}n3nKbMXfj6vm|3=aiGa#IRiO8P83BM#h_M&5U~TDe<3KYrG(Al zX-|+0m4LW_4xs_u_y*TBylcy1tliGrkT%zcx~{mrcZ^oG1F09!Ntv!!r zhH_X$lfgo7DSK^f9SADC0lp ztJ3%=6A%o%xByVbC30H4RAmFWu8Phm&T6JCX`usJhi!e_HqLT1_2a6rD@3Y{ti+la1<*objZXau7eP=|Ed!YW!pxXZfZ6 zPOLi9EJe_mTUqNqyatFoS{DF@ql6Z(4!_&r&a)BqGy|SF2IPJ*ZIl3mg1Z=CuHvPI zqE#hN`yC&nB+%!IBtiBXWUOeDo?Iq54{Dze8wKyh5*<_If7+=0i!614-~OCRq5P^7 zQRLYV%Fpp1arM6{UXmeIdG+5Uor_ftoL9Mqzwi9oGn6~VxCrcSkNo50>x>I~cbWEK zgi-A%`|xhv_{}aF4Tl1|g_OMgMG1>__TtMT2Mqf?1Nau6!fK~|BX_8D)`UiIC)pip7OZ;jj=lC<5;F# zhek>!8DZ6Ls(b^~@RL8TZPP~D@Uew#E14)&T$$jpFN!A+flQkZwGYZ^2d2FGsI7^F z@vBUY*SKQO5kl|O&XY_BH<0H5 z#!*XicG1$JsN<7qa2fwp=LvVV>f}n&xPj=0yFLjlc%IBWh)v|O*8e(EKPL>(1~caR zkl<^A^`v*J()c7Jmmrt;iN}>vZ6mcfi=ru~bStNZ-*P5&CbT z*nZz!f39KZ(3mHE9die$<213HFZDaJWI6iLo8Q8np2m7ZOvGC`!_;l1ML6OckebG)dY<y3Xl$o+C7XH*6kDv`|AuV_bph8o-Xu09fUk ze-EMnXT=kb%t%uXBOe$I@YlmW*z0;;PMV@on7hFA10IzuP*N1=o+uy#q zK05xv^&&wXasFDDTH#jiB1pqn!#*u8rx|cAPWKQwclEI|mRJ8J0rbgx@Sasje^qwQ zi@Y%E@e~ioGYP(kW*CD!o5ezv*5?+}VN2r*_#x(g0)s)%4B9A0U>AAz?I;<8uXOZe zq=z2eydaB}B^WLcKF~QTDw*((zjm<4qUxvofmyWWgYhiC|FFN+PkDc$rup^3{_e$_ zj@CtX5b~LHp2O$LI`rs682jLcf5HE`hc0A&$GtFQ`adb(DA8Ubs*&!61 zPCw5Q@=wuuarH44h-G4AvqmmI3Q@*q8AklE_F*LK2C6*6u&cGXT6$SFJ>>#k8(0j2 z@9@qz2JQN)4zs_0cYW1vs~YEQ4Wqiw7~CpmN*^-DC0Y!cpjmwB=zGjie=;|REY3hQ ziCv%pj-`k}QP9`cITs}b#%&E&)p3(>0)PQ84QsPnVQV`396gUvDDARYr$rplTq#*p z=csaoy|RhVwp)2-vxFBJsaG6SYHhXbuVM=Lp57(jblOg(QBms=dTZR;SvPig!IH&U z4)+4|P@vgzG|8#M{EmtWe{9q6zI7`fch^V*mZ=Hvo~88d&Ssmv*DT$7EU*ZeiJ}x% z;Kg;_Vt^y4kZFHBe(=+W$@~4EzkWDOp8v2m5oOIQUN$OptpUJ(46Epb%N64l&6l+kaDU^`ZS#!BpAICWw?`l$Q!f2CiFFv0V|8# zTe(TQA{shmoIA@;{7hR-uNeKMcPlvt#>APWS%D_uK;LnAA+DqL>0_0_EA4MRPzPKl z8L~_0vg?{d9c`7JqOV=!RTCdby&yNyEePvw6=r2Nf&W2cf2+k8vgDt*a<_9rM;Gz* zE-14vff0laba$4C(`h`LWn$d_tt`ad&;SYmkRy!~^h^K>dMsM&Ojdx_O;`R#6>umE z@Ic@8hByLr{54g8ncofS@?QaYh{wDkE({El1@*KR_r4{EiRNaG{2y#l60pmwkF!Fg z;8Q>|SWXAPf2#tRPhrP00ZxlzMGg=4U~<3#cw92qS1oVI#8Hl_Z_Vdf+}KCjRjD}) zXL(Cq_YU}{o*0*)h@Ux%M=c>%2|D{IX`x+x6kLw8m5SPfaR4m}BbVQW+fpoQXAxG1 zN^}uz(2BH5YAnW4A~_dj+}82X%jf%hogJaF&RHeJfBj6X*3uq&arF^3Ei|{hs+$jY z*a;XlH{BW|1%!z4+G!VTeo;)X{tvP~Ig?laEw3c+cYJ_CBgO{3DQot;>`?V(2l^1` z`Hsgjp0*BvrSqd7EyA7@qfxtY8;vl3IgMKepg4k@SY}k^d5I(3(x;Ni?)GtS6ANb3 z&(suJe^=86AP(L^5Xy|ptVlZ-lPsBlhPs>-7s9xOOsV$%Ej{cSgrZO~EFu>^#MXe%E+xcaYC-pQ+JCW;cI1flu(A63*Y z_RIdBVS6C ze^z{4v~`&rtE-RW;?^cZh^N^Ir*U+R9m6`v2yD~%ePGr#s}w<;!a2FMIh|F*iy~<-HIn%j!w_x{Kk0Et(f)uM=F+` zr~9v-81Fv5fjI#?lGZH=EW>W0VXLjlf5a!+^M_v!JI|nT_Rg84UjN;EON*@zimTRf3`T|Y>Ae8k zTHY^bd8Ygx>ji;27AMiR=`W8Sq32|^r2IuRU$QJZK4Ed>2hpSXl9l+QyUp^5M~}9* zx1%WHebCPB7AfCR{#M|5+uK{Kf63c{=lPA4hry%mhYuHvmBerV{ruqmoG2Gp^ntVMyA$jKZ)}kAJ{C~kutvQXC?k+6KHAgxWKwPe+TjGq!&fe zuFnHDZoE3;s(y9ec(oTRUcWoTcV>EfQ3P#+d1IIOrbLjun|?~^m(#N%chfH*9o9fM zin!6vKyLa&R(&vHa^=v;o~;rz6gNDiXPnef4vAEjM;wl-uH2(OOE$1e~Z{_-Y{uno zTyj4Md%YkC0=5%9`1P@WymSAT6R6|awK{fK@BW?bUeH&?bGX1#@gQJ_HY@Bn+^fw` z+~fTcx5zeRe`&H0|5=DT^FyBp%YR}k*n!y^UETexr0sDBUiABY+>AhYa)=BPZ4Jb? zyq|M1R+E9acQ4?_f8xZ)d`tEMD`SGmsJjj2be$>M1DNfIdFB>(1qM{zEyhJP<@#xx zUC0chJcN=Vs5}%)xE?g-3)j|@yoi<0?M!9mi};1Ff+5iV0krw;fC@ZCdiQp*@ZUzg zN>H29Uf1lQabBFoIY8rw_0Mo!&XVV&A^f-Y?L{Wi;$ldDf5Mx;q`wl*m%+du0Z-rv z$VUDQwy^E#d^z~U4Crh!f~jCdbm_}r_?s_-@QE*jK{oP>pguY9SSSK@%uk}?n4c`o z3AxNh{w2~6pdx`eNb~{nIC?Pfhu!0U_fNj~HGt*%d-NdmkN^GTUhsgui5~p=;MXsX z|NZ2P;jdr(fBN9TxbD(#?x{9k+7rsI@;9v43-nR;IOvZG39&M8!NO43(r^|~uHS=! z&?E3@+w)*k9&erWmCUAoa1x2*ZSxQ;mqEbP(zfO&s1F8GMZMlYcR5fIAMm{79W(T8 zhWjTU20R!@Xu-Wm-s^RG!O~Q7VX83)b|yL;cMD|~f0*6!C%V0Qw0{N~3ChtjDQ29Z z#Y`=)K;}mj$Q1$g%gSjyW1=8s33J{6+X#jiJ!gr12O~hA?RNQM(F2Ok>k;}9_dkw& z6h%regznaW#^W4lzl_e|IL=1CSS+N;;&;Vj(Uk$5&|{8a?|q>8s(!*E(J9q&>Z^b` z6?E`}f0SiLS!OF)oNt&0*Ui@NHTm`@x^@=gk4x=i^UB8e-7y? zv=hWQ$F4=a9-Ou3vFr%5Vqu33|9OOrf24nBPOPI36g1^!BC{DxY%mm|S_c0N`Lb~f zk`$a0Jox2?jaWdg)#2G%HQq;?+yG75W zj40t!gU<;#K&xhT!f93>#$bdNb+;)6v?M}BinA{FJjH<&LpokDB46=765J9Pe?9X% zIz9=4{;Vn|m^Zk;9W2Ly6~or}c3-${T+ZOTK9UAEosJ&PkjSmJQFn{Jibn^JwwQ{X zR70xxw`#!e-3y#o$NZ$PzdBecs|RXrVg1f24OF45rfXX7dCew&vNzkG-5b-4TXx43 zUoK@OG+Wi23&WHsK2Y+~&LhXqe=sOI%0!&!mvcy4E|-PygSmdcEJmaHNw2JBsfyX! zZ{f0M0{fz(Ehg6XMSUvt4GtA)*iUt8L|JXR-k?5<9SQ&Dp|8rA6OFm32= zVO`zE2G#3=hQRZ>c4!-8W4u)<1B9^f~&{yage{>Oj{Z+kLzy8XrUzstbhv@#-e`N*o4^)}w z`2`#WV7W;t)G{Tr@t8}ve`791q2N3X<_{b7cKt8igkZ7w#(7*Ua$O=pBk@L1XKhD(%Ldn#u%^I22HZlqFz1Vf&m$EqMI@I?yn3pM zEG{}uH&X1cSsMx&s#!Tu0~IN|FjQZoiKF}53?yy*oKzBk{)s>yGSizK64+`&vQ`nkJq$r`)l)LDjDES)2yrQzcJn?LC#w}`s-%^^<`hDMg`-2oma2UfE94k z*;J{ilbb{I%j&F*P4Xbx@xa&g&b_3)bDzG9m#tKhNtb z{O&ZKne$kHYycVtX>e^^EZ*_@C1G&`=YBrsR!BD2`#)4ne>D^^Snv_M+2ERL2t_>( z*bI}Zf0%8y$$|8rRuiqEGaenE)F;6uQ1dfREXz5lMvw)w?@!^qAykkL`M`5S&|wA^ z3y0EPIK9$b6sh!Z&#dxQb=3kFzCI;j-7AM5fGx44qwE8mW5fv_t#E=+9i6AunZpbk z=D`qmyVh&o562GqQZta|4Xio)rtxr%s4kb(f2`g0460dTre&r%n!Ajz(P-0^CNrxs z-EPt}ZZfLx_@!x*l5z4*Q^>9W;m$cJo!jk;wAa}8{U_3?bG~*t! zf0OSFJ*&?#=jvn92K8pMO=tEOR;qv7hVy`}@15aNJXMOSN2S8G;AGFf5xhp^{Hqo83S~lKr@+XcSEy&gE@zr&4Uj}*-w1~U#ydH@x zpsc8O-U~#NExp)+T5E>-&%RnF0j4f}RzL2+ih!dCT-e8Hf7%O+q4U~&IS4}Eq`ihB6Q4dxN$)`nJUEj)emB6H z=;-f-#bU8hxst11*vtdPmP_1Tc5QlBppau#$dmd4dO#OYf3}i??I;Wr zFOpb+{<;3{Gks(2J1?!29hT7$dmN&)omnCO>i2s3O^-o2pC50ZL^}%q227Vd=kl_l z9C=|2!>b;HU85;=EXQP~3h1RQS6r?yN$;pA>G;h!uT&w@n<@|~72i?Uijdys#&Y=j z6U`Rs^SD$umxs4Eej8r?f5G={mYdt4H}v`{=;e)tGm+#~%FE`0d25QB*FDBDGvSVI z%8PF)>u*IS{5303r!QG<`gLP{P7bOQW_@iZr}6B@4kA-+N<1|sX2q-rFM%^}e7(+5 zl@t1`)^us?hspTLWTe;leVh3epi=*!1m-ct%1Jg-YubtF(9*J)fAaO6hc`F&Uc!R!^Z~jaNw+Q}>5GM5^iNTIRv?SR=nvrq&DpB6)KzFb zEHX-3Kwx#VK=K1te`vCQhik;0MV{3SesKeXLCr3sn3%CHwv^>je5_7@2LM3a9e%7% z>H{qAgEufB%b9ItIowg8PgQvHOCmAQ75e2ci7b);RJmq|1;OBOn6WUEFcqN%o;>tC zzeQO^kp(t0Y?*&Yfe4YxumToU2K!$+%)r}gi;#GWeeO%*2nME8xGMYozA)o) zf4dt2uh+%Di$!-&`GD~WhDC@!pe{^cby?@zPxZG!c{>Nm1jDOJqamQwGE2pN7=_Xd zWED*6b^C+^e;UU!EX?8=*y(9jzO8sKV2`=JuPTH47<1*IG5`x-`ozKneSQ4H>E5&S z%K#{0l)1#GAh3K36+Pyli`KNtAEN4fq!j`*R{AR9B? zKB7t-UoIAS-vl8VD~54+sQfs9d&@g05{EHS^Y8+aO@K9EPCzC#eCLqqTijaM?<5FtIoB@v$k7BA_Z=fY%b=p(gYfa7HLl4;DE za`u4tJYl}AuaTB@0tyGKq46D4r+HBWid5ivcKx_(Ml6d9@dLr!+`Av!VtCs!*WU0o ze-D_czb;}{&`<4F(3Z1;ERJz&?bz9u231K!`ZvzLGa?%Hqe%m31N()exdQtK{&hB0 zbHCSQ_Xl&%bhiogY|m*pVl?3mq4}{`(67R2f|g}L6YO5H zL&#wF?sMNr6x`KBWUmLx5@eWdjjFCuSw8o*GRGv=RqMo7kH~)j&>vb!BMRugf5pNV zsD$SM+W`v{+QJ-xe~1gR-xkWQjbJYD>x#Y(e|$QTg9cMVl5U**f{nQfGh70a7``|v zs3E{n4&u58tnntWQn$>>ZU}-QT>*=SuntS2O;Xb)coWjI?wDHbmsBhABB#{?TP?BG zidtPnhI52w6i%xfZvrMgPdYgbe`PlG%~^8=Hd)mqja!nI)$J^lqj0j#R1u+4VXdG> z9i@-;eMT8_Nm5C3&9rK=y8f&w2eE8(gIz~8e;hz@oANi$ zi&-A^0LI)S?P<&sv?!ntu__YKLDlRa?ct1Vv3&TR3@3#C@|5wF2nS_m}ZOZv_G zrW&qh33Wm_Jg$6>cY=zqKP6?vCGM&mO6449?ikt`H>*$Iy=pNwAJS?G zHE^Z|%eX6YPF$t=#1HyPe-GDvfZ@RUteeO6@?A36W#4lar)j7Z19!?oF=|OD6~jh^ zg)(xoFjK&Fb-_?h-S|xgS+-h#*{MP)=UPbGZMJeccSJLfqFjI6X2>Nz(dJJ!m|oLa zV_tpFuQwJ3vQ$1&y8y=%o`4nxriqZC=Q_}hg(RBqpwa3r8fp2de^&p$wc%TVG0r)r zZC#6(YFYT|4yq|s0Vf9dfXn%kVwb_+-K2AnjLa2YsBdhwjAhW_xZ`FPoUJZ(JI<8tAy zKH{OuciC*QsO|jrf!ju3UcjYqg|$IVFxNUSu60>drWfJ^3h{cOu6vtwO$YHzzdqt7 zqi&S*gzt30hl7+{Cz*t;*1e{g&DTHn5&!!qb@v!6Me zDR%B!uN=AgO}-yFn<#eX=G(oVZ;O4$*;uhlH{Wwriz*2Y(Xf{zc#2*%p67SfV$rRQ zU^E`Q&TiP8!qKE==5;nO7yJwJ4xkh9YVi^m!J#bP!`0^@WEsl(^4}>m*H;G2VdUOj zA4y2Eca~6_fAL&veO<+Cr;6*jaVI&s-`||u-1qCud#Yim=6T(&ZCagczrl>6idpBW z83yFDLnAENQE<0|IUC|q3ORdLC+$*Fy^#*DHG?eTtrW0s%S(4W@6bwfI&^UT^_KJc zPV>;T5*&Wfc|ouAMfrug0j-oGSOhfu%yM_wL~C2pe;8|PqXDCZelvi2hQyoGi*uX0 z=QVb0yteyVwY8}LZj)*j#}7|?s&AKvJP zX!e8JX8`XGoA%0`C_N8a24)t~TTQk#udR<2BTpRi@RjmcWpW_oDQy|FAhX;!%5~~5 z){?7Xe^Xu+UKc>ghUVv~+xBps_{83i|*>?B7Qa!wJC!!gVE@q?XOwacg+_70bSn3TE7iX=TX`GpIS~uq6#vGvXe<${aGXWZArc;z%vunHIg6_?XePcd&ccKN{~1=xNU$jo z%WTL)y&by%lFJqgpo`h?C-n6Ygg+^xry8*d8?$qE2?XafBI{V%R{jLFi+Xpl%LuCs zf5La}+bQhW%LrCK$`k!lSX7sAhX*w=unh00B~&_KrdFdoY3^aF9BK{0Q^v3wR&Zzr zA-HDH_xvCTClS6?!)ge%nLHt?L$i@TCdCrM-^LDh?G&+VhOWI)gEuM~xmGIly)W7E z`3ZdUye|4iftgttGv#?%y}~9S!J^UKe}1qPW&`RUj4+T^!*E`JUE>E**N(Kw7`yPi z)W0zHL~KO3tJ3ov#4I53edFqZ(=YbH*CroF(diIY7qWfU$Qrd!x&K%N;bWz_5Og0x zhBPBCW|8DNhPw*@yi$f4h}4`f9ejp#4s96>tSsX;~f!+8TM zHTu9lI8GW!YP9tcE*tvHa(%{h5knpC|OWrUMn_I#7Wt zGveyOa}Z|*i>+;y1j943q;{{t2;lfx`58l^v%LipqJqUI0mWHFhvfBb^9_#g1U9+V$|;3Dhty^4(Do(q$xM1;){!oHLuI+W;o7|2_Z zgI@qreo)?;7mI~^>j6tEX;C~J97RpIK)!LPNhBG2a=^6xqeqXnSpkiZCoF^Sfd2klzF1_WFL>w`+OAba^4@j`R+rWy0W=$^Nwns1 z+bkCiP&z!$e^HCYKR^cw6S&0+5lKOVIBfue61^-U-}XTh-+}n{2ern*kAkL)6K!7b z&{M`R7>-ofe`{Hailiz_1E6x5sQ92BJn&7&#Qpp1D^n6JJ*<^)z?2`qk&upP+iy?bOv`P~d=G*s+MZGpWZz>G$KGHd7 zt7K@>e;`96OM>v?KNBQKLk{Bf6df`=OBV~Q${|Bz;$%lcb7@_*Dg_m*f=U??qa8h( z%l>KVc~#-x->!jx6JgZG8O~%DaVlU3bOLmQ*}~hFZON9kj{6i`Jwc{K|3&vIvTpi$ z?KX-QTQs`XRuMfe{1I5hfLTx`X_ny!@Z&3Ne}Hn?0HBt~oW-nUc~qQ4>Nuk*KGQCa zqPccL7;;vT)4~v-vS3XFCSgATx(aNrVMor>Oop6gqErweDiqo!Ud)O-MLAbkW1+*6 zO^Xx*Ym{LQHY}E_vz0! zf7x+-q5;4-lX+A^g~#$_kb9nwhxvEP&zWG~uw&lmIYYJJ3E?j7<@r)rVQ2+%S6$2Z6^jCFUoP+=pgIe?{v?~xC*ERf|RdRggNoN`!7rv}#e=G`LC7VWhU-D6jpd?^{Zg$Pmik;qOIqC1$%m85`q8_l$cf-(Jdyk zGd~G}pOv4moNYg3$0eJdG_2fIe{|_5KyMC}pODiYbTDT&sS!N@F+k40@&3rwc%J)7 zFq|AGC*c(SOX#bEY&b)kw$v9a2H6=n{OVg1m>3~gNMYh2RM4g5Bsz{y7}SS7N=_n3 z1ba1IDZc0Zcb?}@k9q&yNt76@KM6`qJ!PYoG6+I2);G13%{s~;SPn`Mb!REK%zt<( z{Q|`0VS#3#TDpX+0Vsj=xfDZ4CWsNsC3`N&&#-=#l|OJk+sU(YN0akTZ=?4Dk(WK@ zYV}?>UZyK=-y806zi|EWot|E#37!i0i{^(oW$m0p4M={`&&oa0p2d!lw6fPROQro_ zi4(t18fy_SEgS;p0{ZHPHRB1b6Mur|K-{$dB)mlip0_7_iQ5;L=*YZw_{zOC#{hno zGYLYS!3*IdnVF|Pfb2oF4b5?sZ}qTf^dkwgOl{(rgU?*}gCZ;dbDf@E@CkCe_$#98 zee{Tgsix%10-%Oj^qumt3+}z$;PbO(jcOYfePd3O1);u%XOPEe{cwT!dVdb1NAp); zK3dKYy|Y+gPkds2qet2%2RqB2iD(BR5>I;pJEY(6^QBI%dI3A2-|+K}NrpTxbUOTg zMZe2gFJN!!w^ZX^z@D0i#697j5N`$RZD063o@m=CE%p~t&r-&+=a>OBkBXm!|5y;{ z1Tcq2d-cYgtU$c|-uZozHh(_;n`_MWlkj_K2C>bub8Q+|3+l`Q0Pd;*e;tX%V!t5g zvzAm9xIYKlwdiBVWcT;N7a%Gf(B+C;j}q=|AK{Yl>(JlFn~a6)TlDtN!Y^>G!BWGn zLW&~|p=1L>%REmGMVL98;pgVSVH=Ls$zs8e;iLFNfB(c8fbYZ#l7HRm^9747)IVM< z(9Nv&Wz^js#GZ$02=vIKt(rL5_8>0uy1d%yJ5T+7vTC@`QqL-6KiTk6a-A)HI!XYXv43OET*{6 zIO$>(0>r3jHu%IJAN6GSDD2k z_Pm&W{qywBTrK|@-1ECJ?1$dz=&T1$!IvyvEFe;V=TS_6)8W@&h4&xUwrYKSB}Bd- zT6;v#Wpr%c-Rs?l5F%`~#aj&s$}ge;Q?d%Z?xfJNepsS_SqEb14hs9BKWwvyeEMNy~1 zL%{A#3W~L$n~4l@1Xqm!noYk)&^bT$&S$R>=E$ao~KP} zxQ0s3PeZuC;1=r{{Z6mxfLi+kQtv~-YAzmB*f1X%qiKj41*zNx-;`m=V8wtk+nxn@ zW57*Sp?`(d9o&|H8`jh!k4kNhWPLv5fkwpTgox{G8`PRaiyTOLXp%CU^p!~xHt9=~ z1SYIVeW1(VBeP~tHu!$Dji!yL9;IO%`Ppiohb+^1{3_C`?MnB*?7{Do;8KRI5{eK=U`yM%(0TUp-__x5rJ4;cu@52r4 z^fW2U19Vr8&M2qR6tujQYnC}IS_0Wgm)zBMhnkMm$tlxA;zS;SRLUPs=NZgf;#efPv z$bS*r!W!#4KMkp2+-;a@tYv}ClL~7*p$|l4A;VkpBK4^pEVuVJ{KMeJ#90ZGJ%aX8}6PA@85|oetr;3Sp`VXxs~G zmAq}h0S(VtT3<)QOI>7-mw!qY zm*J_Yf?}nFA6QCncp4tD%0y5JcbViOr<_8H-IJPltn)Ftl5GgZO! zdximqK)5BFInCR}D}2hY$QR$p|&XRN-7gooOVN*TUfQrLiMH7dZ& z$XhFkhF+g=t`Djn;^2$u0wQQwrhhGi`{kwdCGxL}g+O7K3nbpmH^HzBhyKIhdvFcz<@n6hWxW zrvPYkMh1zHIOfWE5reLl8VGqx%2V1rkfV&=6h7iE$?~OG27~ouEZMB>7?;g4F6%Ld zp607#ng^NmbGSiB268oYW92wD1X*07hcF0}!F7YzT4JiANAoiY5*Ik%mae|?z${>p zp*Bi@=TkFv;J(%K+!SbYihr~x1#**sbi#io*cARA3IGiq_%8*Uz~2MG#_;!@VCV4n zwP2U<_laQd;qOzy-of9ug1v^ncLe(Ye_sf;3x8h;wimFOzmFHc{T1ybIBKIkogxRR ze@77TX1|G#xoM+tHaF9RH+z^PMZY7ptX*{7{GsO{CL>}5sCZn=`hW3x!02$=!Bm&( zL^}a{Mq$n@@rj-V?2tBtr9shQ!1g>3h3k&tp#{@^r+j_>*eDNLt8aK{&1MGulZu|aKW3Gp$9y$`bB-$}A+FYSnu!Ni|4RSv+IZ^ zr&-NwyM!&@C!C6ej(_W)b{DH-n+A=Nrcvl6#W7=)O^<)T#k2V|d!GrgGS!yiU}>ss za>4Y)huEb|Z~1Ue$p>7H`H_+k(lX=7EJfUr5rJ+&n?(;?4yscQ^Qa69t7`?&#?a3} zDqs=;MdXf8DgB&*1`s&BfZ?M8pi2l28HucB$mb}Q2P}869e>h|p`}??+d%vwHRw$VY$c1i?_Dc^9OPX_;!%?wV2+tF6et_U4l0!)n6m=Y* zz2fSn>9Q$BhS8bnYgc1DNV>I)StL*?o$@%x)bLsQ4V%AF8HXMf>D*OlODvlD#iLTQdqjPpR$ z5TCfzf2mYt?OAQr7k!yTzChb(r z~(6@V(mzcLam@ipX z@~{pA>1Wn=2PkRIkZCGaoaZ1YG2m*O=;u_B%q&m{V;Ao~MS&uUH14=Za-40a<=` zi@{gSlt&rM00&?3(|9&JJ&khqxbQ0nFR@&*Lg>>DW;3?-1LmxQfE=C&Xyq8{Hfx4$ ze+^TFE64q$F)Q!5iEbN$`fxE~7Vy1K8-Li0E0dLgIKX;HTrTfi4$ftiyS6fJ5TJNh62m==^7Uz!E{ag;uW#8;y`?XLGHBHg28%nK&sFxJ@Oj%8HDp>87aeqce z?vr&aP(udbngH5L#Y-C60VzDdN zyV&F!RmHsUZ`Jw{{qM1R=xx^W-0IZtA+Gk?9rgCnTp zRTQ&wkBZ~91~CJIq)9T$pmENXBnD(i5e(=}q`6B1rUoqbjY3yOd{Fcgj@BK#e_G;7 zn;~Uh#u%L%eC~Dm5UyEaH$L7zfl#R3D1uepjiP6CzN2}D1yLH8kk93MuM6+iZF@0% zE<@F?c@h>!(y{ip*8FkpE`MEX6Y!3i7$zarOT6paw%~r6r#39dv0(Bf(hUI=PX$Oz z^sbaxgtrWqgRTI?oIY92E!HNOYovq&UEexA4_7-qKsx0G3Cp!oOFSVxuWP_g9SZMh z{7(TkXMn7ISsPjrl(uX@X{`e%zdX)Pg28J^%tVd>jB81TEBq{0gnys=+I1k7tv6nI zT%0fwVNDcb6RF!AHHK;#B4-DVUn4=l6>4L5o5e8P*m_yF9^#4cZ>4Gdy?f5lCV_(x z(HUO+6{`PH_xQLdAdrc6V4p#?=)is1J2JuH@f3<-Md`jqBsFo%N~#eZqh<`^A4f3* zt4dU^*gYKBHBeg+Pk*E1oF(?E)SRVhz@`pH&e5xohKu67cVE{b6yD={?46bmZp(fd(t;xt-x{OO33eR zCYNl-t`Q-(EPu+(8q~V3dg1L!wB>}{ zXpy{JF4;3_wBuGl2fYXe8W>=RDV7jRcIbBC+EpI{F!xT8ZlREz&%-b&0?aj(u=X#269W6q z&_-T^YlAKexPL}#*b|^-PcXm;wyqazxy}U_59Uw(pnrP$_Raq3sik}KOq5)LWbv-=M*s11$|;pY9E^p`7Naqq80 z6cZ--2!_Rgw8Inxks2G3Xl#Tm;KpanE$e_3ouUXY*S^RK6As$*PJLoh;zkZpgfCtG zg^Vjq7JuVOXxmGNyKAzAUwi5BVBHJ<>#w|Yu>cc*l*pqjKtX*yF9UFlMS~ZfcO?9Z zandi0SjGUa$hzR){wzXd8#$b+ZA`$*TJ(7y z>rN%hCA(~V)I`_TUrd}Y0-r-)4ef`P>@;%yl7Em{2JZurDC9{rc92$jU>Z4sCA*0H zIY6ZtrG#Q>+Ct_$7PSl^R0aXL++}deKsLssY=A*(0A|dNRw`3VQ;}>`qy~YciUdI@ zBnpw z49+}ntZ^Ls0^F}mVcAY$jsxaHV_`OQdk;v70KDX4aUOWyOQ}KhBd7Tc>*S`k)ql=t zO+*jCbaAj`@0`VKD2nGz5Jt=73i~Ww_8Ia>{mat`Ja&3$xZK zUk@WUQgvGa^Jo1`2ri$#K6vhVM7Jh&(qb{|gM>)WZJonOM2n#W5qs0&4u7b-o1?&{ zEWv@i1IUFKU?*X|Sp1FyoX{F>yvBZ3kG3er^4DG!9Qp~Hu?gWP4Dlb| z34Z~lNWd9yT$Y+r=r>UJS5O8slr+%V<3=~8A@%YQP@)AWlXR6r|W!IdmVINCNejl0LUa*l5pVdWg(I0!kJ z*mk4oV$m2P-(4j%??7QjE_oS$V!>#wDAJQGShAg!?dNX1GTIuHwK;3q+<4^)1G!mw z!a(TF!Jad(G1-d+aG*I$g2m!*TV7rp^MSu5$RC7aaPH%&NRw%HDSwE?mh8~krsfXV zrK>UhDpqg#DgfD@7P*099vNPRH+y8K;pABaWsCW9JeM6swAf znx08q3qs`QvdC9M*LO?kO7p?5S;69H4(hxu|&m zS*4ec{$rE%k2Kb8(6gk*=7+A2>%S#6b~%V)8%FcfFkZ44ja>lUfIq;n163{2chd1d z7K0!xXWp^fLBX6D6ctX!(b7fcUXW>&b_ZmW(Xlh zASb?;Wq%PG7!CaE{)ZfU$oZ0G(FMdA(CndEJ<&Q~gI0VM&BF^(Ti1;|Fd5=1fHMZ8 zMjnWv&Kb#J5gq{^In?&im~3Acq4@>AO>kjG*)pKf1M#=NPJW6DmpYV<{4c>x3#lRN zBi~`VP6vGGA4)PvCXN*%Oq}+}nRyWINDQE+ZGXr;?-?m^u^9kZtPR|T%{yHkxECe# z+_f)QJG2_R?>bC|MZvf& zZGX23WGM3lg1wNTn6?rl(=M{>(g1k{4gj_F8d^&8VBi=}XW;BiGVpSBZ1hNiE`Vq@ z4SyDgA0QyioLn)$eH{U;EF;HB2L(F-4!}C0ret44kLGU+Jbp1cu5p{D$ZZ<%np@=H zu5U{zyOZ?xcq-o26n#0e*yk_$8b59dwk~S>e}+qBiY09HuYdSh zoPZ|dSb$dP7r0W@vAed6QoFmoH2#!fRY8~Sw>Nzyd?=3ePPScp;7b?geihR#E6^huV}>1{TUmvsXv3w%YN`@fSH67 zk74sh&^+y%DRu06=7#$lHAm+TvM300f=H*x!%q<`d+&VQF?1q4iD z1V+*?_^_CN zBoOnnX_&BSSeZdciQS*lm0$#PW)|(DFRg6k+o?}reiI0hhXU^0^YR17HK(&1`?Uuw{--j4Gr@^w=L za1c}(?~g|y*#Y0S7QxbNh7kkCq^5AzR1BI9vJ-nL{R$>(%}|()>^ewxrV0jz(?t0X z|N6Cii(D*HbO(@HCoGU5y~Y^J_VR|GYQVuSc1Ai@n?*q7cP~R@K z4|MH*xD4uiqmj*+M8>Wg+#*%lfIElaOuYYFaYm`nMtk6**}NQ7{R~_xfioU-Z^&}T zvoV@X3BPidMgnn?A3Miq6qa!!$2e!JJaqG1HTR}WlTk$P_cD1emhoO8Z=zh3vQ#3E1=YOY;-_-%mC0%SN)yn=hmlGd^+_&kIQ9C#Dv z9aE4cp>8y=HGhv3ve`_i*EU8*Q&)BXWdQ@qXkY|Ws^4YUX_7IjJL1Rypx{Gts*L73 zGAvpBT9Yu8i~*?Vc<-n}UZQ)TvQu!Xi{SkxLQsxETyiva%OSbH5)$kU(+R8bEF&HD zQaFb=N3B9J=IID;N+m}b+DhFXBV~^Ox#X{1QkOkjmVbqWGS3=ziGj3lc@~*VTx?R| zK9;E#%o_Kav;3WIFkB%Ih)(NS^bL70cOO*=nBZ;)m%B(zesKG_ zUPn4xMSnni@yEG;5)?CY9)ae-lzB(M)prfX2hZmH>yj+a{9<@L@+TnYf+v)7;Y0sc z3y0U#0F~YXMRhjI=hMMQimFUqZjrg}ebH*wCUbp5{(Pi8NHYp(lR+Nn?;sSo@~DM zojLu^BmMRL-#$j}9azmG{bpza%q%Np6q=Kqb^P)0X~>R%BVh=zXmJ>0S~7 z-+vwC(WvtWFThfV!M-B*VjhhBYh(7r#z}y#gC0cGg@nvB)>%cY{_@!v>u~{}w^;Ck zwr(lUb7&`8tv>h1`s$OG@kaOg$+Dp;Btpe5gIem5e}ihY^sRJkaOKbXSI`Sr6m1+1 z-HYLsF&i}+I1P&7)d((+{uR@<6lZfZkbge!X&1xDn2r1;4El5bVesHb-W?nbw^&Lv z+A)RhpFH8pkO%(VPS#M!06_ptVrWt2Ua{FoG@gX7O^@bS2DJit96gmOLJh*4`^hjV zA-@S|Ek29&6{rOIDPh`onbfmTcvJz;GVFfzEa>aGA3X^G#5){qZlMW8h#=fMurXZ9Ecn6OcaS?;R_f`*Gps=%5$r)W6FR8lxPrUirR(l zQJtYH|DfD)mj2kV`^)Dry$nNgk@94T8vxkp_~8?quFoenTcLCYEJp*jK4Iz4r9tz+ zQ`^-uYrO^v<6w9-8vLr!M2_xV8Gi<9E&M8p@2GB^AR|HmB*n{DE-UiHC6{L+osdhW z*aNa~`Lz3WCqyk(`{=WibXkL66}MSXdeq9a?Pe`$PE*kG3d(TEQEaQPzyb($@~XPb z6Fvh&aCxCkP>Gp-p#mMQamgfgN5u+`(#rSm=%?vHPlc%{BaitKP4&2H|8z0bPHN>4`r82}$aJWmED7i)f z%P8}tpAO)<2Qo@;B6vhB^M-u#B~Cx}G$7^!PK6SY3bZEkaxTPMvf9e*kobX9s&O(W z6JTf`CDZT=Uhkn3QI8Wa*njZT49g%#y~LcWVbBX2jk-prk|ZjFdy2E1&6E`P(63AU&D0O&=u zqqpg~5HSckw~N}Nz-UFq79dDtD&xo+jn|+SzoSb8n@(S^7rS&guzTvQ5(erjgJC7F z(ey)_a0P+gj_XXO@=g@7NmI}jFL&!N8s9UD?NxhG4tqdX3xGGnBH4>dO*vr9mus#1 zrcswub``3-R)Ahv#eapoij$2Wk(4c5R0~c9fL9j+hbN^N!MHNP`iJ}?l(XVNW z{#NJvuRwm8G4Xeb^6*HA&I6Eg=41|ta+HnxCIg1bn+%bgfx(vPB<1e6A~bttitb(V zNehT@1&9L=h+$%Pt1@x@J!_+*`}HloebiHwk|IN?)s zKEoguM!^eWX>&&=`i6Ym+UiJD)z=IBs2`NF!>)SHV7?*O5 z8~_MG$$vltou9cis}1yaiskvoDKZlolbcQW^}257v0l@5>X4A>>}4sJG+{OgfagOE zfQK!}st{Djhzoi9DXQDgpzuC`fm2!b8xHId>R%BLf>cm!o$N;SDytz^=aVn0PF_&H z^nIqi$|M}?zp@$_;d>rX)`bUs)j8&Myv%1_PJf+b#^3~V!f_v{WhQjSc?y)Q3QdQp zF4-Tx05ypz1&oK$2pMEX&avYwfdG{*fI&eeT{5-BQ$m=)htzjoKtk?b4<4xpzJP?A zi3t^kbA;Ra9j1K>PFC)5=r?UnC8NlYf~`*u%M93&Tnxa)CVH>h=wxD+4o0!$qI7}-OBZxl%XbI934+$CKS!ZNXh!}V zsB})0GB>9aaXFbb8dG}VUFc*{4*8#1T@epaCn=_5>fcl2#4VI9K&V2LEimTfuw5At zpp-j-#-ov60C`w&j4L>KN&@OEWj*9|DhSEHW;F-*Xkb@ht+;Rd z((OQ4yTK);WiMXh3h=r%3`Y_)4x1aF#4xGzbQ;DVxKT#|+d708!p;MbJTd4*xS9!v ze*m1c2>1gL)BpHk1(4}Gf{$v!<)VE}M+dD7xoo|pm@6JbYBD9RWFPsZOOe9Ni+><1 za)6xBm?E^N!Tn&#~XT$i33bzv#**#0v zFH9w|`ZkP5tdj&Z9*qFpBsmo<(tp>0GeSQm`zG9V92RDYo$8L-NOs*!dLyr8HiLqY$xAmT>LX|Le`xxz5vioe#8y7U_ei0_+xmu{d+{0(FXX zQZ<q?)?Zq$?@M!1r($UQX;ozw7@t&N z7BGn{Q&i)cxZbj&k~?LjEJ~=-$+b!knCFoGlZowU#QK=iZ_cllQs`vf;DPN zhov#u;vo0lW*Qh8QI)tmeHEmo>$YDC?T&y`Y;wg^(vY7$_OFoZ-DvFDd%iEVMfQAf zuai~D8!9&bxF3pn-vMeG^x_zFK6>1__kYf`dz3bg{kv2flY7Rv5P#DwXq%{Ki`UY5JSv|P;0>NoLcru6Js2-ey^BNMQ0?sV0 zfilIZ7UFRdFyB0R>W9>k7f`!+TBg2TW>}_ldwSxBBz$Hy8h<(5RPvPb=}_!nV)CUG zHxhL__DTBO8szDE9Wj0M)LbBYCQtn!9g4MT00<02%6rbfnWqAFOhOO5POD%#95gZ2 z?kh2L)s?7xQly+|EN7}_nMqCC+XK5*i#p{P-;SdkF~=m2jA<2QkYDq-RWnNW@cnam z&nC-l>TBpCB!2`OYbFw8o;1i6L<09Z1RnMnk`?%LjTYVj@wM$u1`)Sa^-0J%&*9)6 z)r`^SHlVD8`d}4#*9if~hM&EHTzh+a$;P8!m2PmfH<_PM`U9R`1Z09n4bKLaXX}8< zVk3P~O2}4HHv#A~_bdU=RW1j?wt<=sxSoY37mdahzJD-_R&SA1Evo2D;Vk?_()6ua zYv3CWtO^KANeNHLf5HRiVU`ha6GL9ZX4QQqWtuRWBIsYEq z(sez+oPVQ>4!qIeVvkGK#dB-DZZ|+J%LUO_m=BXKh;06)SMtRyM^q z9FlDU9{^GV0Qeb?Zzq$pMUjJjAwpNvbx#8+UVlo!ynD+=W)jHgOSUtS+hXi>O>V>d%&bY0!)Z0V$ zNLb`Z0_HC1A}ED-_>eu4jQ)ijRxt|XIYD>W(4-HQU6u#pTXnnTQS`O4 z@dC3>yh)p|B-xNAXu%yYqcC!S2us1hZhLln9e6=?v#zRhZtdLL=C_ZSn$lB70|?42nGN?pq(+!-F$55UAoB?jQ{H-D?dcb$I8 z&l>kLJQ)jp;QEOBcnw9`=nR};v5i6U=i460_I!uPedL3k6d2ARmYjc`Fik#W1H%QC ztMnFR%*Z4HHPAh+@Y(njsGN`uH0Tpj_`?U>zH~3~yP(m}Hzd@Omxv}wB6gWp(8SQ^ z1O#*lB0&mVK8in$x3iaU<9~#QLv~GLE>fwGouSl1{838YrG3Gcc%$j0@HHkHrSf&g zfzHr|i>kzHNxK`z}>3=AtxYebd1>xo` zr9}lff}z=L$O-eqe3&9`a4iY5cPYiG@}g^QTgl?p_cSHvAXG22eGr@moKC{Aah_*K zNgO5NIkMM4J3G(lvkyCN#vg^}o|4t(zd`>!1g$S+5!jn_H!uORX?d9x^SWp>PE)kA z_}gq(E)_BLQ9&im>#MNep(jp#idwO$7s(LTw}7V)Vw+!q-%H5%3y zlC$bpsZTxEFdS@fhR59CQC~mhP`{}1E||gafIlGvR&s0eu775|{HB0KB=P|Sa6w8B zilAOZ*-%k_2rTeCx{5=b9H*6p$oqroLF-KyIdbKS0r;Bo@cC^rc$*9pSg0J^e-`8d zN*#G?>vchsZqU08a+C3{BDp8{i{9(^tg2UgAU*O$9NeD(;-~^3FEOMUiWCi}YwPxzD z**q6W;j;l8zr2%BsRidQ(tw>mf2DJ|9JY-PyhHy`F|g`%kXKoOp0h88q;*H++zGc zep0lFt~i$6H5OTzhe@G)T7HQX?eI28bmddJRDxuxd{~CyHlWC&t7Va9Ig|)hO!81U zIlBDEPd`0{G5EyALa$R_T_)7q(^TE#NB>=vOw+qYgZ`RDwglC%%lk!$CeW`_9ai3_ z)PJ2an}7ayX&g=NHT4!CcUCkEaIVmC=|*Sl_z#!*iZ%V0)c=$YLjUvqzom`FZ@ehB;b`xJ~_@XyIHmXmB{)I!QM&>}%*h7vF>c=w6@$s$j5kDi#KbI6^GneSpn1 z4S!K)4mRU8*w`|agtG?eBs5v-Jy^U~uw|(m-ZFsvwG6ZS3+xuS5@8)HVXThqW=m=I zu-Zul8p!Q}sojkek1#V?cpIh5oL8(c;~=M2xy+@2mVyo``0SACOVyR0pknOgA2w8XOWe*st7bbnfBgFl|-w>Qs!ScRKsFmIp#A6+yux{)t#$&YEke|7nMpMVPh44J8gpm}U0@!CEhvYLr6^#6q1gZ%u6@T?V zK;v#D^QbraDjbH<$XAmzp-d^tf8uBPKvlh35FiZ{gQTMFAL?EfQCtx2;p?j(O;D9E zVFm%{)`VKtOSwoIPjOKK8m(MFw$WF6#hwq^1X?yI23l6D48h7E?3MV0?!hG{K>cy5 zuuBu!U@pLG5BR^b0=nD?eZ`w7k$(~_XjSVY(6WJk^=Q8W-58Dhy@H)&X*psbk&FDN z+CSHQ{rCJQmjCzsC+{iOgNgj7zvn;gMRQ=a21)V5)AIXy#7P;vp(nbYl=rj5e=g$n zD$+Ukj{@JXs@WKZ3JwFA(*^GIwB}oGH;&JQ`?D5U81yQd`G-uvs#347+<#RA73Xr! z54vm4`kDVuldM^&gf)(Kh*%Rp2J_h`nQ%K%D=d*1no!ez5Sc}o0|R_eZQ>E?aS3IO zAVP9q6@9Mi9>TLH{E`qy{!sljy!sr0wem^&pb~YSt0OXrfYHpfeC61EM zYB`Y8NZz^qPjK5?Wk4{4mn8gkDsea05^z=jAhmB?NP4 zRv5zf?Y*X*Q!5rYvRh|R1iQl+(leF_lqE}cqY?@r1piTow_#EogV8_|X4I~g)3w*~ zCKg7jBu89GUBmb!LPKeI9f3VQ{(@Qo34A^YvqmG(1LhGnljiR*A%FR(B66V$4InyV z^8+~U$R@*Sh@t~9zn>#XI*ata9tuN1iwLV)@ZrGwn}D)jUBzcq>T@Q(>QP4v&S=2P za&_-W3x)C!r=o@lDMlNvq);B~ILRNu)Z*Yaq6Udb%;zr8Glr(NEb(3=N48|aDzJIRV~+DDVRYDy$K-;XADUf)OLatLUFI~ zpYIhSve5|9X|As8mBr1lI>7~Ni=Zq+-2AvxU{bc+zly+sb3?6XaGoXw=ItR+Jy(?7(+Epm}gH(BXzW1@7aCf+#Q%>{_`IY1p|yZ zN{L_utCGuOsDIERkCGdh8KoQ`s(G2k#C<6_mC2Qv(M>{>BO4gUPy?O;eNv-ju>?0O zd_%gBHY6CZn?%*gLFBWWDpD$Qp+dWgg9lKr0QFK2?219H!pp#q8<1ER(a0Z1;K@cP z2LYMQK!!>!44;Kj79QO{2kK-NBsZbzu{sh&Z9`nKdVdFT66TzK*Rmnpc z!@lzn>AML>U3{DgCE&y0eKCXL%7QDpb-P#-&r5#UPK0u;jmt$%68|tl znj3eLaPm2v0#gpk>eo(;(EkmINfP-~Y{ky$y?;ngaj8-vwM47#WsOEu9ymkvt=bok zYEUr~IA$dh!%gLT+%s#T_krOKJ}eWUWGMOyG!$iIm^sz8-!()&d#$UeLA;1s5# zK!5GDHSrD}w`jjyR<|*6O@n5M)W4vY68S^qTN8wCCO92vAAWnCVsD6YGo2u2c%|CE zY;^~Sa=z@G$Kngp@@ES^*=&g9w-LIt|Fv0OXWY`O3!_&|=DwCtWf;ok0^Bh{wj_gd z))OB6(fhP}Lc!GnJd0%Y9Vx{y z8Ib_?rihWv)Qg7D9;fW#pdX3R^VM89ZUYH_c`SnwDJp5h$O`#908`NC0ED2wp?}YW z=Z4MpqOx4NY9)UOzi3!5;5f)q@p2*|T7Xyyl~5mq0oi(OP@1k1hq9(>YQvVzLvSi` zgV3=6zz3)(`sT62qRg@%)r^=1>bS_3lwqoR>i9Z{bM_`^ZiN;KvM0{;II3(qI1AqK zn;o*`OaC?UMBbIKG^XD%ePNNmD}S$yHIEzeeBP0`^tK>PTPZSrxso2RGpXiE?pnqx5FIZ3C? z%#^<&j{_87{!F7pwj)#+G9em4XbC|_p^}Y1H7P7)P#CcZpG3m~?FuP11_laZW7-I3 z&aBLhz9FZPzY6n-r-u0?ScEFc7r`X-Kq+gv@YEp7(mP|hP-*|OcYkScd{N0X zy-RoyJgdxEwWop>8J4YX$oZq)^ftVgx(VLCubUEjjoQ=H&*44#0nzI=ibq;P0jh+p zv^WMrDrGnY)J7CB=mQ`qnP?rl=|cp%wWTM+ifl$SBM<_XW*ulk+H8O4{+gJ5%;4KTi)Ki^o)l+qy-FW(pjX5kv zjYb|JU^Ga{1hkl>&s*p`amW*gkhre*o9HUz$TJD125w$;!hdok$Y|n+da6r4Z%X`t zG#Y_Uww65c)jk?lWacE#FA+DDM1CZA(i?#;xnsa+uj~B~u}slU10^@nAmdU8Pi2w@ z1ViSc2r7cm8HXye7AMgz%+(bkErd+I+QiL-QXn^lGc z7b7!-)Q?*vOMik?7PPmg6|7nJ5o%kYt5zz|TZD0pryy=;Sp|{o&~4;TeB9*gyTSf5G1_&fcFN99CNbXn$R-zhIqJs!_=D5Q+p3P|W#< zWq5GdXlPG|`^Il0#;1U}u!lvI8LEKou=Mpoohyn1{p|s+5V_1@5KiD?7GEoLh#JA*R*Ag!%M!d#JaX+EP zbt&69Rc1`dijd5^nJO^|J|wkdKN}?eYpoRUG#b(c2NhRU6##)O-IMM*843n18nFSb zosi1XB!!%Gcm3H^fjcZ4vg&xO*QGx$7(RBx=YOyK;)3t%H4}+}y8??y8FkpH;096! zH7GA7e&(roDKX^90{vQERs2jRk(C_gFrEXcyCasXvOn!npK zZP&Chh-y_iP33d&u)GhH&%s@Avz*K#j6DzIFv!EH0;))vQp`|`N;#$)RVJi)`VXdO z7=1;PioAcIN;)1_z5Y z@2mX!_EB_M$+!Zm+q;B|y32~ajVcDGA0x)w0;UZu?dOPb!J-_0Nf_Y3@*<=OKnfZq zHW+^qk zivDSNXxi7WnpPCxtOfIAOHj!YQ&i##-Ent zGbFR=K!{lbRI?>79b2sw@MW?W2F>Hi)CC!p<$>=6<-!vkAgz0`eEbY88m^ zT#H*y<0sUZx?fv>LWLxQYf6Bw=~;c?X;5%edyk>g(o%=nh!#A|MjPY+Z^TYI5A!^@ z2@S6O{U6>_8Q^u`KmC2B4K1S=7!N?;JkfvOJmvmf=ii=i*MV=7Mc_MR7Wgi?3H*O1 zxefdlxeEL?xexpf83%rs+y#D*JOsXNk&D2$ZE_I!wnL5s-*(C8z_**^GVtvd`4WJ6 z$jiXDJLE9%SHtUI3h&_nnwvRtrU=2#i0TlMOe$GlHq?1P5(Jb?-GSx+?721YZ(GAmh$`WD{G^Y;jLVO zWfD!&X}F!5roEyiUIlTGOv0%$iBWK-TxD=$C&T-#8rD;cu`lL};=WedJBT<<3nhr- z^e&t#NeDPml{61>RY5T(oWebC9uz7WUO?o#c$o#UGGBrOKDZ6}B+OMZJfMG-3;95V zSPNDRXK<@zc>J|=z&9Yn&$T3R_$8VIu@WRfe4j@--Z-n{duo01r;x;V0n5N=)-UX z^f*)|0@tO0`h>!g`=kiI(2cNUz6%?6b3)-6bCWh0EKABgXp&~3aTVm@f63-^6aa+A zQ82Vd{_4&fS|bv9Ll>N0szcQqHb*4&hMm!d90fz0rm;svHC1ou>`H&*&@@h2jzxbl z)*bn)S~!6ci6|4FuvB=0a*0jzHb?$S{ZaLXEy(qw`lB~&m-Qr2n~@4-xsb0*VhCm5 zZSlMi!ed)JwmtG!Se_gUWpkalcY*)(pTFk=ZQudHzDAOKZ48FLPtDPj^^e1U{y6&S z$F(~Ar#kvc)ql?ivc7-gS-{W-nH?tQF{EmrbKt95E|ie^ctbB z*KU*E*4*A6-n%@`m$M0onn04N{-i!BD8xa+2%jH<($|5&0}U$lClW;ixNA~~1Df$1 zkL-|qpj4zv-rxgOT%y$ijf@IpgsN8P?dft7Y8vBy(X81Ze3E$Klj2FDGhZ`0c_pX= z5csL8hxFNc&F+6GCE*FI+F($>b5YrpqkBR=DA|csn;KGIBEc09Tg0Ik*g^Q*9@w7c z*%UQejjO}xxjM}<$<7zBE5QsU8?GVaTb6I zV;+1lCy4yLUQ0oVt`D|S3@Wc)CAo-8K*qhHx*{;ztRjEs%Q(#SMxzLjlNHutz`|-! z5Aj|EfP(P%3V9K5yEhOM0|yYDVuKShtRO%h^tU=p@?VEzSkN}YAxEEl&^j~|3`l%{ z4M)fCtgy#RBEUs8~zMD0xm{DCKgay|t71{eDQ z_C%I~XVrf+6J5gtN{APIurt_u6OhR_ONoHWTcp5)t(GH2c&`Go^jFaDAWB1TSJ>|! z!{#Hj+fhC^1Su3>;Uv{Zgpyof-H7m#Tz)dlNILQpCSyR>qe=o_Rr^4?@Y~NI3$#oh zXaSfWG2(8$4oC!Qaj3Qx>0S{auoxs-uLIq4qym3{;;BZHBG6JDMFN0MrI!xgU@QUo zV&bc4F|1Oi;Lnj3>y1V*h=jEgitmx6TD#N-lqrB{NzYiLX_tZDE%z5|}_<5i?I(Z%VtJAZ~@vF1?wGtqFCYFEaW zqChztgjO;getdU$espqpdbxi*K6rm|d3Jv?J~_O&*nfREJ~%shcXZ6ZJ{})_ygWR8 zIevF`bb2`+W9Wwb68J9z@*6hxmp~^U1AldN`eFb0=;e6-{PlY%+WRFSJPd0fB7TFC zdDPLx*{*14)W!RE@6OII$ERnfoF0K&W(ac`MHjyv10AYf_6uKUWV^dYv!WF*qo4 zjX&#Nk!$>Xq`dSnFFyv6RAeXdiWHPGgcw4#=9vcelzNz8plG>Bj^?fEtCAyz&V~i& z2u~Ji`=>s)vp_5Sgl?k+s&eyZWU_yAp3mDr`xuzt8XiHog}I+>zLB#!Wcs&~!_et< z1MnoTLUV)UnJcmlQBC0I2$dB*Xs14?0xf!YL=WH)A10%bJ}L{&@-1-Z0EpMb%X82v z?Wg8=Oo#Je7DNdml!80P9l@O52#w4+Ena>ss(wtET?!$+q3Zo6B+06_(&Qog!} z(xG8d0zyia6{l@nsTeN@Wdvf-WOoByJP+IZP zkH&Dwe&?qkt@xS_n5O9KSh~hxzfRdDD$3DJV;~+WvcufpOQe5zocxW(-k(t|41u!B zcXG}0@o84cSP6ujasXNQdwXRNogm;~YY&`VQThSoRX4Qa;GW@<(Z+1`)q-e4ZtJ%$ znSy5!udL2@L6*EJ=J5%g{#e6W7`ey#P*(oCAPeSU5oTmuxse_);f%DDc#tQgp5(5Q zhq(%o^Y9>VlCOW)rvZ8JrQL(0!_ge|FmIW!*GWz;=;faGDFYPJ2U|h>N`K&o+Vp4nlP7HF{^GCr4x5lk zH1%dVVOwZMY8zWr^5_Fe)qX;xh2Sj-pY&5A&0=p(80Rv$Nxi@wm$I0UAWUrK*wLO+3(bP{|6u zl^4N$;gx^3mjn}pgb#Q@HItK#zR|vrgk0+6OG)V5=3C0;D?YRl?~_1+<^!0Gl0c@W ztA*s&5!n=j%qvR!Sn;tdK~;rcA(_ecvZP;;E@Ah1-L*-HlZy@xZOKAy&+eDLmXasn zqqLB{Ey0b*2W?Sw%bHQcrA#6)L8Jo4k(H2ARSkdcCnZRffKneLxx|hejk1i3_1Y48 zTo9~YF)c0iDxIPhaHx|zN`$E@dB8I8K3Ec37r79V(E+P1vSe#nWtC-@ZY`Rqz6k{7 zCXfTJ?Jy>jk^ec@@Uvv;CxJGpoM(f|t5-eTrZj!!7#mdIz1pERr&($X9&*+9fbCP| z+TVZMn~0k;KYhYTuY>AaG>Fk*PwY*~+msZls$__?!P* zB*&pbgf_to>F}0Zk^7NG10m>Pq-d(;SbAQE7f7zJsk?zU8DR}=8=W?T=&C54mrV#rX&TUMA zbDh3JI2Z2B>66bwbP#xCjK@xkydwADE&JGiO#i=-RARG@W|0f> zSD+o}I*?g|OgkpA?j6IpJbDOAxZOJsS%mx#v{)a+9-FeTOkrPOU3;}&YdnSpq4OQO zN8=J1j78o&U1ngzq6+5v=S{yrOCoWxU2UX9+Sm-+_O_wUWp> zcCP1JOCa8+l^Cx11g9H!S_e~TL#~;t4tBUMe5=2Bwk$;!Q-3*JfLrZgIK>Ty=^y*r zwI6G9Lj4t8`*YZz$R14jYdYnx>ArCdcB>0|MDN|_8th5sq0eZSDd^|Q-2Q}$h_!3K z#KXD6H3Cc2-ISb~3s&Sk9pAvS1) z6xj+L0OQPHa^Ql_jDpS+0Ai7O$aU#OiFkoo2Le3V)36X=sB#C7z=j*7Y{&5vk1~H# ze*F81hb+2AWA9g%lx}5-ha5b>o};^70*cB&1&hKmD%_I_%b+ljm3@k|6m-^y5lN-_ zd0D6N>g=MVLeg#B;!=OU#-r^O4dgso?Yxc(Vvj7zbmYHe1YbW1v}KjtTRu+i(bQF9 zZ}~N1kMkb=y}c#KlM8Z9>8Yho7I-A4s)fBdkTZN}ptR`KSK{;!b+j=ePuzQW*| zn#WY%{6QOX@8>8#xDpc>6yGSk@28MK7yD0kQ#`t}@a@b#8yIlXC>jTaFNqek`V9Sz_Q)6uFR zwOy+E03-uLn@58bpiI2^!>dJK*5jqfK2@KB83mLT807?Jkse)~vHetr%l*D)l!z(9 zP6LYPRvLc=6@OCQGE|s{sjNM++t+$1@C)GtcMtddZ=4a3p=4hq;2i{xE3x6r*RVvd zICWfo$xE3~s1I`Vc>-QuBmRU?MY#P({6G}Dzm|g~P{33V8m-r8yOIys& z+Nt#J|7WMtsnnkTnP(F1$NxSjQl%gM?epkp*Ljrl;{Y)oCil|gOJ+%3hFk!u8c~;d z_&Q6M3osnQQ!1J-=SN8q-h>%D5k&ASc4Cy_!I$0PG(CJGx{fA6Qq;5TiURADU{aJ- zP11h?Ie5^t=q4#6mdF6cpE58@m&r6rZcad^RldH`AHHNdWf;akEd?<}Jo-g&4I{eo-SPX^N2fb#F#h%E@(uJkn9tLAskMja=V#|- zF3`){zdV9kvMQph8oSF%esO;E^7Wz6gMvtBe0F;LN$QrDhp&!KX{IqXEQc2FA0MCn zisheO9HBzoj-HXC%U+@hx0K@`R8oJAdz06Vb7~rL%&a)~Uqs+nM{s1Qh+QWycnl{r zaC296@)wVw3xWr~=fQxKTyiE=o&3pTq6BscAbF`bmx`(<*RQJ>V=D6UWgrF7wZ@E5 zb%eDnjmAw?_I=0YKPGs+6{@+0-KX5%5WPb7tB^Mt#kv88&oCTCiIRfC*bskSC}J?w zj=clT3))mySr~lYq&^GYL@Y}-8li_IhEIbQ_c~$uvk|cWf6c`UC9t9GR5Ael0Z)R( zRBm#gWNBK-CrrqAjKaihi%*!6>o_QW&eH@exC*KZgQ{{rBj;na@m8=SuQqrvU?6OI zm3=y$q04WFjL276T?Dhaf9UgsVeNa#l z+%nLRc0p4WwAZDuqntG#NkA}YG#BV^BMmThvGamqUUptkcHZk;QW~u|f)i`v7b?#i zj>vEHX^+mCj}`r?w^BhG7s>k10s1H-`zbJenX*ADtD{n_t8)0p<1Bwo3p#kU<$*rd zNXpQGK|+eA2z)3>;J=CnXN7lCfG^y=&=hO<@Jo~zz!nV(Z~}z2kD2xdbH6SWsA?hX zl$d}tq|t~62|JM)Bx&)8ViyP*MULtvLe9CRzV&w$z`j$}Yr+92r+%P)$~E>5PWynj zt$n|S7t4w3LMPWe?>B!{y(;84WFIn2UpSrAmo z1_9)Dm-^Dx*R`zfYtgWF#2ZaA{(I_9cUbv4tNi=*n;v%QHwmdG4wjI#QN2O_s>=o! z9wVs_$Z=iwEI|ytGNgatQ@LN-Xe@H-K29JFthO{Nb?i;8^k zn8*X-`~LlaZY!XZBTdUiRfamNYXsd^_yv0w*)=-8?~i%$<1Kl{-IiL=!`6Ydr5v`U z1F@xY#ub59*HG+Tntk@rThs;wb9IfNIqR;XrWbTA!gp#11t6AuOgD_}_Qfv!p)%tZ zw}fUBe8QVtD}{d?Y^nhGybhr5xpqMKj9^oM&!Nx$`&6SI-E{vsPn3rR^)Mx1?GN}3 ziv_{Xc3H{0tmR!wd8^aV=SeFSgZq$9zCf8c;invjm%J2Va}jnZ!mfE3_fqLIz?}$@ z@|l=E?$BJiLw(RcEn?@3o7Zd$NPeML5!Rs?ES$iEsJGTmsDBS zSC-vZ$`qUfe-%x=k3w(sbNvLlBsZX7CzF1fXn22&j?HSZfM4T>1k9SGrdH`gUKf8i z5%^fWu`a=F5XAu0M|0$5b!6@m-%ZRs&A<<5c?5pJQp5pRX1}22OUGducZ?%T`yzjh zfJ|j%N+YE6v5Z^LE|TLyeYL>hk^=n&Ekiz4%R*+fkV<5zuV$4&$6{vHVt^7Wi@B*5 zgOPuszPj4Ev$B&m!;j&((3V{zPiKWY7xA0HDaJF z?}3(Aj}P_L1D02dfbt6O2+E`rh|?QqP)s#w%TtZyH2^Qd0Nqpv_k0_HkukkpB9>>r zpxn!HoA3)5eKsL|77kN1y9vKm1F3}Sp3{G?*9z-eRxOjNmhq}(BfY;wn?W#>E(_Fm zRu0gusx;giM32eJI+nXGQ-eat1?bjqgIusEE1-XqNbAROme@ z%1d(QAJl1WoaO=~XTY3rdSlR`LT#RmT4MpcGd=xra&1#D1OTn8=YL`rpd3C72{3-h zZ`3D3!p?qZ*?cE5#g+pu+0rfXGdO=&I6=tUCU|?9Z}qch0^2Mr4IERk-jEB2jHzfx zkEA5jOO^UaUlo4D7=N;3sR}aOo?i?K53hm69ElS+X->>(ecF75+`4>(+!b`+u@6EH0VFG&X45Av!PxZD4;pfuV8C+|U5&dxT#75s3E#LQ-jfVOo z!#Qu$_aD_CWsvj9lP4tg)!%QA;C9R-H1sPCwoC8JXfDVXh*(at?oqe=AQr^NKiB*MM32>aErs}^JO1owa{45gq(~3B^r2O$$GtatugIE{|tnZB=(Pj z;S!Lx;vx8Jjm>zy?vkz#`uC+1yQL4?M_%#E%|9N0xGA3aQbLo@IT>cla6-e{I0v}cya=ZT2tZY$empsTQxpppuIj*e3e8|y%%(vR0FEfnyuU1FX%;i+M-(9u{4IUu%VgKOJ-X6xd-)Rx7ZxHJv$; zO@%L-2*mJGSEWof+Dt#=f^J&O=~xjIOM!s|O(6xdj*iotn{aBR;7pZpbZ9(*)u(ZK z6D2D7YZ+$u9;?jzEcO!a0_r?n7Tk~J^)im%1;u|1L=UAmTsY!{;#2B#T?r4&XZRft zq=U4E;ADl+M~{cC*Op)mWa~ArBAAkRDq7{JWC1Lw+)KAVol1Z_y42B=xWdY=^lu@# zEGjDfTgd%e?c7EKx>bl11<>&%3#VaHL_wSjcWbpemL_RnBgB^LGWJ*KnZ#3V(8H&W zN!WkOZ4}ZY zD(YAM_zb3+0(CdCWgPk{I3P=>Q&pMz>PdfFaRRetwiIlqVm3Rb>mJ*dVmqegwqx6D zxkl4;tnR*)%yyKH*_yd#OU`U5_RMfiyA>O@+3hMV)9y&|hS_T>)^S^L&0f2yG|gs5 z>6&)OmP>9bU9suvjS7fKufgZN*WaKL1fC*K+&8b=E(;i-PS1^9({8q5wl+JJBps^@|6-%5G%J(0V|5iPHkwAWo*v_lJ7!CM<2+o1LD>+jG;ADAr89HQp6k?>g57h>rVYD9uMN}A zZC4T)FfE|3G2YmU#{yt_%?;aDob69oBE_*|wtJ4!HXXM%Iq?(6rrUI&wY}=p!@Bpx zJpalfni#g(YB`E!IA*U2oo9czX1CQ*Y_n^3%Q1lo)Uge-?Y8&Zre#5$;4j-xU9)F* zl+GL5F?;)TUD74sp17v1^nw_LAjw+Q3ZwP|ify+AHfxnpw4#W0ec4oQgKfAl4HW{Q+iT^|OCwi#Fn3YQ&2y z4W^SIug*i)v|0-M2|7wgtbv}{t1j&ho%Tw%JaTN)t?vIU)!Z>{$5HTa&{UeD(3aV5 zwJQToTcYssgkn3U)p2(0H*?I5dFtB>6kV2}$R+U4(9V=9W5|^$_XJvZ1OC>&(!tr* zEl+Z2zFX@g{G&)6X;gnYl76J~aAI3ZH*ge(pDv1}&^LO*TXgWo^589RD#O+^-B!zN zIn`>m9oKYSH#VJ~ZT4F2{jy)WiaoJS3)^9vy=L2VdR>@5E-XYFvKWvhkk?AD)iIr3 z3>$@Fn{LaI3bb9NJu`Pq_X=rZE7q;q+P7ivF9Th(1#8*8wP%0!7Kuc|%~nv$MBi@9 z^w4!szEP|P_%`bVwJ@k^8+LKa?nes`Hp}UD%r5i*{?89Pn5YxmbbBqsbdgkYnjOPz z_h5T(yG_IF_FTCbI7qBcbDu9*Xo20FxMr^hbQ<(?7Z!i2(asImw5+DlHahT6frzfr zQQ8w&Ce3!&Y}**>DmK>Hg(}Ytv)OZ@H>_3wdz~XT0Z`m@dK1Hh>w#myz!|39X&a`~ zaShXLI{{oC1hL^Xn{eoLV$-r*!?f&)=`>-#a?EB6&dz4nY&kG6uH8E@J53k2o(^u( z9cWE=V!?lr+J?iW)pd-H(lt6c)YNvHN>_mcx7Br&j?q;*K~L$ix;mx{z35u)iD9-J z(`mZ~9F0A*(}daAYv%dM-Jskz?Y3gg z4Va(M?`~jrT4tvuW}wwIEyp?Tn9WW{=>cV}w2*%g>A<*er3R|lY9F`FUI#j*Rvtul zdWLB^F$}z8G|gVGT83%C+Ok?~%3kblVx@U-#P8D`o?dWlad6`9)tp<3E!qzg&kD+E z2v=qKb}+XssC*MT#Izh}J@kCX1=8MW8IEc7T>RVo&$k{@(Du{jAIQzemcI$&>&IJ< ztLlHD(q6mLUYob~N1YtYg~KhZR<2v!oo&VX(5q~gPRlWyZZn1r&Z)#Sdu_w)w!6n& zp!w|j^~-L5bvWi7qbm)lt#qXUwZ&olS+4(LS*d+XvFf*|56;Z~VAc(Vq^I}gm}BM0f<4i74yG}zm1H7yQ~-JE|J_J1m()>1g3b}>2LIJbuV?+4eu2B)O+ zp?V{2!8QdaY2{qE6j+z7+fFUCi8tF>C#VM7CT`%jMm;^WPH`VjT1tD1a%h_^r8RTw z^aMuS)`NTS20W!&cne}4PN1yz7R}?o|1B&9OuWcfeMwX?E=P#BB8(vxPx66ymgOT9iVIvf%(#T4u*?0_obNCA*4k$rV;w zu$={zodf^1jrPPcnsC)IT*J1Ewqbu;7jV&RciS*gEjh8mHoGr!AAOm`!5qaB|LTbe zJfr|<4frQ`PiC*zicJ^Dy_N-c%9cZK+HCUKiUrX~M|SqB*@1U7rx##GH&NQjQ8*Qa zBpz+e%dfTOzwmH8>0k|QTU62JS0=tcDb`8HgeBbTwd5Yco!rFh^CLY32cLhfSZq=s zN=^gs41Bey8KES@&>&B+lMMiNO?*(`pX!hV1(>7oqp$`ra zW`^l@TJRybD_Bj#Y`N~kNe_;gvS*FTDu6XXd-kZ-vlo9YgRI)Ku=`0jC0ns?ZKn({ zY{h<4c{l72j-0`;A5I*_3OK*QG91N$GDHBdGG^5P!};LIIgBcg{C|I&0eUA5(9h{I zOM>_k9V%6bN!zLtEqMCQoGnR`Q(?bDqPb-_+c~#oP_6$KIV*d;t5`F;oL10jm1zZi z>b!B~cLNB#nSEPMXzX+-Mhd7*U<)Sn8&`gZ74XKE=BEwwwNf`*X;qm_lt6FIc8K?! z8o3GgBX?Ks?!S}!*8G3IkJD*)CQZAOG)*pwAj`MNkhWqvoo--uI%bFOwQwWvwz^8k zbnqXeJ-Qvb;1i(-uOd$ocLRv}D5OWUuNr1XH|ZJVv0%f4sq ztPvI!O9|@bU|oM`y&g_%U^Tg>1&+Befz7RtJp7a(0$sutGYWrm?dkSWYbB zC(sN7+tapzW!7zrV%QQpk(SumvWUaFl*NUMNUztNz%hSfn6BG3+i>LcaN@v+n!V<% zW7-{OV!AySB|W{aX}8)m0mPfF4wabLW*5o>DI7k6+^d}%w&}DTSOPd+JRHunP8&W6 zhZ&S(h!Wp4&8FR)0F$+ez0>O%@J*wv)PZAm+72!>oS1k(HQ_F1wv=v;-!z&mvfDK9 zn{)bwmeqd_;1G8?*VuG=J=1nz3AcK1YC5eR-o;xmt?&tow0b?oH9OF{w%t;irVA6w zYMWNaHSIR=SlcH4#V(teHgZHwxKLUx*MyzMX`3w@&TrSH#Q<&LcGxo(nd7YP8Sp7X z3a{0fmNqlsQ&sL#8~FU&67+2zM|>Hyw~f$`bKXkQM`lUpZB%XcAf0l>^*vcTL-ljS4dk&MBNsg%1ucT#fHYT?RIRKEz35$ z?bg1~XHi&rv`*(zoh}w(I8D)(vUVeLwpf3h&H7Yz>S`U%37pi9f`7LKsq8JdGRK`MRekHsWUZem2#Bs9N1>o&g@$p(H%6l*=aRlzk~JT_Dr`Y zm}Cwz@j)=(q-4;(336D@UI9`HbSc`s*acQL-85^3SRjXO+1-b4Dp$14cDt$AEwg{y z?MdvTp6R-6)3!?<5{T+xyKb4C?!(+@n(cNAnQ`vE4a_-({uOd!YXV9WZAwhJa4l=0 zo&*qaZL1v!{=We_aF*D2KFITEnQRf5UB%`K0k~%w6^XpkJ?ZY)5uMs3yEUBZ9J7EI z;Qsx5wma|EFC}Jcn}(ikO?+65-;;k&{+_FJLDti5bx`x5v$e@~fJSQ~(b}|IwFS|k z8X}m0Cfi<2u({biSHZvA#UG=hhwaurUaBp8qjXw0C`Q=z>{Ju!(acim%2onexf4)i zLygCFYrFJgkW{)__xmll=cHk;5zg!t@g}%{3+Q<_AKl6X~|IFL} z1@rcmG;c4{o0~X1yS}a|5-O$s2OcwTxL@Fe+O0Wm^-Ao-<5yURklRfaz3nnm8t{vImNAUUv2lcSL1rMs$8!RO(ZhE z%A|eMuD;KlD%TfP(<>nlCr#6~X=gW0tJV8pyEVpIyT(_;WXGVz({+^Q!wK}AJG1Q% z&djhm^XYwMq{14bA9${&<5Z=MT^Cs!C~TEAY;jO$rq%1huFz?NxZi)Rq<{-V57O8@ zRG)1lZ`kRys|o|nj@faVZ#p0BHr%2dvo))$P&Pp~rsFh^so;CtI*(J}QTnEK*tNmfwE?gu!bWs14 z2KD2=EY@t9ZVM(`ds{i1X}CH)SLwz;z&26WtJ$vW&SFAT{IEJProeQ&b!?BjRE-rA zqPAVLU01nf2^IV}o5R1x{*W2ks$rsn8(YM=QxB7yILc@0hVXxAK=BsQFT-V#Pvq$9 zOp1P$1^DIPK#r;#tb%6KdAi{XJ8c9=yIl~89L zQUG<@Aq9Y|4><$4{E*(K!M*fGU3qwW_6DjYS0J23b1;8KzN;I;o=#JWj=q(G z?1W_ZEV2`l-Lrp0iDyZOVc%P#{YZ(nDDm>{Z&uQIq)2B&7GX9Cld^K`T@^7~)#oYx ze)X^Ji%=9p5#`~pr$U6fA)li-eKZY^Q~{3YCU`U*k5o5g62^J7%y%YZaq6SB-E0IF z*)OrrJU$DMU%T)76qE123Zss;g>~_Ov9{%SFt=~RN52kZu>JKS1N2dDHa?N3>Q#S`DfEX;5@SA9uA?vE)F{%0a&=>X zds(9hvmy$z`}&7@gEu5Ci=BYZN|c0|aUCxs80AQgjN@RDhy1JjT_ss~&8u`E0%2~` zu+!jnKQ2y!?DKM=Zb(pXhLHrfO8IEylPry6-j(yvfWA@S#mMId@Uv8a^4MCp>W0LV zudaXQNi`Z5aBaD&WQNW8zvLENV2z^W=A~F_)G$>n)~_wf-3xg`mXqDft+H6-aC!yn z__2y?$n@)Np8vOM^YwqG&5NC*Ka&c_$-}Fhhd~B(6kA9)6aSZ3yGytY_Woj_k_or2 z&%M=YaQh<2JeEj~;d+bSWlT6X$a}+{;eLPOy^jgSHo3Tq&_|6|`BpU!e18_Rbeems zDM%59=)ajJnIR!z-A04Y)lpC^E8WAH${(cwg!v74ooGB|9Uli_k;>|))aL~O zkRk66TC4#cX#OA!A%8>OYS_=xOelYJo%G0WF~FA)+v)21h_sqb9s2M~M5?s}KN6#n zPA=h;*gc0UQPq`G)Bg7k%4GsKJnsX0ujr9@XYq!>Zi1%z+A1&7ES%z3*ul8b%Y_19 zlUaBjW;{&^RDlyk$~~wDcz01UP4B3izLRho1)8cYu(TWwv@|pF2_{tFbku)UohA+Q z0X;4`d4iad^y{I%qLuU!L-Jq$!Ze*M!9kPB9}Z)5*aQn=zbLZkYFUI@?HDJtUb^?M z<%Vq|pQZmFb8p(+wvj9he}8@jg=iSSYEqPw%zH1CHjgaZv17@bWXBFKM}mN+2%7{D zELu$BzrUxdS8SA=Wai$J6N`UnG9M_PM+Ix5Ka(1W&J6l*3Z7h^4mW zBPz8-qH=L;AWd^^ru{yL;MQ07oF8o3Uk8eoIV?i(G~!cG;kjT4T_;M=^J<6o+iy0> z@j3M!?Aj`rBE}-Q$Gv~Y2kOy3qNX>NLo!`1wX6^?OBGfv{B&k#c?B&(i+o&=$!%;a zQt;)1OwMB4Q`hQ6*jwHX_Igb;Q9_tQ__kPB!hj^RJJ+xcayuFX}L9bpV57hz96y@+gwMDaCbpec!;GS5I&+YoyxXX!AG zR0Jl7w8W1}r5)O6wUijCtrdvl^o`9#@wLiU3->Z)a!jwhg>5ur)+rsb$9{B5q+E)e z1@0=$J}$kiMoE7}@imEjI4t=h(l2)Q z^twHQ_)zlU=Lqg3NoVP$cC!Up#FufAyWWC8sH6}>9^gk3MEYv$2|5A)(9r*)05xT^Y*-aeh#9xNYM~4O7h9aW zs_d6RCLMeEd^lUgaSE{s|FQSqB&E5{cK1djhs4xQ2f3Z@{^$&H+y1Wy>CWB{&hEpX zoSnV@eh`1{?EU2Yju+xotn(8${0T-k#$S zkA?%A?LhlKIy>Rc!$G>kn|J>4|B;OTu#?-ixAWu3+5PcHK<(bn!~Yumu=gOhv)vzc zcxeSjBpd9Jg;V~y%LSEkm1_mu`YKlnSWGy?#{z%8VJL>MAmJC3Rrv`>x&@^*PPus# zMc$P~QlDecAiT0j%+aS$RssrKHWa@|RpfM$dXSGik6mlmB3wAV5>ivw;<5u7u07yWJ}9B^*b-UWH7q#TBMvpng#OI zG+ty@t0=Tv#NQ^XkG!k!l82`(ImnAOYn_s$52mk%4u`MYPkm?PO!YlS6WY>}gY27V@B3g(cc^2_~Qfcah<#`xgX1pmyLKc3VguH)a z8WnlHm`f(w-i=reS->8`C(?vFED@ieTI1=D*xw)8RW&iM)>6P{r|$?*j4DW`;8B)9($2@ z36#d>5$2O0_}%gYzgw!D+&tANSq*#!_ z6|*p1UVACqEt1RB3+}fU&%{UX#W(-%K`uQ=>lS&D&vsLG5y$yAfXqAo!R9em#u?}v zZdtqGz~{PlyUqTN+YM;C-Rw5wO0s+46JGV-z3@1!KXKvyhX!{4OZGoApl^S=SntMR zKXM%Q zNL<>p*e+BpkpF?C555L?lMA2R`sB=? zk`teT6&Pe!IrOOo)?4Jrr=Z+Ok}$e_g9&Xii+u5^1tU#jsC(*DD~Xc?=6wTQg3g6S zKC{RZpMLd+DGLgp*>-CZIX3j;$oF!4lJ8gpYv;r#{Kug`g_LiTsY9OnbTXCozWQWx z?N6P1H%q!3K7iF?vp9cc@0b@@pk6svMIZ#vajE{0C6w&K- z<((+i&Ah*(83@SV-jwl1H}~0S&MKmS&BBNUI(5*=+zaAs$aC87+b!Mc_qE>i3z_NQ zH=hd22uyx;0z!YR%pxoTLyiD5oX@?Cxe{V#Q6-b4+y^k#Wcy~K+I-0Pv@%0kS^qQu zLqNR0qWKWzW|_>JmePFaNd=`Ujj3*K!lwK0eLHsg{b&47Efqq{n;+V-@C2O&~1RM=#}& z4@It*c!cyMd{bydjLO(;zu(yyzE^GGlS7Q0rr!)5X?52T3YxGH(rUwe=)<{}y}pj# zq;bO195fzd1Jqo9OkjHlzMkY$YFPwSZmZG(m`gd#rA?TVYZz8xF7B9J+5%w`hDw>e zEORH8(DI36IW^LTe5#iyz#-OkdxA#dgHFe1N;-)US#fo|`k zZ}U}WRETTibO;%84lY5}<>g*AxhE$2K~+T7?;oV8cRLJ!GyH4Ia%U`m@oeR-dCalG zjO1oeohc;p|pkuGjFnEP9T*3iSb3 zUFa|P>-Aa;%cC}4XJfnsgt?eAyb80zTYM125y|KlELy)Gkp;EWAz+#v8#3sOJ<%?t zo^VHwvl|m1s^oD}t8p49SRo_@6%*NwNkHWocS8YxEFz0eA=NGcA~c^M5$G;<3c^W4 z*WU>^(p!)lcR_Alzto$=3XMo%!$6f>SvHc^)=VWc21xfV059N329fhK-NW4!B@Qv_ z@KFv@Q3()`SahucaPB9*BOmKvB zBABv&L#8g7Qf`Ea`}+OQz8yIVJMIVZif35{=H$d%auco8_$;OAkf(iwSL<~;oX1&S zUeCh?R4ir6Iz8T~FwQ5ZCoWljD9jBI69KkT^;4t%#L9tgfb@ru3^AWu(_t6|?B?~% zMv~EaL`O!JHRDrT0B?<^bD1&!HgGORAqiJiNFEJJ7Gv0&C1lnf7$pUGl z$`aY1#Xw-Ckal&}YaFVPkjz{panLRFV8FC~@OCKg=dlD7&aKp_;S5^>43c!Sm1-HY76yZ4g1!!!rLH!bc-=#zTvfnpG!;947?86FZ*es1jD>1vO0r89K zIRw^Q^4)rf3=ZJfy0KjA*2u5t7xESqJ^TXK;#;3*g4Fd26YLua$X0;cM*_ExBxWCR zygn+4d4PhVLTu$tTFe|yK8dE3k(`raGO1aiSQnr*+n5&45V!Fxc!O|~9PSQ(XouiM z%_(sb(x^t+5|2j1WgLXFkfj+AM1o#^jfXoU8U5tj(Gaa^5j&9uT@-c(<|C6ckZI_B z$oM|+>%wv^ygw`e*s$OC_!x`!9QQ?Gi~PfiA+#B_WL=9&E|HB{Gf5mQw4Y~WrH1L| zddO&`0T>du=d15Hr5z82`3Nw7Q~_m$9Xe!5Ekq}a@s;nM`DCV^FMRjbCkc&sM?=Ms zO#JCivv4sTc<_&W!N?>^kQAYZ9p*tg`GoH^uwgf8}L`wuRf z;EA#-oyp0RekJ*kJIry2pkD{qkmdVcT%m$I33V!eEuhY^umk3+GeCHpT5crr%YsF> zm7#D%3klNo+BP{T$?R3l(^ChKbzU^NLV|2goxh{0Q(;glN5E2K z_xg&ZvqgMe;bLY*7Z zuMPnc;8$SB0xb|vk(O}8nYzIU^@cZOrZ;&x9=S`BP;Yok=DIi;kKBY@wjJgWE9UJh@_ zoL&xZxh$4?b$-~ou^e*IQhsYWMGj@bZwi@x zr4$Gnlj7jy(N`KnBbpxQ_q7xQ@)h^{_6fDPJEhS9FW?;jvqkBZzh2w$L;qR^Q z^!p*D^w4+C=!H*z<^yU6{XUH4y5GO9F+}5ffuQ)^ualFhGmsn&nLnV5@t!-tyw9>f zTaEz!UKkzU(p#U*zOiG@M0}kbV!!xAX0ls64M*e)t)X-!1@o@N{@f7URZM^o7{=5hBmCDZLn5BgpwnjwZKLdZnH;)kf{>w&4P+Hs-|H z0!%`!o!O3++>oBNGlw4zx+06WKLm~Uq&IRba^yH}>i}~-K&+0V%J~>)y1*DFJgP*p zmx@NIN^)9%XqAeLev_Ehye+{0sDXrHjXl!!Iz?JWAtg`04A<+BWN=fPNNS-gWb1WC zd}`1NpL{zvDIA3+-C0q6BczLBZuDrW{DACKYeL6z=s;9xPE9feLc40sx=^TBbP8&0w zq3)~Ca8~yu)ucv+i=D(tjA=UL*Aof#5sKIAn0OQfzFGK{kxakx)@zR};C^fz5@Z>a zelZt+?FwzDCWT4;jrdw3;IQBK+Xc{V9%H;Ii$ua@m|PX;r;_#iiAYj{kMM6HiWVUDYpe(anevIo&^cXbksoTpUx1XCmw)2rhE(&=9Nn+Jjq)*vOOvs`p>AA%b!3bL zK(JmK1MLY3MYE1r1MJ!@} zijRo(ofIFoi7D%n$RT{>3b7VWWX#+zg^gk>qr+2E-n(DZDomzQg@EG%q(Lc_@eQK7 zM%&R|#n8J$LfF6*9BJb5Bvcq8tdWxI^<+wp3OjYisXLiEZb~wm%i5ko5b-#3Gg*9! zbMYK=GB+CqK8*0A1vDib9-u1u@nXY&n;j-dSaHVK@OFm@YPvMKcv6==<&@Gd{`jV_ z+vry=A5Cd2)-S3nI6{!!X+8vzugR#8jE=~HqC`D*Rw0eWI6WGR;o%nf6!awfw!dC) z`KBN<2fjF?v8fGMsK?Vdky3S`{0OC1z#}(qwu2{!+`5ahv_VPjxPSO|?z9qr>!_XD z+9PJ?O3Vv-8H)ezFfl_=MMQWADgUG1;3xr#U@vN4iFJvFxOeq0`6@x+I$(^-4wp#~{sS1taW16ZtqS5lIKD+C8j2ARb#Dn>4#+DfQxJuJy9T)gXi`7M zWD-r$^>8wpl8lBOqGrArh>c)zw0|lbvtN8WMj*yVpmzCLc?;$EQx?HHamw%||E&t) zHJ(pw5l;v&a8SC9-FqZ;RR5Vcco}bgknxW)dGa#R@F2tSWy2e)s@zghsJH*1CJ)oJ zB+#-__E?vP#p6$4YJ;kOE4+JVg?a=A@@7Zihuw!#am-H|u~U&){Q+|Ant z6GSg#y({0%>57AGG`v+c%l(U#d0+Oi(nYnBYPnMBR#Y+ug-5}xbEfMkL5opGTF=Tl zyt}gGw?a5xfb1D3zb~xVwx};<_FNq8H)Z=`#-5n*iSOnUe@fwhpMf1siYY7*{&CE) z9vby_YV}H~5Hd)t7n1y_5*}c|A~et_Gtj$hN(;uuw!2(#pt)8ZjSF}ZM(z_gAf~w;ZRUPDlE-9s_{`kgsPknNW$HS0M zoaqyiO_K42y9ABF(*iWtXU_P{Jwv4-yUCTUAE4hRbGIM`@f`9M?|1!Lokb9?9u)RU z8*_anqLzD0)XEz;Snpa~I^>Yvw6OiRYd}3!=5%So>clY`Q~lCeic(sKMmP`XU5* zZjv*A)Ap~j&KB;bzn~>HGLcLrhZTrt?URP$5Yg!Y6f5jjv$6i8C z=+=lF(pw-~kLYOs=;vFp&ih9@I~=!sp|_KNqbWIs1N6lqH?aF(U_(!Q@}znv8#N_x86RjrO+(14MV?C8hM(-gX>57ehF{ zMd=|b2HNisfFh$dJwzK2uus?;nbyXChQ^*>$ktRyQn49~hOVWPuj^8qnyu{W#s!_> z2o5M04FQRvEG#2KQpD*5q5j+fdRs}11oa_5+kwx7#0d!xWz{*nF=Ug+rpWIKorx~c zpJS)ctJ)oZ@x)24 z($lWt1XY5Nf>$yR@)m5?g1#;>E^$A#@X`*m20rc@KFheDj7 z6huPh_cZgpgvnB$gxNd!$#az8f|;vv~A?Cgtn~3T8m>>ML;d81eC8x zrYb2_ln&>GDwY%%v~F8}aZ9%@$Qc-yUOD8NS~ox(oJm%eeBBK8lhQf)LZ$3QwRJRJ$vt(Ch}c2*sI1%Js7fPMX;hLUFmuXV1qtK!;tHzZqRSgi zrl7SNl3O7M$tUEgkma2T8`lH%%xzp>sOP$@kG!E@CudXgn!ee8xtu(ml4JU2a5*`c zl5IL04-O|Urn?W_5qU)~kW?R^OkPY~C?@Y@5!P}C@P>S#bu&!z9AsV}#;mYEIId6t zjHCi!RFY@)#hGv`>F>aF9Tn)gH67ohjyw_WUDn-?=`)z>AM_ba^gWo)jtCC_`Q*ja zA)o0j&U5$SV0-X?e(-qkMV)E)Rjq*hMsLRhUVCSI=l#wfJ4WqywF2^qHr*7nqG7x0 zkYDJhvD~yzT4x5f!JiC88MhUFOZgpQKM}g9Q>l46ot#ab@e_AMey4ACejB_cA7Q$) z@mt@1P2TK$9=sj=;<&HL8!{XJ;@ijMcgH<;_5mp9M{YT#HNEo{MTbUUli_LV5OYxV2vGFW1wodF(W<$xDDCZ z4j3$1#z@Y8NWtg=l-ARH?{A^gjcuyf!0GA; zd>G&jI0Mq$*`nMC0hM~GGdBCOW15<#A4b=)R)3c62?(hig6lZ8?E(g$LqrV+h_2jJ zS{FcL<@&HXE)Z_T@P;1Zz|b{s!6neX(e9RE;p$I;UGe>LW#npi1C?h_)H}QNkq@cgVIuLL7mi zHYi_}XEaD5K-k&u$Kc2ZmQo^^EK|~J*4`k-+!cc)s6{0mHAT04I_q`Jb*?1EbN9F~ zO+!_X4|NRP$+V5OG>+XLg{?*0jC$#1!SOYJmvf2u!NRK;&d_K-`kC!VJ39`F57h^g zNb(t5d7aBwvVbicBDS|U%CsL^r(#6)ou3 z>Kd!PR=!3ChxfQ}Robrx`&PwGA@4jU9?4pFB2ELAvf$X<5J6lwt(_kiz*|*ts0%iK zKH>^>4bFlo>)w)Rwi{}5+f(2V$bwF$#HU+(gqyqN%*`OewV1W$0hI2&gXPR5L*Tg4 zeqcL96*R>Fp?*nXs9CX(G=vl`_clG{1_?F29TwNhz`{UI`xG!PH!t)E2+f-p!81b> z(R=RSQ_--|6oL(rje_mxu>wG-T-vsOXBa!Adj9%4gbTsz2zDTx0wy^gamB2w0va_9 z_ak8XJK-o&8=zD@4(A$MszN!*@sCqFZmxKHQ#hXBo*W79rYS3da6N!M#CO8Rz%R z!}J{9akn6Cs+Kh@-<4MYgQ_LTq#$~a80tXdL#;r&@75?Vs1k!rKy%ZCQNkYgJm#0{ zXg~eAr9+{7Nq2S}SU`|6h#5$K4A%T;l1{;XW;lz`zEA>+VI|=Kpm-#pF_-JKz(|M& zhoJ@#2@VSmDuDqirL$gVPRSM->ly2t(g7r;Bpft=PBXy42&?`kjhA6oyFQDd0Y|n& zn4R%(H_bM@_1gAmXG@|G#uYEFnC(DzoXDu-tfZX@VRp>(qrd?tUg?m3fMt0a-UM}H|K$j?&7zAA@*U>;IRdHt=<&XP3FFc;7^IJ%t7S*f%Wnk)axbOUuoZK!i z;)RN~cIsWK6wb$gaZo_KOUEH^3&jup4)h)H6P!qWTL@NVy?$G8MuUi|5-L;rwvhY_ z#I^A3X)D55n^@TtR`!Wfy z9z!$?*n;Jl!wBzg90c|tUO?JD^0A=Yl@RS((RJfxK^c92Wb52%hbJfI?;%$zA+uok zaC~P^{`EhZ_1*W=9S7Vv#N^Ju+g|C9fW|xr)W;n1EB3QuL&)<0sjbix#)fs}zdjZi zek_1$TlN;jvfwfFw6PloBU18lHvEj9;CyJ4(Nu;z!gmnO@ANhS`x$JK1w14Q|7HyJ zT}V#Jea{uAh^+g<5%GiX|4*jH77~=Mly&^Bllv9 zQfO!R^yumF(^scwuUjj9q%kvtBRSP1W=6~;xoYi!4#y(kPFrwB zqZR~z1=4#pjzNZ_pG62u5(X60GL^&&#DO&BbS24n1%UuQzvU-PuLy|N>T4~Mazycf zpDxQ8SH9;bWf34h&D)ob1Dz`!gefWb5P2fioK_OSWq~cMP>h`9uMUo%q7}j{0(pw~ z3z!1OfvKrx9=aXk8w_fkrv;p9s!O97qO~u7LZA0(%XU)IXbG^YwTQidV-YO0R?m`+w2?Jroq(pSopLU=xZ z=fo&vkk=(?6w|u+S+#_+E4Wz5pI8;s8R0LH09*+EL~d_G<|DQ8xbWw)C43Nnec*52DE{=} zhJ*1XF{Fq{MK|I}d?cQ*H}M;nP(P|>E?JfrDU)4`M>Q_-%m*-w{Q@R(u_$0wR3(%} zs1<-8#l=9SPKUV@~NTK-MY*3Nxgj??N@HF_EKxK*yWs#;o-)Rrz|Y zE=1^K5`sEoN)H2@qiG~ldSTSN4L~>q(=`n^x%))QAiPU(inj{SYHSoheqOmEj2HF$ zTlFF%?q>CKB~IeYjM*+Bu$Nwap#Fo7n2ME`okYk50QeN1h!8+5{@GtOcEwk zm~?_&4C4q4BdPp<(eKCdQV#%%JfiY6+etty2>QRI;kd3Ks_Bh-DR?-`OP4j%3+G(w ziBt%`kiC+|`(QgIavJY@)H4ZTO-^M%PK6)|%|MDNC-gM1V@N<@t}K}BlT^*^NdQ!{ z%}6{1Ai$wR#ApyE*&dn1kh}ohFg?d@H{VymO6^n?J`L=Dw9zx@6QX9%spuKwmSDe( zOj6OW=j<=r4v^eIved`TBTKn?FsBvj*>ngI#|?Ex$aAgB(AXkYCwoWp56lSqfb zMb99jwG$41!^mG00n5+`K#ks0t3te%&F?WF>?7cM4ehc%tZ4Ei| zuYD!4*TOhBQBN-`>bDk-gL|?7&6;o|*b@o~KA?zyq%C{lJ9+~nwT73thWi;}IJHx; zvtEDUop>bGJC(NX6sivpwbt}-6*0`dYA__R#BOCt@-)1>WT`|-cP%;>0mw@TIaAIs z;8_cSC-C5(3^)kDBI%HD;t5uno7QWd3nSVz zk_dZvZ&&1d3x_PEwSelq-;ewKxcU9U^v`&T#{h01%>l#h+yX|qih;#cT>8*E z=;Yfq1&pL*#S^y`shAs=&pPx`Tskc|HVy)RVZ>tPX@P<|Rtak@1WaZ*%Ey3~;hZJz zs?Po)x=`=15&Rw^`xc9Z*_IYC)nQQ8VEZtC8O!G6^()TF+5z+9fW3eB0{CqZ_~yuc z@)a_CM+|$R7eRZ_p2@-B_bEtv8GUp<*j}+}h7^$VN=MTGrRkuxG_y_MNn+I;6z5WZ zbhN#C5umgfrRDsVXf&YXE^TUoOWP|SXVL~qF4(G6;#W}OSMo1#eJZF#mDU~UQxipA zWFS}Esu%Jce;`cMn6H-tvW%P+V1x+6Xo(g5*G0CAhzWW1{i1B}*?EfBX94GhBZ14aWips49d?=xvK{;D8-}&YAy3 zwMtmoR$m{XMnA+9O~UGq-vq<@-q<;E>j*aPO4>87Ktcxt@wI$%C>EIvheN3uF|CZi zcxgBscJ>5lQq*aD&c>K+rEJcdo}7P)z@7$h*zW&-WcI`xd<8932qAZ?$A_yv*mdt6yL@_+KsFN$u@yRw zhD4YLhelwN>yrhz8|LwQ&}a%&=k~Zly=QH&($eZBX$;xs z1pr*K+=%T9*|{>C4-fvGfOQwBHO~GhSiufOkN_>yUM;1F;M-6Hsf_ziBMgoIUI>+q z(f99Md5fFM8&RugeE2$lJw%niZa~mP65Ydx)ehEcfNFSQGtxNfQk`UW();lA-N}pB zuN3aKP#|knP`ntNs&jsk4aIqZGg6+LwbjPz>awzINPmD-AndJPo%8J#E5!$@t@6B- zzO7s_1XpU_RO(f8#B(H&uh-UhJp7oriR+)uQ#O;z()D^P(wv8X^&Q^!QJqVw&}Vnm z$1*#jpdnX!iSKxr@N)<3g!_H#I}9#8j(`JL%CvKGr^lv(gWD4_`iSeIWx63^Nk!kQ zfUZEghL?Y*nhi2*D$~p1P-crW5N}=LA_PbTqG&<;uOoJ67k9L(n@} zydw!yP!h&PCZ>E6UM#}sk~bgi^Q3|1c!iI5H06mhTE8x3jF6H<>?W^v7-<9FZ|to3 zrO^?Jv4J}}6iaSOg(r|eS>+40!YDy`H>e!ElzFCvTv#N3Sj3v--UTY9rWW~r;&Vwi z3qs7dLpf(P{eG$d8&LqaWRPF}i&_I~>YSV4zHcHz6ej~9neefd254;)1w4=((8m(= zo~7|ptbsYfZBs^^_xrDcp@4OuT!cOz+7aJEGs-%ovz>9J8QsWnvB<+@!9-)(x3y-Y zVRu=QcS8Gr%l-YeaxkLjs4W7{d>LjL@NNc9MJH9j;QMfAN47k^BqHY%iA%+&lv6y@ zb0cmmmyb-W1B+M(@17oD7(IaraZ_^d5|BIWK$GQ9196{MOq*i*3JKV@<;CjjHK!%S zp@hpNEzg~OMCy$@Gj=BV)aC}C9|CF(FS4PxV4y#Lc^<&(#2MROeF(~P@=QJlya3V0 z`y-v=9Z&Enlz+*c`|FmZ&- z8lK{6aX8a_$|w~Xcu8oHKLV6jtylx`>}y-BT*r)kYidr5Neg`?0rmmX`JVzXp&Jut>nb z7bMn-@$F`GB?epM-bXqTj~Q>`4PQGHOJ`InoP;zW9Mhhu(n}-IFI^`L+jFtna4;Aze;-@s? z-5ZbGwy9J`QdY;Xl6R_3tZ5D#Mf*R~A4gT9C8uoHthZl>#(p2>_GmP&%&&TXjw-Lr z6X=u`fZPNCHb;J8uPW7nbHW0|W`naopBH{Pqol z_+-`<+ul+2m$vabWjB0QZl~5ognVQPi}3Opipjx=Uaz@%Qsaff5EYyyk9ZszhEHMC z>tdGIYn?23>D}OXaa`G>kraM^uqD4~d@n_tF^l9-qHn!uNv#8LWI4hN5vhE9#{=cX zOKJh{XOVD8G3bp&yd@R+B(f!yc_tQ1dY&!9fNihXvOFigcovVvlAa6uFHsUK>A5y< z6NO7zh?ZHRaJHo9LF!$K+Y!r>B|QhzD16*rdV?@$ON*Q>>BVyAc1f<6bTx^VQ#V_ZNxGc6-m)ZLmvn_2dgU$LpV$xN3%k9D zy_81)@(PFmH0P#rkTDbz$>6ra>+94@Kubza%tkDm2aQ=@@cYKGbeonavt-jYr%{c% z*o$S0f;E5dSfW?m0Cui_9_7`0xHJjHj;oiOkcbP9kD9Bkc^O|!0iEWHFgsak&^4SUJ6<|i{M(#=MIX5HhwZGii9L_* zh60P~gvI!IlO+nDsx600r$k^<pz^;$5FANzk5vBx3b8Hs=dDe$(OB)4)8#V z%*BymCZOz3*rRA1FWqptZ-PcjfP*r%I*rpQz{@Ps{5e5%Veso4wV_g|A%Or5()mwN zq_!N{>h?+`$qnA>_kFQ6?t5_saq2*zXG$vyn<1Wwe!rD}CJD@)5QnFO&RCjNTR_yQ z12m$z0J`EbW(nj6-)x+5bdHiV4ZR?a+C@?NS_;x-LUJXekfPK&<8i&5FgP>Q z{T$6K8)DXb>_Ltsa|P+t31y8BjVRjXStha43wc!=B6U>0wO{!4Ss3^K#j=Y^fY7ZC zS?CpJC8^s6ajBMHq$%fM5hsn@~-5Pq>By z*0_FouBsy33dtn|-6rPWH!Yd;;u#)HFJS3Aw4xGFEr;xlq%gP!#8h=FUevI8DIf{7 z4cxxJ^9pRuB%cYt_7O9&{mUe5x%4rFKoTNww?xsFU<8&$gq+pf(RtR!>#s8bM~ zlU2neQr?Y;IvIi)$AB28@e^4L`ubTKFWr{@B8TL$8eg7S;wCOw5Wm?7Kb|dkgZO0O zw6Qdv?JvRSE>bTKqHyVP+gS+eUSTCFud7INlST%Qk;T!jJQwn7152GPYj=5RoRV67 z`?guRM#HbFkOgt^Divyg*MG(xf)1#DffzB30^1qG;r5o}aOpxIbpC*3Y1ww78lQ&C zvA1+H{%N=zXG>tw|DwL(aM`JEAi@f_o?wSn%)e>1SZB}R=Kgo9kJ!D{M-0_RLhZq$ z;pCiCXj6jBm&B^xWmD2?Ty9gVnsC#&c{gcWr3KAaD->TY6+P0aXMc%0mmcl`X~fiW zUCEJaMSnWBAsZi89R-;SUaC!QmJ&>-F#W`@r0!akR zpze5iOtqd5#S>a$F#X;%hC?c!Ii0H~^iYROxza~cIv6h&UXn43d;ziDJigvu9f9=h zR6IuF`DRJa=P2aE$A2gMF<|ojQ!Ro!T9!)8cuo$Ml*yuk#G`gp z<*#WDP+ByVTCEj&i}0&9?Wu9Cd|4$4=mo(+8hQs&a42>rIE2--n?31!6yVEla>KAK zVu(tSx=9MReYX_u)g~#N1f{wXT#b;cVgUSYArJzHhEd@kldi3Rf?OOuRqg-TVzJaK{1Nn3=$A6nUmgB{e9CWXUWp$hDoFXY) zEz_&fXiD1A%Qur~S|&H=CExN5hia?iRBZygn+;%BWvn*>7au%p4!$cMHpJ~rZq9*` zX%(yA7bIJt8n&rU12o~WexbCIZ_YjgH_FPgGE)HA4*ipSik_*R;NG!#mXtdFXW@E- zrP-5q(0?uUYSfUY5z@9v>mDrc5_}6XMl$iT05B}S0?>^^{6?>$Dp=m1d6XB!U>>L8 zS14XsP9rZ`*?Qp{V!6uw)Om1PuBzi@3!!>%n7ju7)}huZ%Z{N`SsA3BUN75-8pTB@ zBCEAl#eCTCK}P%G?m^3leeyD`yG%1DYO$u1`+pc%WGnBGBC?yri!dfgzRBoLJ2lGu z+%56#c7d>111{bb;$^hgk&wH!Cyq;}spY#3Ty)-UZOQ7^mTdZsjBq3v;TGQa>5?2T ztBkE}9dHYcs^A=0^m-HxS+f>OLt8DkFttrB%w1;O+{n3WbBKi(%6`9nTD!K&{S*Y_MavCjtAhXubWrV$@MX{HgMf6+|g zbFj;J28C};gAiT(J1+*KMP2w&F^@0Xm_RkBDS7~?IDZa4y6W+J^6L_A?3c@OxV`!a zEwdRcg7|*GLm=fdih?BzQuu-V(#2mQ7-UdnzLhdhS(Bvltw`m^KbI-Xc?)r^j%>vE zgm|(J=KYg3L`rntOeU+CrLOq_SY3Eyk=xKvxTq*R0?+@|K}* z$!M;V5qT&>!E@tDVJE6$u}a(9lK7Xcz5yA3TAp0Tst!sp_S}WdtYr+e)~Tqh?N5u@ zxAFWUJ)dEyBCqYrg{(b;h;$*03b=ewl2p_4%^>>Rdi^Tk5~R+zQr^pEm9Dh}_LX;a z;R$)!8ISwRi|*i~7qdJ0Xn)qpNB2G~H3MBCPrikZPV01XCl9TZ&{fS$ICU7|MhqhF%5t2lH*3X|NTqIJNQ3cUG!){_)hCVTJkrgZR30aBkK#l$7VrRK8I%2w@L z9IrNve$@2G@(UsSXEk>Ly)|Qun9%XkZ92xcRx|{*jW(LH%Qpt~Vpk6q{Z!Z{tpJRi z#){QzwRXxB%l~o7HNPqde#3Tugf9wOE4GK!hDZugpncc9+2+a|6RGOi9o36u;G^-k z`UD7RYx74)sMkLe8K88SbQpG9h;+SVZL!h^z*QtM7dKgsaID|oB;yeiv7B)}j%IE? zbMtXLbJJN_yBk)9|9@Qu-yjTxmY*j@ko&e0^e`(cFxJVuk6Bv?fQIP|4_Nkq3bZZy zb50)tmrTI{GJmQpfYtkay|y?-+dw9QEdjB|n_!r=X@_f<3z1EM98b-c%J~{uM2xJ# zd*#$25Xy%^(4D$plga52G|dG|IuI8ev#0>$4tw>5-MWm3z?ONbMKId#v%=~2^dnf` zZ04OUVjdks;w2nt_9LYengx)*nt%@Sk0miz!cvq5=JlzoDM#Ak z0)lqu3T6}|?f|w5qk?Ix?;%FS%2@Em%jY%(O;3$&659;zR*N;IZiP_>1`+K&_WN5g zq~s{_jenJ5Ju=|6v7P`0t_S)4Ar4P@&J6gC(Q zgUb+swT+S3;SkGsC{zg0Q{zHHM};>7+0{W3zT}dx=jcdSiQ8~rt6maO>nSEqQHuZx zIv+2|A4?;s0*5n%kQ7s%8g2;YbEh#*%(0;i41e-+$=P?;luwYCOC^?2A`P=p$|_z$ zfY_Ss)QGlA!me{2b70hwiL*RTj1ZQ#LqZ`%;1)OGu#O)AD;TULnm)I+!WmQ&OH9=i zA-`RcmrGL2hOL_^ZFqpLs?t z(0|gw)nSq4ObTXaGvT-gQyXHmr(gztdNaC0vgsAxeakrT76aV?o|~%wxi*djm$@(# z{y!kTgsk#{r*(PS-jd9#9Z1<>wc(~iy3vdFjMJUzvPz$}6dX!{rW71r&N>~}>u&2E z4(Uvr3mhascC(Ca|$NrwuD(gF>fE6{;d^d2dFv?RloT!(Y&@*67%uPlgsqkoP} zmDp9qq;sQK-J6?7im3->DBD!icc{aSv&I$QMgeNSC4`w)A#!~>wb32GXS6*O?J|i< z8JW$90m z-p-UhZJ2u(qV!Cl>uWC!EOIT>Gk^FcAXI2fA~zoC<7=ggMuTQe6^v72zmvZe`=M#O z#(fJf%TK+FSKgH}0lym$Uf+!ezjot6ORsc^{tp!iuo&TbT?GuaYEmjH4H@;yDS^De z1?tAWnl&!*i<#lJ$OBG1;~Q>MzK-?P9XVydI_G9M%j)fD8Gp1>Hijl- z6(+poHGu`ncQ`p~B*6l8yDG$_7EMN=?k5DKWh3@n?(FldhMXZCt7Uh)0gBSI**Ka+ z%4c_~K8nCJPjan|rCn9n5VdY?eSnc>ILlwM+ws}VwPtaOr&1mBLpbJ`PI!>V3F(R7 zT((7e!!R3Q3F!^9JoLZZLVq=j9KmO1!Iv4e5-$KT?mz@*IGs^z>7|!pBud1=y_r=` zYc1>(ttbb|OP2oz=0bMMEmKd(#^a`7btyhm;ZZ~soiK`6iZuqzk!qm|^41;7=qOwo z0g|F;3#9dx8BFNst&;32!9j)s5Qi=yGCWj zQs^any4Po4W_MJ_S=>ILb>_uS$S8y0dMyOwzl&)b0t+JSEuzbW!Fy2Y4q4rv5 z4Wa{?i*Te8r_jsy0jNcnaT#fW#u+ivSO>i65^nlch{ z2lQa`_grr|iZKpX!%r_ql zRyY4smh+JKPh#&Uf=ELS*CJ16(q!rh&|wGSQE6~R`HPu0rGLVLH#2EUg^#ai%9IM9 zk7x9prveiN+p|W%PAq>_;m51*-WjA~_05NwvebGqGu?Nd!v%u8JE(*#@=P)QkJTF? z^d^7I=t^?@&8+T{&B~^^gd)||YL7a7GwQ1? z<$*Ori3$t+e5S(-eJ-;63Br+GhaA2NMz9EY*3l0f$A2-bW48X5^?5qG&uZ-5wHgYd zhbGf-ml?-1wJe?SV`09>08-7+u`Qm|PBZMG@SJ=yt7Q@3M;Xg&o1n!v8|PNH1LB1L z`>Hiib-T+}q@WbP?7DY3vsYTkSoPhP+D$P|#}rXE*P^WSX5baGyOWt+WyC777@!;~ z0Jy5bxPQtIShLcqRui(5jczUcdKQ{gYF#X1$Vb{H_^Mm^2zu}y_CVs|ZSgd!)J@|B zWX2SzzEKyC{b`)gQCp-Dc~PM3xpJKVO+d20I2cT&(tz`g-agM}&YgZ<0!S)y1`WWC zquFwqbfSvaZK$-YUYc!(vOPdkTSTOHTt=~~>#b_BT2+5Mr{*;xU78+?L!xKb=1zSq zWq1{IXLvYO7Ds!TRL*oqbf;HhF0JvpwmDl^<}bk7`K*+ zCckB|kT^CF@M`0kjpB$|cb`IWUR#b~`}yXl_RhL^YVY*4RyZD)LC9}A?rm{LJ+HFK z2e|o59yWiqK?(>CzxxcmnDJHpa{)fMAidnQZyV#oAI$FS+*n0-&(Zno(H+7ZUW?Ri z+p7%xr+vx63nAWJlYTsdY`R*Q+R>~M3~WZBk2g^qt2@Y*Z~3@Byu5}e>xi>HY^7VS zp_|p;zE2u@wV;GVG=GH22mu=!et6uWL!9fn31N76i2hu@Bdsx zmwV;wXfZL6mm{!gBD8*!8Bvv9$m?2AlhW~6%HHwDYKzMzsIsBRaS`?VpX(-4GJrtW zZYh6@2cCSvamc&C{yanDhtJCR;Wr`UiDxt4i>|!PBA;dzFS=i5GA!|LvvPa&34|(d zm8|4<@e3^!KF$!S;qRBwifWZlg#4;RLBByWEK#B$e9jXoVZz5KX-Jr`JWaHO2@B#x zi;%D&Oq9?^586vwWJFj!ORC}>Gwd-(Hei3uNEXRv`A$n@WASxEz~d+18i}RG*ZzA% zH{U9G$&x!IFN>sG@}hz6ZHjtt$*~HG7!40}(PWOR|Jh=-7?j?UZ zx>yuxw@9?Z*{mtr5lH?|Q-E)0B0~E`(&V*_yHX|ka^^T4O*2Qjb=Mn>lg*7<6OCf0 z6GS8rD72*>G)9?Pj$@%&3>^D5UAy$>l8e(eP`*fl?DrES`~5_&cahMQ^}v5}Cl+>( zGz570gy4I+@PL39#KrEvaO9K!xgJa(Z109s;<*z`$yFh@!xg#eBOto+@{ zlw9CHDg5il3;riy@HYtX-|!0m;Hw~qf7ufLo#Qw2J^c3}{`&*|`y>AQ6aM>8_&3CV zmY43t%2FTvlu{oZrz~%g8v}piQGtkz3N$4P{F09C>5--BP#RdO^ zRlz4Xx`bZ^{sUD@5+ta`JYl&#K?}vp6x_NjV)Ycmp$J4>|J@8pN2{9I`-Iw%-^HIfA0(j(;a_zJ^5GP-5q~7 zeE@IZ$9mgwc0)2tsK_R37*9lTz~DgF@`X#(sZW38jJJYhIQQV^dM$6vWg?w8pe3}t zfRqxIxO}}(z+*fU3CJC1n8iyb($-=F5$M1KR3-^sd5cAS4L6HhBt&FMg|zMLCQm&K zGvrzpndeL3$w=nGZT5c^P3h(DXORe&$(9Kai>~!^5MDj{c^Cc#^ZH6J(hpYkr3%a* z?PjD79D>2=$&oaRo<%Z}hw-@{ow#O7a+yF%y1XTn$hvOpp9$RE5_Ckem{-YPw_x3D zn146(H{Zbgor(o`=E0zDt&(?~b31U+fJlRW1@M*Ctd@CQ?FN6UWZv=OioJ<5q{W`; zo6u2CegcR=1DZ9ulonX(h0LTjD*d?^VV?9{XcsHIsxQ)?il=lhKsOu=jsmn^H}5r_P(Eydkn{l}8#5hbnz|&jJ;D*^+#ICE^&gq@{1$EH%Hf zzKi-opX4NJStjN<9eu6TAo-jf$U&Z{-pn@VGL(_iWw)4AI(Q(EQ20%oi zIZFyj=DmpIDYJ8QMoFEj<1rwyae5a3Ic_=x?>#YSn!A6ga_W$|id5~!u@Eexct6&( zDW5uKbC3b!q~C-P1j;Vf$207@O<`&RT)wbda2BqF(p!aU75AmPW~no_ z8zT#cp0a;agn;4tWj?VUSkv`-G9{cJnM@nu*&=6_05R^Y*I|R7&(+`^>E9yOK>!DciwT+A}tw)-gyG3A~oYJtYnAm;Jl~xy*c$ zc8(V&;U*`66r`9YP-SXvK#$!fl&dz$St2Fj*9m{MhIt%A5WE47$s%8&Ovv(15}ujd zu&6wQA|8k42wDWL$Rb}7x;l7&`r5U?|H2}tuis!eHjBJ_@yqj5S4UBk@zX5w`1R@O z>th*k%_2unpUH};&`;q9B{{9rSf2Ffxg(mI&~LI7=q`}G#7jkv1q`B`jmS)hFI04d z40wM97`hy&8X+IgR8ev|G}}L?L>-UV@+B(uH;BCv;d3AMyFSv}x! z^y8zJIs*@a23mrAY^%WcT2{b+zbD9dz|sgIhDe;)<9l3^n|2~pZ-yo#HwBo}o6;Z| zbr!|SX0=eVeD_qUMj1h_Z8t59Th}0d?+yxUr#IC8vqA5^m6zYq0TzFD|o8%?4&fVt|qdFEPBw^h%b(Tcqvfo={+kg0?EPf@Vm5 z@j^*QE4#s+G-WF-uSkDuM8Y#nI;+g5FvgHwF*UFEe2dlvG10vLblwoctzE6m2EanBG% zv_RI`oIZgypmy99gi=m0zK&S>q$}!PmjNyJe{32;Y~@wWS#ABB$3r0(0iK}!mv zvoyS5!Nsjbq8coO5ao;au+rCL+H~Cfh6Sk2KMxZy^-3kV8EsH_ZQ7tP${1wEw6t5R zz_~5KI-_RRu(N;U8zOibp%de8i_IB#L{4l|Oa5sGWZL!W(0o-THSUr3 z190Mj*&bjOwA5FK3H~!?2mA0FXa~IUrqOE`45lOXnBS_k%s;EXN%6Y=A zI!IN7FL{{Al>-vY#3sf!b;8ZaxhYDX#i`=R6^_coq--|UmPEQH>ILSJ2(Y)-MdQcx)@w( zUzn+O`3B*!!Q*Pfl3M3w7etHst|r&X)U6+}vNRs5D|4@rAqm=`v+hT?n${YxqbDND zn6Q4TZEL+P-Qhe?}R{B6=1@b%7b&*0k% z6=a~9e@0+QDQn=OMN;!|o`S9Tmt>MxLk&;mN&QsR&CW=BeA~$RzaG-`TO_c?`ZQyq znyFQ^D2KH~KAkPX#E4qjB0{QqeKp?ysSv2-Z;QLirG5H4u_*5Ou=}EcPtGfYI57gm z8Uay9B$<1VMdE_Z;*=eGVPuh6l6p1D{$uLNa_Q3=xXBzO$psou~jwg}s7klsPaG(T%FW>QjDN@%L5D%J4<1P3^7 zNB~Bz-7M2GXDQ{Za+_80g0%0ef-GuC@Er_LK+L!Ct47p|J4PZVDh>GBMgs2~Zb*M1 zo8rN7HVAX8dVt!OW&1QXnc-9pqM_Kvp=`#{U) ztOvO@6+=eVW!K1V!1{eQX6~vii9BFS2-e6)`TF8Bn1)nux=KVxxqMA~5_U%fNF{ru zDAh6w#uXWji{T;FONYo*?0OD-_c4FWFaDw{07+Lo5r7K$P_}-LhYY{RUsU`x_|?|W z1apQT`bv}TOB7;!EYdmF_z4|Jzudpep2pk(VQysJheES6$)^xq2}T47S0f{%fxKSe zz%fa!PyZgBXr2<(3+%6#}K z*fk_^0tjm`XI=n8!~?UChm&}b;E{Zi$bHjRmS!@x|Eg&Gg{45d=3cbFQFAZHP}SVe zf2h9~1Ap}M?)-<=25=H}#lF-6b0W1QZ|ZY|mDTg)YUxg`vQ#3!)=K0j$!e3P^Tpko z&Nmx0opJ#?MU8d&M^hSTJ9mFeQl7R*Qpn`MEY+=*XKl8h-y;2y=6iqfl)e5xaLQh* zQ+Awi-(2opl_j?p*-q%W^mf`_9VZYLP5Zjy^Sea)>mDa&yt5ApwfLQFk>?4uCSY7X zwa7E*CGxHYU~z7d#|e0;KTAr|!&0zT?>*|tqD7eH12Ak)@Xa~-BcXqiG3PlH<2XOY zxSXyvN^W}a|KQJ)S`T3tkg{wZF9LTm+#|!E$lkOh?{(A4I7Qe$ zo4rU2j!OGRm|xzFituanC9GLg)U|JP%H=H|h0&J`<(kKyr1Rs8jHOq=^`G!asr3qG zSZGVAh&N>Sk>rsM&oF<6g>c)#O9{G+hn+QyF8G*gsU1^x6~;xz7Y!&gx)PKpxU zapH~$cTzi%VSwC`FbqlA3|8{4=xlf6tM?o5l?MJ&_1ED3`E0X;D0r<_UR#!+eJWR| zpBONr-piF4S06#m@5fPu+0NbCA}TEQie0}Jg_Xp(OeZaGLW6&#q@_Kz>Qek@i@e@C ztfs%?=H%QQDv;6?@rP@%uLzG&&d(NQLw^3o=i4j!yOf9ehtWUIU9&oABFCXRY@F(p zPt^E*m;9552gP7=K)rSDX3dA$cvlZqFC|%A4E`#qiY@AI$@8R5RME1lD5a2DP3B%U z$15Xm%T-Y`eK3FU!Fnxx%2Jw(B|nXmLCs1*mZPDx3ei=`W1x%eRURj9N-o&ky9&V~ zj<1eYLXsmL-z$Ynh+pm%u-5cDjMHrl*+8k)C6vV`zHUUU=jEm8ZHqT|#+OwML;HBh zqoAXn0%$m8+Y7a8>T3gS%> zxg9zUqjs>AuP@YwS=Ck5PY^Y%*WfkV$kW737m$E~zvTOOFKmHMYC4{MG;vofs|nbk7-{+3 z>6{#X!RrwK)=~j4YukOu_oe-~8{6Nq8g1kWBlXl9ACgK%Q222JbdkxT-BM$_Eiwdn zsyEtL-JOXM=vvEhD$#hfIotX6>UjbQ8)M!v*eZv^3|Gt?>L{ke6>YJs?Ta?eiMve?p;{qlMadmyYq_~{0Iu(CMu>9 zJpO-f#8iUkk47jYcz&s)Ac>M+6~l;+Y)-8Mkepy7Gm^_k9_Nfi^7(yYkyJiB0q`gB zoLbN0C9_C4r`A*OefH*>>&)iTYi2Q*UNiojww$hFPR}u0>6FiTRFy#*L-o0OA5(n5QL!`kzXQu zUQ?S%sJtZ|3c;6&k=f;ok<-Q5V4?3_SkgYbRZ&(o<$WQtyg;+Hl$2_iyarHPJbn=1 z*t}oJr?xuYmT$ zu#m=bZ(d4q*}-bEYD_1iiGSb1ZeF^*=IW}2C)Qxk>R#Ht+S2}V_tJ``f4Il$>LZN{ zJ7IH@&q*{V>72xK63!dhJoVBy^H+8<&&E;K7{`o2v6YHUzL04ht*|E@-A6!4z)wnP zJRgtTT&GP!3Ql=wPjZ+>GaYF}X8{~tDK|(loE2!OA`$LpC8i-Iprg_u$-I>&h@6Ur zrkbB2|)-t;p=PoNGB(cAgmk1i%kTPP+EH-+lJljYSfl17I*1%={*&)z>KH z50z7OmTj8%sBKM(IlmGuMV*1KMsI@n`JEdv(Ut?$iOr=zvMk?Rf8P4oRtQM4_B+VA zawfb2Z%k>7oS7<_J`%Zc%p;;F zPbcOX?I;A9PEZw>r@UI9I68|Pro8YChdBDR2h0-ongX8ve>XZ_rtogR%*b$}L%4k{ zF5CV6Izp6Tn*Ffhq&u3JW=Xl}nRYf29C$L}XWGC4K!x#y2XlfOtw*Z~9HtiOyLrrC z^(RVDP<*o#Z)BpIi8vwS;G;gaI=cj zRpgit9wumWerO-F*=g{^ZQ4pb$tMrIfaJzpiY9jAM6ZE_xKf*r9BZ-gyKerw_Ezt1vhh~$da};n8fJmwZ(FL``#jkM$Eq2hN^g*82Cz=oRi(U@nBMA2HWOp;6zk$ zN9`!jfAiSrlykQDv>#IE(UM(Q2;q-QVUeQ|;}wCcTS(LkR{Qk#t@irOqo)t!b}qHSBO&1RKl>wj5o%Z;@q8QMO;YFQ1E{l%7) zlmD-5yc9^^%VG7|1SOP{4k7J) zHVeWydgnxuyPycXDP9FGjKFhNfid@obmaO7UCW8bq{-dgogI$Pre;Y_<8Zm+AF{a8 ze^mnzLJfjVT7eKTV-2X9t0$9srd5E@l9eE=zgSC@C@uKi9ISq1sl}b$&^D0;b}{mHVvq7p#ZM;nnYt~cz*Z{LRug~^ z^dO|v|Fr|YD05IObsIhLG9j;(df42cr{YB=u5!-pLm$K*nBD^vG>|Gde?G!IB{9uz zqj&mbQfKbE_RfwEBbZWIClR&ZP3mG-VVFG8B$#_cjmQYY0OUybZTsy6tbT|l^E{c< zQ-SB*M4*9ye|g$TAI%8$C5r@Qt<6?*#-C6)V0A)B@rSffogT^zJFAvaq?nl%ZA){{ zGc@+Vr?=91$~d)b7Irr6e-djnh$*)Ex~65p5+KcUfRwQLLk;n};#Xro2&tChaRcL> z4nQ9C7**rEQf)o=<>d+CY0m&=oOy|d2>1yVr49{hOZHhCuZ8`j$v{e`u3u$eUORVM z(-j_}jY_8G$C+{;G;EBMQElWTcgu`j8Q;q^=)0{ORJJMR+f+Q8e-NEs9oo|6pv|H0 z^jVjm56T)1nHr^hmEvb@<-eMk%|DB_F5-)#zFH+E^= z{DS!YK1=?bgu^b7f8k(RyyMEt@6B>uflQ@NbMl3&=Rw&d|5kPlZNtG6o5G+q?$=1< zk_p5tS5Hm3i?po329Urd%h$wHpKIsOhi5B(dh9?`+0Xm?9V_XugZ=3jOE1;Z^D8fC z4yJM@*^~_L9znamDIpAsL44wxW~aPzCP;x1-nzOKq`9?Ke`7kO;_{T-Sq1(z z3fQ~}e;Z8`t`-B;a^rS730 z+!>F5_bZj+&)of$B`HgUr(^EMye=Ichm~~Vm-zede}tr(l6)78-~GBQYZix<6%^7B z?rPD*83wlF@t|y~8(H5L!7z>}`$uL*$N$af^r~4rAg0Pbt#g%aTo z?(4(|W}I-4vBqvTI+dB@*Y5CNWGpk+A53bWgJ4=f11@z{3dxdowo?fM5cI0nabrlw zf1H>G=oLZ3s;)eyYh;`%FUESo0Piy4;wo^4fLD}1eRc}8B-X;OA5FS`4<-1FXl@sPo#-jff3hz+k0zNn-tH&Tf)-@oEnkwG4(n7ZNCN?m&j|yBK=!j*9ofNUzrJs1*VCrQY%wO;ms4(^lE6K z_!cfrPu17p#EVhpEvO?QKWi$xv;$0W!+tB^DzbyA>R2lBifBt^X1GuzFEcYnf85nE zUEL~SJ&Enh3D^KiQ9rF^HjhB>MdIXC(d-dBMHSg*yi9T>_UTA%DpafMk=9_wvOc@M_VtW?4o;{+!sWe@_$w@MJz3 z3HboLmw~JG$gkOiDAzE7#z@HbviN9*R{*ts5F)q_Snzf*8Zm~i`AMc+xY6A4yk(6; zVvAsozfJ6)yy}Yy>2{5f`dEq{`-_AmAg;KXckI9Xs!_0l43k9mpMEt3`$^ZY7gS9$ z3fRpo;SKswT^T8gR_*T2e=|Bew5~1{qI@5Db9ZQT^aP2?`wP?0NJw`n>UcU)9{y4v z-t&iv#V@S8pM&a;0%^r*%|(2%ti}K;&M(O`D7RY zRs%@0m458Qf3;v9L*r_*(49Kr(jb9<4(^DZxZCJ~g;BTBvjM?2yIf2jl80&wl&vJv zy$Pz0*(1l~!^AX6w;T1KEBT(KEH&G)U)90;oV&3D6|V%v7UQk-qKx z1d94ckr%`fF*twYe}ii!W{)(@q}MaaFLD_xg2c>J zIw3z4eG|Z3P#*kt{jmsa!JH5hLdOO9#F*+MZ0J6U267qCnMG9n#^M5ZjBmt8y+)ET zZ|@j!IH%$@EXy$PBBkuNK6E{n&FnkFF=gkm{meic?yD?@Yi^@kf?eOp) z8e^z2Ke8joi#89fx6RNFGDC|MZXVEeW69dQ)dmt+pI zal$&kV5E3k&$k(?i|kmjO22Znc+0mMuTR@(|oDZc)q%CbL-gGkdL zKk(mTe@@b|D(A*yCP#~tlQD{F2Sx&d^XH&y{Gb1A>~3(oZJ zf0dY}J<}vN9V;QnBvr8Css6Oc3u5dAeaE|=xY3#XxyE1OjQ#19m&MB|Oc7CUw7U!c zN;BEFW7Pr{Y;JCDX!JS&C#2n7ex))CgE)Xfz@_}{tq<4mG>n(^f#Z3AI3RQx=2;r= zvqRD5=Jl978rv&+hsGF)wErgae5pUnf42QRmiJY!$7h%0x=2=iJ+>_(U)VX19-6}P zaqMXXvV%RHd&WzLczDgy3ZI*R+5N+1Mm6BE1@7h-k1pYD2pBv-?nIrgtj5CVbS&^09Z`0Z{#<8=T}$i z?>dbJ&Wzo-Q0X1S?~(D%zk7S;{+LwJ1<-yBu$wXy^zI`fyqd&?YJiBgO%ZuE z`Pj+LPZ4#1&rFj65`Zs8wd>SAe?wia*|mE0IJgLIMU*e%*oAQbwHSck#t(`DNFpp# zg%GMV0CHv}$@gp?G8gceC@<0fJ4|d&!W{TBmD4m2h#Lc;@~^|RWx@TudsdC@SOM7W zHhLtq!_1p%QR#a{Wt-pnCg4AN*ku+88R(9NMOBQ1jK4y-lN&&yo$3y~f4>*;ICi8< z-R>^;r~?$0`k#0W%BD`Y(KCti%@2kYoa{i5ruO4Ol>+x+InE$;N5*m20)B84&Bu+i zlH1k*Mv}X{rGp6NGai6z^W1Z(A79cz430spL_W+rRthh(7Q~w(ZxFonXTW~0vJ9@r z4iVt9lA>Y^Y3#UOgaCNme_%%ap2?#|`(l0}+8N@{C;+#zglIlRWjn(kMziJAhX>+j z$o4}qxYF!6eJPxn;)G0b2r2MSF$z1jjjlk?FP^`C{^t7T&D&?s@9%eZN>DYK8O9Jm zGt}`G@6Y7VP6o$B$qN>|cmUqXgJsE7CK;uJSO%(FcjDL?Os>!te@P2F3ii20zHMU~ zUj_k^PNlW-T8Z)r#!YBg5sWIV4oGyy+$vM&u#!}8{*&W$20*3qkxkQt%vd<8giQDn zWKg;<(O@YdWBkk+3UiU&-QCeW2s2dXM|MA`u_a}gXIg%?J{ESjNBUT&;qeO*Tk(Dj zsWV(&F%OYNY8#z?f6kkUK70F```*Fz3FuD>(MA>~3(iFr?1~;1EC$_LVo!}Q_Oy0n z$9w38d zk2i^HCgjQ%dKVQ{N$_iIq>G+ssi_I;TMZ&8xo126?rwNSyFtzBb#Mcyx_h>NW_4;7 zfe=2fU3K>YfAe2~NobeZF*$eD21!ktToTkQ)9jhaDax^~Pk+F1dFRam`2L2_I=!QV zc}(qF`5R&NuhR|O{!A!h;mAd7j|f$y1$)jO-_Sb+mJL2!u@Bcd5di?UM52f#djIN~ z?XaJ0_Sj>*cYMZKpFPD#k!yfYm)95e5`X>7wkCT>e}IbzGkZqBk0HAN?LMJww-@`P z9WZAGFSxZQ0Bsk*24K4~u99s2bAM=igo|m6qGH3VQgXGN_5&{!+OC~3Sz!!>j=@eK zMq(z_zfv*ZG>Lpj{@4DuJO8Uv`4+-p$59+QvkF=Z)wuOe{m-bfXxCfyR;4hZtddggD{wXoE3aQ&Z&O^~3;O$DaiqeetLIqQ zek#QOsR;2e#%E8JQ_>3%=bsjwl9WAbzxzkMfA?+m%>KPz|JMAyeqaA~pZNAZJnoaw z-tTmNAMQQcCjpq+u{9|8goDroJpN@z4IMATS9T<12gt-A3|`T=+U1dwh%xMY;wPpA zlX~`x8RDZ^2EB_JHX8eKJE0JE5Oxbh|G45N>uM8Zz5FM$e>WIdA2+b)Pk4?oI6x)) ze+9UF5&MZP3PM+CAX!jruuxP?^;H{t#W0`!WFBT<;HbJ7=&k{(OM&>!0)VEEX)$9O z#q*Ggs`+EuF8<6KfRHB!F#x6%s3{Tw?x3Uq{FwKrZY**@5LyYBLU4CCh%xv14;HL8 zeFWpt&lE|GEza-b2Fe2Hrj)jUg2o6ge-Qcs8x4+&ZOSvM$FO09D7Cx$@zE+yI-N%= zcW*EG2r}s0Wt+|YJ-kYD4%BJxDF%KrhaHmuBE`W!_xE5j+l_m>=C?;&mIQFPGI2 zbnt2fZ9oJjem(H%+tFxuw~rx4C`*bO1TZd&kAVE1Kf46A|Ye+uk? z+HvKH2U{pYXyWOTwZTd3;MCdObs(bc#EniJ+fn64DNjWpPq`4BH?nQpG1HC(xsEwt z0+s7nz&l3J-Bah+LTKsXvkR{K$0rhqZAMD=y8pbM;fKv4g7Q;f+LIKXgLzp z6H1i4r7c9vIP*L4{k_jw*+Q8Ye-SEUTsV`sHZ@5X?|+o}FaumiaVw-i!ldU{|NdSA z275H_Mr1}NJ$qEeY|PwreCk(RzvArfR>$^?%Mw{mjK$gQZ+CAV^2-;jRy zriVgWP86MxTM{YrW+HF<x*nm8x@9Uj#9f~Re+45jH02DD6FCIh zoqD^wJFy%dU?UT(A|into}h4e65$KHqc(DwQ7oN`@*Lux`D_U$36bFRI22`kDc1BF znxdN>AF3wjiMYt{s29OM9vlootF*uny8)i0f;w03f$L!adT!AS7u2a3D@XzCzKS72 z>JUPcv2U-YQ#y1Ze+WxaBF~02&oU5#Rntrls7pny=#y1{-iH7_9fwF~eukwjHJ{$@ z?jR4`5P=>{S6B{AGRWZ_q9#xL8*E97p$O1|LVF7P0 zzF{Gl|Nh>9*{YT$^>*1+kfxxBFUB8!xO)4B9dKo6q;p|vg8B?LI#Lj%id>^Z7^k-z z-6yr*dT^~lf9=N~YZysPy>LLFYI!lG1;1u82Ha9%ui0LRgz*Ht{_sG7I_=Ph(Y}otD3gj=lJ9+| z%2ZFZ>g(EMjdUR!J-l-(P(g5@%l|iY4?ik=;@9!nPYR#-75KzYMY;zTk{*za{dFOY zSIH(UVLb(h5|#*z41Mw6zXtQl#6hRdiVL=8pbbNpP@b7%Ga68UK_Dns1z;j8slD0G zzq7IHe^UYKzcOZglC4LVBBiRY8p2Ijc6Ni9GT`g3lX^`;km|B<>ZD$;iz~YH3>BOO zomB##Hr5C-Do>j$#y|66%SrNd5YZP38idz<8@E>9RCM>D?F^TS@n{t$Mr9TT z3wKC|73ep-bQ7b}pT`w?H$#t{^h1ys^^b75pE9f}Y|Dgi>;>LJhFM11xeeI5M*sF*=NQdN;KSORi412IpbiHWU8xOL?!{N+kNPBHDpH zPG-PaX(?@$67r!B__096B35ex+XCP(fA9eesk zrJq0cqdI3=z^IasYU*^zWpa^N6eKg?5ePZ z#y18k8!;QrWt)U_#1jK{6qQN<G55a+AJb5x6%2=05c{Ym3Vj8 z_y&z2&hQFuS~WGx0{_gcya+dE~46V(JGwXfky_|x#z^qEycXrftFaawr}!5FSs5u27QW(&kU=3TyW`+!}@ ziuX@htYfvktSqoi@NK^&H=hmNUP63&7wZ+mn=h*@pHry_?~g!Xk;WHOf2nCWaE~M$ zV_biR7fo>2=Y-Tzuco-|lR=EGh=$cO$iKTB5{C}m7}dc{;n4ecFAW)we2LjiiJX7f zM$PD%AJy4@sxoH0h46`Tu8qOmNx53*7M|%PI?fq}fW&8`a$hfbPiV)=bwdcDA4Pnm z(B#@}ETuTAR&gn3Y9X?Sf7f&HiuZ(NLG+NaprCFqk-^tfbyDGhmkXRV!EB@dM?_Co z*@xlua?R5t7hRQwhpGe#7RB&%JRC0#8tRJv|uKeZ=5%#{g@lO zyAhBQL*hbM!ZGv6TtoNkNjx03xZV zNw9F%e4YkF>Y)`mPt+BuSTA}x2&OfKEx@JMk4xI^`lG-|5(3aHQKxJ0_M?>#|6LmZ zpizw*I`L2rvWZ5IAedH_k``!3757@G*uDTzQ#o%=cZ(#DV*GV5( zr)XVPLl}#ye<=h8R3GJ$QB}>8h|s{U-AL`+xB+<@($CJ_DK%1~{|JQnh7>6uH_l@4 zj)<6zc53bpW(69;nhU-g?6V2Z6hMH}ze3i1wTUJ-iuRc4jO|pluZeO`DyXL>z$H2f zZcX#_5%(JA(GwyFd5(tvRceQ#Rs?R%RrowG8frloM zACOr5l}D<+{dfhGN@s(-Vbr^b(Sh>IfxB|~h;W^zhd2W=19&bF_45v9h^qx_2@S6> zOo5vZf5yg%R;wi@v1rR=FoJ?RA?OkvGI+9r*{w9-thnwS%j^_?fe`Lme*k9=c_cqI zbq0j*WF4OY4bZ3)B;b=jSitcxg%wEA0Okuo1Mn7`o%U13onB`a@QEX9g>=+OZv|4E zt*(%8xEBkJdIAHCeMm^R5Yq{UPGK@<1wdJ>f8Ij4EC9%28<>Pn;H4R&W)*ZnVQIMA z6oP3nCjt9$nv@Sc+SX}rSW4;JI#_53S~^r1y0)^h87>4;g8(+9cd^(z;P=mbQ{k_i z;qYqa4CDsH5a+nrsCc^-Lc@CGx2`d8!lA)z!LZ6RV;a}mM#li>+`Koi$dZD8(7Muo zf5?ImZuBlTNlWo8&Sqz>#OyZ$D8ocjJ9(x-?TO|TPbnaL3K2GC0thGcG#EPGtKk|9 z$xRrOINh#cyh_qYJVpcTxTlWirQ^mOf6@^n1McV6S)r#KFIu8O8@4SEhVbc3$53Q) zk=fA`0SqKchf!xG4gxBoBA5A)e~f^Cf4D=yRa&IjCrBm%qiiH(lKqrIERM5Zm?w8a z7FoVT`q`u$0&2Nf3#xdt*cMdrc2N$hNIqw49|Zwcz}MszuF2`*>y{8J8!>QjM}Wyj zggUKbAfja9B4TYCx{eo&4br7`oH%EOA)4!rjh?;)XA9+F!XGAWgNzqM0w)4!f8uf@ z?%;Yx$~%=|r0R^_z(}!Z;Gb+ZX4vLpp`i}+7tnvN7CZh#oe&-7n0JSo% zwN&hMxyCLQ8C+BVgerJ<4U2lge~%@11qq&swVaUW^7F*1O#8JaKqoEi6-H+1tPFuH z&T!$OckXbAyhE%d5A(d@Wm*Y&S5)R({=J!y*W2_L>{h0=aTv^Jm065MJSynQn}T;h86jNc&jn?^WaU6emC$O773btdEt6q=gvzAOzjRktKyt~;ef(p$s#_k5`v=JYZ^t+ zNW);y*GObMQsV)ZHF(ELf49}02AR*&2a5LB#^9LEhl_&_Q`ZBd+gCRB*0A}2BbKS%9)t{rP@y$qi3o<_o=$Ymm z)A$8%4fyM(J9^-&#o_3bR#s;b;=u-8eSMCmzva1jNa{?kcQk}qf1g1Pc@czDFlIWX zJZ31n9X1G>i!wc!J6cv(%;XyFpg0ryb+n+pBAXFi|7w z1YXr7ATog05Dz*x~tADI~Av#nH$n*7WffmAufX< zW&WJblq(O@NoZ5!4UJfC>3 zvkD_&oRgjYc42CWGYQ%~-tn|A7P@7_F&*ek5JyzjIQ3i_(v zN1VySs)ri7WN?1Y4zw8~UCsUW1F#3BG(h(aCG^aom3ebGuD;UF6JH=m_XG{^* z5pLq<<3?&;fki4jQmzX&NX~HT`t>(~>^Z7kvQ4%Sc7#nI!F=rozX8B8=8b_+q2gW@ zdiTrgi$h6Q*B%zcunYMKp>@PnfNnbLaB((RoF1Pj_JPQ<$SvHSA+ z`d#Ju<>lMUUggnBq{I`{$4)MNSQiWeCEk4BGu;Me5b_j7vB<;@Pvp`}Gozz@9M1hg zm5IW1xDS@`vEzMfH5w)>`__#o=OGiQ*fhJe*K9#@*Z)|2HIbrqf z@ZoTj`rU&-qf}%a9gDJ1cG1x(Qz1w~RAwY0h^n2zt|U`@p$JuZJbpjm5coGib*N)o zs>_k_e~;IW?~FwUWCV=#1XYB5$&ehCdk`wOF=7P%`<#w44>vFOz1Y<5Weg*|6rpm@ zENTWv_*XY%c9Kz$;Z!}T!OJyzCShQOs5r}0<|(piHU)uADJnHXAiAc2`UX1|r0NdT z+pIwgJy(yQ7xK`VZ$Rq2Ar9e~<VRZ z$fcFcrvQ#XaldrjwZvq!dNvMd$cw;#03rqw@v*a-rHLLm84g&12f7l4Iw4b{!2TkJ z9`P_4{AER=UuGwQsw7fKdZzx)Q1hkA23{-*kbg48ZeHs>S)UPB^KTTawo-_>YopWb&46D)L$|8}^+%x_KfmB-L=^`77qm$|2TeVNG z)rUu4$-&xe_}ZL<<>U)wVR6@L@p;qg*;skXoj4ZBknJ^SyQH1MiSgQT{R-m(m8$a1 zG=E^ikxiw|T>ob3%w_5b_iL=DLJ3hSY>vyJX@py&d(WR@pQ)Wgl&`x^WrSzgf;bK z9RuN_ht>EZ2I8>*sFFH-UbX%c?1SV1bALg+sc`cOfO82e)40|$wENKSCX%&_G%7Oy~LrDT~e0IH2GKy<&Ie+qF zdd$Z3xO_~xCNV#%LdCd&9dVzha4Hs_Ny-ivg}GlxAeHl&Vub^ek_|?T93HUyln-0p zr~Inv`5`h~_Tm7}i0mRFx^?5h1Y*J!rQz3YWCVI^XC4O}z$+oYX?3tb6@X)vkYD5% z7$Cgq5ObM5B;-f9F5p9E^vDm|qkpjO>~Fd|&~FMfwSL6I944T^4P&&hTsU5*fr&1p z#vbYlJor!j3|%mdL7Jc@qe3xkD8=` zfy7fyzuGNU=?YzX27%Y1WD-PR4QPu1wZykSK3W;fsu^uZ&x~8VHoT3Dq_e;OXyt+e z6;Q$Uc?&2nQ3uFX9 z{(@Qw{Ii!!%q!B%w0-s#r!VSsV4mpR2Q8ZBIhTld@qw?xzS%OUr9SWY>fpt%WQAhA z?CxrYkNE^9$-e{JHu0NJI{^Mv+pfUPs;^N=2h#6Y7?r4VFfmD+wtq}+1e4B8fCy0w z;U*^x4P=#kNvH6hBpn~^z6oA&g;~{Tz*Wtd#xH|;7*$P^LtE6E=AO|p_GE(Bu8)59 zYm!{yb$vET-Po)05~ zH3())nMicB>~bP?`F}Fe8IlVmcE0R27Za2@Qv~WZlv8{{@9O7*wQ9Ofh259yJ9Uv5OZ(XknfrYn}lEAk5T7Pv5!vl7D)+F8Tg-i4l zJ$`uO;>S;#niEO)932W|j-mh}zo``XC3}orD^}(XwftnpM=8m*=Un*;Z8;%7F22%Q z2X2AW)mczuFk4;+=bk(32VgddmHx00QF!=hOD|0xG>o;76xxx5!EMwrng?5Je|3fu zn*A} z(517T9e-iiA;^?@PQXtGWI)x@w!qjQc1|+)-M{7(ZP3&Ee=gIc_x8-50+J|K_Yybl zk0-U?oZ9C`?F8V{03dXaU%bmfIm^CSmmfstgy0tRYADIU_9P}WE6q;GkVb>hMJ1}5 z9$ptEckyB!IH63N@Ezt)0izkRz4%oY5n`ohH7QlsRm%NEuwy&Ir)QK#n~!NNbt*Q-j4}TA^AtOme+E zwK?MWJw>h;^uIpr;ugW*UC!M2eh<)55H6if2I=NO>#)quxbVwd(4Jh3hGeS%#le3w&PnU= zhbSRo#7~V^QZ(kk)lsJd2d&_`D5#&Ya`2dAY&>Dq zWe*Bv+3kVuAfS}Ry+x2d8bcEIUQis!Wl>)XJD(B7x0InXgM>4tWX`jaGvnAZ^^q(c z6Sj?VGsEKXhP{+RFb>>G@eA8Y!K;|g3gUt`hS7} zV&%aI4fGKz_w8Y3?o7xTN#>8hCN*xOGQS%&W{D!#L*#ZEtB=P>>xj%ZLMm}@3vq2;Q1uK%gxU;q=Dapw9gb3W8@=5-q7 zm}kqzN=|Dph;W={VPC{$CsYCuFnbQpa} zt03P)n}m51a-+?r^jb`v2P%9@G`En<|Ny~2(I}* z%L>tnFCka@8{uztUMMeJ^ljYq+1h>Q0%jd^V$d8GYRyV!7f;Bie#WZ-c7Mx+T=!LH zk-|!!73X{oIT0(YN1pUEjt;NZ5jHn*x2CE#(RIqc%Te}iF=byDcJfiKlLa(W=oA#2z2f8Q0UIf44N+Jl^g;9DtIAfSjE(U~I>0K$N3Tr}lLn@nn@{)b+QduBlaAt1ocheaP!Q05gl=RKMR3;DWxqU^PhevdPAeeegY zzjOV!3mPt5diz!PHzTeF!LxxuX5tY%khskmdl70+lZ@f4Xn)o@<6TQdhg+H!z~#0{ zhkJqa!Pznc3!a#{qlp>p0_#Yb#kl0ZfaEM~#r=RC`rL7w8V-yIo zjEZ?bMX-p|seeGr7ytyat(1H{%aO1l^8Tz8@G*TVHL_0-*Fe$GXAFd9uFuVGm6t=ha0eXQTKMZK3Hh6cxe-$s@u!GI z=+lU)b$)g{g!Ev7>1Dv;8e;ifK0CR|a2UiO!f{22e1Cb8zHKURt>g4{OL^TqY8XjR zRCnR{yTt8=#CRZ4767-5JN0M`bHiYG8&JCI;%`_54GjxCj=v+W&;kHQyiJ8DA91EGp z(RVTaIjdP6%Pgz{vAYMf+8_3>-=$bdN^J!06u0+j9a7FZSm7r^qhS{R0&EEr^dF)J>ri+HUmxN~ejj#ch#+ce9E zG2ka$qA&fymFL0$i721z=AaI<%rOe`{RcQC7VFa;a(DE9W;cnmyU9P~m&`RXsZX-1 zu}Qs!WSesz6>~BGfO=#ucmu z8J5KvEW-CI80c{6^4S%?J0w>_mE44}Gp~H=vzUTO#4BadKd0#sPYjpiO zk28${u))vxoIU9a|G#1d{XanSVpV==F2yFNuu0%+RZyTI^aYZ3uT)<0PJMXWXC9|y z#jFzxs0HyaubdGAaHv~RuGReLU7taYo5&f_Qm!E(35vN!z9`tfvc}!QRDW?zqcelt z6&zIGu!Myd^B`P9j4M3B!@d-5O^!(BDW!*Wt6fhIrL2b$L}~bgNg_Sj^HTaTqJnMfd4I_(8uEPGLJn+Oo}8aP9w-bnyD|Pkc z<5T_V!>77vd`^b?OCN&w#X}%e%30d~`IWSnj`izlAM*OQqP?pB{(r}5|KZ`Z7md%+ z{#Tv$-xt$f+L^2d{3onP>~L9?BH_N(Xb@vY!vP+^lFab^)X%wlF+LK4w5NOj@K?xL z1YZH@7I}ur*~OHNx^%r?KkA|vIY+Sbwe%L*dOcJAPjUBBg|c7NhaWdeXc_%db^|C; z|CAC!qKY6PN;Q}{@qc4I+wGa8bcqzGhYGGdwPQeP2!)4`Fe$RZ&ny2RTH;2-sFK6H zs@YqCb#O?e{)$b0U(sk4%<>cRgK9iam;cN}FY9RW08{(1+Dw~*lhp)@@91zbieg48 z7Evvu=ovLU@&kx9!Iy$s2cPq~3r!Gg2A~+aL^m$h5%nrTnSW6t5rRsznr1KA%GWMj zW)Sif1G-?T8qmE7NAH{qx`6q!af-ObMrh7bvD%Ax)mA~(o>ukwG~T}IL2=b{`C2g{ z7xfJbze)phaE5aSHD@>sd;r>?^0qe%+CIv*{T$#S;B3FK?X%*xPgJsvdDX3gsu!Z_ z!8CpWR&UfFY=2X4zqsDzTAJNJt8%_fJ#za1T7rt_^Rf_L{A&5t@Z#$&6N@|+%S{D_ z@mx0v@Wau}@nBLGU3|X=x(xdem*F^f1AYO9qU>WccM<;59Z&ez!`waoYaldy!@K+k z*&r0(sf%90y}4o-sZ1X&YDh(1?#6S*`Cq^M4A)?j&wtEo@sZE3(NucX2h;dwBud=3 z=pp!B4BV;XUEc=J+_4+Ou>{(XF7-|I4xfV3eAu6+^;+MS)Xc|8RPfsM)81uj$mC@U z_hv{(-IAhtl3pEpcQXa06x86{{ikYh?y!be(c5|ac633&Id@5F-(i&IF_;l1Gdhg9iN_-dl6>uo0FkRr&9*l*oAQ?N>!2iO z@1d-%%@_Xh{6BKrueM%*vga=4*@e1n?mvB@t~Mfjo38fz|KC^X|J3zt<~r6ZalIWB z;GWF$SGNTi(d90?vm7RL%59&;^D7$1u0M{x1b-jpf8ZT$5xk(bj>HYETv!_Nqh@TZ z(wQZe+R6u;9J5;*?KCWkzoMb*csUiQ#^fSQv-O2$LEaM8rX|j0C-VPt`c1v1UvfQB z*7tXT=Lr<3^%R%|p6BwETVK(Xmau^uT+N$N+e$KQsk2oywb{n_;pm3N=pAPL%EP6m z7k>zrLI`E2=tZ+kbnqvJ(R=U0kei9%jq6sVYxZ#YBMvyskCi znB1!gLNa!YxeqX^Ns*GYtUWyq_jtHu?g`qFNd;2=q6sn8C&Z|HLI}Oa111E|@{kEJ zTgMU#v@2f%6JC0f*l=}Gb~qqa^zJC-5I*M)egS6?#Ta`&S;6Fs)3YTWoM9Hm>3?Am zUNO!w*^+apXREK8C}Vx1EXpT}R7E{ts-&47GFkd6_gMaixJUNxaorixZwF3v% z$fybg$VS0{O&tFQq5P5g=<2-zLc1CADw<+_{G)0X45d4tSQJk&A zdnqtn+GMj-G+RD6p^q4&Y41KSbANtB>SHm?`8=m~7lc`-bKgqkelGQ+o4PDe>Ml0v zLLYwkEH&nJ^d*Tt8}+xr3}w)Dv1|C!n>1BtK|GDK({v>KJtUxghFFY1Xs-QfX|L$r zEC`{aNpkvWS?7-$C@v(8?JkC>unb}}4PvwmVgSlv+aSiFL5w4V7{>-NPJdvf7{mZ5 zjsbvp7{q`98X3J)QD%jM{-K#MT9T8{rd_K?0-JW5J>uH5+v=T$cC`wC!PNl%gC8#Z z2S0rHZ_loVyTSe6;jU}$!9limc-%NXIy`9|-Z#wezB{`2A3uKFY@2)GeZ$-h@Bj99 z14wE0YOUjw_TfSMn5DFu_kS)VZJ2vLB=ztAc6UQa+U)HeHV&;u``9{RNssP>$B!Rd zZFA3sr0)IS!LAQUTfLgqI5=oG+pSgu(>9y;A*5}Xd%=B!Jg`3py_$7&cwikLpB%04 zPrJ8gH5-k_apR!5sY8donssp0YPPJ_fwiGWN4?rX`>4@AId1&}{eL;`?O8`hjYg|| zU~L$nlU~g_X&)b02M5;Ch7MVcUhSaSIBad`jAcQgCyj%~fpysY2l`_*dwbS#vL<-#To!+O6iv7kA3N4|e}{`O>fs z+easdZHv|2W?eesU4IJh!`;6FF_9XFC+&uH*kZjuVO?tRE`|60?%yFN{odh0>&QAf zviL9^upS-r9{Km~?%zIN#jT^(@ySuE!3U|q`qTWP{-%FhdV8(o zhIQEBv%S1K?OyHhuyJs7+-kKqbmsuZz1?md9UmP31Km04?SHioj}HzG4_e0?x&zaw zVVxW|T8DfZm39a?*YQ#7uyt~1ZRigyV(YNgZdq+UlfSM*urREHgM-6k>)`NceV3ZO zTH88k04>+|=Lk3rtcc@-qfPV8Y64qm9v(K1j#>v_+M_>$Kg4uv9UZsZY;X=(PmWnn z{s{jF7zu05Mt`%}J~}uMOv_?Du~<+3@c&4cjdk2QX|x(`&atdR){jHhk3ZZ$d@Y+)Bp9^M0B08r9NvvJs1(~AROJV(vrlUA#}wiicGVEf?YNU({rJ~Uv$ zo*W#t8ixmsukA&vw|97KHIGiLqk}cQ0B+MhZnut_&41>)PPBTpqh_<+v`&sr)^*~r zw|8{dXr5TdCtulvlV0ucpwT)!I5<99(*c;i2TkkPY99+;R5F>`y}fp;adgmZHyi7^ z(CpPtPTH;3@nPFq*9Xz`@DJJg;E!r}|F>&$(po3Shpoo(0ULos)`3ITf&0G$Q><01 zd3bzc9e-H70}a-JChveGm;XoAz5hEjQ~q`UtmxpR!85j5hmKf>?*H~pz9!p82Q6U3 ztUnf8-qr&94#9@kY8+bD5g*F!`hNowLi-T*pw@9?ZI4>LJ*(9?vD((* z!Pj*OXGOc+Y&DJ=>v{xi&T2NAR-+|W^j3Xp_V$jf`+M*QpRAr8?!g~?YWD145B}g&t7p4=@aMjfq-UrwJ(&>%aT*0-HMSe4@pp#@ zr+@LDePH_C`0?Xr&t@1u=fRLZiL0>*;V{$}dzSg#cgOkHO=J=I_buqmL3*O~Ws`#K zo79badsW(v_pBbTyc_Q|d!oi}yw~cLRpZKP0^$;fM8qQlTZF|XbGvIDwVH5zIBAhu z^T;}CwT_QYNG*MRK*ZZ)(M)LKclH3$~r&@xKnf`>tg|l<+i_)jXD8Nc_0nHlbC} zYS-i?TZd`UJ-Z?3=-5@qKK^z9a8EqUk9BC)r-(hVU#)+8W>)K~202d5NBeMFo_~6s zJ8&|$4&ky~d1v9f`}+oQfhF4!{B8GakMPFK<-j>|;KKjpzy)mJ9K@^8$1Ox)_S)gW zcZ0J`BC`WV7w=s^K4wT4jV~F`Fgu>zxc5J55F;^&K7jx@NLAl%ociA#ochqzaLVqxH`^#77Lg!Znzf?kHp>suB z1&S&$DFU?8!MVcYjfEz0?aV9+Ooc=tBaz$nGi=#UyA_|goj_JTls)2MxqlEG@0@1^ z%OG!AWx+J{im9m(X3CV5tQTRnjkMlh#`FTawHGT7X{#_Yd^KMKDf|$FZdxgYD5E{n zHwlHH%IJqR3kJSv`t{j7np73&3&wJ*F=?7GY10;#6Nkr_@D*~*gtb@*(FChzBGj{0 zw`xqN=LO)-W6b>_9l1Uo8h^G8mm0xH9q#*k<)My&-5?Re&AY!(HK^t)tv6Pqom8pa zxTp6Z9W>5fJMjb{z^imGCJnR0o?WIXP1aN-HMQWWfRs&lMP`5{2Z9Xjxat!RjF`N1 zXaS~wcegsX<7!Aea1eexKg&*S2rnGi^V)#VaP?bY5+^&QTwpudX@4fNx}w0Q&oF|6>4t;HltcDA8A{U-Go~T6Mx0+7$h9pbyNw*;S!D` zB^;$06qrZj)B#b)VSBxUqK;h+?c;CN#%w9>1X8pKg}CFY@1(dxQQQgOZ@Xu^B-1kJ zJyN*M#i};#h2dTU)o=)@P-v1XfMqR4^ zhqz&J&$i%<#l-q28D(+PikK$CfZ0W?wLWk>Mh-=W$Myrf7yJORyR@=(%#)Wh=jEW0 zO%dajP2j7$xGKRv3wUa29>E(6_+=(f0Y?#>!6^{2i+?yplDZ09FYUMEs=T;2$z9gj za27-^R8Up<FE3or z>)h#1be?peo6ph*i-<0D8szQu6SOe_WB#|-Pk*lFg8_WlvAEGR#A3g7LTV5ICBmrR zLBzru%gEn}DP383F-8hZvffA(I9aSCSFN6Gb?!_kY_H2uI z-+#I0plY5{FQRFrUI(_0s(Bh?NL&JiA#y5)#0DNC%!3B3eBq(veH#$pj`xDcHf#79 z`_qZ{g3}1&Ge3zm>LiIBF-isvA5Sx(&I@whW1XQ*dfRrRhiqBP0h4H0wM8~ ze*$bMkEZCc2y4sVbsIf1;jt*NK2ynl@2*(I2FMe(U$cZS2~;F$ylYSgD;)j$(0 z!o0egjfQR8KF6m$V-?701%6j7CUkZVX@RX70zQ1cq|+d#FM}w4;t!d%7lHW9W~beN zC~|2{q9UBj_Q&qa>+5%w=a-jnFME|oE0GLL>hdWM$vF@#H+DL+Zz_<4LOV zr6q?=bFxZ(!CpUWLoiAr-^fLrW+n0^R0;9UtLVjG5at^uKJT+gmxf8e6|6oA!sia4 z5pz5?pe>F0{CJ7$uNuQ1iao)ok8xb-WzyehX7*P|6iUs7S= z=i&*i@CdhHBU%~K*m1q6ZfrGN2?=Q&E@3H|*}8cN>KwJyLLn2Z85#i!;z-au6AS!7R>0%9C=lfJE3ylKc<*l&764BG4{P+48GWZ z&1tyoaH;Hl=ykLl94GD)trc-=tpgzWJ10idN)|6w`b?6!FB`B`=O1pMS-Qu{0O#5U zuKNlqyZBmX!R+>4;4-+uMSoB%)A?*1Izw82!Jpr==VGf-DyW$?3BFSexSy#H&-nv0 zKYp@IE$6ch5azaKnJa`RF=x|tdw&lw*fd>LXJyHDsIt&XQl0Ij@4*RBzE8u94w&up z0a1Jav;BCF+1?3mzQGZY7=WWf!!&jrM(JK-ulq z&cbHk*FEE3fP|hAPL%}eCqRuroEG(+b7wHj77<^Q#H!oy8ra-gkWh|J28y4Hb$;`X5UF z({#s>(+;)|4TPqBaDPxr#w_ug>xlO@cCOe4Q9`$fEs_V(jjistOZ1VQo0`jk7J{az zHM~BCm!&%SAR4iVt0N(0RacJEB+}0}w_32HtZznAu$nfUKa~!bomGAGG4+1;Q_-nGsr78R*pVa?-+j;?39m)^u#PBw{*=bNq?duORq90x*qtq;41Ol z!6(g;TrLvauVH~OaY}W{j!g17s2UYxuWXtCDbtXRk)G4CF+whc_M|eR z+9YpdlP+m2!a$X*>rz(>@^i))r3R=Auz4orWmZ{}3v&y>A4Q^sJS~Rt`Kwqhk%R6@ z5e}~YnmZxwynpi2fPh1~fDa6KXPdZwz+j#DXBtLs;G-sjD#v3y0*$;N2&;78q6eT0 zRo+!;&7ue2#wGxiNe$PYQ8)H{{8uf2rL9?w#<#wSEgsHMvip^Z>ij;{v>!Jc*1?{< zE*7}|qG!VG-a0hFlycW{0dB4DYFT{xaQyaAO_8IPG9802TpWaJ(ifgX*mjsNq%<>CNLIt+Ohuowq?rDm3p zp6Viy(xS3ZFrFuKr!Q=;8c>YIbbHD7doB1`K}@${W-k-X5$Fsu@S2)3Kg0?f+Omds zVK9W5S$|eXcK&`@4KP_Z*TAOq!)pLAVnHMWLRe~)ncUu>x8@B3-0LylUMzEj)RIGy zYEb$#PMlSUmky2LngiaZ)Hm?y(tKdAp3xW)%wIcq2+mzbKLH_{_F(GV-5?Bj3aQ1s zY(E$erYtOH)Cq;0ca}9mW3ZX_jBaoGX*o9wmVf38hFQqwU)hwo>ka>bRy>7ro}n6Q z^Xg3N1-(`5PU*wzed&ZlsP~-{@_;kjR6M!8nK@y6!+=JTXfvUNPXzl znOYjXU$TwH-m%P784s#nAaB*8t#4!4uP%atmYncCBs-c{7!p#S`?HL4!;Tix;;;-2k z-)CR^lzG90px;sJ9ct#uKMx0h+4>#zKm!90`!k}A}G{GOw1J#wvMA5~}`CDiOT zdfRRDnH^hfWq&Tq!jn!6@|cn_XWvbW#f2NA|Wj1^bMliZSwFl@0YC=?d<-c+BN#l5P&1PB0l07tt+jkb){VxnN%iR7bx`+ z7?-BxG?nP6xm;Ezmn5)~tw);d^!H==>F-aY5o5 zgZBeW>>Im_=z+CiZMCzx)z9d{NJvyv zha1x=KohU+&7iP#s3QQ_UC)_CbSRX5LU$m$AB@KyHE{F5r0O?DnvU^}_y}#~l%jVt z#~;$6(J^46$`&v!2PfzO$(K&Z0JRJui}d094TLYN!H}d1K2A|mX+t8UA3At2eOm=cKfmbEu=gmo8Zcg%IbCRdB zrJ(%;M8>`oR%Q?djgJp|WhCS;JuL?nr!pzNF%t3~w+1&t_$kC=LRBgtJ~AaH`E%Q% zK5Q)N*KLdX9*WB6|9@%Q{J$0F|D_;*HtUbYS%0|MU@|8x=B!5EWUhijOC=1zrDTZf zs*;tC2)$inDi_~slUgu)|5jV&ICEiQ1F&!yQ8|^!V`s)AM;unBceoYG{rvXf zp&Fhs9a877C3()zp`G8BpC26uySFrbz&L zo;#dYKm|Qps7V2-HT1qFdsMma~DP2R7n}BtuK$%?yb8r z`f=MUBOuC*5oN=*Q9k9yt0T3w#fSW*RJ#4}h4)8VyPRpMjykgf>f+90J0-DN%LWB; zwxXPdSbqufbW^UT%N7$+oPJROys91oS3k331S~(1@PzS=9titCd}9BYp4cC){N&@d zNA{0eE-;Fcv6%fEJ@&6V%q0Kn!@N}ANV}HcMw_ngO~G_69?Q6nJ5{NcwJwGSRK0u} z#dSYFyShd{2s~rQj_dRFN;9Z*k+~Ctr5xAiIe!h>43TJ=-hityEihAGC|XQy{y+Em zK|;}BY6+f+qlOx!n2DD?voP8hIVRza{+_4?ENjeRaB!R(Wu&4TIorL=Y#-bdF6r;( z@2mL?Ja#m_I>X~u>lohXthtfKVldKkLpgh%-h2Uj-lmPK>{adh0vHERM`?7Ea&m6Y z9v(?7hqd%7GXE=DOM+&(HTH12Wtz91e3E6o@_#{J zN<*+U_Nj;GH2tn`z`lS~yXG9lQ(;89^7}oWidi}EbnHQATwiiSr;3GeL5E6LvND+N zhiUpd#*=fj{a2bxL<)Jg&@o=U`8k^|>6t>i532r=7u4}ScR#M492tbO+`;`NPm}^NGSt`LgWVNDW81%TgSp)uz@$o%AZd=Y58oJ z_pC&{ozy$|WMe1C>*@Dy;()BXu41*qRE}8a!ft!YZYNXE9o|MHggT$hbog%MI_y6IhAtIV{twEd9a|N`A3}=vXWa>0RAjRSX97q z!4Mpo*ZV^#Hu_@xus=9oks80c)EnZja@744XkR(28?LKj{eSs?nAp#pnvGW>a{fG-W9Kdq2oPs9WNMnu2jGUj9Em(0UT3q z-H3K(d7uS^Q}`_2&*q&^8-N$s*B^p;=sOq+s`HM&dpnOk8h2jvM}O=<=M8_lno&9o zrWB$iU-Ea?sMUHq8g*XiZ~V?v{^A#}WA`c{y0xY9 ztb})F*AXIz=5it*Wq*1_H7WAs?iY$L67+;>=h!71$ois4^_`M*pxiEsLSuP-R`BYz z>vtO33+Jw5HMCbCTj8`xW1~)jDYzGLXcjY@xMOJ%sPVlPhMK?0#G+D2LuX?8dIK!5vej`A4=(u4)~Jh|xE zuY4Eq5!giwa}sxbH@?E$>YHb5X2W%ksRymC2R;B;!0M>M^`rt%AXbf?TSJMtrj!6& zO}8yZb)?7d>e4}@>_10U;~RVnuMA$XvRq^;<)uiMStc@V=7UI|T?8^i_KV1ookTK6 z_6ux3s^2~X`G4?&h>8JA2!onPzm_qXl918@xMdg&<{(AZ5p>`RW6=d+)%Zp+Tk4FU zGnpyC?_6nBM9JmKabnG3-zCz0MHj~i!N zJoj8m9FQ9U-1O~+;=q|M-M-(XA>Yx8P2*>R-DE?*Z-3W}w2HSr#X4Zng-lX#Au4v1 zx=0fVe8hSbgt5F5tuu8%%>L@JzU7+gL>|fT1#0g!%oP<_H+l?kJs37L2EI$&jjxUb z9t$oYI%>zHxGk2+aZ12(hf^xQLP$hoP{sxGSVdCF^m)fB;D(8bz&S7+@+Dg`D@0)$ z1YUFLI&ynj7Uw`>SdWRE%iipd0EYoxwJ>ei|p4Kee z_RrQeAk9aVGR)3aS-O6Y=rx-~LFPI13&?vY;a1HAkgh5P6D*t3YM4o8zyK=9rgDGF zZ`d~a4QQFL7F*pGi?UgX0HX=~J{<)iohtxd1v>_t&g%ZYO8c+KvKqRSx;ZPXiEk?E zD}M=g#K3l-)Ej3^_x511iUp-mi`wlI-U3a!-rYrKcd>Ny2~@(bX|!eAwn|sP5?dmE z;hFjxQJ0JvqOf#IIKj6R5segLuGAv%OSPz3+xDe=>ue+>@UJGp|7Gvpx7)^*eBr;( zJcZ5a(IMNgA~~I&ZaRp^v7N--PMo%!PJhxKjW;bpHe-rZNXoJ)>0Q2O`JU{oDqINg zBFT2r`^-AC*V-Km#I*nv3RS--lFuWVrlhERnr`_?$l;GThD%WTh2xmjjJO> z=0O2rC0hg~D;`_k9|&jGLX(bDLG>QK#;XOVdw<+HwTM0k1Z*{K`rv(GNew4hpkTl| z)kM7V`^o}iW`7PYm{17j ztPLWv{lGPEs*EbO)LZYCLR=Jg)fVK%^Ik2icsH%j;cjg`YdO^nfl0>nUQ-ZMFedz* z$8#(xrW8}E&`uQ@1-}D-2S!n$#X?@eJ9VD0^qjX^I|{a75IN&0DpO3xQJ^GA(YGI< z%psl5w?mrlOgW!&Yq~*VhJP+9V7POa<>gb%B>X%!8BDyG!Gr~F!l!0sZW4cMZc?Ib zEjJOf`w(uzi&k3KnK4BkO<--4KJYq5M)pa%F)GlWI3$)$NC*8C5BJ4Jjc z#=k(=7)v|j;b9#6ecv##s!g`&Zo5=64wcHr^0X(LFtN8x*V2RvQkh7A(+C-gwGGcW0mWT1I4#6ot_VbUL ziN@1~jf`m$w0;|+O zkSOF)dR+(yCslFv@InsuWCd-KhB?OHIW{hbO|XKpN-Lu>S$_yYZi`5h?XBe?Eq`^u5Egve1@Z!>YPBVvmVIHk zUxm58VN4@0WNQPj&(;w4Sy;%bgj#iwKd5kKuPP;%f9hTMprhvI9W5Yk1$&UNOc{lt z#<}-`r4z=&D!)fERge@wp7@B?Tu+;$CC8 z2YFR7G@-B0oq`OK0pb^KX@EfyElb6_qhW;d)PEOGTdi6;SZhy26VbQ+7+jp40Qk=lhQs}I9Cep&&d$~kwJhZZaqZfXN4j!Uq~gP2{L!UcEDMb zSV26VZJ(%65`!pAH{oFt2qW>+=+>IgkwJercR*6V?wTY2^0yAwywWZh?CCfTk3*D4 z`F{w9%SZUJdW4^AN4UyhIMAhHC{owIWX9xlap9bgWw3lKudB!M$M+eFuEt+79^+oY zhcj9}oWH7v^XZ(N$slPjXlti>Xk0d0Wq``BV6FTHR@JzbrE1BbWj;CLtHmSMB6j~K z`J^1C35LWxY+@cSA3`ty3iU*yVo;M`$bauS84J7&UdL5rO(z;R3nz8r&e=4&_~NF` z!*_oYIP|zL#+-=c-93@IyO$^K%f$UXYu;^&7$derK$T#Z?tdJ16E>rZFFR%@Br|^< z+PZ!MvkI7qlUL6@`Wbz(0sP#Kh1w#jxOig4F(Ci<_W<{g=lN{L{W|!sMxzB%V}Dt9 zk~+nV)wy1@;9WniEs6N>&f;oyNrdW>qIX3+!F6;=44)rak>TRQds6V{iM5NRRs%$t z&x_{2gs4&(MN|syg>(?+x1Rls4zuTxeWUK3!_B80_y@w^m6se(z^fVkBWzqi&cfFl zB7JT86FpqNSJ($a6(BjNA%s-CU4O8s3t2eq|=3sdxgV4k_56YxEU&#Eg4tMxfNziJolL zj8HUQ(R&?+Snj`h%4uUTjmkAcm=Gfxy%7pm8-SL2|Na-Dk>xR%8nb)|Wq(6$%`h@j ziiT2(wonCLW))UqZPZL6Qo4=$uRkQ3P;zW6!T9pA;oV z{Rxp&9M?rd>Us+_>xD~3`W|9pBzVow-KiehiTsh0+D^2qI`J+Fi~WGvsai8PI3+Cj z6O8SkIWx?Wz)wCPc-GBxS$~F?F!roq#7rIKkjo0T&#I*>?r|j(YssZm>jSYw3zja= zC4!&x2uLI-F!YMMuPWNp&xP>>#a#WBA3k;H3qmSi`~i(iMU*hEVd=A^7yB1N#iCm{ z#X(s^=iIv(>0AY=1!}9Sk|iTkJZo=(q_*di>QY^<1Qt)Xw8h&k=6|y_TClB6K5z^! zTI~FsSpQ~;*K9C4&O#G!K@jQdWFLMjvMclSO61pa*GxnHDpP41Wa0ZwgDfScK|GJs z{^{Y{9qh2?)X~` z_|^>DWnG>1o`rar+<&tIX`pqjCcsIIu`2iSO${w7h(Csz`r4CVy3acIPi%sk2+*dD>dM zhr%k!p*z}TfQ1 z-e1YZKCsej0em`>vi9^|;%3Qhs4Q+8x;YfAH${o8Nvvdi(DEN$2##pC3Pcw#dPRE{!~z(xRW@($7fG5d+y=OpK$_Sp8o=Uw(#GbJDOi3_RyVP zvb5mMmv?;*j%t4j(uv?a+ZvY`Dm)WDpOXnZFKvumkH{+gS5$WaK&tm%&#S$7FXOku zTSgy7BNp#@pdSVoPk3rLb@ZO+!v|C;C}iz?MAWjJZ7mzng$lpsC;!!+w&!R6+27rK z)t$E6^Bg?!M2%ieA9fc#rv2de;_J05$sVlmD`JX!FPa>^rKJ zt#8vxFXFnmzG%kYZMB`5z1znBZnYiW;+x+#-<@oJe&3z`Jl|9)?>GPIPM_)>;gDd! z(Y;~u00DK$cv$Kp=He|wzSHPUbZ4j1p}OGFdoQA~cyNx-16ssDuwuh=&|gbb=Y4AQ zLtdvtN=tu0@X&kKIu<9?f(mu-)-px4b#A?R`|9ZR$7i4Rp5|=m*S~)L_s=J%Tb*BW zhP40Z!EZnP{>S?dyE(vDZEaf4M%y8=@x4XN91e--{v=Oo z15l4XZ8vt~*t=^E;%I2cPDO-ch|v`9MSZrLqMU!*a)`G=IjyY}OG&#Pje0rVLEljQQFc_9@Q;xW~gmxgwW?B-WPt;H@Xsq$@=!_Yi= zk3sViuxurE=lf}a$eq_&lC^X3y7C#le|hrbkL&-k_TyS7iuuDc?PmK~^C=|#hc`~I zqWFKEj4!-T-rCyQ^ECF7tN)0{7v8PcjN*UG7kaj6!ouMiWP`u9o<4o{>_0Ato*y)O z(U9i^U-&R#Yi|!v|7GpRC+ZEq_Y>R^Xxa>^0o%qCPNZD2R5QAD?uHjpknmD5U6co^ zNgEA2rg3xN2PuoSDCwy>^((8`M-|=(A}&B5n=Bj;Sq!8C4opG}P6|E(!JQqFSnYq7 zaIS`TJb{f0`xCmF()M=x+>0+Us6!%Pd)p~&S55$KJXSf*((aD_!=28z(|_CAc|Q?^ z0VnkJmWFQE$M(a7@3ynF3ulJAWRQt;?(VaJA2N}_XW)mitSC4`xO%T@x>VHyf5max z41^>_M?pzsmJ|6c5?O@Fe>f`{t?!9h*7%Fy(aS9b5CmHMUbv z(<$nq+>qoe7o+~5i^^F2p2U7C{+>H7J4?GXBpQ9+O>*)0-Gmzc{Ii)(l+}M1y1uHn zWw96r6gr{-MVW%h9pG;PZn#FnW@mAi!aJSX!XWP^VpoD(LR3>4El&j75n)m&WkQOc z&bP6Ha6(c2&{~!kB1skb7mO9Fds5B8WD&&7*a-dcepAJSsn2vk|b2S1*^gnT*!nFln2!hqxhxqG! zwex5RjfRMt5PCQMCG1E+>-BY&(i|r&-o1pdI77H^!6t#>znRcKC-xJ2$32bxK79T$ zzByZSyF2ane>P{s#Ah>~4WkP`V6%_dOtSX=DhiqN#COOmUi_ec$>4wIOa61<$7~SY zLdsX3l6V6z_MiApqp=RZdslHZWchC|?8lMchY}xn3IDzA^=DCkrrP?#KWIe@B|pNm zDc&d@#|#5p!DhRGKj-=Lx1SY1U`?;z=XeSlYYJ9=wo_-`!{wqF=z4pu{>VrB*FV6vvgzDB~c&UGw{d{5GLa{xjKla+$9!mdS+zwKW>4gM>$E z7#*p#zt6%Q%j<(z2wzfG7bXhAvIzMM!(EF4@Tv&F0pUh83cMb(f142FH)Ku`F$l@q zS~+UR8+N#Z8C-wMa!Pe*vzV#@@ID}}4FQZmA3hZvuBH=D#oH3%HmL0zjjB}Ov3o+1 z)PZVuLb_5un-R-$TxFQUM1a;&Gsz*Ud+AQ-f)KZj2Yx)8ZMN5WoE~vk#*1v)z`S=;DH)ZaR}@mzkTbav41<8iIk7*;&(sY z>vRg~<&?J_m8K5UMgyEqBRkZXTWqX!wOnA{L z80dek637dLuE`9a^4tOSHWcN1G}#ce-{z-<*qjlK^nHmuQ>Pps!GMOD4fF#);X$J@ zXnN#||IyzbG#Yk5ZSM)aayINS{6l)wPM*+_vtjq)A9)&0(`e*+1Ul*_gfA60Ah=N6 z9>M;(eZo8Kj^`T3^3?WKmk8R2G=N=46t;hb1FSRN#$B;)M=u~Tc0fjzY(K{FQNFnO zvAK=a#00|GDIr0%nq>KzF5Bgdp+!6lGVcfdn1$Q^bLpJN+gFRmJM+8zJZcL6)J6l+ z)+xQ}G%vZ-VaKysp4g8)@JDePjZYIBl1a$Z(9w)RSFw$VYDNLb2W)BXZ)_N6zZ!o_ zAb7qU2OLC!mq-?~2SeEok%Q-bo6Y!0D6a01SYi;c_|ryX{f`O1ux~pd4V$Bw-T2Ws z5mk2l3t)3f;W?X`J?a^!Pzxq!oy}(J#!9Qexx*N$`^kxKFwwp z&toP#OB$}M>~nQxpZO+P59`iHSmx@yg-9I+!GKZBW{Qa6HblIbOSXxNU1OVC$$XxM zVxGjuw_bYH#7A>6IQYn+lxk@yrZpNyHsF+{e3)3s$XRA7t4JON5 z4!Y|)`EC0`-3CZX&$?pnr2=RdC(DmQ43Ft*`@x3X-1r)e@Igy4v*3-@XqNLX; z#h|WOm^T?=5NA^ntRyAWzjMtA5||>wPR2f#Z;2 zW+%i0g^@V})Fb)~(1fI@REjGW5Rq*#J0xS0fV@vqyi-H0qMQ@^Bz1_f&ceK!6DAJ( z80N1cxlVr=&@#hkSZ?M}cxWMwJ@DV!=tN58O2LmPXVm6M(UY{efubE&*X7!6HFt>b zxV4}0R8ZU9EiX5&($ti2T+;xWMp9JGLE^T$nut>YFDRhxz&i^3(I*Kt*Ol|c_Ghy; zY+HRH!j^#KZ6+rqy!=Gh*At>8e5UK`K}A>aZ-{?n@w9JS8_9+>x+T^|fd94}4Ow); zMxGz0`{Uv8j#k-Wo6%s9Fn-mT!#q?_L$$nSZNwYaFtIjlgF7-WfgnMsVJ@em&Uwio zTBOB0F8v&GwW%g`nQKOUa7g}l-5OeblJ&~g+r*rnc42nlmD(6YY7}1XG7v1zGdlHo zG=6_SV=wQ-BajH!oMd#0FJQQp_Fp*j&NJscD;{~kG1qNwx#srUv`f!3fGBL=W!0bo zJUU0g_|gy23;?(I{HK#%#nD8`TJGAO7lu)~hP_+k`PM8j#P>WPc3zTLYr`mp;PGC# z7KJ^C?f@~!vRp*qnbAmA*mlM-n+M6>^TK}~3pmBYW)FW+ZTjM3w$@y1Mz&$S4x$S$ zu&N0G8~iNRx{t;;GvzGmqC`g16h^Cj~hOC%Kx zODWA@A=C|*(?xHX3yrehQFk_rn-wcmn!`cpM(hqzg`91_DSJ&B@nt$yIS4z8y3~Is z??8p+OIuFD?+1B3dQXarJaS|YBy7_k+#Qbu2_m8o!P(9)Q?MVjPt*teBp4!K$>ew( z*Az#&pq*bC>&RJgyolA9SKVmfuuJLU3Sq7S!g%QJ5FY=@hgiK)7WOW3rtB;-mtiC* zA&t{XCDNvp>n!ae+^gz?fGU_R!NPyVtKXdO#4Mu_I3TsUq?6GqQWtS8FShi1tpc`e z>Da9;z;2P4hD~;pl8BxFnX}B0s<@wWZ8p&1i-BX%}Ecc5cI_xQ)vcBpJyqg4k52TATof1HD3c{L|K#F zrmOArHx z2e3lDk*j7JQExU2$rVzWCj4*kas(40{EbsWeR8FUPXltLh);X`i%DiW=2;4~lPhOF$EFI5L1QR#%>skUInkpT!W_>Q z==@Pet}}9)k=u;yXXGFwyBRsm$oq^OXXI^0e#pqXjGScT&y0V($;hjWyv)egjC{z* zmyCSO$mfi_&d47b`3p8b`Go)d9VOh~@Nd?^;Orep3Gwe3|BgDe3aKU+Bk?=*!-RMp z`f37;b;s%@$*UmpAR6lc|0PL>Mx91u{mZ1$SpP6-G%Tf#wR{b4BGxsxTyZZwhXfsJ zYS*I<{_|!cL2-ZW?E;3NP|s}+qZjCxW-m!FxV|-td2)d(#T3n4F;zC`P*@H&wUm+92XhPP=Bv_AP?xKJ;3jOy|FKjV|Au9Rg+HQb zm~FwO-RFO|;cvXsf=wLaZ~OSCkCyO8L)GUshhBW?huD9&jZ!l2+6HRK`M|(vU%`znIi$1RK2sgF=@7BoqRP~&yp(^^s?6It${CdIvsofh66-DP+ibQD zRy~$8BKX#5Sa>v8+9wW3tdQJQhSX+ia3plp-^kknYKJ?q8#z^dl^vtlqcTv9Ln8wK z_b)IT~a&7BOJje>O(5hQIm+9Hr+!>BG!Kq(LM$5R)g`c2c1UaG()y^n&tKw!WSGo zy}Dw4%b9Ph<4BzuCG4=(12<)h6zxKvvK(UzT2vOM;=*mi%{WP;5y&9krBJn(l2o?C z;gCVpKvt2z>YMF|V;l8UUTJZ28;hE zA!@_lpULl8Gl_<*%9g=E%FWe*!%=#77$y)F;VNdyRTLm{4nQLSr*Y(==!-)!dO?NJ zDs42P=QQNz#SJutz&FsQrj3RVpSXo_L*f5`>Fsz_3W2DH@X&syU;Yhq6LVOVt;v4| zM+pip6V7%ht{c!7l-p=3l;iod3TrzFixVk7q)3+YCl=@_u1){pBw}#NQ!>3y6P0sEfRh`n*kg)|6NiD{(}YoSR0O$bnSwz zdEpvF{}3V)Sp!v}(hg4N%F$8i3LJmoFwNBaHd0}f(s$gp=@1+S*940Bz^&|}eF3h0 z_%OJNE!-wa8pVu%zVgC;ApTaeq5I^&&c;zU_~D7qy^?d-lCxvI2z<-6Ui=8b$GnkR zfo@woP}`Y!BWOiLcJFtLT-XvfeInyI4&V5F#(OB_2mQt@&4eA>96vn70vCUC?x=6c z%k3s6TBLUsB`hp{cUmmYoi5CC&I6MW8a~yvLcTfP?4{BKQ39z|ww<%@B9TDJEAS+e6E$+ndW@3-M z_itHn0%IlZmNT2RA+|w}z4C(K!s}f_V*~Mbk+L$~QaO&pm+%CUR^~JcSPXY!x0UBY zi;6qFbz1}j*Cyl9D1s0%cqeez+Z+yHCN~<^d+pKy*BptqUH>{ERlI-GeOBOKldM_N zB6EBYh(;uI)@@-{=Q?oV0=8|amB$_Fjqh0J7RozH6;Y{6gsiARx5Zyn{L8g+Sd(A} zAx2D6*H*fYmhgN!8jYkws&dLFljTuTu|Oz>gg1%0gU&wk&Ia+9#FJs?QF!W&umZ=m zd9GnJPFPJI!n0trJXU{5IgeAj zh_`An__3DEi9MU0bsbQ|0*;H}=H|8&Z%`xZLYTW+ zaz98q)!cgBs}3njFy*i>0K9^WA22c| z(8l7!Y-WGV5N_bi$@wKq_si$7hPbR@Txy-GQ+%g7S;Jq#{yECT!^)+MbD}W?w;*Y= zX1exICQ-tbaCJ|2mn?)|1)H>Kq&$ z?45FzjM&SCfFjT_JE5N@c0yteej1{O0%&j~EMYb~$S9==hh)FcXfLx9hrH!~=!G3p zvFv+TtY<9fM4Uci7Z=PpLPH&h;FEkNtz3zn5HNqWxFO+&7B`$bq?6fsMhHC4@pp)m zi*Ti=jliFpGB3vBfqLjDa@U^Js1eI4UN;4j2S^tHls5K)V$GN1Ne^4MDR?->MDBB;pJPJSkX! zt`vWgwScEtGznR}FP&<+HVSu1XgbmQLQ3EeM96rXQJ-9A)IQ2+=;*Fs`x!mTnqXEH z&Lrd@qak^hQI9KYNbZ(HkH7*!B}DTGtR$#naKY~kk>Fh8AhZo;^5;4En$bTqnQJrP zP`(dZ;^)l(fq$H!U>*8I3w7t8KAWFDlcRr(YxK`75Dqrsm4r)Xb*bgSb8@k+K!OE= zmzjgG4-x*Oe34vrO#I4D#Bcx62p$@Zn&*PS>_c&eh97P^upP4gasmpovk22ylwaci8spmEMMN{95l~8}y z7^`4%FWz(zEASb3nu zL`oB&RzN4eB50h#YvRY*O#Go;df^E(vFFQO;dU~|iEZH@?howZiqaX-n!K9u1-4x# zTzR=w5^+g3jiB{8wV8!{c?KLi+%13JAm58CW_?)!uXKmzRft1#Igz z0^n3fY>$fhg}0|Gl64&z93wX!&@P*3Us0t&ba8oJzz8dw;~(`#xn);g9?XB^?R9?7 zhmBCzqC;Niw|(3TE9I2iVOeHvM~JM8mZ#RhJOjM&Fs9=sVscq?NDwtc5T2SgJ5`g9^zMJOJ z1~4uPTocbb2Ee$SgWEf7j3Iv}_87bnB|qb%Rp?0*1ScR>z#3PfR*>6hFtbujC63Ct zMazJYJ@V}O(UZ>W6jKK6^HX`$kzPpp#BHy`B;&Ep{ilUo(3bK-*vu8%XvtH+H!grO z$xHa_@CZ+{3$h8n3Zr-;Cd8CZ(z&=7@S5QAk0D;?MaZP^+$eTMm2EpvC0gs2 zTY|s=gZm|?9B3y0GOSKhDQj!ZN;z92MeeA^uTAM3E~}>Y!_fJQ5IT&e!ofF%Fgmc8 zh8-KgfBNn$s!0CKbj5#&x~#ypzoc~sWl7W2yK_ij<+)3I3ijO)?Yrw3a1?&~jfUU! zNRt2PL+p)Cqwz=9XpA%aj|@XFMCy#rFB}_j^HzFtY}mn0aMtQ>rX6UmCDX|`FZ($! z`*|a7-Z@X~Brn^>vTa@#)6o-6ZKOtH{jZEiR1-ePh7b`g5h8!0Y9ZpebZXl!aX;=z zIQIwkDYUy|`%Sh%dz<#FY&L5-#BUBZ=y=n9i9a3Jr&G^ulM8rY08Be>n=rRW2JV=H zg!|MQVr&^(*$#p9c#lxOFABeVh2Qj>(&hM)PGCepvJx<14VI_0!CdT;#Sg4Np6Ue?0&OQ@D;F!D1$U z2mZ?(QefNu!1g;_m;6UY*|rR@!b4E}k?9duG%$|%riEvL?VyG8+IIfP=pQ;O+BUvp z9}8uQad>v1OL~Mb_>I9t2zp9wKm*DTop84*EfGOut|)&4NJPF_=L{wcbP$H$c;STN z2iGYaT!saZKZGv6Xa`-(TnMHYQDJ>(sTa{LJo?F>0u-TTE~48!0|&ZUM5{j@h ztqtqn)~t;WRhh(aMJ`JmGJ@=vxJtI&2GU$4F%xDqx*~?TuE@xcUkw-LkXJ%26FB9^O*R;?Ub-6u(S*UFC^QuUX94;?@u!N~3UtC7 zi!QPQqX=;?9c4Anm4DgbSLq;%8;PRUGM`&Lh4s0~J_OgVVr%?fBgFF1Az!e%*%h>;1g3845+{}k{-?7YsT~)oF)P3Q*Ie2 zLwb_UW<4_C+k8Yh;Br0eXn_pT)MFmk%k}rf18ajv63tNK2) z2mekVQJU9qO5bLVdy)wQE4Z%%$u(~Z`Yy{so7`~JBcSC4HBq2oo8}i0S}RBMN&~K8 zu?4e+Bc&OGhJT8;7Zwsy1u?zO=xs(0Y^Q<)?%Ni}jarp#Yd_m5GN&VOop9XS%s9Mo zAMV-`O?gFw%=Yz#AcS^3#Ix@C>Sup;kl7)u@X)wF@xlPdzbt+yaANwj-BMw6b`%!# zMI=y>KH6isg#SWDT*0L*GV+isZk{QUph>MLWQ%!pD805c8qLuO6A!RPWBn?3zeasD zrSvE(t-Gs6!>9SHWQ~UHK|nhXaxsH#FTw;#IT19|$3z|lQ3{6;P-TaU z(QYcjZ9)Psn#!U9Ci0?Ej8H5E4AC3k@IA$(cm?UpH9((L<2YB z@$?)5Ejl}G7o!W|=COx#IGcIUF=!fl2`(?P!?I3n_sJHPmFuZBN27j7A~M-&yGheP zCll^DBB!i?O5Q2tc5Ctx)*&A=lne+6JU4t^k0>7zgfKkXq&I)$j$UUf($(2fSE%pq zRNPjs8Mre7SKd)dPcsMAMBr0$!;=a^$j6L&KD$qQ02TSZ6k~UuRTl<1RLl1D<8@`b^F;L0^-L zg&=I`WUL6Px^E{Wz~ict;%L#Y_{@NKw&ft_NPaKNY*SxXD-WK4f-NO(9a1`$*UzrOa}!#N3b zyy}7NOf`8>g%jH2QQjrWC&1kyUN8re^ZU=v zNk#|mfNFn9jm8OZ(h~ubBtweD?7EwS2gJ;yqZ#-9$~h3^!AYpDl81xJNio#xcgS!- zF~=dchr$X%k~H`mr237A54w zc{CWjmG4{__Vu!!q|WMEp$}Ot>k>1tnb|}W)%C9Q&BPYXalju&-vCaaDT68?1m;&U z(1nFfR6(Vx$@QR;(WnBIBGoGeJ3+-N4E0sW)u7R+r~$=8ui&0WmQ_}9|Ncvh zDZqcFRm6-a#hox&p+;{dJjtZPKL|Z$o}g>MYJE0dmlbVXb^Cf^r^_G%GELt@ww5Xv zn(eHlKeH+|d=ROu(XhW{2+dxiu3883ODC;L#^ew%f1YN>%LT?ysn1m^e1L#bdY#Q? zaLfn=?K-6=nXWc+8jaly{%_R0TU#?|pJ9JR)u5GLS0XtC%;>0IB@T32|0|PfB%sW<6^B4=cVo%bMIF^8i_Jn!k89Vgp;Qh;9}sGqiFX5-dG{Eo@jh!bbZUQ8 z(jVWtTsEKwbx9MqMD*n2Ox#C~v)Rl(&ggrHw?f}$^{w!=T-!PB?ZpS}Cn+EXN+v!&S%z*e&a~$xjB{mI z{K>h2Ynb1d!(Zpv*75*+KQDuVgPU_39UQ|PVs>7)5F*dj6Og?gpjAhhbMOtO#h3u} zlh(SZALMQ&h9HeFvbjFX3ZsPKPIE^hb&m%RFtlh2hcMqf_~YjhzGepxZlQlaC`9j5 zMhz(~U1R8K`xpmTS=Kj5)4nPT6DM07kle;?ho^*C%0mq(*;n|g_a+2n;4V8`} z?QZjc?L{;a?|#fXZii>AOCv|@B)qm;QvoHxsZ&76SSo-1v4wco3!;Q2X{D!|csfnM$;&j+rgToCQH94`1^Q2a z_bY$K;f!^+xk7f5neiH>qnxviq*tc4cqevKVxjd8z0n$taR6`1$fD3i3xH#e#nm0Th~F;SB}( z3LmT*>r72y*K$aKvz8zOdB7~b3=LeuQm{1!_25C=f6ww4x1~#R+aW5v1Ha;vToF>l zHXU-v8ce3jQwM}lNHl~ilw!7++q{G?xTloKqaMyluCys)5w*BHhDZzFv|*|8%Z633 zaNK5vP0EAxXyI*kD$IY9yOn0iU7l2hu2|fJ$)7;L-R1C{-9iu?!lOXy09;M^1tA?f z1x&Ga$u^d&tptYI?61sOZf+N1);RTpgifQ-{X8MjVBo%ZIjY3NQk5*hPQSJXGAAKnQ=8GzB$Hrdaf+2}z^N z%YgCw1ru=q-K&h?zH)m!1nH^YyLQhz!qNSmOqp~@pQWs)xi|MZ5ZxB1-AyvWZbx3& zkKCJVj+iT!Rz~^;R*4xf!ZWRsAW9)xNs6xd{7^=0VQV{l&bGsi4F|@qg>4PH+wk~i z;pJv5$zMAKUtoWd*1n#x&T?MJAFWcHQLC~Pq~2%0m zha7dtb%&gG$Sp=z+z0JQ9^2;tA_v^o2-~Ligf&NgAGd!I)}$%Ep$;?eX@`f9JnYax zW(r^`Y`%PUQAlLOr*<9cI(M`5mS_45P#;luhat-H#!v4^kf)9q>ysXbe2#%0oz6Nw z@@jWFG$cS2l66#m@P8G5zJjMPD5Y7a(Xg`)yi|veV~FQD`m{xcH0x}OH^>HbNJe0$ z9ysKRj?jNvd`U;rMtnm@+`f51N5ZIiM@Pa4dQL~u;w&FuBANW7LkIesUSv=G7Vj_~ zfst+CkZbh;kgnuZ{XC6E+o0+1?bs7~_q?OM+*#`*I-z1Wrfvc7)G&5^gAvwl~d8V9tseej(2w+}WpoZHUXL3cK@@n1TfJKLDK zd2@?KOY!55(tY`Z1z@D%MflGFQDtt4DzRVCkMa+&%Sj9CZc(~Fo7rP9f~t=O7E%va zh53J}fPCG-1y`NXhW6dQ7T!TAz3rUk`JqocrIa577oM{zrr(xw-a^jpszBwSSd7Bd z567rmj5w#x)e!~z4MFT8aLqy!EO2JCQD&Etp@cK%z{e@3y8XFBwtfOVOMhcSy0A2P zFq#f7y+&iWPAP;Y7y=s^A~?p`-tW-yeC~gsnfbjL!%ez`nxUh^Lg;8jB4g-s^kXqY ziDTT4${5^;l`IGS#^Bdg(ZIDRcmces9c_E!Rl^>S5d)^!QyEyKm?Gb#E2aY{hu4Sd zeWiLibVNBfZNqgVz`z=Mw3jgmS-x#0BR>d~L8?o0zIDoa-cgJwHC33uhzyRcX8g$CfJ_w10q0@H9X~cPw9@DNQLAg&`L=&Lgc8loz3?HY_ zV!p9eV!kmI^Nop^Z_J4KHrK+Qswu2?YOUdqg`H7Qx$M+9u!_4Ws*-c^6ykq1-O~@5 z*Ct79)T%_<&kOC{^)-B6Xi~2&Hzy^S%BmFAm4e3_P9jw}iE0|!GTNiA<5@gMukSZU z_UngE#1go{ise=(zeC{e#P1u1Ir{erKE^7-&XNkl%yox$IyCFh{SH0t(7g^l>ToUQ zZ5|E_RBAPCm*b?BXNr4nlG1;NMP5)V+~J~C?r{DB5g;ZJO3l|DT2@lma5RW7$m0xt zojB9OVoX&6FXiD0=z%bXei+;9`<>bBw9{yS8e*^0XaHdM2tas{h*NjkF~niJppW;V zvc&`8m}&vF^{9`l!6Deg(C8jKJ=t=|UWdlyr~{@58OgjnhfaGuNGf{laV7qoysJq+ z$K1I*r-D zwfyh~0(o0=@&#IvQEI#7Bm7MLG+?0tKt%FRi-r!QR02oY5E)gb~9T5}SbnMYp8)&^dmt$|UZ zZhdIofdXpw0`Gr<1p(_{+*uXtDfKS6#@cFGa}wtb4=*;KT5}TZQIK45GXVx2AWX3j zt%-cSDA+^}f$dmx;+IMQ8lpbGw^!f*$)eF0m)Xjr)>oxD=pb(|jwWlD$d`I~BJ_9& zb2x^c4x-rVl79ZVzX?xhtPL-)+%W%u!7UZz9N;kf7O{V#@B;!@++oyb!Jl3*2L3Xt z>cy4O3u{g;^Df-fb>X6}3wH~ZaIl6yW zu2ok~i!0`KwH1?Z;}zG8$uo>qBaYAgJ^DvrPeOZ&K~h76noeJO348BdGWV}5@-m9j zB#ph%ZUBFX{P7Lh^Wwhnk#PGrRde6e1AGkk=pQo{xT)AJxuiZF~Ch!QJd!?s*7`YeX_v_dny;1%H z?m;le0Pn8t&=>Y}2z`J@`|yu_2KN&9iEuZ*$uWP#{B%y_Sy4=v%ph^kx>)s5!5@kFn};wPrQ-;L^kvU&vr7sVqPBx9Dzc?X{J{!v~5OT zpdf#bmHohmehR^V`L8${r!00HEiZ3W5sxzUH-FFGc6hvS8zq1G0&a#7jUwg$N|1oj z>$Yf48YpcWW|_xvmN<+bVm82bL4Y!E>{MC9KnRsjI*7L$EWCbh@?VzrCPDjIOMBD7 zN@Hv8%*89Ip#7DE-W~Y|VIS{^{4&G472 z$KFt{rU^`pqw7!+iDI=}j&-EtXwly~$M2f_;PVG}0(@)kSry^lOr{X5EDHIaS=xVC zA9!e?v8mq|I>ri)(DeHXz!HUfU{yyxXBW3I4jH!iio<5W4JyZ7)r}=xz{Zb9EaV?} zyu7-)C^m`#OzdL&_*yPZqm5N+jUmnlbou;C$Gc(2uyL0T6t{Po=$Ks4?J58ss?z5U zIXkmr7Gn7-A5ppIJo+`XE%W@c;MspTNY+j%c%Bc_w1drp=vr93e7aa*<5l0(*!-g|Gcv|n5dn#mP0P+m(aG- zC<;=4l)oMrMBs%M*_-k z=go666*^(}GURL-YWK)A7mi$}v4v{!$xShkyAA))6b=QAk)#ehzccg`H14{VMQ%X& z0Zg*U26vpQo@9~zyUk2?2Cy;kbv$?5bMgy0vkWOt)NFMfavs?MnZk{^l196IwVB{B zXSeB}qE{B)vM(;B;=rov+FgHSTik`hP+It5-~)h5a!ofqd&&v(v`c^RZQE`(o8s6M zSpcb|m@IyE$eAUuOBUci3AP5$Qj#A!{0G0v@Z|s`DvwX@6olEGM|M(}(gOQ!@=I3j z^tSmZ+G2XEOT$#7)V-(F7RhjPYi$_Azdvye42jv-u^+R(Ygt^cS)6~yuG4jh8uGi9 zhYX4-G2olfhB7?bKbh8zYKxC*t7cUA)Ero*@D85ht3~>3i_7;~^*D##E!V=j*3)*? zu%ETJfHm&1U{O@MMdQsSiB`)qKm<&2S zanq^WId6R6VQTi?bew-KdAeopOC;CweJDqbdb1@Pk${k~nT)(1=uc|*C64!%pcYr! zk(cr(NMm9Z@q}3ZO3&KAh*kbem-5WwoAs|2*=#$UoRIppj`m;&94BHG8g;C&O;^aT zt??CdLr~q-bMJEVoLD+y@uVQJTI55AoY_Hy5%9F5=yho47leO=*dcvk%i{`3JH2Li zZrJquL}^3ur(kNSnv3(u?x{tpi}Z8V6Jy?zkr%2}{n0+NF1$XtvQE{inRsys`WkmV zY>uKJIA6Q7T*Ci?5+ir7Uwm8rGh%C#=UnDF*D>D7?c7FpBIkA3ey?ZYQ!W zc&fW! z)4u_4tNwz1Ii)W+-yYm=QOW+ViV6EYc(E16-vy-}<$HgpPJti863fkzdH`jziM3_OF6@{Mw~iWLtm#|NpmU364?M_eK4MD@d`o zgXO(l)XzU)s^E_=9d!R{Z~fvpT|9=&ljg6&Ni$t!Q6Z{JXFqWY{3MQ3<96Z9>o}my zlQW+3DPpFffrMB}rWMD`4dHsD!+x#`MrF;)Wae<|)4H>Y1My)trh_PgSNM!`N0H0a z*;f-!r(1vfXR&mC?owSq%&(zbNYt*STu@v@Q%O#TR34I{ccX7FocB+KdH=oclzS}< z0Qu1(i~Lr9FrxCjT!QV@iZMcYY92_~({xYkcBub|_Y83{s;fP}BQ2JbE0qaLgym;^ zI-iMsu%HT*nEPd0N1b3yw4wQXMBb3A81JhCsz6sM`O zzV}fO9E9AhiY#Akns8COzmuQVUnOJCrCAj+N-l3)X zoa!t)Zg^2#kiUZ}feb3?UagpgB^JxlMwIdbs#IK7+YF72P4RiI0t(IBqlng?N z)NZXl=EqO)YFFg7VY>PBUiW0qEeb5u+pCdp^o}HZ^_Q(`l3aOV$O2+xoGkqg#s>zn z`#*k|#`AyZ%A`O)H+$x}i3at57@YSUE2w|9s@I=I{OHG%h)l!r(2Y0R^Lw31c@0ZX zB=QRx?`gE`>w_Hbk+Z^qwM4grCr~9F3hJHeHO=S?e&3-?^?9%-4y7>H@)TFVNbmL4 z!l@a0w~w5ex8CjhXad)#$IOnbWtADa)Mw~MAL~Wk42Aek_bPLg6J+RzU^-tkH;{jM z1l^{r0s~;yx{qHFA%_jDsgFH;b=c2X{0}woyL_5eBi(MryNLTe9(HV z>&HLl#Jc`?WszUV^`4V+HKl6MPFh2(&%14sTC~0Jkd?<^VFjG-8B6+hk1Q3+Png%c z0*OM!J6%b@iDj|#RK-cHm2adKrM*bLsi-j*Z{(8171qXkj|)#}K-eEN8?JviHcqeA zWF(?Yk}JrGf3Y|^8HcGqTum6xSR9?lyg)tSgrTOrwTN(fRaFAvA_{5U{;s6ihiJE} zlBMt6)ssZn728jjlBDn5J%k+l-raX2#U8jipeqTte6MhkfD-3S6saeR&_T9;T6l#p zD*K+-rq950_r1HlC>DViRvLdTvg*EfcivOw>W3`UP3?vHrivQxyC}+IdFcA+IyEX? zrGH(Z(iN~ek_^2d064+wO8>t@zbj1s@aXj`H~s<64#!fWPJF;BW5R0?v8s?YW}?O3}fS<0Vx^)aLQtZH27_ zC?O99mFIGHxN{l4e!zd_Y1?sTGwX?^K~lLD)&#?;&Op$7B*QjLzeWs5wlqc(8muahkJ7JZMI>#)<)`}@3)M9-LC;W6V@BY zetP%B8v_~>BA}=Ecohd{_5z901PeHX5eb`+6NXFg(KrdBo)>h|2m*aUsJ6qD4Q<>P zCForU`Qblvq@HLWk+lY#vgU?(x;IoyZOsk7WV}*UzSGj>a zg_TY%Ws=1eBNseOdIdm#cBJXzp|c%-q}iL*^3048n=gxl2+ulq9J{=!nT)f|S!xak;73M8)as22MtU{VYSr z9hjPn-Q4!a2l7E4FO?uMT@$z>3{G-Am@W|^RyIL$P=~2Em|A{+vgwC6_#_o963I*( zjrF`nKx{OX!9Jgx#2{xD2S*`YP#Amqld^!xs=K+>&QN=cK5Y&d z>w~|nHLoGxi9oUe8K1SELIWY1*eXX-K(QT~bM(GANAKm4zF>~jv0pn+Ip`ASNfyZG zDX-#T^CZj9yOPp>xv5cpdoZCT4OSzx)|^i0cJg>1C)0_^5Y|R4hM7KL7g2;xK#!5$46mUiupQxxF1$DR zF*_Z3U?zBil(Y!SVeT}S`-~F3aSS0tPEcgKfd$gyC7R$djNT|7a7+=d-!bZu}mTi|YS%k*G|c z_vWr!24U`hVE|v{kG%lLT*tX9Gz_L#V&VeLg{vtS%0rQ3P#~>ZyEyN|Dn{|TRtg&X zcY6;9{`E91k;wzAl|*%20;=tweyGqBl}mglT~RLQ>6#+mJ+3JdjJ&8RT0EJ{v_*BL z|A1RH2Zi5X-SemEU@rXo-x=r~a_AHFJOYJ=l{{7aA*Zn*AM$O>N{FDt+)_=?YA zd{Oj{uGjOl$na~L?nU9izXb0E5GC%X`S}_p@C^%}aey_!(Ye+i#~m0jCbqT2woKg8 z61S{**H8*cH_^AMgGD!E{mW86V;JX?9_Ie0UdAT2)Scpt?p?Jx*nSxbb1OHW<-B>0-f0YsO2!eipRR@hlbu5_LpMQGXkaBhO@*zoWDp}FNVo@E7hqQ39$}WHV#j4c4 zD=b)%cU5PIMRnw~$ThU@PNvF}s@2x_R6f&;rF;QE=f@Se^YcUyAZ@>Mz z7(?K~D;ZvMrRBkkocp58sty*b)K$ZO=bi~Z_sh>e0Tgc(CF#JwEe)oF&IHK{1mYDe z=ZVY4#NqV&Ayo%a@9uS&qhWi^?6$%~n1@TRSQXFs<< z1vyCo2>U2$Hw}{Ra(bKw$sUVSG>BDuebv;Bqd7+-(CYZb<#jz|${$SxE{^T7)kI7# zOf6X#MHu6fivHGRp^-rtXp*W+ zWb&PFkw=qsWzj2`EEB(U^k?mVuN_U&V;%!* zMdC%6yPkSlNS=k%q4vY0BoqDPX2SMngb zC?n#ZChq4=j{7m%`Xfq;=EqmLdzO66-az`Q7w+pcX_}whLSlW5Kzy2i*ZbaT_8MZR zx|=PJn=d?V(PmCWUOysnwb*)px>Re96@8Bp9fp1X#_x|;(^X(+d{qR4gV$dIx5VXO>!)So zD^~e{kv@>EfYoW4v7)PB8vthrA`h^KhEdvxVa2mpm1x5{WZ{RsMUQ%XDSTbyd9L79 zA@Mh8YFL=yQwkp!R`&URmAzhA*&p|+OxV2tT8e=vARc&VikA?7Y|j03w+!L{hI9dN zs6`n-z}qT}0Z(5IVUY0fI^P;$AiH0WFSxf|T%+H&@j8Hh0zjlGX%-Kq?X||-P4K<& z&6w{En5yz#f{NP=HJJSlUIqtEN*ik!Yh240YqzV1u^F^w;Y)v85LSa}RAzLDYX ziZKwY`Yo-DT1eMbo8mUWRT~0J-UAxRO>?U@B#mniXsqDFu|i|g?Dc@gG%L)it)U$G zkeMnPI;tBiEF^AEAk&2PDwllGeld3*G{3r;;UPQEG(7x&v-h7AqaQL7AyfaehkzD^ zhx8w84Bw;k;)1^N6o5^E#i>64KT0^KR^MT|ZQvYg!zC>*%}PEkjk|k)8Y?~jgNd!{ z{QobYd#<*B2<0{H`+W#sR1w!IE$ZbGxLK_zj@&0m_(xMZ`TWn6P7GAoKbyZi;NZ)( zC=WPd9>bDhW~~R=Q8~_j9nvLILxh7@5NzI{-Zzezk?%3sf|wJmtec4?b%EczrXtH zQdOlF8|NNixG9aK4uo9p&r%3->1C<98kPf)A3L%-r-*W&?&}g!U&FGwS|B_<=Ao*} zaTiQ~v7ZW##t)(?msj_%dZXo3?O*jqtNK?|m;P4PyDD?PF)R=-{odi|UTot*hJT~k z!_jWPAG5OeRGA$9$m3a8_3c?^rtYlI!I|3VFs=Jv(YE_`bstGTUn}Ws`CY z({iUSdB#A!0*TPqD_YgNyP>e7!JOg+3{ zy^al5zSLq+;B7xlG)eP2vn}Ds+7DOYTf=^sEOliqI$kWS=35;Kiz&Jb|J@yZe`4;A zPW>U{;RTn_(i^2b>*^jK3o5B`>1hdeGCQf0ib%IG0g`U|V{9#Um;v`l-2_TPcm zW4j};&A1iWi*aa2aWqQYsaS4YL+J9jGshQSSTD_=o?UOH2Z}d;ukdP?=)5;V zouOEWYD|wplKf^WRoT(Ql&Zx(YO-g4wWY(LYttK@`=iwj9L3h&dcFHLH}rb){kuBl zD(+K7WkvP>w#!HKrFspKsSp3UMN)}h=fFqjk6CExk+IOi$1XH|H2Gb8mD!g=x<3G@ zvhjN^b=mrZ)_Y+J`Az6Pt%^&{BbzSXTJF;WaRGU35A++xeVT{+!Z&Ms>)vgDZ#}Z@ z`*J$9eOF|6ps!o?j4a_@zcbHU3J)#vLDNDx@dv&*FY-}7>g-j?o z3tVY)h&KP89b(ulPdc4LFZpAC>;-;$2Zq0ZfsL;vSA9y^bGq4XwRT!AdqFp!wRYOA zmb>+%%{JPtmP67f?bbhM+X<4Zy{8fJQ5(=VH=y^34XAhVp}R0iy_#*P*Iv69^-SMv zLmJ~+c~{~{?!7Jbwq7RpYV6{1t%+T+kP(!(P(?rDB=H>r;ZA$FwjbVqrIRG_@4=X4 z~2S8!AnIkw`O_&TT zn;aai5UhAqUHz3_{iUWZ1i^tv0hi6(994qdE{?u0*p0kA>~U_g=f}N(xx2w4Hk}HJ z>zq3snQ%Cjr|`RjPWphk8TQ67buK`@_PvzxCy&e|Xn6OMNoN>;w{_3J%E>rPSXvib z`S{hV!@a}Zqf&h3ce@`>5BKs9D#r5O;h%>p^{GtV?VKLJJATVcKmg{6m-epQX<^Jc zYZoVzK{WVvE=y3>Ohy4bx3syrX*p-@E?H9I93P7l#r=@=p&+kboY|sQ(@W(T>O-uz}hTQc+N`vt-n(x76g^EZ|kY>29|JhGSe^f zbZ4V2pKVZUsZg6rFV&ZSDb_f5NSi%%=A=Y9-tWS8(1i?0PMTj5I1Y0OfnkbWAvNf` zMv4rj>N&E~oUi4gPCEK7SWtaI7JJOsJzZ(#Zs3aDSdzDY7H3*qsVmU~-=_VhUdF{0 z%$j%1i@_fz3e&62HUUBCj@lun^Nx4fWVjf3Db z^I{u}s$qInk>xFbZ5)b_gGlbch=}2JC($R9D^=!t9hs*y{*y|j5RzP0M9iULxYOgIoTx+EN9$;%(J+J{8 zH=uxzDV>@L=35zTT~mHZETjU~rQFZefG*mb;p!TH85|j*!g@zab!9Yzm%l=+u<_9& zV}+Tp?V?1pC^(od!x0;wWUY@7Cd3{lqlC%d5GgE$fMETjx`1G2pM*m#S+aDX0H5XM z%SQ=atD?Z`uQQ96ka~E~`c}v_Ipm|Lhnw(kz%i>Pz0^;~eYTjsfylKo9=x)24P=Vy0y(N*);0 zP!Yn6X?Ru3!s`0kUF^p@E&&~7JqtjN3%JC8TQ3~*TS(_F>|MoCDBcbKzMMh`_W0Ob ziWkRHq&R+`Tsfk@xPBJ6?LF8lS>D|vd1EVfR$b**MU&?`nn!e4ZKKO0@~8**N}%iF zmD{OU==pkKoFtm{?eR`bHLVnw%gxav9^SoMh;2Q;7q*p57FL$sud>b&<=Wag*%N<% zw&&z1PrX*D;<9^s^xdN0h3ROiQ8FD>8YE@%N*bx}VTjDT{tbCp85-|c@TV`pm%pB+T;9zXb;)H#qr{_iPmm!tHS|gD-~C&h3!Zo|KTm| zg96wer8Qy27B$M1$IEaBq<+eC4*xBG1Ak1+iO(K8@eAQSi4N~6E`k!cN7Z>3_KKJu zwF#qCe0~g=N7klE4698p3I;I4_g_+-aTxoFY{{%T8HeY7(m^S6_r~)Bn4Fzl%!NL6 zj!Hd(Vo;~-kmH&~_Kr%uco*dj@UGl{7zs-sJc^_0QGj$^Gl=W&Fo?HNpWSzV&GOOh zdw1_y>_`2og}d+FSv+00qhDNZPP{lo7(wNd_Ajqe`KeH_@5R@DM<|=yYU}>~(LXPg z%{|TOtT&GR^v*Q(%XkGRY{Wb;?N`c2GNwXxc$?zarP7k@%J(p8mWL@NCv&K@CU+hc zVo_L}!jPFW^#^v@l0%j?vQ8_1y5>lTZON2k$##=9FJ^0Dl&-O_5T(3mJ+ah&x{3V0 zU9zG)!p2k{O~KGqp56bkHvMg3dnEDITXp#Be**Uy#-m(6YZ{NtT`et0g}q*HMlxxS zPS;v6nr~o8G8?E1bhC)3t!PeKP{nr%bz=^UbHTddnY?mUBT$j~KY9><-$YAPJ)s31 z(e2TSmXktlEXK`-9xLBL6d@(+&aijKX>U6QilG7lbt6#0|IiS!wI8ATAadrqK@amxBG=jXe{j3CF^&XgZ6 z>+9lpG&3QRNdX}7bhfR3F`v6)UW+hi&XJ>sp}-f3+SlOV#`E$lC1IC-5Q4=Ie*2e@ zE0!5y1cVe`VA_kuVd|z>n;XvOb8?fn^dS!Ns`&w~5vzIWr{{hGQB1FPtgAE~CGL|a zmwtLRzG(KM;gj?tj6eu^f~x$}4^Mj0aOkJW6M<(dRR%S=E7cT#vw(RCOP-|O<-+Pv z#MoV^fIYmQ0`@)JR<2?;0P8$AUyg0lbcyb&bMg{;0~~J?tyy6-vAX1|1`vl! zlFi&j4_9Mk9fjp=oD2mYu|{%cXcJ}vCm?+=N1@!P^G+4V!Bhg>ha zH^1`Z;lzuX^nE-ydYqPfAr{M2Fb+i1sC>}-k!!Xeu20b*zzfx;S|5`BX2e!x0+WR!g@15t5YgSJC|LN|3+uGZiHk_|nx_*hV|6LYC^$RMVwnca=hyCP)6#*K1KN3Z=9xP5w= zn%ktKrrXUic*m0YqrnC}%KhXRmgE@kRM^#_DVw+pEev7$;FwKr$sL9u%jpdEIBzY8 zroqluDjRKqq;{GyfO$))kB3k_UI(CP|FVpw4)QXosdJ~+ALX@W>E^;}z*OpUIKw*Ki z!6)uKuhD~#ZuH=@u=nfuS{woqf2WIb6Nz73g75`N|1B@&kM71B3>0_QeM~#D8+nqp z*0fxI%ocER~JhBj>ebWomHM({o%IrcHvSimcC+tR0Zt2<9qgWEEY?l;&P?LN8lUXCJSaF zD-x@)pZe(jqi5||78h5qlRrM98y8TdNd6EkIKL^4`6@9}czf>t!QkQ7_>Tn(aT&X^ z6m4HWh?!2rB3C!}3^Vhr@H5&VGx0)1uTfRR%Djv-gQ;Gi32;+PwJJamb=&8ba#6>B z#;8R+1J1RQ2U{5pqLaA1>ZyDsjh+i?@7FoLglIJP!;U@H6%LZAU}5 z(uw`^SXm0wreRW1-ee+rM%M3=d3j}Ij&=gN!QVhT+mdOtGWnkui3~6Xs-G6W52D~; z0KV;htP)oNMD1xtB>9Scd+d=p^ML(-er(Hna}VAVFyH$ESAZfkQWm61mK$*N=j+X` zI&{$wl>BXXNo;&~Q5(GEuRTxow)m8wMGM@08Y{Yu_-7ogKQ@on|2PaP;`ztiVO00e z*wnlAxFhSE0u`2xy#GAjmGhYr?Tr6E-d&}bw=({`Gh>Z(YrysC2@{6|aMo6T+3!S* zp^_1awPhzFUY_9>jl_0+h7W$!4Uo%#k5mbI`T)MxR&Bd`@TxeC7q@j`S*Un%M<4X} z&+o)>QkI!`R@~N)48LC#cXY*N`TX9zPQk+9w!Rej^^TsH4EO5ChlqF)FQ39iby@M} z)9{U>54Hugc9(ji2FU$eKI$=lgA;fB9=GI^^WyVrTqN@BLJ85R^;ERgFzqJ$ceRCe zJyY=|OdKM_ z%xoLEw&>5s8QPe^+s;zB$hU|KR}hxljET>onBW08K^ zKCXNB+WM6&^7#r_26_7I;nzWRkARVlEhN>&+01xJH1ChB+d6dLo0hnBju&~kovCG$ zTbsXpjtRQgtE*)BF|%-gmpFRuSq`Hc+1=9=hI_len_D>RF|TGbP&|LAy1QztfJvEr zMg_IRMCQ!;TKOKbjg>a{fNJ!`{_!=XpEVcTjUU|BxCWvf?bo7p_V5z{1v!-eXJDeo zuzO~f#t`w|Kw>MqUtMmKMSGtLRQG7`R*=#&dptPk26scxeWvJtR@iZ^xJI^eKD-Ue z-pEwu@1zf4p9WT2xaaU>{P3&6;K|1$;n|}6{|O1-JrSR^!J0F*4L;`keerO+y1Q!I zxn(}4f>VnKo} z>qENP1cRWCg!meNJF&~h*Z=Zi#}&-{S9tn1XKA;yuN#flzMIjQ2zq|n`Z`t}B%6oH z1<_UmR%+gCs5T?fq%!2cEt|2T`J~~&N3XAUW^1?G zeR%tv+LZ$x)^5{YyZq)JF7E7G<7LwGY+RLC=EY8%*=4Lm)5vwJ&)uNc>wS0h z%z9=X{Ejw%UWj+W?wM{_lJNHNc2|*=%DCuVm5U4>Y4kb$dzpS*_w0FzlQx6cx3^-Y zMi)eHp?z^asGUdTa&c#I{#XQ*KAa2YrI`e$C0;%BezxrS9{a2^+W#@V&_BB1$x&FHM zb?@(gm`Y}}^KkI+>(0@96{~sPc^%8nNvz65c207Ymjbi>pDdYyMSJJu`4|%V7OQkr z3g}C3>L5okXTWVQ#AXxBlVX|0H!nc>lt@fMIjMa)JG-9EUM@?WP-(=Jr(BCndvQ@D zmvZRZOHvF|Xb_m>>uPwBD`HOaP9i(*W6sNeiJA`OL``{-lAMn6-XdNSK_fwOS{Y0v zO`CDbF_>+|ij+T5D!%C@1^%)u<^3=Emu!~ue%QZctCaVD>Gv<$Jmr1fzhnzY81*mN z1w3^7mu#8x{@?!oZU2&8;nUOpCA-9@qy8nkhNpiF`j_k+p8f~&-Qd$<|B{{I6O?#= z2Tuu!3%cHWhB?0SQf8R)4=?39Wx-qT{XAvC+Iv4sSx|ZJmnjQ= z^?P{e_fV6qViW|8Q1v_ezumh9qUDtp?08W}Gvxe{?YEFK?(VX?pO(1tfBz2EXgVlTTvKj#h&IlPO4a zV#ue&JW(jldZzM)sjwP?Jmh7{PEz(DWiQei@tme6cE=u0tW51uS#nD-^so~;P;ahC za2`X5qM<<9M;MksRX-_9m7K3iLA3v)hMyXf_J955T{rrr|4V;=^6M}CX}8aUfL0+J zNh1`W?Kxpe**XAhM_mQ>!L$U8ehbR}L|z_diIC-~n1M}yC*b{CzF8OPb8!`4C%KBs zo_%CE$AH%_%6+MS5W`)Rn+;shm@gyMEA!>P#Q%sEm++~oNDltn2%sew!$7acx29&8 z_*(~oHmsw@I*xNv(x{!J(ZBA{NdL4U!e%M+x`A~s#i;St zTjoUqW%kQ|X#apZvgA#Q!EjFEWes${`NTD1D@0V16(UwMIF%4Hlm&otgI%Im=daflegmJgm>2#Nz(wfJvU)6Nxr(gVgu{38k*2?0rfk;sLYs@LkZZ z>gM&-{Fqu%2MCdKzIR}!X$`wS5^Sa;=|v?on?I6&%xvL#q?nyBJNtGzb$^*&j3^&H zO9_o&&Afy8Ke%o6{F!o5iPuG8jk4mpQl|J?2PVcjm$U*3(1t3;g{wTKhbWe?*zT#K zHT5jxNX8L~-mYPIH!>e#qzX;JQQB3J?Ot!G@-m<0SvTnSgRV=4O1q+~hCm6IlXw)E z*#ahi7h-4t%GJ+PlCU5EGBej&k7p{PuDypP8x0^B?~tBcREGi3ZMG?SL;~rB(f-DIfK@*co_bF zJ4LDza0+se5aJw>pHluakPSa;vSIR5+KbO~Rf;+PdddUy9I&5K_%ws+ zvrNqSH&Y(CH~V?MT4u=%^nCo_A5$LG@0P$2V;)R??N7U-fR$suE`)@+zZMw7u2jiP zN3(E3TZ`398SX#XHOi0p^QjqGJJJBUX| z2hsjP{ev2nwTjmxOUCY$0D@y8Jhrwq%Z~?PSWaq` zHhna(@~Sb{+reED7*wnPxQO@vc(VWVVE=#5rXJOrjrF-$FZOPF&0vu+D}fZ7Op%q& zxgjb?!LJZB$t*?!-)o*N>%c~TuV*~7OFo%Klm8t|hq9+(It=$Rw^$_aq9g<>viEM6 zk8Flv+3nVS&L*YqQOv&{bb(T}J7&~-`1fdl3kx8na8uKAv$6HFyvq$Pa}>KAv*4Fs z9)tm9ahHER7$Om9Ai-2&j&nW90`RYh(cCeTOy4&UXVHu)aVg#}qgBO!)iBY52xHxU zTan7fC7kosW+TSX^*OLXW4eyJ{9u3wE?~b?ae4H9N#2qN>v=`rT6t3eI{c=-@a=PX z9cRhBGg}p9zAz;r%1s9u%}(%OEvlfSYl=E=yM&vej^0A{2kS*e-vZCtT~Ia)L$c^{5O2T&EMT4=4lp_H^8Ifp zljiZ^fU=Ed6eLc6Mz>ZXiW%apNHLIs zL<#W!g=mN|9b)Jq&rf2?P|ywRmJ62&2bkM2iXRMBjn7rRV+0DpH=7_}IZq}EP>h`9 z=+QUjA`J6h4V@!j;1-EmLe5-N%(|lvGY0{Z+8!Rr4IWTtacT+RW<#Xejjb{Q%H-7S zUVS7}+2um-*v7_x6gxI%;_tG!-epC_1pJ4sn|3V{w7y^gqyI{)2|l6leXy``+tFMAPieg63SpxuvpThw1h z_)t+Al@PU6uN1Nnoigvh{H_+FbH2K`zzD4{Z648oy?`m}@}fc-EOYeb5O#9G#U$%? zr*OssKVO(hqdL$G0a_$3L}w6b=qg5J7KU>|SxhL6g2*I7isT10S`a$a;&?3gH6$>} zm7jPJ1w@yV{9#m#d!;B!Qqa+Y(8yFZV8NHzA(XqDhpu_Z_V*jDJd6UWD}-TizM8D+ z^JKJt;wyiXb&E*yucB3#7k(XIMfYo11Eel!?G;KA7~5XGELN7PxMY%lZ7D{aS%kAU z@*sR}j!S1`Ut|d10Os#nwv9a^!8n-U%fpv#TVVDGJa$96-)F7jYd6-7#p?!>%bft$i9}`VZ zXUumbQX|`?o|l?=FIo#Em>GpvBFZXCH4dD!h1YTkEw6mx9nhjEJ(gjp1!}9wVCr3e z$ZITzv<=4eFGM-3(lgw+6ZKpv{zTx0^SQw9}bF8 zPE&7ZG#SVGICcc6X2|zASHs#GLw42U#|J~r)=%;&eKZ&;o=1}B-2-d*!F@V^L@%Y` z?@JCq2xth;mdi0IX&Ay$Z3G3iI$1w}c7K=~1-NfOnllBqHWq2A3Por`Z!QN+Y|SP> zrl2sZ7#G(62-*YNI3SmGExFMG8|KS(Kx)N=n`f{;1RFp~**c!jPr*hf%9#>Ho?SP@ zd}gk5rWMEX3;=0=ZsF3b`Ce|wvhP!J;E6s(MTarZ8>1-z`>)2N)Zya` zmZQG5cadbJP}t!;(X*rk7*ghP7MCP9>oc+sTgCiR(PT=|9!G!Bo1NO2^+g!2#zeGw zu$3LCy4;J|UzoEIkREDN%%PT;2L^(Siv$CBKs8Ee@*sh#09Fc)oi9LtL%~`TLy-y5 zvs+@yNKdkUq0!E&HR^==Z(Rc`*tU0o!W99#R|Vy}W=`zn?3e>1jbPT$E&Hst1~GX1A7MR8eqYY!MQxqAr{cI@2oXH)Ei~jNY?g^w;Y(3N zFI`(Z48RmU%tN#-|8~}Yn(u_q*vS)YS?x0Su?W}~Pp`&znu*~Vt(+_vEX2e_O&v;* zbxreztWKY+29~V)J%Yv7kIck#z!k$e0?Xkt-fYklL?7nPoPwQ;i(H8#3Adq$p7&;a zi5Jj#O>@v$Dc*Bn<2jiey_vVttG@oL+a9UoI9+) zi1`A_0O3p!B0;TGD)fZJiVueBkwq%QZdZAP?LNPWxwTJpcz2iZ>&tA7a(3srbDze+H8n^=^ zg%0>?B_{cl??{7F$ex+d2{>Y2seF+XfYl0?)uWkl1e;iO zlHnf8a7P*WJ|$nX^#$0jNmk}S_RwfsZ#&AsX1mRflZ3;b1JlViE>Cpb4^7=A)GeTH z5(E8zzCAY1<1h^D40#-X7{*rVzzV!rcf}L!J|cRvILipKlkOy*`c)W`IiG9ytr?|k?l~o8xCdd!)Rx2E(zO<@rHYHS2;LV=B(f9x7#yLq z;C|XfXmN<9M368;as<$Fx!J_tK*bceFqMLT4awTlo22MDd;ZO)ps1`1LnEiR>>9PQ;gIaikz*a zh-5sWy|Xh>oSW)tWK7-%-p`?*)O^PzMO70nWZtpP^HAZ(NSU_qXg|4vSAE= zL7QQUc*0uK%L^xk+BI1QAQJP_w+r z^^`iia#~^l!CGqPU{gXXEN>NATe4qN+*#!q>#Y*hD>)aFa{pk;5-xitvo;RgZ1$3- zk?;P2)0!p7E+JP=o~FHX;GNKvC)WpmZ4BmQrjM~(yQ48ka`qqA)Orar_ajikbCjbd zlcbhl;o^gQb#!ZUraBtM6*81|^u`_r5pRVvvL-#nJnCR+{&i$@n_C1S>2z)j;REGqR6;71-23Q-o7Xq7hoS%0sK)T?V+vB&>3=!zCq{~3m$_=+y9mvXH|oPety;YjRlRY&vjHTf z?v!(nMAF(UNzd{~MZcMUD;IRQT?5)dyPc8fZ7l>MUBnU+@dC@`VU~cAXU`%5bCH3; zN)=P+*IZNAM-5JToR#2Kp*yCcPJG95kQ5kujhR?^&nWc7B zLaPf$pV#)v9n=Y19tiA~BkNcAYJ0c*kcfA1J>Hd23F3ePM8$r8XzAUsY94}$X4k?0l1=vHN$CxGmq!tjUw;HY~UXqhO;>Z$?333B$O35 z%Z3E7R>}+^#01ccVYnwfifBkhx9fllj^CnvJlW%D66^OV1??>K$YwMjfIp|~T#>Ue z_^F-4*jR3fzKp+rtPx}9cV&FQGegf5)*e?|#!yDc1Oa8rCdemEVbq}FDLo=sPJ#Lf z!+ei}cMOQ&x#3ECon1|d2MHe+t5YX*!{gTzgy z#-zo}^z$*17Ll;E^P2>N1x+tFE4USpwUiG$@#cIr+5_dzYNQOQ5$#~mR-+YBG+Jq# zvf#ggTey~!&shl<8vY=`V^c2RW(^==F+_&zZ!am_H?TSL);5`PG|h%H=>oN`!w(E; zQ4eXeSs=oH(j$90=DX~>K+Uc9TLJnesYQo{_%~SXZ#LIs?E+~9`zHB(jG`>#T>w(7 zG3fC1PoaM@eo~TGDK*mnSLsluC_HF5wuGVabU77JmktJ*$d0Kx3~RrVb~YX?VhL9< z*Nd0)zU6nY_BvU$P$>Ryr)AjeW%0)Q9bKw=N1_aAY!&Qu(u$wQ@2=`Ox4p@QtfoZ z(+6BpX;pnZY-^;fLxEtrbGr9hv0#RvyKA&g7HCW<+nHgD!!N0^Y@di}7;61*2VRDa z260S(b5g?IPfT5WPVA%AAQj#m#xQR)fV{Z40)xU~VGFLvf)tJ+Fc5KZi+!>2N*RIw zDLzp!$aAcywk(jwAy#%t=^CUJQOpejSAi_~jQx?4^a;zOLCU8y#e@CQAQS{Hj}%c(K|9{c_TX1 zztE2y-HRTA_uLVH=TjmWW^70G!X0NaHxgJ4b@1a7t>pg9JC*tfLso==Gwz&5x*yG zP-bmxR;wFhJ{ZQ2l3`q%)+hCUR+z-oVFI4(uDmk@!B7fdUNTbF5;>Cgsg_6!zp4Tm zh}~5I(GL?7K3m%Cn$w{iT*Kg9Rb6PHT95mP&%13_!h@2 zDE@dYofKbTVUQI&=IX|mr~1&O3uTl&0Ij9oD#%^ProsY^GLjxBv9?1|}XLD><}tjD3JlO}Y1xY>|H zkUb6DJR6Tsg&$ z=`WJp1zRC=N(%maO5%E8z+z`*3|89UQqA6^Xn0w$6{YMQFlSp}aDd0NJ*de!9I7rVvmBlp&Wn**^d(q4H(otOa7AQFgWHLgp2nwt+-|ZZ>HI zBESgdHFB3ghM*OHuc>3tLi1K-(N-txk$Byu><_G1G&}B0##1)d5`y>mQ-j7+yFY-q zaclnGY!*k%Ij2q4*gy5gVOzV<3lHQm7vN)^@;$+h31#E0JxL}YdIN!^W(HucAs-qy z5HJ(o zcc5P#01x1xCZGaUGz=Sfp!I6DxVEpemB*6!s58M)#tm2!Vfd}K)bV!0Q@0j|iGL23 z0th2Q3xr--u@tv9fhT-z1o+yBGh+@7fc3I7OK!#-Fp$zv^150dw+B6^Co_D#sKER{EV!EPmGBj*Y%bxcJ{M~j7*7$8_3wIl*>LU1+_;$?3 zrWS`~EV!9f6$u?*;&Mj}2UqW<=K2I}B2(y19zACm3P}K4!AAuiAGHeAg!rh zkD*!=r%!bNZxpgZ)Nty{Vo5`n_;iep3hj?tb@Ix51cgWMGRx27%vhHu!o?lOxWR0< z3F@tdS)fY?Y%Sz!Ar$)2?F|4HaF$O?uz7~Sn_;;3%1sEK_+dz1K@jyzh#g>Txf@}I zQR}vU)6NYIH(#anHj7!s*0u+xMc|(sT?9!X2++ZGmHaWrNX2M|Xp&x!*=tlJdufMb zmeE?F)mv#{`0ynz89G6jB<_L3OAqb6L`}sba7F<^Gdm2!Lqgdh3eO#7@+xJoARJE$ z;dq!tWpaJ^Jh;m&R(MG847%SqWDMXrYrd0zinzc#yKp!J=;0U#4M^E`aAf0Pq1i<6 zaO0lBui(V6>q%9sM+%M+eB5%gj7z5+DLqBl3IY!T-LyvUbv-W-Lea#@VW3F?^CO?I zBDx23xZ*Q#NVTz?X6`W>7;ivQfID!*N>kW&!2b+MiD-NVywOnDbIwV)Fg_5m(rXhurx7y8kL+YZFU9lu z5g0Zc<7p%mfmmwXxf3Q7s1pQ8Gh%)0-D7HYW^Bz4 z>_t*XG%6kHVx_YgVG6Ye&SfPC7zC4w1e{9#E&>7=@dE>NcJ zHp-=|fBeeNI&Rm!_`P(UKlyz;_A~!{f7r?l8!FG-wEQT}JBK!@E+)?FVudKnL|zuR z3>zqC{O*_k{%}|M#*lWFJ3ro0u06h;C4b-5Vj{1FLaB@{{oK6otl{ad8s_E77JfQ@ zv$Ndmn_cC^bux3a{1o3hC$Wt2T8O%^^a@{?8wmQV<)w<}uC%?Gp!3G2*X2)le>JX& zI$K;D#F)nMjzq8gZ`V7@7h<+jNqOVI)xCSO<*n2rPGl)07!354IM4I4HSklD==J-s znpTvZj5#5_UQhT32>CAAY{+*BKT+g|1lc-7l24XPofod6T1lfobBu_l&xB{O(K432 zL5F3l?%5q2uy$b;=r{`uvuetKf57YU%#CDtZfsTcO%w1`ip4UE!F-6+FQ}=LLVY(r zIi^gn+1J*YD^xXqq|L{)}h?81n;q@g(ciEw5 z0I~ncvB@8XjfxuIY+Z}Eyjo;I1@XR|1f=1eVCzCzJDjwhLFe`UEX!lKf1deCg=gnWy=v5L}!w}7+Z;i97#)5 zL@&nLMVX;@JIgOFK2#X=4Wpg@>W?2kh8v8$I;X(F!97nOuGEH~G5oQ=k^*fHC?l>& z@MQqPu-nQ=y4DThT`DL#e|#|>o{Vqj0?l1i{K1%=jC+REy#`a;JkQEx8L*=(3vH*q zg$|k>+da7_W4K!uYkw|()8sM*1LIa2lQu*JT8vG1n*2Zx1)>TZfE;=<4z)5&&c6y2 z=~#;qh?k;$AHFNd4@K|Ii=&@j9UYF3o}L|@p1wS_potPQpyWVGfBS8M-bl_P4wy%X zNhBOIuU#lL4-ufKql34N9M;L6utNbw92Ylo*0IdHWW8Qb8E)q6?1wi;XU`A5d2#mo zKPTV5JU%<)36qY`+?fLulW|NG1f}reDNF{_q3E4yOj8JT^u82w4!Eb4#30x8N<2UK zMtYeVDV2#{2W%Y1fA6|QMQ8{^jc}Q z{CW4nS+x49wDCac$g%m>a^Bb{;-*?R5+NdIk7(YUIX@f6dbehSwNed5>ZfXtJ!{ zPLT<&Lq~womd;DPcyLaT;+}Npz*dyN+{3jfIjUx35QgCX)78|wF0Yu&wpP8O%;BbY zc6L@feoJ1 zfIV{yKLS66U)NlT$XI#js+Yy`a)ozZX%FB1fKCQexZ)Faj>kHGAY{M{TLWVTm2H_U z#526Yx`_UhF}Yft3uP1jnN<|dhE*ZR%P~+}_;{)xaXm=z1suS1_+S4QnK@eMk2DMb D3=^v( delta 131159 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 IjXfU>0Ex~Hq5uE@ From 43394bc1bcfec4176d44066cdec7b0e1e3f93b3a Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Fri, 20 Sep 2024 17:07:14 +0200 Subject: [PATCH 024/127] actions: enable corepack to use fixed version of yarn this allows us to fix the version of yarn, the Node.js package manager, to a particular version. using corepack is the recommended way to use yarn these days. --- .github/workflows/build.yml | 13 +++++++++++-- .github/workflows/yarnlint.yml | 12 +++++++++--- .github/workflows/yarnprettier.yml | 10 ++++++++-- webapp/package.json | 3 ++- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7e8558ac..1cd2da35 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,6 +79,11 @@ jobs: python -m pip install --upgrade pip pip install --upgrade platformio setuptools + - name: Enable Corepack + run: | + cd webapp + corepack enable + - name: Setup Node.js and yarn uses: actions/setup-node@v4 with: @@ -87,10 +92,14 @@ jobs: cache-dependency-path: "webapp/yarn.lock" - name: Install WebApp dependencies - run: yarn --cwd webapp install --frozen-lockfile + run: | + cd webapp + yarn install --frozen-lockfile - name: Build WebApp - run: yarn --cwd webapp build + run: | + cd webapp + yarn build - name: Build firmware run: pio run -e ${{ matrix.environment }} diff --git a/.github/workflows/yarnlint.yml b/.github/workflows/yarnlint.yml index 10d7c121..8bb23a5f 100644 --- a/.github/workflows/yarnlint.yml +++ b/.github/workflows/yarnlint.yml @@ -6,8 +6,14 @@ jobs: build: runs-on: ubuntu-latest + defaults: + run: + working-directory: webapp + steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Enable Corepack + run: corepack enable - name: Setup Node.js and yarn uses: actions/setup-node@v4 with: @@ -16,7 +22,7 @@ jobs: cache-dependency-path: "webapp/yarn.lock" - name: Install WebApp dependencies - run: yarn --cwd webapp install --frozen-lockfile + run: yarn install --frozen-lockfile - name: Linting - run: yarn --cwd webapp lint \ No newline at end of file + run: yarn lint diff --git a/.github/workflows/yarnprettier.yml b/.github/workflows/yarnprettier.yml index 1727eea3..ebb01734 100644 --- a/.github/workflows/yarnprettier.yml +++ b/.github/workflows/yarnprettier.yml @@ -6,8 +6,14 @@ jobs: build: runs-on: ubuntu-latest + defaults: + run: + working-directory: webapp + steps: - uses: actions/checkout@v4 + - name: Enable Corepack + run: corepack enable - name: Setup Node.js and yarn uses: actions/setup-node@v4 with: @@ -16,7 +22,7 @@ jobs: cache-dependency-path: "webapp/yarn.lock" - name: Install WebApp dependencies - run: yarn --cwd webapp install --frozen-lockfile + run: yarn install --frozen-lockfile - name: Check Formatting - run: yarn --cwd webapp prettier --check src/ + run: yarn prettier --check src/ diff --git a/webapp/package.json b/webapp/package.json index e3c9b4a0..04e7d848 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -46,5 +46,6 @@ "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", "vue-tsc": "^2.1.6" - } + }, + "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } From 34e1c43ca7139afd1df3888dfaa2766ab9426ae0 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 20 Sep 2024 23:08:08 +0200 Subject: [PATCH 025/127] webapp: Fix html error in eventlog --- webapp/src/components/EventLog.vue | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/webapp/src/components/EventLog.vue b/webapp/src/components/EventLog.vue index 9011467d..f3c243a1 100644 --- a/webapp/src/components/EventLog.vue +++ b/webapp/src/components/EventLog.vue @@ -1,10 +1,12 @@ +
@@ -209,6 +210,93 @@ {{ $t('home.LoadingInverter') }}
+ +
+
+

+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ $t('home.TxRequest') }}{{ $n(inverter.radio_stats.tx_request) }}
{{ $t('home.RxSuccess') }}{{ $n(inverter.radio_stats.rx_success) }} + {{ + ratio( + inverter.radio_stats.rx_success, + inverter.radio_stats.tx_request + ) + }} +
{{ $t('home.RxFailNothing') }}{{ $n(inverter.radio_stats.rx_fail_nothing) }} + {{ + ratio( + inverter.radio_stats.rx_fail_nothing, + inverter.radio_stats.tx_request + ) + }} +
{{ $t('home.RxFailPartial') }}{{ $n(inverter.radio_stats.rx_fail_partial) }} + {{ + ratio( + inverter.radio_stats.rx_fail_partial, + inverter.radio_stats.tx_request + ) + }} +
{{ $t('home.RxFailCorrupt') }}{{ $n(inverter.radio_stats.rx_fail_corrupt) }} + {{ + ratio( + inverter.radio_stats.rx_fail_corrupt, + inverter.radio_stats.tx_request + ) + }} +
{{ $t('home.TxReRequest') }}{{ $n(inverter.radio_stats.tx_re_request) }}
+
+
+
+
@@ -786,6 +874,12 @@ export default defineComponent({ }); return total; }, + ratio(val_small: number, val_large: number): string { + if (val_large == 0) { + return '-'; + } + return this.$n(val_small / val_large, 'percent'); + }, }, }); From c4efda2e0c30f525bf6b9b73ecfa376d48eaffbb Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sun, 22 Sep 2024 18:31:49 +0200 Subject: [PATCH 035/127] Added icon to radio statistics --- webapp/src/views/HomeView.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 89b05ff1..7082e17c 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -222,7 +222,7 @@ aria-expanded="true" aria-controls="collapseStats" > - {{ $t('home.RadioStats') }} +  {{ $t('home.RadioStats') }}
Date: Sun, 22 Sep 2024 19:01:43 +0200 Subject: [PATCH 036/127] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 185588 -> 186270 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index cb688f303bdeceaad842d35e7ffd78cc89e71046..5727711e5ba754ffc228e1df160819f1bb885b68 100644 GIT binary patch delta 154272 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%0DYMnIJ_Ndj} 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 oe4msQ&W2Sk$g?p}Tln~gdc^f0-dAt{)8Rk@~ delta 153560 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�X-yM0 zI4egZl28yb1}O=s-@J&@G#Zi~^_%$MBN2rVK)nq``5sL+1nsx^X(2XeL?eA)BG1$*$44-rVP*sUz)yJ4XbhSjx#EBHw+D@e z9Z=hQLa&?+dkla7kRG*@Cv@a&*nRj%o<`F&8o3^Uj=BlqOT`TcE)=&%uzzl!@J_qq zxyG?PwSCnkg7zT|VAm0aZQ%gxjJI)DtlQBGNQ@njQ6<}taeS07ZhmZTV>K~>aCS;a zP^~6eex}QIIb&!M4};A6K|f~Uw*Oo@=kfN{qVdlBE3G-J?JY$KwYQ2_D*TblbD8^+nM#u5mgFUJ7~QQ#$# z#q7aQwnOCLdEaI;J`#$nJ0zAE1T6lv(OCau!Y}OGPDsP%C}uZ)G)_d79sdH@oKkqs zW@e9i#wmZ)g2`EDv)Q_FRPe%^ZM@TL<2h2@iesG~ynTPPdwPID|4?cJW^SrMIbXc$ zK)A4wsX;(LX0vc(W4o-|8E5jmNNI~e1d8N!G)<^AVQ0I&UFThe0r46tkHkVz>rdBear=gf9@$s#fUN!O2 zTnv8>K5{6fT3U)}jfRm8IAtjxCKfVsmRZUwk_(yn8C=ZEQ}gZ*%Zu&>_E1s2&_tYvA_@(1 z`)Y$~yZ1`ly+T-c9|dy?kazg@-H?@mHQ2Z?rrv?;ST;6V&@{~fO!Y- zgB$LIDiIRST3rzO^*niJE(^Dn>0CCWS&{N%rAoOP8PXiA(@zsS0^d^eh-fs{qox=7 zLkLgYXhiF9{lTI=I2b`}#g)Vt!O#!I)f5E2SgtWX3+t5nJHFd~(jqCU?-3@h>sBT zn8bX!%QiRph)FDVjH+rA$3x=gEmc|Ws7SuggF)N>h$A#6U1TyuG}98YWrAb*yM{lD1;54xVz_P->(8q~tpW8tfDl*c5f9pv9JIc7({lF)HPpxt$V4X$X7@ zBjww8H_)&nih4j=6rF0;hiJ(Nfhx2Pc7;hJY&1e!UC`ItAnR_Y)oUo1i6n}Xcr;WK z1vf(w5lA3p!&mY{Pb8d1_;Y_u87>ymhqVymTIe?#cEZ;}zd0a@SPT6o1B+aW1!)3* zRxPbYW0=_iNq`LwGuy+z>@n7dwK`AiF|RU_r>yN6pFQIhL(=i^0S?6InI;X!eL$EP!;|$&S!dVkMVjR%SGTgWSD>13GqN-WX=Hf zh&}@}At@@A;)(@CWE;#5$(SS{?~@eo)DWvE=fplq9b&ArFt6r>iNijI`Kw5-69%-* z@EMkyITRjRNMjHDw>CPFQn^y_Bgz@IIa2f_EpDJ_ht+ktc3aII;yZ5bXFL_uc6ZCm zjjJ>@B^=i@fTocYRdaukxUH@x;#9y33TQjH2z5(G~m~B3V4`+tx<1VU2EywGrUIEk{EZov@MThw1)!IJ~1( zcGzY#7$l5eHRdo671U5IuUQ-MhBZvA4cp+3%u66h5Nepq>8O8mUNVRlY4MIrKZjgx zs!3huno%DdlK)+|hE|_sy|VQ-F{h_pm>qbfHU^Ozg_pYw1dH>GPJJGY-_O{~JMjo4 z!Zjxuo#G1^Zl(Pf&b;%?InRnm9&pTcn_I5A{Wk5=^9&#g+jm(tXaJASQ82#rLo@@x zEk6J0q*rk?QL=xQySC?rVU(_6@78#}H46;!Jr9VTmn7EOFp42~yce!TVGp7^Kn$`h z7ZG@7G?EpzopH?OL9+L}u*U*U@vzy$UsRjExR|Xq7n_l7Sg(WV!V9cwLcj(;i?!~f z@y$#*i@GRL6w+*v!V*a!aI}SWELV52(qj4Qw5mFJ!p@>D^~pO>VfoUQlkodN zUXR|B;v$b6*#imN^appxBSC_Q=tFR}^UD+DsQ7&lbSH?PW zRva&4HRgX+HySwXQo6W8n5%#=9=bb($A9u6R&SJry^EYFJB!R^7zs*9<8)Gqv?=8} zOS=g7s`?*bsUa~n%Gmgz8`-C?omd#V(B1ouQP%-u!F!o%}5+Y z@Yiid0CIc~xceCa{q24<2@eAIAS0-BI0)Qb@#hD-MwE0zX6hy58jjt0uuL$%U+`8LE9+reuQpEblJW2}=%U6l?30;V-FX=qMJql16| zivn5pARqy7D?xM8gDM1l@y1k|0n+DL3aNiX$g2;C4B%kR*8mw&)?~M7>=hUgu;G-Z zXy*#gZn7>PQo^&)QUoDBSw5QVxvus`$jBaBX--_UYB;~T^Fo5 zVN>n_PMs@Zo8z@TzY^k{}K$Fl`Gf0U8yjGSiV zHY58PImpOvMh-LbJ|o8&d7F_RGV(4XCmH!OBX2VDDkCp5@--tLGV&!OA2aefBd;^^ zM@IgF%}+kze}6{__c#2Tbuc)42U0@(JI24G4y{6}$;C+g4*f78UWdM#z+!*hv3g1J zDu_IY#yY@%Nz$QFr_osdGHEo{KTH}8OQ~ZmU&EV-b6nO)?@oJPi3K$h7Z+BFvA%*-U)f6p_Lz^6XgPE8_ROz;b`Bt0?xfD1;ZF zu}O%eQ`O{Jh%tFi*>D7R**$C|K@DhXBSMQyJI`r*QT`}TA)sV zK8W-kp5R)jbhpHkUH4}*>mo|8pays@i+ORQA^upWbiAXt?dE-&=Xf96x_}Vgye%=_ z*-VjLPve^ULZT#=mKJ}!pbFarWIXda-Pz19CN&ztM(;)J)X{2A#vMbEkwe!IOk1+A zq00>MI1Lj`BZpx+MC`VxGPNo%rL-#Zc8+oerTc7_NR-5SOZzsPt%FsM<%|fvH5wKk z4VLza0}?AFca% zA*-@wFpzR{b>MK6-W`SsghjZDS#lKxh@1n^2*7C^c_@GS;!uoUP+_!68;$5W4Y_%7 z15F|D4Ya9gqv69RZeiR|_&;EJJ06unAnGAJw4dphf5Y6w99Cs(vcXY;g3E-n9g6D) z^abTMnhNE3KCQyqPQv0u$`2`$OfIGfHixuBgxP|9rWKPjh)@U4M8bpGZ_mkss zn)rQodgXs72Z0KbqF=18Iz@DggkR5Q0Ef+gmlT5kV8K7uhT|k%yI^ZxxCYTbgos4e zKvk%;gVVWkbQHP*M>tF~^}dZ%7^Uk} z+diHR2JT}25C ziywKag##^qgEWiymm!eG^2nM$ytD}S+2frSi}N^q#S`J-ZfTTpTSO@7InfzDrCHFF z!MlG5m~LD6VhOyf%5GB;B;T162yXKdFNr`u=n=q%v=lG(4*R=l8oT@f25^AwGk9I1 z#s57HPl4kchrt~bK=y+gmV5$iZrp838F5DhI2FiBm2QhWF}#`BWAFW27M#FXNxS9D zW^IUV&||N>Ah_^)*U;EN{9UB1Ot(~yJlLqbL(&+C;twz$yF#G#BEnS`2=yC39lW zW@lXo6!AFqfRfQMQytxx9AHoUG(>+SJ3p{VpN<6^kEx$VRo)QGwe=B^fboPwu6Yis4a zqnU~|!zv>>3U8w4Dwy@>SDoAsl1??ZUiYd)iV{pY>FX4@RzWEjxzDEaw+4SXiUK^NZPEKuVX1Ba{#9t z77;JZNqsO{^2`$)rEh#m&dY^%xCi7?J341@t_QMRqrq7hS5X-s7yuSLa7K`rqd@7@ zo5_{ek0vKkgic4zkp~E5{;y~RV;Uu_|6Y93f7^iGbY`=J^i&uDkiUNo970E|Q`*{= zYrWEkNCd8Mw5824?6|h2RrxIJZpZuv34npP!+9x~=+WmNBC&+3z#j%k0D4w{ zv3Q^!I*Q!2CpBusa*EeYf#d8-euI| z${Lcp<&!e>8%JMx*ArU@-eooT1@|n+|M;tiPOqg0g=sRvu-#L;-$V&GR(&FE3fF zub0#z#_Es6qVHWrQ38*h7{*!XEz9hqjCf7$GAd%~c};%N)Hh=#lr_dGnB0pu9mEQJ z2HvI#!h?=XLx#+SzC00+tYRYO9FHubNN8kdVZZJZ-;u^wAnil18$XfK1gI6z$*%|+ zr|_EiaW;Pwe`uFpc*0EV`Epmdoy>7!Tlk0j1G~7QbOy90uO@tfZI=mGUT&2{T#`*A zXnjs?W+7jm0mlw^i#N#k;)+>cR=_LWp?MYJP+zSQ_%63g2{{`RF;|@BE~v<@!Y=f}@28K?FyU8kVfsCwBGvs?nDKIMor`qhfyH z?dghST?Yoo$V~^d%O=`aRA~@hT%H#&!pi3ON4-&Q*_D?E^LTrm-}7N3)V1i4*ZG(K zZ~`2EN~cHRB8Au$b&)9DBi5^B;MBZOl@&A!7*N&YC{!JFTs?ETqY=d|6V)gPDwv~8 zYFql63g%X%7L+=Q1faQ!@1}XQ0gQ_R*TnOV0WdD-;Pwt1V~B}81}{X(&-iE+deQ{J z2}l*N##N{l^rZ7T#gsw&{8S!wq!*Gtaog)K$#|@D z|7jr?w57ZdHgm-`TJjX|jSHYm@)G_!Ji^oLf^5RC!YH1I2{EOUbS~}%ye7E(V~E!| zIcGzB+EH3mToVHFCKCz;AppL~Duq9l{F(GScCHxJpdyUlOu=0O*RZWsl@|x!1Gde7 zqo){mXsRcyTA2e*W!nx^iPpO1mLPDz;C{&|2b#&h46D;r%Gz49QqI;$kvppKYg0Oh z%c`mUFm(PRgbt&raPUnbj1KIjVaEpWpT0YbDw01lT`{6AD{$>EY286t(lqt%91>W0 z?h>DZeK$n=?m7k>h2MUo;Ws^!yp^6D z8+Nc0oVB`}X$P8X$#gQ#%YM$we%^?icg_<#$;-B}Y@3(Gbo4}18>!J)|10AW)r1eS zAw)z=govnGhC|)EB6#CI698wk-p!@DLP#WO{@Z4U8kc zY2jI5J80p&ww*sR`iIVnwvF%D$3mH69G)HMk{%%peq%5Zf}TP2)5kACu} z07Yn-i|97bz=3WS(dv&z7AJs8LZFu*fJ)@SX^4z9Ad|VzHKdDp1@c2Q@_K#>h?Z9K zm%IaN{)yk&vE)0^0LJuhSwGL0Aan1VyJi8*eMRx-pvq(1%Ds*X+h3^g#mH28km$T2BIj} zETJW4vsaKJ{@6eMrRF~FqHZ#Y;?}OP9O>z7dxZk9^J74^91Od^B{^w zhv*V`2n+Pa3+%92loZJ`IJxZCx-hJ+h+(cPGBV^>!-YBIl~BtBPWf?@4F;^2?gl|L zVQ?r4O@+W&fWA+E{Hdb00-f;2qKoXnC_>yzM_G+?jVLF2G=JRgc{xC1r$GU)NVB8bEz(oCTV2|^Kv)%#FPaC zD)5Y?M|1a@F?|Q8NkICPTgJ(do@BFGj|})WA5jjtTn{^cS|CF-^_a)?a{WE=z}n!E zL^IU*xc>Gzw}3HP<^3VmbR!|i=f+Km-2&}k?(ynr-lxW|&$HQ}dCs-5A3?_6m0tjM zE1TJc2U{?x3EmcajmCPSj9K8pztcyQ<~5wsx0&OfWWvA-?(0Bu&6|S0%W}{rHyrf{ zXn8?R6e!q#rujvL*2>Ym(tvANY{9JINNL8P;h*B|g@uGvK}@eRdYh30+o|Ay`?ke# zqgEx`+Rt{1%;^YRCmi=SGY&7@hr6~!Q(n;^vweLb2%%jM@vM8k`k5VMb_gpxH11El zFu?IIi{A;Hm_BW{R2ZEdg~fak2~?zy_E;|AzmO4sS8yqdj6CFun`eq7Xi_T**+Y)2@M-=kS)*Zl5YW!UxM+T615yI%BoM(b0n-bN6!WE^GSLhA&iM*&3qZL>N80>5Y;R2J{EZ*>+ zY(dIK@MLQaEInu5N0|t$0-z(4tIPC|L=MSlw1YywE9CqR^&rR!zX;%e;aCude4a-3 zXlJLBUy!7`n?JBW0z-#gc0t3lO!wHD0FodFyv}Cl4!NOK?~G{JFdD0M{MpS>;5{0D z?}UOpu5er;V@!n5lp?N59}`4)N&(>}LwOc^;1ZrR8n3hGy&riD*7e`AM#Bb2iO<n_{^o1B)Hgq8YCZBw z?e=EmJlSeAc+KLcQ}iIwz)g5OJ%>Pli_T8l#ppt~dF&w_&SoBT44TGXg3F8Su&fi? zeX@mR<$7w((WoDih)j0cZqhW+$%K23$SEtJl6MNZ-I{!ab;!pIB?AHi&kdi~Bg#hv zAqbpA?x0P!K?u@{dca+l8%t18~_>|o6q=FFgF{2)T`JB-k z-167dYjVG9J?JDkMV)pP^Est3wKx211qO91tH&RW1_pP&oy}~X^VUJ1#1_$vc^4h> zwB?|9aN20BU+bxcV5it695AXy*3tqy z850{49?ptE1Qo)suYLD$P68dTdSE+KO&(O?g!XupH_IV|W@W@Tc>ZXAozh{WF|5mw zx3a4}YNNHbC&y)xDPIi$FGPz9O3yt*#B_Vjb9j%4{~W0HZGKZd$#zb%+#f6V0_asF zYKE1hU|4a;32=9a7tDd={Qk3ZlF@-XpjuL+aRQw5M8G7;kYX{r?&jbDG4tqX#=XCC z4g`5{5~{1@;h=I-4E6ed9Wq={%yEeAp|FCGBn|!sseYreo}a0}c_kW@6wMJJI&sql zFDfsqvzdJ#uNqW33;^uvko9646>eMAo?Ih{w4m1Aq3ukMGr@+*58^N5HeqT*1`54{ z+8z#1^Or}8D4~2nIaWn_?g(-o4F+%JI~Rt1y{spxv$|I3LsrXwy2K1@W;W48b-gQn zGqFW;9Po$HH-Hmp%Ag7ef%#PobYWo=RZyvFGBh(N`wLY|G^#+QNcBp=PEfH5Lwyx; zHE1*{YC!SOE4ZhTWtCOjzyH!=3UFx^F(XQGCrnnT(OU^mGU@OSLXVjz=o+wEpN-dL zMH^S$zMk0WGRS~`Ow;#}t)T{I}A0VKVUT3oz95X^eyH4pzrmKydMq@XF{~I;$*47N#XIN1+Xr}xHS2M?!MV%nHo24~*F z*?*nw*vHum+G;dxXi*sEp;l}S-jz`e2`KYz#UW7J-B@yUQAc&jVzW@wK3f|+#8pa_~Lx$noTjK0ihYcAY+ z%W*EzO-wLAdd&�T;O5*$2gfjnn4Q-x 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 GGz Date: Mon, 23 Sep 2024 17:57:29 +0200 Subject: [PATCH 037/127] Fix: Unable to CMT transmit power in WebApp The pa_level was sent as string instead of a number. fixes #2299 --- webapp/src/views/DtuAdminView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp/src/views/DtuAdminView.vue b/webapp/src/views/DtuAdminView.vue index 308dbc6e..23d4db7b 100644 --- a/webapp/src/views/DtuAdminView.vue +++ b/webapp/src/views/DtuAdminView.vue @@ -48,7 +48,7 @@ Date: Mon, 23 Sep 2024 18:11:52 +0200 Subject: [PATCH 038/127] Fix: Restart was triggered before all website data was sent This led to the effect that e.g. the confirmation messages where not shown. It is somehow related to ESPAsyncWebServer 3.3.0 --- include/RestartHelper.h | 18 ++++++++++++++++++ include/Utils.h | 1 - include/WebApi_firmware.h | 4 ---- src/RestartHelper.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/Utils.cpp | 14 +------------- src/WebApi_config.cpp | 5 +++-- src/WebApi_device.cpp | 4 ++-- src/WebApi_firmware.cpp | 16 ++-------------- src/WebApi_maintenance.cpp | 4 ++-- src/main.cpp | 2 ++ 10 files changed, 66 insertions(+), 38 deletions(-) create mode 100644 include/RestartHelper.h create mode 100644 src/RestartHelper.cpp diff --git a/include/RestartHelper.h b/include/RestartHelper.h new file mode 100644 index 00000000..80f5f675 --- /dev/null +++ b/include/RestartHelper.h @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include + +class RestartHelperClass { +public: + RestartHelperClass(); + void init(Scheduler& scheduler); + void triggerRestart(); + +private: + void loop(); + + Task _rebootTask; +}; + +extern RestartHelperClass RestartHelper; diff --git a/include/Utils.h b/include/Utils.h index f81e7318..6645f497 100644 --- a/include/Utils.h +++ b/include/Utils.h @@ -9,7 +9,6 @@ public: static uint32_t getChipId(); static uint64_t generateDtuSerial(); static int getTimezoneOffset(); - static void restartDtu(); static bool checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line); static void removeAllFiles(); }; diff --git a/include/WebApi_firmware.h b/include/WebApi_firmware.h index 9e473f2d..990a5e06 100644 --- a/include/WebApi_firmware.h +++ b/include/WebApi_firmware.h @@ -6,13 +6,9 @@ class WebApiFirmwareClass { public: - WebApiFirmwareClass(); void init(AsyncWebServer& server, Scheduler& scheduler); private: void onFirmwareUpdateFinish(AsyncWebServerRequest* request); void onFirmwareUpdateUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final); - - Task _rebootTask; - void rebootTaskCb(); }; diff --git a/src/RestartHelper.cpp b/src/RestartHelper.cpp new file mode 100644 index 00000000..75d92324 --- /dev/null +++ b/src/RestartHelper.cpp @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2024 Thomas Basler and others + */ +#include "RestartHelper.h" +#include "Display_Graphic.h" +#include "Led_Single.h" +#include + +RestartHelperClass RestartHelper; + +RestartHelperClass::RestartHelperClass() + : _rebootTask(2 * TASK_SECOND, TASK_FOREVER, std::bind(&RestartHelperClass::loop, this)) +{ +} + +void RestartHelperClass::init(Scheduler& scheduler) +{ + scheduler.addTask(_rebootTask); +} + +void RestartHelperClass::triggerRestart() +{ + _rebootTask.enable(); + _rebootTask.restart(); +} + +void RestartHelperClass::loop() +{ + if (_rebootTask.isFirstIteration()) { + LedSingle.turnAllOff(); + Display.setStatus(false); + } else { + ESP.restart(); + } +} diff --git a/src/Utils.cpp b/src/Utils.cpp index 6abe4dd1..4d680368 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -4,10 +4,8 @@ */ #include "Utils.h" -#include "Display_Graphic.h" -#include "Led_Single.h" #include "MessageOutput.h" -#include +#include "PinMapping.h" #include uint32_t Utils::getChipId() @@ -59,16 +57,6 @@ int Utils::getTimezoneOffset() return static_cast(difftime(rawtime, gmt)); } -void Utils::restartDtu() -{ - LedSingle.turnAllOff(); - Display.setStatus(false); - yield(); - delay(1000); - yield(); - ESP.restart(); -} - bool Utils::checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line) { if (doc.overflowed()) { diff --git a/src/WebApi_config.cpp b/src/WebApi_config.cpp index 8d0e7a08..51a7aab1 100644 --- a/src/WebApi_config.cpp +++ b/src/WebApi_config.cpp @@ -4,6 +4,7 @@ */ #include "WebApi_config.h" #include "Configuration.h" +#include "RestartHelper.h" #include "Utils.h" #include "WebApi.h" #include "WebApi_errors.h" @@ -82,7 +83,7 @@ void WebApiConfigClass::onConfigDelete(AsyncWebServerRequest* request) WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); Utils::removeAllFiles(); - Utils::restartDtu(); + RestartHelper.triggerRestart(); } void WebApiConfigClass::onConfigListGet(AsyncWebServerRequest* request) @@ -124,7 +125,7 @@ void WebApiConfigClass::onConfigUploadFinish(AsyncWebServerRequest* request) response->addHeader("Connection", "close"); response->addHeader("Access-Control-Allow-Origin", "*"); request->send(response); - Utils::restartDtu(); + RestartHelper.triggerRestart(); } void WebApiConfigClass::onConfigUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 7c713758..42c175f7 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -6,7 +6,7 @@ #include "Configuration.h" #include "Display_Graphic.h" #include "PinMapping.h" -#include "Utils.h" +#include "RestartHelper.h" #include "WebApi.h" #include "WebApi_errors.h" #include "helper.h" @@ -149,6 +149,6 @@ void WebApiDeviceClass::onDeviceAdminPost(AsyncWebServerRequest* request) WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); if (performRestart) { - Utils::restartDtu(); + RestartHelper.triggerRestart(); } } diff --git a/src/WebApi_firmware.cpp b/src/WebApi_firmware.cpp index f730bf91..b179eb10 100644 --- a/src/WebApi_firmware.cpp +++ b/src/WebApi_firmware.cpp @@ -4,17 +4,13 @@ */ #include "WebApi_firmware.h" #include "Configuration.h" +#include "RestartHelper.h" #include "Update.h" #include "Utils.h" #include "WebApi.h" #include "helper.h" #include -WebApiFirmwareClass::WebApiFirmwareClass() - : _rebootTask(TASK_IMMEDIATE, TASK_ONCE, std::bind(&WebApiFirmwareClass::rebootTaskCb, this)) -{ -} - void WebApiFirmwareClass::init(AsyncWebServer& server, Scheduler& scheduler) { using std::placeholders::_1; @@ -27,8 +23,6 @@ void WebApiFirmwareClass::init(AsyncWebServer& server, Scheduler& scheduler) server.on("/api/firmware/update", HTTP_POST, std::bind(&WebApiFirmwareClass::onFirmwareUpdateFinish, this, _1), std::bind(&WebApiFirmwareClass::onFirmwareUpdateUpload, this, _1, _2, _3, _4, _5, _6)); - - scheduler.addTask(_rebootTask); } void WebApiFirmwareClass::onFirmwareUpdateFinish(AsyncWebServerRequest* request) @@ -44,8 +38,7 @@ void WebApiFirmwareClass::onFirmwareUpdateFinish(AsyncWebServerRequest* request) response->addHeader("Connection", "close"); response->addHeader("Access-Control-Allow-Origin", "*"); request->send(response); - _rebootTask.enable(); - _rebootTask.restart(); + RestartHelper.triggerRestart(); } void WebApiFirmwareClass::onFirmwareUpdateUpload(AsyncWebServerRequest* request, String filename, size_t index, uint8_t* data, size_t len, bool final) @@ -86,8 +79,3 @@ void WebApiFirmwareClass::onFirmwareUpdateUpload(AsyncWebServerRequest* request, return; } } - -void WebApiFirmwareClass::rebootTaskCb() -{ - Utils::restartDtu(); -} diff --git a/src/WebApi_maintenance.cpp b/src/WebApi_maintenance.cpp index c7d254b8..1835138f 100644 --- a/src/WebApi_maintenance.cpp +++ b/src/WebApi_maintenance.cpp @@ -4,7 +4,7 @@ */ #include "WebApi_maintenance.h" -#include "Utils.h" +#include "RestartHelper.h" #include "WebApi.h" #include "WebApi_errors.h" #include @@ -43,7 +43,7 @@ void WebApiMaintenanceClass::onRebootPost(AsyncWebServerRequest* request) retMsg["code"] = WebApiError::MaintenanceRebootTriggered; WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); - Utils::restartDtu(); + RestartHelper.triggerRestart(); } else { retMsg["message"] = "Reboot cancled!"; retMsg["code"] = WebApiError::MaintenanceRebootCancled; diff --git a/src/main.cpp b/src/main.cpp index 433619e1..00ab3f3a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ #include "NetworkSettings.h" #include "NtpSettings.h" #include "PinMapping.h" +#include "RestartHelper.h" #include "Scheduler.h" #include "SunPosition.h" #include "Utils.h" @@ -154,6 +155,7 @@ void setup() InverterSettings.init(scheduler); Datastore.init(scheduler); + RestartHelper.init(scheduler); } void loop() From e37baedddbefccc0c29521d2013acdf33497fc39 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 18:16:05 +0200 Subject: [PATCH 039/127] webapp: Update dependencies --- webapp/package.json | 2 +- webapp/yarn.lock | 124 ++++++++++++++++++++++---------------------- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 04e7d848..5d7c5908 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,7 +19,7 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", - "vue": "^3.5.7", + "vue": "^3.5.8", "vue-i18n": "9.13.1", "vue-router": "^4.4.5" }, diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 67e2ce98..9d7d8648 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -652,13 +652,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.7.tgz#04300bdc9fb52f89e6f250bbac16e03f0e0ed914" - integrity sha512-A0gay3lK71MddsSnGlBxRPOugIVdACze9L/rCo5X5srCyjQfZOfYtSFMJc3aOZCM+xN55EQpb4R97rYn/iEbSw== +"@vue/compiler-core@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.8.tgz#03ee4a2fa022c9bc3e59f789a1e14593b1e95b10" + integrity sha512-Uzlxp91EPjfbpeO5KtC0KnXPkuTfGsNDeaKQJxQN718uz+RqDYarEf7UhQJGK+ZYloD2taUbHTI2J4WrUaZQNA== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.7" + "@vue/shared" "3.5.8" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -671,13 +671,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.7.tgz#604ced082189b66cb811068332a45dcc11ae0af3" - integrity sha512-GYWl3+gO8/g0ZdYaJ18fYHdI/WVic2VuuUd1NsPp60DWXKy+XjdhFsDW7FbUto8siYYZcosBGn9yVBkjhq1M8Q== +"@vue/compiler-dom@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.8.tgz#03e4a6bef00a1979613a1db2ab39e9b2dced3373" + integrity sha512-GUNHWvoDSbSa5ZSHT9SnV5WkStWfzJwwTd6NMGzilOE/HM5j+9EB9zGXdtu/fCNEmctBqMs6C9SvVPpVPuk1Eg== dependencies: - "@vue/compiler-core" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/compiler-core" "3.5.8" + "@vue/shared" "3.5.8" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -687,16 +687,16 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.7.tgz#1150c49c0e3b39d40b2cf0f7de9edfcba98fa3e9" - integrity sha512-EjOJtCWJrC7HqoCEzOwpIYHm+JH7YmkxC1hG6VkqIukYRqj8KFUlTLK6hcT4nGgtVov2+ZfrdrRlcaqS78HnBA== +"@vue/compiler-sfc@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.8.tgz#b2091ec01c63ab02a1cd6783224322f245c6a308" + integrity sha512-taYpngQtSysrvO9GULaOSwcG5q821zCoIQBtQQSx7Uf7DxpR6CIHR90toPr9QfDD2mqHQPCSgoWBvJu0yV9zjg== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.7" - "@vue/compiler-dom" "3.5.7" - "@vue/compiler-ssr" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/compiler-core" "3.5.8" + "@vue/compiler-dom" "3.5.8" + "@vue/compiler-ssr" "3.5.8" + "@vue/shared" "3.5.8" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.47" @@ -726,13 +726,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.7.tgz#042144dfd574a1f64b685e87730b0196dc1846d2" - integrity sha512-oZx+jXP2k5arV/8Ly3TpQbfFyimMw2ANrRqvHJoKjPqtEzazxQGZjCLOfq8TnZ3wy2TOXdqfmVp4q7FyYeHV4g== +"@vue/compiler-ssr@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.8.tgz#fbad34f8bbed15aa6e7b9d78324d93af93403145" + integrity sha512-W96PtryNsNG9u0ZnN5Q5j27Z/feGrFV6zy9q5tzJVyJaLiwYxvC0ek4IXClZygyhjm+XKM7WD9pdKi/wIRVC/Q== dependencies: - "@vue/compiler-dom" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/compiler-dom" "3.5.8" + "@vue/shared" "3.5.8" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -786,38 +786,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.7.tgz#a52237fce841d92fc861220a8f26b51f5c3245e2" - integrity sha512-yF0EpokpOHRNXyn/h6abXc9JFIzfdAf0MJHIi92xxCWS0mqrXH6+2aZ+A6EbSrspGzX5MHTd5N8iBA28HnXu9g== +"@vue/reactivity@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.8.tgz#23e1bceceb9b94b136fa91f11b308e3f712dea6d" + integrity sha512-mlgUyFHLCUZcAYkqvzYnlBRCh0t5ZQfLYit7nukn1GR96gc48Bp4B7OIcSfVSvlG1k3BPfD+p22gi1t2n9tsXg== dependencies: - "@vue/shared" "3.5.7" + "@vue/shared" "3.5.8" -"@vue/runtime-core@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.7.tgz#4181b0a921d331f2efd5eda9aa35549ac97e6530" - integrity sha512-OzLpBpKbZEaZVSNfd+hQbfBrDKux+b7Yl5hYhhWWWhHD7fEpF+CdI3Brm5k5GsufHEfvMcjruPxwQZuBN6nFYQ== +"@vue/runtime-core@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.8.tgz#235251fa40dae61db7becacf6bda5bc6561cbbc5" + integrity sha512-fJuPelh64agZ8vKkZgp5iCkPaEqFJsYzxLk9vSC0X3G8ppknclNDr61gDc45yBGTaN5Xqc1qZWU3/NoaBMHcjQ== dependencies: - "@vue/reactivity" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/reactivity" "3.5.8" + "@vue/shared" "3.5.8" -"@vue/runtime-dom@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.7.tgz#646e006d403f2e6337f566fdf461fbe400e8487d" - integrity sha512-fL7cETfE27U2jyTgqzE382IGFY6a6uyznErn27KbbEzNctzxxUWYDbaN3B55l9nXh0xW2LRWPuWKOvjtO2UewQ== +"@vue/runtime-dom@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.8.tgz#9d3a4f4a9a9a0002b085a5e18a2ca16c009cb3ad" + integrity sha512-DpAUz+PKjTZPUOB6zJgkxVI3GuYc2iWZiNeeHQUw53kdrparSTG6HeXUrYDjaam8dVsCdvQxDz6ZWxnyjccUjQ== dependencies: - "@vue/reactivity" "3.5.7" - "@vue/runtime-core" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/reactivity" "3.5.8" + "@vue/runtime-core" "3.5.8" + "@vue/shared" "3.5.8" csstype "^3.1.3" -"@vue/server-renderer@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.7.tgz#65ba8b60c0ee9e791619c0f8b2b6209a258484e5" - integrity sha512-peRypij815eIDjpPpPXvYQGYqPH6QXwLJGWraJYPPn8JqWGl29A8QXnS7/Mh3TkMiOcdsJNhbFCoW2Agc2NgAQ== +"@vue/server-renderer@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.8.tgz#d6c292409e880db4151223c27fa0d1cd879cc239" + integrity sha512-7AmC9/mEeV9mmXNVyUIm1a1AjUhyeeGNbkLh39J00E7iPeGks8OGRB5blJiMmvqSh8SkaS7jkLWSpXtxUCeagA== dependencies: - "@vue/compiler-ssr" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/compiler-ssr" "3.5.8" + "@vue/shared" "3.5.8" "@vue/shared@3.2.47": version "3.2.47" @@ -829,10 +829,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.5.7": - version "3.5.7" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.7.tgz#1eedd1ffbf804c488fe806a17ff26c22e0ddb72f" - integrity sha512-NBE1PBIvzIedxIc2RZiKXvGbJkrZ2/hLf3h8GlS4/sP9xcXEZMFWOazFkNd6aGeUCMaproe5MHVYB3/4AW9q9g== +"@vue/shared@3.5.8": + version "3.5.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.8.tgz#6ef14933872dcc4f7b79fee3aaecf648ff807fed" + integrity sha512-mJleSWbAGySd2RJdX1RBtcrUBX6snyOc0qHpgk3lGi4l9/P/3ny3ELqFWqYdkXIwwNN/kdm8nD9ky8o6l/Lx2A== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -2673,16 +2673,16 @@ vue-tsc@^2.1.6: "@vue/language-core" "2.1.6" semver "^7.5.4" -vue@^3.5.7: - version "3.5.7" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.7.tgz#511df1fab33a4c20cfe6b59659d6f601f0c26625" - integrity sha512-JcFm0f5j8DQO9E07pZRxqZ/ZsNopMVzHYXpKvnfqXFcA4JTi+4YcrikRn9wkzWsdj0YsLzlLIsR0zzGxA2P6Wg== +vue@^3.5.8: + version "3.5.8" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.8.tgz#7d2fa98ea85228dcb90f897ef5df74df1d5825a1" + integrity sha512-hvuvuCy51nP/1fSRvrrIqTLSvrSyz2Pq+KQ8S8SXCxTWVE0nMaOnSDnSOxV1eYmGfvK7mqiwvd1C59CEEz7dAQ== dependencies: - "@vue/compiler-dom" "3.5.7" - "@vue/compiler-sfc" "3.5.7" - "@vue/runtime-dom" "3.5.7" - "@vue/server-renderer" "3.5.7" - "@vue/shared" "3.5.7" + "@vue/compiler-dom" "3.5.8" + "@vue/compiler-sfc" "3.5.8" + "@vue/runtime-dom" "3.5.8" + "@vue/server-renderer" "3.5.8" + "@vue/shared" "3.5.8" webpack-sources@^3.2.3: version "3.2.3" From e29ac4f171afcd02b1211ede060e2a92a5dfa28b Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 18:24:22 +0200 Subject: [PATCH 040/127] webapp: Fix data type for all range inputs --- webapp/src/views/DeviceAdminView.vue | 4 ++-- webapp/src/views/DtuAdminView.vue | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/webapp/src/views/DeviceAdminView.vue b/webapp/src/views/DeviceAdminView.vue index 31eadcf1..eafcf902 100644 --- a/webapp/src/views/DeviceAdminView.vue +++ b/webapp/src/views/DeviceAdminView.vue @@ -202,7 +202,7 @@ min="0" max="100" id="inputDisplayContrast" - v-model="deviceConfigList.display.contrast" + v-model.number="deviceConfigList.display.contrast" />
@@ -239,7 +239,7 @@ min="0" max="100" :id="getLedIdFromNumber(index)" - v-model="ledSetting.brightness" + v-model.number="ledSetting.brightness" @change="syncSliders" /> diff --git a/webapp/src/views/DtuAdminView.vue b/webapp/src/views/DtuAdminView.vue index 23d4db7b..ebae5210 100644 --- a/webapp/src/views/DtuAdminView.vue +++ b/webapp/src/views/DtuAdminView.vue @@ -89,7 +89,7 @@ Date: Mon, 23 Sep 2024 18:25:49 +0200 Subject: [PATCH 041/127] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 186270 -> 186295 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 5727711e5ba754ffc228e1df160819f1bb885b68..995f369618d18a1eeef320142a3e8ac27b0a534e 100644 GIT binary patch delta 121978 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 delta 121815 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

st*X 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

I>Zt8OZq4V!>&@PAYZ3K}+n?kFe-MEI7i zVmbma2vSSRR{cT5zs3zDhT5{JPS6^ol>Sg4qJgbc8bg(;q7P%&b`OANH50^KygWz6 zC4vi_1*OAf{W<=W)uW&Y#nOm5M@dNo(RU$f(JXHoBF z$Zvq(>F|DI34d|Xkh(M+=ML*HqQ8JLKv)xmKu{x<@*N?u zb`_KCV}I@Kp!W8p_V%cz(5!4n$Haih#B4*L?`i^6iwY1_3d)f6s7!n+zG0Xm!7nUN z!3J>hCg5a9)RiunP8r5Abx%|1fO|H+8oRzA99EprO3y8kjj5j!lWfX&q`@g<&P?b8 z95JtCwuo}TYB@`)(abo4O(qB{$d zgdjUz;9bE)l(s?_gClh2+)bMZB@R)P2oh#UjsRLNHk;5HsF(s5wu-@qWNqk8 zl6S2=|7Md@RMz>vmRPnE;p`^br7cpva_wkas=S}Al6m@{ zAb!W0ZP{@cC0B?~AyR87ayF78lJJOjPk&BCeuS>wn~kR)V4%rF?dNWhsR)nb@O--2 zB!B#|N31cuJhxJ)U6Z8|!p!$yjmgZJEOdRPm7z@J z7z5X^=anP}V-Pi7N%CY2YL+*dno^5bjtdMRSV`?HY^Kl(%Nj-2hU^z5w^ljYdVi|` z^-9LYq}UrwS;W(>&a8|BH=A};H}c&ZSgl!v>=JV2Olwc`|j-hG0&n`xx4_ zdocz{&ffisS}#E6{sNTn9ObCdB&sA>xcDGn9bMa;u8sy_i43I~y|#xz#9L>>8|PC| zH=w}zP^a~l3{fKeD8XLcS~6RfwSSFnDw|DK*-J}HXUT4!Eh=hJKouaqsw|>QYY|OS z!z3Dow`LWQy4f{8W3I)k6|{5c`!C`fYP8BtKmr{VlVc^YLW+^PHh5?(JtYPs7@yd)m6O!aCc8ET0MZCbWbU%r}$g^vZfWF8;W2KTw^lPrD>lZandSoRk)l=7z)PQM}8sPDmYbz+l zBeb~~sSdSyF)9Mb(|_>o*gCURu1aWiVd?YAUb%%jVZ#G~-Ev_33ZHK8mba1k0N3MP z2pJ&`$U#)>hL+w9tNH=%L_%Dvc2IfEzO!H)VhaUR;GCA#X>}#ZqZ;6fF4hdE4bD8C zhgXt(9J9WAbZE}z7$m2|I+0M6TrV3Ez)C4Igb))zGx~lzb$=+LAr+mD1ui&#^XBnn zj-yGa-lr6_v(O`xQGWpboU&6%#$)hPJB6{a%n*GEe_0{M)?=xCz!Oc+(E}R(nOEvVYiY+Qnv*`TjldZOTAJfdw0EPO8|oijOb&!$PwdY<-r1<+HcU@&dwc z*KmTdc?Kam3N}M-rfUX_Q;o!prrM-M&-B|dNev=lYwI@&1`CQ_uvTy@9x5pxc;e0Z zYSaeh&T1qzsS)g8&{m@rku+E-oU-75fLpkdlh0WJ7k?VQO~GR`UBJy6K*C~(4BOvs zl-qA$bLOmVH05ZT4QJ9BYF&q)7}BB|(q^+jgr!FIY|MArcY&H)?YA8CO{o$c=Hf@N z+TU#U$I1oL2=;aI;TT0(+PeUxSYy!PtDju`B>bo#Ph+a3|4-xLEJoo$&9TMzwWrIm zfVxyL$bTqp>8gFd@+)a(|pjYA|OBo z$l0{QBLdz_VI#J!ldq83OY{Z-^B6Q^06$ejyC|`}RE!{tV4kwB3c>VDiZdd+#?{U) zG8#aHY^`B$K|-r;F)o?1tFENl>4v8cxV%)V`hRfP)JPeJ0>M=0RPU8yK@UN7S8JWD zqn;{dIx}o=_yyIL?GrKeeWm|x!OO7LAdYEH3fTLRu8Yr!c{CcN+?m4==4}R$7v>jW zP&mv@!4+AM+%g0jBF?U{FV;OgnB$&iUbZ1j0-+F#Q19pOWQZ zPjfA#T)6W7jL>Xf*(UGA_< z74wPM;uaDABl&3c0$Pk<^<^p8r6?i(4u71UjsQzqP0Th6t=!Tp|1y9SpjfJeuRJ=E zd+n6}V4%S=o;b&* za>)rfs{Lo6%xx<(R}GbH#V>)(29X-I^FNQtlB}qTt|)>nIp=DmF(g~57HAMLY=0mK zEhm+Oa&5CoD`WE%=YC;fx?2ZJUa)ppmw32d1I5;gqf)(@Xss(yya0PcQz#a6)&(#eZq@gJXE4 zpc-lPe0t51gZ6_HkjsJATzU8`!jGg0%B+daDs^MX`@`@-Gz=@#`l#9plW;nWz;oS} zw}v1XN&(DEM$%X!2dR0gB+|mIDn|xlcU3_2gM<)k$gMhUf;xd|sg^S3FUJHd2H|c_ zPzt#c{X^h7Jcb!7>LF^Obbm6c@hz5Dko@5~wNiYEg+W$qnX4;Tp6WuADwI%m544tQ zs~~rg))f|Llo547p+zX&YHN3WRp>ii<;yY2YJ=4mZ#G9OmA8Sc^IV@E?(KT9J+K^< zCDOINg|&wPKTnJ-{lXrTAKQvhQ1 zB*sIRJ<@&6DSJW`>wmFd@m7a~uJ<<^vJbL{C@*kXj5rJhT}L`SO3#}?GLfo@_$86b z3c?H2*FAlT&mfx zF&bXxY(**i0Ly0xR34_p zMV%3jGOWRp@co~arH-=`4(wWJCjL2C3LuOKB@lY0M}PW~8=Jr*zSaVKWyF~g1{Z2nvtxd6J!miMB3{gpE6naf8`z6Vz)9Gk;H&_SjmatA&v0N7wEHEZ{637hv-Y zfj51>{mM=Vp7_2`UO^D`bBGZB)Q_8Jw*PTHd}OK7Fg>aLV9eE1TV44oi!5_iDirGxffqNd^j zIDeynpqcIa{yw2>ABE?ZGI<)aR}hXThHyMAMP+hz_}sh6ELJ#3@C3SFJ7hHARUv^& zVgv8&^r;>b!7&aRkh0C-$lAd|v5DZ}#vO%U&WUE%qq0(u!H z2s{XM(;B_k)x1CmMI9%HfhGmak6glvsDB>N;fl||A=Sikn%T#oue||D4(`A;D@|eA z0sk{3C4v=0&7vYAm=gOyEvwP$VSn`421W}W#~3ySesx&15;t$PYH$NyJ<^dd;f;pE zoO4#fh4F!ikzVWIIkk{EZe%ANdMTXG55TbD5Kki^3B-C+PLM$2UYkoHy;X{la(`j) zO9(b}sp-=7GDK~^%3VY5p;^3ApMW(WGSqjqhaEkc3VGFV(8^r@ENd1YS$of-WOI=h zGOMB6hC5+IfjU8e)FW2M-YuqPXU4|tz+NO(M5Dr@E>>8Z5hhW4U|m)`k3lf0K)|Ww z?jmq8UxT=@Tc2b?nIUPvsGboK2k4L&R6GEPKe3gOMgZ2A(OEw z@WQ-SMV5z+A}SoVDe+prRRxl`*+#Ln^^aeEgv23DqkDY&T@yl$~DKgv*eHaJ4#0BrI09< zQKg^j_nkG|+f~E7See34#(!^imV14*tDLxuW_FgJ;9Kh`OhddDqAHv^h0pX21ijVr zT!wR7+T2XgdSlY7^2fUxS45pDt_)&y<9J7+Q~r<39p!T|Tgj-nvfygpo!N3$Y7s_h zAyP0H=t*&!WkqA)$2!qzcfXvLl)WEwLb~0qa1RjjG}>&)(}*8Q@_#l$whocxqvcZN zg{!DmsaBv_MnutP!m-$B7)xHE!?IEL><$iCxv&a!oCSti)@4B8^>|`OGCb9`s_Lc* zcq+tVnS@|IM5-6m)TKf`8y_7~rs67rO$OXthpq-7;zvn;3Jx&ThL%c+WbFZK8h*O& z0k7YFuLE&Xqb$5U$A9Q9JM;`7_CGq*`F+1uQSFS~Y}ssi5fa&3O2Jd_5Pa@1o+5$L#&M zt4ZBUFtyFHq==Rtdval*?GM*N2hEPno@}Qf+%1c>KTrQqV<3<`wO^6D#7@O`i z`GFh~L=`xIbbsi`IOIw*IX~nm(lHhz5HCgfK0M9I+r0bc#lg?74)(_fPfiYwk6#`e z&_szDP;wxpeIKDWlJ$rK<`H5N3CqkY7fQuLcqr;<;cX-PRk9=OkU$ZK`Bge=8Rk7@ z-ELQEZsz3V?VE#>=Y#KFoV@uVCJ{BUK1MX=gG01hf63++UrB0?=N~xpQ0UL+$yRK0YYQj+ATcUWbBB`@e*3d}h zJr~8x52+y{pNM=Wqa~nHh%KV==gkXe(CVwg!~>-x%jO%)d2OGFn`&K4govDhlOJu- zl{Yjkhkv_C-4wk^N_wOGBpQ5|LU0*p{OO&>pX%|0>{Acy=9##wl;+(%hz#`(#D}yJ zS0gv3ZJs_cyxQQ3TNIl>lSTP%icD}7Is%NgR9@=DgR_DZ`=mMtwxR^)9pb$%YsuE3tTfggdN!fUQXpslPx# From d6a5fef4e701a385085c2558754ae7cbf0b647c2 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 18:33:01 +0200 Subject: [PATCH 042/127] Decrease restart delay to 1 second This prevents a reload of the webapp (during firmware update) before the esp is online again --- src/RestartHelper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RestartHelper.cpp b/src/RestartHelper.cpp index 75d92324..ab385ef6 100644 --- a/src/RestartHelper.cpp +++ b/src/RestartHelper.cpp @@ -10,7 +10,7 @@ RestartHelperClass RestartHelper; RestartHelperClass::RestartHelperClass() - : _rebootTask(2 * TASK_SECOND, TASK_FOREVER, std::bind(&RestartHelperClass::loop, this)) + : _rebootTask(1 * TASK_SECOND, TASK_FOREVER, std::bind(&RestartHelperClass::loop, this)) { } From 93b6e5a88544144ad1fc1c1308e15dfd11d8d13a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 21:59:43 +0200 Subject: [PATCH 043/127] Optimize MQTT subscription handling --- include/MqttHandleInverter.h | 24 +++++++++- src/MqttHandleInverter.cpp | 90 +++++++++++++++--------------------- 2 files changed, 61 insertions(+), 53 deletions(-) diff --git a/include/MqttHandleInverter.h b/include/MqttHandleInverter.h index 7c86a809..29511ae1 100644 --- a/include/MqttHandleInverter.h +++ b/include/MqttHandleInverter.h @@ -5,6 +5,8 @@ #include #include #include +#include +#include class MqttHandleInverterClass { public: @@ -19,7 +21,6 @@ public: private: void loop(); void publishField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const FieldId_t fieldId); - void onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total); Task _loopTask; @@ -41,6 +42,27 @@ private: FLD_IRR, FLD_Q }; + + enum class Topic : unsigned { + LimitPersistentRelative, + LimitPersistentAbsolute, + LimitNonPersistentRelative, + LimitNonPersistentAbsolute, + Power, + Restart, + }; + + static constexpr frozen::string _cmdtopic = "+/cmd/"; + static constexpr frozen::map _subscriptions = { + { "limit_persistent_relative", Topic::LimitPersistentRelative }, + { "limit_persistent_absolute", Topic::LimitPersistentAbsolute }, + { "limit_nonpersistent_relative", Topic::LimitNonPersistentRelative }, + { "limit_nonpersistent_absolute", Topic::LimitNonPersistentAbsolute }, + { "power", Topic::Power }, + { "restart", Topic::Restart }, + }; + + void onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total); }; extern MqttHandleInverterClass MqttHandleInverter; diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index b90abdb6..d9dfbedb 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -7,13 +7,6 @@ #include "MqttSettings.h" #include -#define TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE "limit_persistent_relative" -#define TOPIC_SUB_LIMIT_PERSISTENT_ABSOLUTE "limit_persistent_absolute" -#define TOPIC_SUB_LIMIT_NONPERSISTENT_RELATIVE "limit_nonpersistent_relative" -#define TOPIC_SUB_LIMIT_NONPERSISTENT_ABSOLUTE "limit_nonpersistent_absolute" -#define TOPIC_SUB_POWER "power" -#define TOPIC_SUB_RESTART "restart" - #define PUBLISH_MAX_INTERVAL 60000 MqttHandleInverterClass MqttHandleInverter; @@ -154,7 +147,7 @@ String MqttHandleInverterClass::getTopic(std::shared_ptr inv, return inv->serialString() + "/" + chanNum + "/" + chanName; } -void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total) +void MqttHandleInverterClass::onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total) { const CONFIG_T& config = Configuration.get(); @@ -162,15 +155,11 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro strncpy(token_topic, topic, MQTT_MAX_TOPIC_STRLEN + 40); // convert const char* to char* char* serial_str; - char* subtopic; - char* setting; char* rest = &token_topic[strlen(config.Mqtt.Topic)]; serial_str = strtok_r(rest, "/", &rest); - subtopic = strtok_r(rest, "/", &rest); - setting = strtok_r(rest, "/", &rest); - if (serial_str == NULL || subtopic == NULL || setting == NULL) { + if (serial_str == NULL) { return; } @@ -183,33 +172,30 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro return; } - // check if subtopic is unequal cmd - if (strcmp(subtopic, "cmd")) { + std::string strValue(reinterpret_cast(payload), len); + float payload_val = -1; + try { + payload_val = std::stof(strValue); + } catch (std::invalid_argument const& e) { + MessageOutput.printf("MQTT handler: cannot parse payload of topic '%s' as float: %s\r\n", + topic, strValue.c_str()); return; } - char* strlimit = new char[len + 1]; - memcpy(strlimit, payload, len); - strlimit[len] = '\0'; - const float payload_val = strtof(strlimit, NULL); - delete[] strlimit; - - if (payload_val < 0) { - MessageOutput.printf("MQTT payload < 0 received --> ignoring\r\n"); - return; - } - - if (!strcmp(setting, TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE)) { + switch (t) { + case Topic::LimitPersistentRelative: // Set inverter limit relative persistent MessageOutput.printf("Limit Persistent: %.1f %%\r\n", payload_val); inv->sendActivePowerControlRequest(payload_val, PowerLimitControlType::RelativPersistent); + break; - } else if (!strcmp(setting, TOPIC_SUB_LIMIT_PERSISTENT_ABSOLUTE)) { + case Topic::LimitPersistentAbsolute: // Set inverter limit absolute persistent MessageOutput.printf("Limit Persistent: %.1f W\r\n", payload_val); inv->sendActivePowerControlRequest(payload_val, PowerLimitControlType::AbsolutPersistent); + break; - } else if (!strcmp(setting, TOPIC_SUB_LIMIT_NONPERSISTENT_RELATIVE)) { + case Topic::LimitNonPersistentRelative: // Set inverter limit relative non persistent MessageOutput.printf("Limit Non-Persistent: %.1f %%\r\n", payload_val); if (!properties.retain) { @@ -217,8 +203,9 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro } else { MessageOutput.println("Ignored because retained"); } + break; - } else if (!strcmp(setting, TOPIC_SUB_LIMIT_NONPERSISTENT_ABSOLUTE)) { + case Topic::LimitNonPersistentAbsolute: // Set inverter limit absolute non persistent MessageOutput.printf("Limit Non-Persistent: %.1f W\r\n", payload_val); if (!properties.retain) { @@ -226,13 +213,15 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro } else { MessageOutput.println("Ignored because retained"); } + break; - } else if (!strcmp(setting, TOPIC_SUB_POWER)) { + case Topic::Power: // Turn inverter on or off MessageOutput.printf("Set inverter power to: %d\r\n", static_cast(payload_val)); inv->sendPowerControlRequest(static_cast(payload_val) > 0); + break; - } else if (!strcmp(setting, TOPIC_SUB_RESTART)) { + case Topic::Restart: // Restart inverter MessageOutput.printf("Restart inverter\r\n"); if (!properties.retain && payload_val == 1) { @@ -245,29 +234,26 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro void MqttHandleInverterClass::subscribeTopics() { - using std::placeholders::_1; - using std::placeholders::_2; - using std::placeholders::_3; - using std::placeholders::_4; - using std::placeholders::_5; - using std::placeholders::_6; + String const& prefix = MqttSettings.getPrefix(); - const String topic = MqttSettings.getPrefix(); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_PERSISTENT_ABSOLUTE), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_NONPERSISTENT_RELATIVE), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_NONPERSISTENT_ABSOLUTE), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_POWER), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); - MqttSettings.subscribe(String(topic + "+/cmd/" + TOPIC_SUB_RESTART), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, _1, _2, _3, _4, _5, _6)); + auto subscribe = [&prefix, this](char const* subTopic, Topic t) { + String fullTopic(prefix + _cmdtopic.data() + subTopic); + MqttSettings.subscribe(fullTopic.c_str(), 0, + std::bind(&MqttHandleInverterClass::onMqttMessage, this, t, + std::placeholders::_1, std::placeholders::_2, + std::placeholders::_3, std::placeholders::_4, + std::placeholders::_5, std::placeholders::_6)); + }; + + for (auto const& s : _subscriptions) { + subscribe(s.first.data(), s.second); + } } void MqttHandleInverterClass::unsubscribeTopics() { - const String topic = MqttSettings.getPrefix(); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE)); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_PERSISTENT_ABSOLUTE)); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_NONPERSISTENT_RELATIVE)); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_LIMIT_NONPERSISTENT_ABSOLUTE)); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_POWER)); - MqttSettings.unsubscribe(String(topic + "+/cmd/" + TOPIC_SUB_RESTART)); + String const& prefix = MqttSettings.getPrefix() + _cmdtopic.data(); + for (auto const& s : _subscriptions) { + MqttSettings.unsubscribe(prefix + s.first.data()); + } } From 0c012bf62ac4dcd61ae16f2efe712ece72d31bc3 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 22:08:53 +0200 Subject: [PATCH 044/127] Move inverter housekeeping tasks inside the InverterAbstract class --- lib/Hoymiles/src/Hoymiles.cpp | 11 +---------- lib/Hoymiles/src/inverters/InverterAbstract.cpp | 14 ++++++++++++++ lib/Hoymiles/src/inverters/InverterAbstract.h | 2 ++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index ccc1a704..97922e34 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -136,16 +136,7 @@ void HoymilesClass::loop() if (currentWeekDay != lastWeekDay) { for (auto& inv : _inverters) { - // Have to reset the offets first, otherwise it will - // Substract the offset from zero which leads to a high value - inv->Statistics()->resetYieldDayCorrection(); - if (inv->getZeroYieldDayOnMidnight()) { - inv->Statistics()->zeroDailyData(); - } - if (inv->getClearEventlogOnMidnight()) { - inv->EventLog()->clearBuffer(); - } - inv->resetRadioStats(); + inv->performDailyTask(); } lastWeekDay = currentWeekDay; diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.cpp b/lib/Hoymiles/src/inverters/InverterAbstract.cpp index ab169696..3e51bbd7 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.cpp +++ b/lib/Hoymiles/src/inverters/InverterAbstract.cpp @@ -273,6 +273,20 @@ uint8_t InverterAbstract::verifyAllFragments(CommandAbstract& cmd) return FRAGMENT_OK; } +void InverterAbstract::performDailyTask() +{ + // Have to reset the offets first, otherwise it will + // Substract the offset from zero which leads to a high value + Statistics()->resetYieldDayCorrection(); + if (getZeroYieldDayOnMidnight()) { + Statistics()->zeroDailyData(); + } + if (getClearEventlogOnMidnight()) { + EventLog()->clearBuffer(); + } + resetRadioStats(); +} + void InverterAbstract::resetRadioStats() { RadioStats = {}; diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.h b/lib/Hoymiles/src/inverters/InverterAbstract.h index 72ad7a8e..f139fab3 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.h +++ b/lib/Hoymiles/src/inverters/InverterAbstract.h @@ -65,6 +65,8 @@ public: void addRxFragment(const uint8_t fragment[], const uint8_t len); uint8_t verifyAllFragments(CommandAbstract& cmd); + void performDailyTask(); + void resetRadioStats(); struct { From 181802a76bd34566607de970cabd34d632a8b631 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 22:46:23 +0200 Subject: [PATCH 045/127] Feature: Allow reset of radio statistics via mqtt --- include/MqttHandleInverter.h | 4 +++- src/MqttHandleHass.cpp | 1 + src/MqttHandleInverter.cpp | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/MqttHandleInverter.h b/include/MqttHandleInverter.h index 29511ae1..ea3a6e38 100644 --- a/include/MqttHandleInverter.h +++ b/include/MqttHandleInverter.h @@ -50,16 +50,18 @@ private: LimitNonPersistentAbsolute, Power, Restart, + ResetRfStats, }; static constexpr frozen::string _cmdtopic = "+/cmd/"; - static constexpr frozen::map _subscriptions = { + static constexpr frozen::map _subscriptions = { { "limit_persistent_relative", Topic::LimitPersistentRelative }, { "limit_persistent_absolute", Topic::LimitPersistentAbsolute }, { "limit_nonpersistent_relative", Topic::LimitNonPersistentRelative }, { "limit_nonpersistent_absolute", Topic::LimitNonPersistentAbsolute }, { "power", Topic::Power }, { "restart", Topic::Restart }, + { "reset_rf_stats", Topic::ResetRfStats }, }; void onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 3971a3a6..dd3e93eb 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -77,6 +77,7 @@ void MqttHandleHassClass::publishConfig() publishInverterButton(inv, "Turn Inverter Off", "mdi:power-plug-off", "config", "", "cmd/power", "0"); publishInverterButton(inv, "Turn Inverter On", "mdi:power-plug", "config", "", "cmd/power", "1"); publishInverterButton(inv, "Restart Inverter", "", "config", "restart", "cmd/restart", "1"); + publishInverterButton(inv, "Reset Radio Statistics", "", "config", "", "cmd/reset_rf_stats", "1"); publishInverterNumber(inv, "Limit NonPersistent Relative", "mdi:speedometer", "config", "cmd/limit_nonpersistent_relative", "status/limit_relative", "%", 0, 100, 0.1); publishInverterNumber(inv, "Limit Persistent Relative", "mdi:speedometer", "config", "cmd/limit_persistent_relative", "status/limit_relative", "%", 0, 100, 0.1); diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index d9dfbedb..8e720663 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -229,6 +229,16 @@ void MqttHandleInverterClass::onMqttMessage(Topic t, const espMqttClientTypes::M } else { MessageOutput.println("Ignored because retained or numeric value not '1'"); } + break; + + case Topic::ResetRfStats: + // Reset RF Stats + MessageOutput.printf("Reset RF stats\r\n"); + if (!properties.retain && payload_val == 1) { + inv->resetRadioStats(); + } else { + MessageOutput.println("Ignored because retained or numeric value not '1'"); + } } } From bef81eed452b8fa4479dfb7c7c922860a336353c Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 23 Sep 2024 23:13:23 +0200 Subject: [PATCH 046/127] Feature: Publish Radio statistics to home assistant --- include/MqttHandleHass.h | 1 + src/MqttHandleHass.cpp | 60 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 9ab746a3..f365c7b4 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -65,6 +65,7 @@ private: void publishInverterButton(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* deviceClass, const char* subTopic, const char* payload); void publishInverterNumber(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); void publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off); + void publishInverterSensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* icon, const char* category, const char* device_class, const char* unit_of_measure); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index dd3e93eb..8baad840 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -88,6 +88,17 @@ void MqttHandleHassClass::publishConfig() publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0"); publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0"); + yield(); + + publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "diagnostic", "", ""); + publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "diagnostic", "", ""); + publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "diagnostic", "", ""); + publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "diagnostic", "", ""); + publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "diagnostic", "", ""); + publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "diagnostic", "", ""); + + yield(); + // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { for (auto& c : inv->Statistics()->getChannelsByType(t)) { @@ -295,6 +306,55 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* icon, const char* category, const char* device_class, const char* unit_of_measure) +{ + const String serial = inv->serialString(); + + String sensorId = caption; + sensorId.replace(" ", "_"); + sensorId.toLowerCase(); + + const String configTopic = "sensor/dtu_" + serial + + "/" + sensorId + + "/config"; + + const String statTopic = MqttSettings.getPrefix() + serial + "/" + subTopic; + + JsonDocument root; + + root["name"] = caption; + root["uniq_id"] = serial + "_" + sensorId; + if (strcmp(device_class, "")) { + root["dev_cla"] = device_class; + } + if (strcmp(category, "")) { + root["ent_cat"] = category; + } + if (strcmp(icon, "")) { + root["ic"] = icon; + } + if (strcmp(unit_of_measure, "")) { + root["unit_of_meas"] = unit_of_measure; + } + root["stat_t"] = statTopic; + + root["avty_t"] = MqttSettings.getPrefix() + Configuration.get().Mqtt.Lwt.Topic; + + const CONFIG_T& config = Configuration.get(); + root["pl_avail"] = config.Mqtt.Lwt.Value_Online; + root["pl_not_avail"] = config.Mqtt.Lwt.Value_Offline; + + createInverterInfo(root, inv); + + if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { + return; + } + + String buffer; + serializeJson(root, buffer); + publish(configTopic, buffer); +} + void MqttHandleHassClass::publishDtuSensor(const char* name, const char* device_class, const char* category, const char* icon, const char* unit_of_measure, const char* subTopic) { String id = name; From 8de1f7e70ff469ded9b07eaeecb327e07a37e50f Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 18:15:38 +0200 Subject: [PATCH 047/127] MQTT Hass: Change char* to String& --- include/MqttHandleHass.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index f365c7b4..5aafa0c9 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,13 +59,13 @@ public: private: void loop(); void publish(const String& subtopic, const String& payload); - void publishDtuSensor(const char* name, const char* device_class, const char* category, const char* icon, const char* unit_of_measure, const char* subTopic); - void publishDtuBinarySensor(const char* name, const char* device_class, const char* category, const char* payload_on, const char* payload_off, const char* subTopic = ""); + void publishDtuSensor(const String& name, const String& device_class, const String& category, const String& icon, const String& unit_of_measure, const String& subTopic); + void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - void publishInverterButton(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* deviceClass, const char* subTopic, const char* payload); - void publishInverterNumber(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); - void publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off); - void publishInverterSensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* icon, const char* category, const char* device_class, const char* unit_of_measure); + void publishInverterButton(std::shared_ptr inv, const String& caption, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); + void publishInverterNumber(std::shared_ptr inv, const String& caption, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); + void publishInverterBinarySensor(std::shared_ptr inv, const String& caption, const String& subTopic, const String& payload_on, const String& payload_off); + void publishInverterSensor(std::shared_ptr inv, const String& caption, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); From 8e68632ed9922e4c5ff7dcafd0d93b5c3e1a895b Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 18:17:42 +0200 Subject: [PATCH 048/127] MQTT Hass: Rename caption parameter to name --- include/MqttHandleHass.h | 8 +++--- src/MqttHandleHass.cpp | 58 ++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 5aafa0c9..74acbf4e 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -62,10 +62,10 @@ private: void publishDtuSensor(const String& name, const String& device_class, const String& category, const String& icon, const String& unit_of_measure, const String& subTopic); void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - void publishInverterButton(std::shared_ptr inv, const String& caption, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); - void publishInverterNumber(std::shared_ptr inv, const String& caption, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); - void publishInverterBinarySensor(std::shared_ptr inv, const String& caption, const String& subTopic, const String& payload_on, const String& payload_off); - void publishInverterSensor(std::shared_ptr inv, const String& caption, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure); + void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); + void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); + void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); + void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 8baad840..aeea8fea 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -190,11 +190,11 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const char* caption, const char* icon, const char* category, const char* deviceClass, const char* subTopic, const char* payload) +void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload) { const String serial = inv->serialString(); - String buttonId = caption; + String buttonId = name; buttonId.replace(" ", "_"); buttonId.toLowerCase(); @@ -206,12 +206,12 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const char* caption, const char* icon, const char* category, - const char* commandTopic, const char* stateTopic, const char* unitOfMeasure, + std::shared_ptr inv, const String& name, const String& icon, const String& category, + const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min, const int16_t max, float step) { const String serial = inv->serialString(); - String buttonId = caption; + String buttonId = name; buttonId.replace(" ", "_"); buttonId.toLowerCase(); @@ -249,9 +249,9 @@ void MqttHandleHassClass::publishInverterNumber( JsonDocument root; - root["name"] = caption; + root["name"] = name; root["uniq_id"] = serial + "_" + buttonId; - if (strcmp(icon, "")) { + if (icon != "") { root["ic"] = icon; } root["ent_cat"] = category; @@ -273,11 +273,11 @@ void MqttHandleHassClass::publishInverterNumber( publish(configTopic, buffer); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* payload_on, const char* payload_off) +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off) { const String serial = inv->serialString(); - String sensorId = caption; + String sensorId = name; sensorId.replace(" ", "_"); sensorId.toLowerCase(); @@ -289,7 +289,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const char* caption, const char* subTopic, const char* icon, const char* category, const char* device_class, const char* unit_of_measure) +void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure) { const String serial = inv->serialString(); - String sensorId = caption; + String sensorId = name; sensorId.replace(" ", "_"); sensorId.toLowerCase(); @@ -322,18 +322,18 @@ void MqttHandleHassClass::publishInverterSensor(std::shared_ptr Date: Tue, 24 Sep 2024 18:22:44 +0200 Subject: [PATCH 049/127] MQTT Hass: Change parameter order for publishInverterSensor --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 74acbf4e..df0e42b6 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -65,7 +65,7 @@ private: void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); - void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure); + void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index aeea8fea..ee4b52e5 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -90,12 +90,12 @@ void MqttHandleHassClass::publishConfig() yield(); - publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "diagnostic", "", ""); - publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "diagnostic", "", ""); - publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "diagnostic", "", ""); - publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "diagnostic", "", ""); - publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "diagnostic", "", ""); - publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "diagnostic", "", ""); + publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", "diagnostic"); + publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", "diagnostic"); + publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", "", "diagnostic"); + publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", "", "diagnostic"); + publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", "", "diagnostic"); + publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", "", "diagnostic"); yield(); @@ -306,7 +306,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& icon, const String& category, const String& device_class, const String& unit_of_measure) +void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) { const String serial = inv->serialString(); From 1c3e7de3900354131ec9cd9427409abb189a437e Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 19:06:00 +0200 Subject: [PATCH 050/127] MQTT Hass: Change parameter order for publishDtuSensor --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index df0e42b6..de1fea4b 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,7 +59,7 @@ public: private: void loop(); void publish(const String& subtopic, const String& payload); - void publishDtuSensor(const String& name, const String& device_class, const String& category, const String& icon, const String& unit_of_measure, const String& subTopic); + void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index ee4b52e5..3d7636e3 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -58,14 +58,15 @@ void MqttHandleHassClass::publishConfig() const CONFIG_T& config = Configuration.get(); // publish DTU sensors - publishDtuSensor("IP", "", "diagnostic", "mdi:network-outline", "", ""); - publishDtuSensor("WiFi Signal", "signal_strength", "diagnostic", "", "dBm", "rssi"); - publishDtuSensor("Uptime", "duration", "diagnostic", "", "s", ""); - publishDtuSensor("Temperature", "temperature", "diagnostic", "mdi:thermometer", "°C", "temperature"); - publishDtuSensor("Heap Size", "", "diagnostic", "mdi:memory", "Bytes", "heap/size"); - publishDtuSensor("Heap Free", "", "diagnostic", "mdi:memory", "Bytes", "heap/free"); - publishDtuSensor("Largest Free Heap Block", "", "diagnostic", "mdi:memory", "Bytes", "heap/maxalloc"); - publishDtuSensor("Lifetime Minimum Free Heap", "", "diagnostic", "mdi:memory", "Bytes", "heap/minfree"); + publishDtuSensor("IP", "ip", "", "mdi:network-outline", "", "diagnostic"); + publishDtuSensor("WiFi Signal", "rssi", "dBm", "", "signal_strength", "diagnostic"); + publishDtuSensor("Uptime", "uptime", "s", "", "duration", "diagnostic"); + publishDtuSensor("Temperature", "temperature", "°C", "mdi:thermometer", "temperature", "diagnostic"); + publishDtuSensor("Heap Size", "heap/size", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Heap Free", "heap/free", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Largest Free Heap Block", "heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Lifetime Minimum Free Heap", "heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuBinarySensor("Status", "connectivity", "diagnostic", config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, config.Mqtt.Lwt.Topic); yield(); @@ -355,7 +356,7 @@ void MqttHandleHassClass::publishInverterSensor(std::shared_ptr Date: Tue, 24 Sep 2024 19:08:19 +0200 Subject: [PATCH 051/127] MQTT Hass: Make publish methods static --- include/MqttHandleHass.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index de1fea4b..30eca13c 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -58,14 +58,14 @@ public: private: void loop(); - void publish(const String& subtopic, const String& payload); - void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); - void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); - void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); - void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); - void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publish(const String& subtopic, const String& payload); + static void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); + static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); + static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); From a7100f238bb1e439fc5978a8898aa1905f47317f Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 19:12:00 +0200 Subject: [PATCH 052/127] MQTT Hass: Change parameter order for publishDtuBinarySensor --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 30eca13c..b05b1f16 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -60,7 +60,7 @@ private: void loop(); static void publish(const String& subtopic, const String& payload); static void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic = ""); + static void publishDtuBinarySensor(const String& name, const String& subTopic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); static void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 3d7636e3..53b9d7aa 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -67,7 +67,7 @@ void MqttHandleHassClass::publishConfig() publishDtuSensor("Largest Free Heap Block", "heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); publishDtuSensor("Lifetime Minimum Free Heap", "heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuBinarySensor("Status", "connectivity", "diagnostic", config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, config.Mqtt.Lwt.Topic); + publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", "diagnostic"); yield(); @@ -402,7 +402,7 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sub publish(configTopic, buffer); } -void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& device_class, const String& category, const String& payload_on, const String& payload_off, const String& subTopic) +void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& subTopic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) { String id = name; id.toLowerCase(); From 483c10785b40eb5b7d0df90919e1737873d916dc Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 19:30:21 +0200 Subject: [PATCH 053/127] MQTT Hass: Change parameter order for publishInverterButton --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index b05b1f16..841a8299 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -62,7 +62,7 @@ private: static void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void publishDtuBinarySensor(const String& name, const String& subTopic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - static void publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload, const String& icon, const String& deviceClass, const String& category); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 53b9d7aa..8faeee0a 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -75,10 +75,10 @@ void MqttHandleHassClass::publishConfig() for (uint8_t i = 0; i < Hoymiles.getNumInverters(); i++) { auto inv = Hoymiles.getInverterByPos(i); - publishInverterButton(inv, "Turn Inverter Off", "mdi:power-plug-off", "config", "", "cmd/power", "0"); - publishInverterButton(inv, "Turn Inverter On", "mdi:power-plug", "config", "", "cmd/power", "1"); - publishInverterButton(inv, "Restart Inverter", "", "config", "restart", "cmd/restart", "1"); - publishInverterButton(inv, "Reset Radio Statistics", "", "config", "", "cmd/reset_rf_stats", "1"); + publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", "", "config"); + publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", "", "config"); + publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", "restart", "config"); + publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", "", "config"); publishInverterNumber(inv, "Limit NonPersistent Relative", "mdi:speedometer", "config", "cmd/limit_nonpersistent_relative", "status/limit_relative", "%", 0, 100, 0.1); publishInverterNumber(inv, "Limit Persistent Relative", "mdi:speedometer", "config", "cmd/limit_persistent_relative", "status/limit_relative", "%", 0, 100, 0.1); @@ -191,7 +191,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& deviceClass, const String& subTopic, const String& payload) +void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload, const String& icon, const String& deviceClass, const String& category) { const String serial = inv->serialString(); From 7aca72b8fd77d364efef673ecadcd4048d385d82 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 19:39:14 +0200 Subject: [PATCH 054/127] MQTT Hass: Change parameter order for publishInverterNumber --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 841a8299..d7f75177 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -63,7 +63,7 @@ private: static void publishDtuBinarySensor(const String& name, const String& subTopic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); static void publishInverterButton(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload, const String& icon, const String& deviceClass, const String& category); - static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& icon, const String& category, const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, const int16_t min = 1, const int16_t max = 100, float step = 1.0); + static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& stateTopic, const String& commandTopic, const int16_t min, const int16_t max, float step, const String& unitOfMeasure, const String& icon, const String& category); static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 8faeee0a..d73e7718 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -80,11 +80,11 @@ void MqttHandleHassClass::publishConfig() publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", "restart", "config"); publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", "", "config"); - publishInverterNumber(inv, "Limit NonPersistent Relative", "mdi:speedometer", "config", "cmd/limit_nonpersistent_relative", "status/limit_relative", "%", 0, 100, 0.1); - publishInverterNumber(inv, "Limit Persistent Relative", "mdi:speedometer", "config", "cmd/limit_persistent_relative", "status/limit_relative", "%", 0, 100, 0.1); + publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", "config"); + publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", "config"); - publishInverterNumber(inv, "Limit NonPersistent Absolute", "mdi:speedometer", "config", "cmd/limit_nonpersistent_absolute", "status/limit_absolute", "W", 0, MAX_INVERTER_LIMIT); - publishInverterNumber(inv, "Limit Persistent Absolute", "mdi:speedometer", "config", "cmd/limit_persistent_absolute", "status/limit_absolute", "W", 0, MAX_INVERTER_LIMIT); + publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); + publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0"); publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0"); @@ -231,9 +231,10 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& icon, const String& category, - const String& commandTopic, const String& stateTopic, const String& unitOfMeasure, - const int16_t min, const int16_t max, float step) + std::shared_ptr inv, const String& name, + const String& stateTopic, const String& commandTopic, + const int16_t min, const int16_t max, float step, + const String& unitOfMeasure, const String& icon, const String& category) { const String serial = inv->serialString(); From d899ea73645bade33b269fc3c6467e1ec8575b2e Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 19:44:58 +0200 Subject: [PATCH 055/127] MQTT Hass: Harmonise parameter names --- include/MqttHandleHass.h | 12 ++++++------ src/MqttHandleHass.cpp | 34 +++++++++++++++++----------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index d7f75177..e8790722 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,13 +59,13 @@ public: private: void loop(); static void publish(const String& subtopic, const String& payload); - static void publishDtuSensor(const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishDtuBinarySensor(const String& name, const String& subTopic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - static void publishInverterButton(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload, const String& icon, const String& deviceClass, const String& category); - static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& stateTopic, const String& commandTopic, const int16_t min, const int16_t max, float step, const String& unitOfMeasure, const String& icon, const String& category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off); - static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category); + static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const String& category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index d73e7718..bb4ff266 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -191,7 +191,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload, const String& icon, const String& deviceClass, const String& category) +void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category) { const String serial = inv->serialString(); @@ -203,7 +203,7 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, - const String& stateTopic, const String& commandTopic, + const String& stateTopic, const String& command_topic, const int16_t min, const int16_t max, float step, - const String& unitOfMeasure, const String& icon, const String& category) + const String& unit_of_measure, const String& icon, const String& category) { const String serial = inv->serialString(); @@ -246,7 +246,7 @@ void MqttHandleHassClass::publishInverterNumber( + "/" + buttonId + "/config"; - const String cmdTopic = MqttSettings.getPrefix() + serial + "/" + commandTopic; + const String cmdTopic = MqttSettings.getPrefix() + serial + "/" + command_topic; const String statTopic = MqttSettings.getPrefix() + serial + "/" + stateTopic; JsonDocument root; @@ -259,7 +259,7 @@ void MqttHandleHassClass::publishInverterNumber( root["ent_cat"] = category; root["cmd_t"] = cmdTopic; root["stat_t"] = statTopic; - root["unit_of_meas"] = unitOfMeasure; + root["unit_of_meas"] = unit_of_measure; root["min"] = min; root["max"] = max; root["step"] = step; @@ -275,7 +275,7 @@ void MqttHandleHassClass::publishInverterNumber( publish(configTopic, buffer); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& payload_on, const String& payload_off) +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) { const String serial = inv->serialString(); @@ -287,7 +287,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& subTopic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) +void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) { const String serial = inv->serialString(); @@ -320,7 +320,7 @@ void MqttHandleHassClass::publishInverterSensor(std::shared_ptr Date: Tue, 24 Sep 2024 19:47:23 +0200 Subject: [PATCH 056/127] MQTT Hass: Remove no more required checks --- src/MqttHandleHass.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index bb4ff266..665b2537 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -362,10 +362,6 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta String id = name; id.toLowerCase(); id.replace(" ", "_"); - String topic = state_topic; - if (topic == "") { - topic = id; - } JsonDocument root; @@ -383,7 +379,7 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta if (unit_of_measure != "") { root["unit_of_meas"] = unit_of_measure; } - root["stat_t"] = MqttSettings.getPrefix() + "dtu" + "/" + topic; + root["stat_t"] = MqttSettings.getPrefix() + "dtu" + "/" + state_topic; root["avty_t"] = MqttSettings.getPrefix() + Configuration.get().Mqtt.Lwt.Topic; @@ -409,16 +405,11 @@ void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const Strin id.toLowerCase(); id.replace(" ", "_"); - String topic = state_topic; - if (state_topic == "") { - topic = String("dtu/") + "/" + id; - } - JsonDocument root; root["name"] = name; root["uniq_id"] = getDtuUniqueId() + "_" + id; - root["stat_t"] = MqttSettings.getPrefix() + topic; + root["stat_t"] = MqttSettings.getPrefix() + state_topic; root["pl_on"] = payload_on; root["pl_off"] = payload_off; From f46a5017c7dd270f891aaa45e098b06f851446a0 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:03:42 +0200 Subject: [PATCH 057/127] MQTT Hass: Move publishBinarySensor logic into separate method --- include/MqttHandleHass.h | 2 + src/MqttHandleHass.cpp | 83 ++++++++++++++++------------------------ 2 files changed, 34 insertions(+), 51 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index e8790722..b932ae58 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,6 +59,8 @@ public: private: void loop(); static void publish(const String& subtopic, const String& payload); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 665b2537..2fcd4e66 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -279,33 +279,9 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptrserialString(); - String sensorId = name; - sensorId.replace(" ", "_"); - sensorId.toLowerCase(); - - const String configTopic = "binary_sensor/dtu_" + serial - + "/" + sensorId - + "/config"; - - const String statTopic = MqttSettings.getPrefix() + serial + "/" + state_topic; - JsonDocument root; - - root["name"] = name; - root["uniq_id"] = serial + "_" + sensorId; - root["stat_t"] = statTopic; - root["pl_on"] = payload_on; - root["pl_off"] = payload_off; - createInverterInfo(root, inv); - - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; - serializeJson(root, buffer); - publish(configTopic, buffer); + publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); } void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) @@ -401,35 +377,11 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) { - String id = name; - id.toLowerCase(); - id.replace(" ", "_"); + const String dtuId = getDtuUniqueId(); JsonDocument root; - - root["name"] = name; - root["uniq_id"] = getDtuUniqueId() + "_" + id; - root["stat_t"] = MqttSettings.getPrefix() + state_topic; - root["pl_on"] = payload_on; - root["pl_off"] = payload_off; - - if (device_class != "") { - root["dev_cla"] = device_class; - } - if (category != "") { - root["ent_cat"] = category; - } - createDtuInfo(root); - - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; - const String configTopic = "binary_sensor/" + getDtuUniqueId() + "/" + id + "/config"; - serializeJson(root, buffer); - publish(configTopic, buffer); + publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); } void MqttHandleHassClass::createInverterInfo(JsonDocument& root, std::shared_ptr inv) @@ -493,3 +445,32 @@ void MqttHandleHassClass::publish(const String& subtopic, const String& payload) topic += subtopic; MqttSettings.publishGeneric(topic, payload, Configuration.get().Mqtt.Hass.Retain); } + +void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +{ + String sensor_id = name; + sensor_id.toLowerCase(); + sensor_id.replace(" ", "_"); + + doc["name"] = name; + doc["uniq_id"] = unique_id_prefix + "_" + sensor_id; + doc["stat_t"] = MqttSettings.getPrefix() + state_topic; + doc["pl_on"] = payload_on; + doc["pl_off"] = payload_off; + + if (device_class != "") { + doc["dev_cla"] = device_class; + } + if (category != "") { + doc["ent_cat"] = category; + } + + if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { + return; + } + + String buffer; + const String configTopic = "binary_sensor/" + root_device + "/" + sensor_id + "/config"; + serializeJson(doc, buffer); + publish(configTopic, buffer); +} From e5ca0ab7845f1ed53721cfdac21c57d06b635b99 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:06:45 +0200 Subject: [PATCH 058/127] MQTT Hass: Reorder binary sensor methods --- include/MqttHandleHass.h | 5 +++-- src/MqttHandleHass.cpp | 36 ++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index b932ae58..7be81209 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,14 +59,15 @@ public: private: void loop(); static void publish(const String& subtopic, const String& payload); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const String& category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 2fcd4e66..ed5a76bb 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -275,15 +275,6 @@ void MqttHandleHassClass::publishInverterNumber( publish(configTopic, buffer); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) -{ - const String serial = inv->serialString(); - - JsonDocument root; - createInverterInfo(root, inv); - publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); -} - void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) { const String serial = inv->serialString(); @@ -375,15 +366,6 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta publish(configTopic, buffer); } -void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) -{ - const String dtuId = getDtuUniqueId(); - - JsonDocument root; - createDtuInfo(root); - publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); -} - void MqttHandleHassClass::createInverterInfo(JsonDocument& root, std::shared_ptr inv) { createDeviceInfo( @@ -474,3 +456,21 @@ void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& r serializeJson(doc, buffer); publish(configTopic, buffer); } + +void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +{ + const String dtuId = getDtuUniqueId(); + + JsonDocument root; + createDtuInfo(root); + publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); +} + +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) +{ + const String serial = inv->serialString(); + + JsonDocument root; + createInverterInfo(root, inv); + publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); +} From 239a77198d15d85b24998da0178e5a07506ce807 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:38:12 +0200 Subject: [PATCH 059/127] MQTT Hass: Move publishSensor logic into separate method --- include/MqttHandleHass.h | 6 +- src/MqttHandleHass.cpp | 147 +++++++++++++++------------------------ 2 files changed, 61 insertions(+), 92 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 7be81209..8f99ccdf 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -60,15 +60,19 @@ private: void loop(); static void publish(const String& subtopic, const String& payload); + // Binary Sensor static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); + // Sensor + static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const String& category); - static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index ed5a76bb..213ea844 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -275,97 +275,6 @@ void MqttHandleHassClass::publishInverterNumber( publish(configTopic, buffer); } -void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) -{ - const String serial = inv->serialString(); - - String sensorId = name; - sensorId.replace(" ", "_"); - sensorId.toLowerCase(); - - const String configTopic = "sensor/dtu_" + serial - + "/" + sensorId - + "/config"; - - const String statTopic = MqttSettings.getPrefix() + serial + "/" + state_topic; - - JsonDocument root; - - root["name"] = name; - root["uniq_id"] = serial + "_" + sensorId; - if (device_class != "") { - root["dev_cla"] = device_class; - } - if (category != "") { - root["ent_cat"] = category; - } - if (icon != "") { - root["ic"] = icon; - } - if (unit_of_measure != "") { - root["unit_of_meas"] = unit_of_measure; - } - root["stat_t"] = statTopic; - - root["avty_t"] = MqttSettings.getPrefix() + Configuration.get().Mqtt.Lwt.Topic; - - const CONFIG_T& config = Configuration.get(); - root["pl_avail"] = config.Mqtt.Lwt.Value_Online; - root["pl_not_avail"] = config.Mqtt.Lwt.Value_Offline; - - createInverterInfo(root, inv); - - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; - serializeJson(root, buffer); - publish(configTopic, buffer); -} - -void MqttHandleHassClass::publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) -{ - String id = name; - id.toLowerCase(); - id.replace(" ", "_"); - - JsonDocument root; - - root["name"] = name; - root["uniq_id"] = getDtuUniqueId() + "_" + id; - if (device_class != "") { - root["dev_cla"] = device_class; - } - if (category != "") { - root["ent_cat"] = category; - } - if (icon != "") { - root["ic"] = icon; - } - if (unit_of_measure != "") { - root["unit_of_meas"] = unit_of_measure; - } - root["stat_t"] = MqttSettings.getPrefix() + "dtu" + "/" + state_topic; - - root["avty_t"] = MqttSettings.getPrefix() + Configuration.get().Mqtt.Lwt.Topic; - - const CONFIG_T& config = Configuration.get(); - root["pl_avail"] = config.Mqtt.Lwt.Value_Online; - root["pl_not_avail"] = config.Mqtt.Lwt.Value_Offline; - - createDtuInfo(root); - - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; - const String configTopic = "sensor/" + getDtuUniqueId() + "/" + id + "/config"; - serializeJson(root, buffer); - publish(configTopic, buffer); -} - void MqttHandleHassClass::createInverterInfo(JsonDocument& root, std::shared_ptr inv) { createDeviceInfo( @@ -474,3 +383,59 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) +{ + const String serial = inv->serialString(); + + JsonDocument root; + createInverterInfo(root, inv); + publishSensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, unit_of_measure, icon, device_class, category); +} From ac5a96058182bc6fb87a089e1342a10fea569b49 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:42:38 +0200 Subject: [PATCH 060/127] MQTT Hass: Move yield into the publish method --- src/MqttHandleHass.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 213ea844..4cc1a967 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -69,8 +69,6 @@ void MqttHandleHassClass::publishConfig() publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", "diagnostic"); - yield(); - // Loop all inverters for (uint8_t i = 0; i < Hoymiles.getNumInverters(); i++) { auto inv = Hoymiles.getInverterByPos(i); @@ -89,8 +87,6 @@ void MqttHandleHassClass::publishConfig() publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0"); publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0"); - yield(); - publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", "diagnostic"); publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", "diagnostic"); publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", "", "diagnostic"); @@ -98,8 +94,6 @@ void MqttHandleHassClass::publishConfig() publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", "", "diagnostic"); publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", "", "diagnostic"); - yield(); - // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { for (auto& c : inv->Statistics()->getChannelsByType(t)) { @@ -112,8 +106,6 @@ void MqttHandleHassClass::publishConfig() } } } - - yield(); } } @@ -335,6 +327,7 @@ void MqttHandleHassClass::publish(const String& subtopic, const String& payload) String topic = Configuration.get().Mqtt.Hass.Topic; topic += subtopic; MqttSettings.publishGeneric(topic, payload, Configuration.get().Mqtt.Hass.Retain); + yield(); } void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) From c699f1b487e489c42e31efe94fabe03bca0f24f1 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:45:55 +0200 Subject: [PATCH 061/127] MQTT Hass: Add device_type and category to publishInverterBinarySensor --- include/MqttHandleHass.h | 2 +- src/MqttHandleHass.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 8f99ccdf..6a104941 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -63,7 +63,7 @@ private: // Binary Sensor static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); // Sensor static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 4cc1a967..36293a1e 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -84,8 +84,8 @@ void MqttHandleHassClass::publishConfig() publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); - publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0"); - publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0"); + publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", "connectivity", "diagnostic"); + publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", "", ""); publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", "diagnostic"); publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", "diagnostic"); @@ -368,13 +368,13 @@ void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const Strin publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off) +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) { const String serial = inv->serialString(); JsonDocument root; createInverterInfo(root, inv); - publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, "", ""); + publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, device_class, category); } void MqttHandleHassClass::publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) From 9a318d5170744c69c0ab72a2ae2cfe9f222bd60a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 20:47:43 +0200 Subject: [PATCH 062/127] MQTT Hass: Reorder defines --- src/MqttHandleHass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 36293a1e..5407defa 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -7,8 +7,8 @@ #include "MqttSettings.h" #include "NetworkSettings.h" #include "Utils.h" -#include "defaults.h" #include "__compiled_constants.h" +#include "defaults.h" MqttHandleHassClass MqttHandleHass; From 2213ad7bce72bed710a84015dfa7d0e2219a7cfc Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 21:47:56 +0200 Subject: [PATCH 063/127] MQTT Hass: Move serialization and allocation check into own method --- include/MqttHandleHass.h | 1 + src/MqttHandleHass.cpp | 50 ++++++++++++---------------------------- 2 files changed, 16 insertions(+), 35 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 6a104941..c5acca4c 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -59,6 +59,7 @@ public: private: void loop(); static void publish(const String& subtopic, const String& payload); + static void publish(const String& subtopic, const JsonDocument& doc); // Binary Sensor static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 5407defa..3f0b045a 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -171,13 +171,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr root["stat_cla"] = stateCls; } - if (!Utils::checkJsonAlloc(root, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; - serializeJson(root, buffer); - publish(configTopic, buffer); + publish(configTopic, root); } else { publish(configTopic, ""); } @@ -213,13 +207,7 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv) @@ -330,6 +312,16 @@ void MqttHandleHassClass::publish(const String& subtopic, const String& payload) yield(); } +void MqttHandleHassClass::publish(const String& subtopic, const JsonDocument& doc) +{ + if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { + return; + } + String buffer; + serializeJson(doc, buffer); + publish(subtopic, buffer); +} + void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) { String sensor_id = name; @@ -349,14 +341,8 @@ void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& r doc["ent_cat"] = category; } - if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; const String configTopic = "binary_sensor/" + root_device + "/" + sensor_id + "/config"; - serializeJson(doc, buffer); - publish(configTopic, buffer); + publish(configTopic, doc); } void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) @@ -405,14 +391,8 @@ void MqttHandleHassClass::publishSensor(JsonDocument& doc, const String& root_de doc["pl_avail"] = config.Mqtt.Lwt.Value_Online; doc["pl_not_avail"] = config.Mqtt.Lwt.Value_Offline; - if (!Utils::checkJsonAlloc(doc, __FUNCTION__, __LINE__)) { - return; - } - - String buffer; const String configTopic = "sensor/" + root_device + "/" + sensor_id + "/config"; - serializeJson(doc, buffer); - publish(configTopic, buffer); + publish(configTopic, doc); } void MqttHandleHassClass::publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) From 01e43777d27111af3ce7a8702753e895065e2904 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 22:04:07 +0200 Subject: [PATCH 064/127] MQTT Hass: Append dtu prefix topic for each single sensor --- src/MqttHandleHass.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 3f0b045a..1b20a84e 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -58,14 +58,14 @@ void MqttHandleHassClass::publishConfig() const CONFIG_T& config = Configuration.get(); // publish DTU sensors - publishDtuSensor("IP", "ip", "", "mdi:network-outline", "", "diagnostic"); - publishDtuSensor("WiFi Signal", "rssi", "dBm", "", "signal_strength", "diagnostic"); - publishDtuSensor("Uptime", "uptime", "s", "", "duration", "diagnostic"); - publishDtuSensor("Temperature", "temperature", "°C", "mdi:thermometer", "temperature", "diagnostic"); - publishDtuSensor("Heap Size", "heap/size", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Heap Free", "heap/free", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Largest Free Heap Block", "heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Lifetime Minimum Free Heap", "heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", "", "diagnostic"); + publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", "signal_strength", "diagnostic"); + publishDtuSensor("Uptime", "dtu/uptime", "s", "", "duration", "diagnostic"); + publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", "temperature", "diagnostic"); + publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", "diagnostic"); @@ -401,7 +401,7 @@ void MqttHandleHassClass::publishDtuSensor(const String& name, const String& sta JsonDocument root; createDtuInfo(root); - publishSensor(root, dtuId, dtuId, name, "dtu/" + state_topic, unit_of_measure, icon, device_class, category); + publishSensor(root, dtuId, dtuId, name, state_topic, unit_of_measure, icon, device_class, category); } void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) From 2fb026074ad8a89fcc2fe5ba894dfcba5402ea77 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 22:16:17 +0200 Subject: [PATCH 065/127] Feature: Publish YieldTotal, YieldDay and Power of all inverters to Home Assistant --- src/MqttHandleHass.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 1b20a84e..bcc3404e 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -67,6 +67,10 @@ void MqttHandleHassClass::publishConfig() publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", "energy", ""); + publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", "energy", ""); + publishDtuSensor("AC Power", "ac/power", "W", "", "power", ""); + publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", "diagnostic"); // Loop all inverters From bb4be0bbf74131bc40bf0b599cf8be03958d21d4 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 22:38:52 +0200 Subject: [PATCH 066/127] MQTT Hass: Implement category as enum instead of String --- include/MqttHandleHass.h | 25 ++++++++---- src/MqttHandleHass.cpp | 88 +++++++++++++++++++++------------------- 2 files changed, 63 insertions(+), 50 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index c5acca4c..426713d6 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -18,6 +18,7 @@ enum { DEVICE_CLS_REACTIVE_POWER }; const char* const deviceClasses[] = { 0, "current", "energy", "power", "voltage", "frequency", "temperature", "power_factor", "reactive_power" }; + enum { STATE_CLS_NONE = 0, STATE_CLS_MEASUREMENT, @@ -25,6 +26,14 @@ enum { }; const char* const stateClasses[] = { 0, "measurement", "total_increasing" }; +enum CategoryType { + CATEGORY_NONE = 0, + CATEGORY_CONFIG, + CATEGORY_DIAGNOSTIC +}; +const char* const category_name[] = { 0, "config", "diagnostic" }; + + typedef struct { FieldId_t fieldId; // field id uint8_t deviceClsId; // device class @@ -62,18 +71,18 @@ private: static void publish(const String& subtopic, const JsonDocument& doc); // Binary Sensor - static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); - static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); // Sensor - static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); - static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category); + static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); + static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category); - static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const String& category); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const CategoryType category); + static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const CategoryType category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index bcc3404e..4137b022 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -58,45 +58,45 @@ void MqttHandleHassClass::publishConfig() const CONFIG_T& config = Configuration.get(); // publish DTU sensors - publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", "", "diagnostic"); - publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", "signal_strength", "diagnostic"); - publishDtuSensor("Uptime", "dtu/uptime", "s", "", "duration", "diagnostic"); - publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", "temperature", "diagnostic"); - publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", "", "diagnostic"); - publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", "", "diagnostic"); + publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", "", CATEGORY_DIAGNOSTIC); + publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", "signal_strength", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Uptime", "dtu/uptime", "s", "", "duration", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", "temperature", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); + publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", "energy", ""); - publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", "energy", ""); - publishDtuSensor("AC Power", "ac/power", "W", "", "power", ""); + publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", "energy", CATEGORY_NONE); + publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", "energy", CATEGORY_NONE); + publishDtuSensor("AC Power", "ac/power", "W", "", "power", CATEGORY_NONE); - publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", "diagnostic"); + publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", CATEGORY_DIAGNOSTIC); // Loop all inverters for (uint8_t i = 0; i < Hoymiles.getNumInverters(); i++) { auto inv = Hoymiles.getInverterByPos(i); - publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", "", "config"); - publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", "", "config"); - publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", "restart", "config"); - publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", "", "config"); + publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", "", CATEGORY_CONFIG); + publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", "", CATEGORY_CONFIG); + publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", "restart", CATEGORY_CONFIG); + publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", "", CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", "config"); - publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", "config"); + publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); - publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", "config"); + publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); - publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", "connectivity", "diagnostic"); - publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", "", ""); + publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", "connectivity", CATEGORY_DIAGNOSTIC); + publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", "", CATEGORY_NONE); - publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", "diagnostic"); - publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", "diagnostic"); - publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", "", "diagnostic"); - publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", "", "diagnostic"); - publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", "", "diagnostic"); - publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", "", "diagnostic"); + publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", "", CATEGORY_DIAGNOSTIC); // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { @@ -181,7 +181,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const String& category) +void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const CategoryType category) { const String serial = inv->serialString(); @@ -205,7 +205,9 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& stateTopic, const String& command_topic, const int16_t min, const int16_t max, float step, - const String& unit_of_measure, const String& icon, const String& category) + const String& unit_of_measure, const String& icon, const CategoryType category) { const String serial = inv->serialString(); @@ -240,7 +242,9 @@ void MqttHandleHassClass::publishInverterNumber( if (icon != "") { root["ic"] = icon; } - root["ent_cat"] = category; + if (category != CATEGORY_NONE) { + root["ent_cat"] = category_name[category]; + } root["cmd_t"] = cmdTopic; root["stat_t"] = statTopic; root["unit_of_meas"] = unit_of_measure; @@ -326,7 +330,7 @@ void MqttHandleHassClass::publish(const String& subtopic, const JsonDocument& do publish(subtopic, buffer); } -void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category) { String sensor_id = name; sensor_id.toLowerCase(); @@ -341,15 +345,15 @@ void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& r if (device_class != "") { doc["dev_cla"] = device_class; } - if (category != "") { - doc["ent_cat"] = category; + if (category != CATEGORY_NONE) { + doc["ent_cat"] = category_name[category]; } const String configTopic = "binary_sensor/" + root_device + "/" + sensor_id + "/config"; publish(configTopic, doc); } -void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category) { const String dtuId = getDtuUniqueId(); @@ -358,7 +362,7 @@ void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const Strin publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const String& category) +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category) { const String serial = inv->serialString(); @@ -367,7 +371,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const String& category) +void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category) { const String serial = inv->serialString(); From 22308502015e76debf2bed789d242282da02f136 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 22:55:18 +0200 Subject: [PATCH 067/127] MQTT Hass: Implement device class as enum instead of String --- include/MqttHandleHass.h | 33 +++++++++-------- src/MqttHandleHass.cpp | 78 ++++++++++++++++++++-------------------- 2 files changed, 58 insertions(+), 53 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 426713d6..201992ce 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -6,7 +6,7 @@ #include // mqtt discovery device classes -enum { +enum DeviceClassType { DEVICE_CLS_NONE = 0, DEVICE_CLS_CURRENT, DEVICE_CLS_ENERGY, @@ -15,16 +15,21 @@ enum { DEVICE_CLS_FREQ, DEVICE_CLS_TEMP, DEVICE_CLS_POWER_FACTOR, - DEVICE_CLS_REACTIVE_POWER + DEVICE_CLS_REACTIVE_POWER, + DEVICE_CLS_CONNECTIVITY, + DEVICE_CLS_DURATION, + DEVICE_CLS_SIGNAL_STRENGTH, + DEVICE_CLS_TEMPERATURE, + DEVICE_CLS_RESTART }; -const char* const deviceClasses[] = { 0, "current", "energy", "power", "voltage", "frequency", "temperature", "power_factor", "reactive_power" }; +const char* const deviceClass_name[] = { 0, "current", "energy", "power", "voltage", "frequency", "temperature", "power_factor", "reactive_power", "connectivity", "duration", "signal_strength", "temperature", "restart" }; -enum { +enum StateClassType { STATE_CLS_NONE = 0, STATE_CLS_MEASUREMENT, STATE_CLS_TOTAL_INCREASING }; -const char* const stateClasses[] = { 0, "measurement", "total_increasing" }; +const char* const stateClass_name[] = { 0, "measurement", "total_increasing" }; enum CategoryType { CATEGORY_NONE = 0, @@ -36,8 +41,8 @@ const char* const category_name[] = { 0, "config", "diagnostic" }; typedef struct { FieldId_t fieldId; // field id - uint8_t deviceClsId; // device class - uint8_t stateClsId; // state class + DeviceClassType deviceClsId; // device class + StateClassType stateClsId; // state class } byteAssign_fieldDeviceClass_t; const byteAssign_fieldDeviceClass_t deviceFieldAssignment[] = { @@ -71,17 +76,17 @@ private: static void publish(const String& subtopic, const JsonDocument& doc); // Binary Sensor - static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); - static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); // Sensor - static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); - static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); - static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category); + static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); + static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const CategoryType category); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const DeviceClassType device_class, const CategoryType category); static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const CategoryType category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 4137b022..3f9e0708 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -58,29 +58,29 @@ void MqttHandleHassClass::publishConfig() const CONFIG_T& config = Configuration.get(); // publish DTU sensors - publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", "", CATEGORY_DIAGNOSTIC); - publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", "signal_strength", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Uptime", "dtu/uptime", "s", "", "duration", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", "temperature", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); - publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", "", CATEGORY_DIAGNOSTIC); + publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", DEVICE_CLS_SIGNAL_STRENGTH, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Uptime", "dtu/uptime", "s", "", DEVICE_CLS_DURATION, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", DEVICE_CLS_TEMPERATURE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", "energy", CATEGORY_NONE); - publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", "energy", CATEGORY_NONE); - publishDtuSensor("AC Power", "ac/power", "W", "", "power", CATEGORY_NONE); + publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", DEVICE_CLS_ENERGY, CATEGORY_NONE); + publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", DEVICE_CLS_ENERGY, CATEGORY_NONE); + publishDtuSensor("AC Power", "ac/power", "W", "", DEVICE_CLS_PWR, CATEGORY_NONE); - publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, "connectivity", CATEGORY_DIAGNOSTIC); + publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, DEVICE_CLS_CONNECTIVITY, CATEGORY_DIAGNOSTIC); // Loop all inverters for (uint8_t i = 0; i < Hoymiles.getNumInverters(); i++) { auto inv = Hoymiles.getInverterByPos(i); - publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", "", CATEGORY_CONFIG); - publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", "", CATEGORY_CONFIG); - publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", "restart", CATEGORY_CONFIG); - publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", "", CATEGORY_CONFIG); + publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", DEVICE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", DEVICE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", DEVICE_CLS_RESTART, CATEGORY_CONFIG); + publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", DEVICE_CLS_NONE, CATEGORY_CONFIG); publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); @@ -88,15 +88,15 @@ void MqttHandleHassClass::publishConfig() publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); - publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", "connectivity", CATEGORY_DIAGNOSTIC); - publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", "", CATEGORY_NONE); + publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", DEVICE_CLS_CONNECTIVITY, CATEGORY_DIAGNOSTIC); + publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", DEVICE_CLS_NONE, CATEGORY_NONE); - publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", "", CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", "", CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", "", CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", "", CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", "", CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", "", CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { @@ -142,8 +142,8 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr if (!clear) { const String stateTopic = MqttSettings.getPrefix() + MqttHandleInverter.getTopic(inv, type, channel, fieldType.fieldId); - const char* devCls = deviceClasses[fieldType.deviceClsId]; - const char* stateCls = stateClasses[fieldType.stateClsId]; + const char* devCls = deviceClass_name[fieldType.deviceClsId]; + const char* stateCls = stateClass_name[fieldType.stateClsId]; String name; if (type != TYPE_DC) { @@ -181,7 +181,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const String& device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const DeviceClassType device_class, const CategoryType category) { const String serial = inv->serialString(); @@ -202,8 +202,8 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const String& device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category) { const String serial = inv->serialString(); @@ -371,7 +371,7 @@ void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const String& device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category) { const String serial = inv->serialString(); From d3903d860207eed860145ddda6e63071fb46a9cd Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 24 Sep 2024 23:23:08 +0200 Subject: [PATCH 068/127] MQTT Hass: Implement method to add common metadata to json output --- include/MqttHandleHass.h | 2 ++ src/MqttHandleHass.cpp | 75 ++++++++++++++-------------------------- 2 files changed, 28 insertions(+), 49 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 201992ce..1a3acf59 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -75,6 +75,8 @@ private: static void publish(const String& subtopic, const String& payload); static void publish(const String& subtopic, const JsonDocument& doc); + static void addCommonMetadata(JsonDocument& doc, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); + // Binary Sensor static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 3f9e0708..ab4a2ad1 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -142,7 +142,6 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr if (!clear) { const String stateTopic = MqttSettings.getPrefix() + MqttHandleInverter.getTopic(inv, type, channel, fieldType.fieldId); - const char* devCls = deviceClass_name[fieldType.deviceClsId]; const char* stateCls = stateClass_name[fieldType.stateClsId]; String name; @@ -152,25 +151,19 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr name = "CH" + chanNum + " " + fieldName; } + String unit_of_measure = inv->Statistics()->getChannelFieldUnit(type, channel, fieldType.fieldId); + JsonDocument root; + createInverterInfo(root, inv); + addCommonMetadata(root, unit_of_measure, "", fieldType.deviceClsId, CATEGORY_NONE); root["name"] = name; root["stat_t"] = stateTopic; root["uniq_id"] = serial + "_ch" + chanNum + "_" + fieldName; - String unit_of_measure = inv->Statistics()->getChannelFieldUnit(type, channel, fieldType.fieldId); - if (unit_of_measure != "") { - root["unit_of_meas"] = unit_of_measure; - } - - createInverterInfo(root, inv); - if (Configuration.get().Mqtt.Hass.Expire) { root["exp_aft"] = Hoymiles.getNumInverters() * max(Hoymiles.PollInterval(), Configuration.get().Mqtt.PublishInterval) * inv->getReachableThreshold(); } - if (devCls != 0) { - root["dev_cla"] = devCls; - } if (stateCls != 0) { root["stat_cla"] = stateCls; } @@ -196,23 +189,14 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr Date: Mon, 3 Jul 2023 23:47:37 +0200 Subject: [PATCH 069/127] Remove unnecessary CMT SPI inversions --- lib/CMT2300a/cmt_spi3.c | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/lib/CMT2300a/cmt_spi3.c b/lib/CMT2300a/cmt_spi3.c index 59aad36f..b0194761 100644 --- a/lib/CMT2300a/cmt_spi3.c +++ b/lib/CMT2300a/cmt_spi3.c @@ -1,7 +1,6 @@ #include "cmt_spi3.h" #include #include -#include // for esp_rom_gpio_connect_out_signal SemaphoreHandle_t paramLock = NULL; #define SPI_PARAM_LOCK() \ @@ -63,19 +62,16 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin }; ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg2, &spi_fifo)); - esp_rom_gpio_connect_out_signal(pin_sdio, spi_periph_signal[SPI_CMT].spid_out, true, false); delay(100); } -void cmt_spi3_write(const uint8_t addr, const uint8_t dat) +void cmt_spi3_write(const uint8_t addr, const uint8_t data) { - uint8_t tx_data; - tx_data = ~dat; spi_transaction_t t = { - .cmd = 1, - .addr = ~addr, + .cmd = 0, + .addr = addr, .length = 8, - .tx_buffer = &tx_data, + .tx_buffer = &data, .rx_buffer = NULL }; SPI_PARAM_LOCK(); @@ -86,35 +82,31 @@ void cmt_spi3_write(const uint8_t addr, const uint8_t dat) uint8_t cmt_spi3_read(const uint8_t addr) { - uint8_t rx_data; + uint8_t data; spi_transaction_t t = { - .cmd = 0, - .addr = ~addr, - .length = 8, + .cmd = 1, + .addr = addr, .rxlength = 8, .tx_buffer = NULL, - .rx_buffer = &rx_data + .rx_buffer = &data }; SPI_PARAM_LOCK(); ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); SPI_PARAM_UNLOCK(); delayMicroseconds(100); - return rx_data; + return data; } void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) { - uint8_t tx_data; - spi_transaction_t t = { .length = 8, - .tx_buffer = &tx_data, // reference to write data .rx_buffer = NULL }; SPI_PARAM_LOCK(); for (uint8_t i = 0; i < len; i++) { - tx_data = ~buf[i]; // negate buffer contents + t.tx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); delayMicroseconds(4); // > 4 us } @@ -123,20 +115,16 @@ void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) void cmt_spi3_read_fifo(uint8_t* buf, const uint16_t len) { - uint8_t rx_data; - spi_transaction_t t = { - .length = 8, .rxlength = 8, - .tx_buffer = NULL, - .rx_buffer = &rx_data + .tx_buffer = NULL }; SPI_PARAM_LOCK(); for (uint8_t i = 0; i < len; i++) { + t.rx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); delayMicroseconds(4); // > 4 us - buf[i] = rx_data; } SPI_PARAM_UNLOCK(); } From ec47e8978f5e941f712c8a28657af0495539f706 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:27:02 +0200 Subject: [PATCH 070/127] Fix cs_ena_posttrans calculation --- lib/CMT2300a/cmt_spi3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/CMT2300a/cmt_spi3.c b/lib/CMT2300a/cmt_spi3.c index b0194761..604706ab 100644 --- a/lib/CMT2300a/cmt_spi3.c +++ b/lib/CMT2300a/cmt_spi3.c @@ -52,7 +52,7 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .dummy_bits = 0, .mode = 0, // SPI mode 0 .cs_ena_pretrans = 2, - .cs_ena_posttrans = (uint8_t)(1 / (spi_speed * 10e6 * 2) + 2), // >2 us + .cs_ena_posttrans = (uint8_t)(2 * spi_speed / 1000000), // >2 us .clock_speed_hz = spi_speed, .spics_io_num = pin_fcs, .flags = SPI_DEVICE_HALFDUPLEX | SPI_DEVICE_3WIRE, From 992e174bb2ea74414954ecc32716c04e29285e32 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:22:58 +0200 Subject: [PATCH 071/127] Remove unnecessary delays --- lib/CMT2300a/cmt_spi3.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/CMT2300a/cmt_spi3.c b/lib/CMT2300a/cmt_spi3.c index 604706ab..80d31035 100644 --- a/lib/CMT2300a/cmt_spi3.c +++ b/lib/CMT2300a/cmt_spi3.c @@ -61,8 +61,6 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .post_cb = NULL, }; ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg2, &spi_fifo)); - - delay(100); } void cmt_spi3_write(const uint8_t addr, const uint8_t data) @@ -77,7 +75,6 @@ void cmt_spi3_write(const uint8_t addr, const uint8_t data) SPI_PARAM_LOCK(); ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); SPI_PARAM_UNLOCK(); - delayMicroseconds(100); } uint8_t cmt_spi3_read(const uint8_t addr) @@ -93,7 +90,6 @@ uint8_t cmt_spi3_read(const uint8_t addr) SPI_PARAM_LOCK(); ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); SPI_PARAM_UNLOCK(); - delayMicroseconds(100); return data; } @@ -108,7 +104,6 @@ void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) for (uint8_t i = 0; i < len; i++) { t.tx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); - delayMicroseconds(4); // > 4 us } SPI_PARAM_UNLOCK(); } @@ -124,7 +119,6 @@ void cmt_spi3_read_fifo(uint8_t* buf, const uint16_t len) for (uint8_t i = 0; i < len; i++) { t.rx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); - delayMicroseconds(4); // > 4 us } SPI_PARAM_UNLOCK(); } From 851190dbccc0bbbf5aa7fa6580b72712b9b48079 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Fri, 21 Jul 2023 16:57:00 +0200 Subject: [PATCH 072/127] Implement W5500 support --- include/NetworkSettings.h | 2 + include/PinMapping.h | 10 +++- include/W5500.h | 19 ++++++ platformio.ini | 30 ++++++++++ src/NetworkSettings.cpp | 16 +++-- src/PinMapping.cpp | 48 +++++++++++++++ src/W5500.cpp | 119 ++++++++++++++++++++++++++++++++++++++ src/WebApi_device.cpp | 8 +++ 8 files changed, 246 insertions(+), 6 deletions(-) create mode 100644 include/W5500.h create mode 100644 src/W5500.cpp diff --git a/include/NetworkSettings.h b/include/NetworkSettings.h index 433867e9..51ec1075 100644 --- a/include/NetworkSettings.h +++ b/include/NetworkSettings.h @@ -5,6 +5,7 @@ #include #include #include +#include "W5500.h" enum class network_mode { WiFi, @@ -83,6 +84,7 @@ private: bool _ethConnected = false; std::vector _cbEventList; bool _lastMdnsEnabled = false; + std::unique_ptr _w5500; }; extern NetworkSettingsClass NetworkSettings; diff --git a/include/PinMapping.h b/include/PinMapping.h index e0db88b6..de94654c 100644 --- a/include/PinMapping.h +++ b/include/PinMapping.h @@ -26,6 +26,13 @@ struct PinMapping_t { int8_t cmt_gpio3; int8_t cmt_sdio; + int8_t w5500_mosi; + int8_t w5500_miso; + int8_t w5500_sclk; + int8_t w5500_cs; + int8_t w5500_int; + int8_t w5500_rst; + int8_t eth_phy_addr; bool eth_enabled; int eth_power; @@ -49,10 +56,11 @@ public: bool isValidNrf24Config() const; bool isValidCmt2300Config() const; + bool isValidW5500Config() const; bool isValidEthConfig() const; private: PinMapping_t _pinMapping; }; -extern PinMappingClass PinMapping; \ No newline at end of file +extern PinMappingClass PinMapping; diff --git a/include/W5500.h b/include/W5500.h new file mode 100644 index 00000000..f4ee9d2a --- /dev/null +++ b/include/W5500.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +#include + +class W5500 { +public: + explicit W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst); + W5500(const W5500&) = delete; + W5500 &operator=(const W5500&) = delete; + ~W5500(); + + String macAddress(); + +private: + esp_eth_handle_t eth_handle; + esp_netif_t *eth_netif; +}; diff --git a/platformio.ini b/platformio.ini index 99b67634..02919348 100644 --- a/platformio.ini +++ b/platformio.ini @@ -227,6 +227,7 @@ build_flags = ${env.build_flags} -DLED0=17 -DLED1=18 -DARDUINO_USB_MODE=1 + -DARDUINO_USB_CDC_ON_BOOT=1 [env:opendtufusionv2] board = esp32-s3-devkitc-1 @@ -250,3 +251,32 @@ build_flags = ${env.build_flags} -DCMT_SDIO=5 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 + +[env:opendtufusionv2_shield] +board = esp32-s3-devkitc-1 +upload_protocol = esp-builtin +debug_tool = esp-builtin +debug_speed = 12000 +build_flags = ${env.build_flags} + -DHOYMILES_PIN_MISO=48 + -DHOYMILES_PIN_MOSI=35 + -DHOYMILES_PIN_SCLK=36 + -DHOYMILES_PIN_IRQ=47 + -DHOYMILES_PIN_CE=38 + -DHOYMILES_PIN_CS=37 + -DLED0=17 + -DLED1=18 + -DCMT_CLK=6 + -DCMT_CS=4 + -DCMT_FCS=21 + -DCMT_GPIO2=3 + -DCMT_GPIO3=8 + -DCMT_SDIO=5 + -DW5500_MOSI=40 + -DW5500_MISO=41 + -DW5500_SCLK=39 + -DW5500_CS=42 + -DW5500_INT=44 + -DW5500_RST=43 + -DARDUINO_USB_MODE=1 + -DARDUINO_USB_CDC_ON_BOOT=1 diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index 31313feb..cab3c7e4 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -31,6 +31,15 @@ void NetworkSettingsClass::init(Scheduler& scheduler) WiFi.disconnect(true, true); WiFi.onEvent(std::bind(&NetworkSettingsClass::NetworkEvent, this, _1, _2)); + + if (PinMapping.isValidW5500Config()) { + PinMapping_t& pin = PinMapping.get(); + _w5500 = std::make_unique(pin.w5500_mosi, pin.w5500_miso, pin.w5500_sclk, pin.w5500_cs, pin.w5500_int, pin.w5500_rst); + } else if (PinMapping.isValidEthConfig()) { + PinMapping_t& pin = PinMapping.get(); + ETH.begin(pin.eth_phy_addr, pin.eth_power, pin.eth_mdc, pin.eth_mdio, pin.eth_type, pin.eth_clk_mode); + } + setupMode(); scheduler.addTask(_loopTask); @@ -169,11 +178,6 @@ void NetworkSettingsClass::setupMode() WiFi.mode(WIFI_MODE_NULL); } } - - if (PinMapping.isValidEthConfig()) { - PinMapping_t& pin = PinMapping.get(); - ETH.begin(pin.eth_phy_addr, pin.eth_power, pin.eth_mdc, pin.eth_mdio, pin.eth_type, pin.eth_clk_mode); - } } void NetworkSettingsClass::enableAdminMode() @@ -401,6 +405,8 @@ String NetworkSettingsClass::macAddress() const { switch (_networkMode) { case network_mode::Ethernet: + if (_w5500) + return _w5500->macAddress(); return ETH.macAddress(); break; case network_mode::WiFi: diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 74f28285..7514af5f 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -84,6 +84,30 @@ #define CMT_SDIO -1 #endif +#ifndef W5500_MOSI +#define W5500_MOSI -1 +#endif + +#ifndef W5500_MISO +#define W5500_MISO -1 +#endif + +#ifndef W5500_SCLK +#define W5500_SCLK -1 +#endif + +#ifndef W5500_CS +#define W5500_CS -1 +#endif + +#ifndef W5500_INT +#define W5500_INT -1 +#endif + +#ifndef W5500_RST +#define W5500_RST -1 +#endif + PinMappingClass PinMapping; PinMappingClass::PinMappingClass() @@ -103,6 +127,13 @@ PinMappingClass::PinMappingClass() _pinMapping.cmt_gpio3 = CMT_GPIO3; _pinMapping.cmt_sdio = CMT_SDIO; + _pinMapping.w5500_mosi = W5500_MOSI; + _pinMapping.w5500_miso = W5500_MISO; + _pinMapping.w5500_sclk = W5500_SCLK; + _pinMapping.w5500_cs = W5500_CS; + _pinMapping.w5500_int = W5500_INT; + _pinMapping.w5500_rst = W5500_RST; + #ifdef OPENDTU_ETHERNET _pinMapping.eth_enabled = true; #else @@ -164,6 +195,13 @@ bool PinMappingClass::init(const String& deviceMapping) _pinMapping.cmt_gpio3 = doc[i]["cmt"]["gpio3"] | CMT_GPIO3; _pinMapping.cmt_sdio = doc[i]["cmt"]["sdio"] | CMT_SDIO; + _pinMapping.w5500_mosi = doc[i]["w5500"]["mosi"] | W5500_MOSI; + _pinMapping.w5500_miso = doc[i]["w5500"]["miso"] | W5500_MISO; + _pinMapping.w5500_sclk = doc[i]["w5500"]["sclk"] | W5500_SCLK; + _pinMapping.w5500_cs = doc[i]["w5500"]["cs"] | W5500_CS; + _pinMapping.w5500_int = doc[i]["w5500"]["int"] | W5500_INT; + _pinMapping.w5500_rst = doc[i]["w5500"]["rst"] | W5500_RST; + #ifdef OPENDTU_ETHERNET _pinMapping.eth_enabled = doc[i]["eth"]["enabled"] | true; #else @@ -211,6 +249,16 @@ bool PinMappingClass::isValidCmt2300Config() const && _pinMapping.cmt_sdio >= 0; } +bool PinMappingClass::isValidW5500Config() const +{ + return _pinMapping.w5500_mosi >= 0 + && _pinMapping.w5500_miso >= 0 + && _pinMapping.w5500_sclk >= 0 + && _pinMapping.w5500_cs >= 0 + && _pinMapping.w5500_int >= 0 + && _pinMapping.w5500_rst >= 0; +} + bool PinMappingClass::isValidEthConfig() const { return _pinMapping.eth_enabled; diff --git a/src/W5500.cpp b/src/W5500.cpp new file mode 100644 index 00000000..3ce60b8d --- /dev/null +++ b/src/W5500.cpp @@ -0,0 +1,119 @@ +#include "W5500.h" + +#include + +// Internal Arduino functions from WiFiGeneric +void tcpipInit(); +void add_esp_interface_netif(esp_interface_t interface, esp_netif_t *esp_netif); + +W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst) : + eth_handle(nullptr), + eth_netif(nullptr) +{ + gpio_reset_pin(static_cast(pin_rst)); + gpio_set_level(static_cast(pin_rst), 0); + gpio_set_direction(static_cast(pin_rst), GPIO_MODE_OUTPUT); + + gpio_reset_pin(static_cast(pin_mosi)); + gpio_reset_pin(static_cast(pin_miso)); + gpio_reset_pin(static_cast(pin_sclk)); + gpio_reset_pin(static_cast(pin_cs)); + + gpio_reset_pin(static_cast(pin_int)); + + esp_err_t err = gpio_install_isr_service(ARDUINO_ISR_FLAG); + if (err != ESP_ERR_INVALID_STATE) // don't raise an error when ISR service is already installed + ESP_ERROR_CHECK(err); + + spi_bus_config_t bus_config { + .mosi_io_num = pin_mosi, + .miso_io_num = pin_miso, + .sclk_io_num = pin_sclk, + .quadwp_io_num = -1, + .quadhd_io_num = -1, + .data4_io_num = -1, + .data5_io_num = -1, + .data6_io_num = -1, + .data7_io_num = -1, + .max_transfer_sz = 0, // uses default value internally + .flags = 0, + .intr_flags = 0, + }; + + ESP_ERROR_CHECK(spi_bus_initialize(SPI3_HOST, &bus_config, SPI_DMA_CH_AUTO)); + + spi_device_interface_config_t device_config { + .command_bits = 16, // actually address phase + .address_bits = 8, // actually command phase + .dummy_bits = 0, + .mode = 0, + .duty_cycle_pos = 0, + .cs_ena_pretrans = 0, // only 0 supported + .cs_ena_posttrans = 0, // only 0 supported + .clock_speed_hz = 20000000, // stable with OpenDTU Fusion shield + .input_delay_ns = 0, + .spics_io_num = pin_cs, + .flags = 0, + .queue_size = 20, + .pre_cb = nullptr, + .post_cb = nullptr, + }; + + spi_device_handle_t spi; + ESP_ERROR_CHECK(spi_bus_add_device(SPI3_HOST, &device_config, &spi)); + + // Reset sequence + delayMicroseconds(500); + gpio_set_level(static_cast(pin_rst), 1); + delayMicroseconds(1000); + + // Arduino function to start networking stack if not already started + tcpipInit(); + + ESP_ERROR_CHECK(tcpip_adapter_set_default_eth_handlers()); + + eth_w5500_config_t w5500_config = ETH_W5500_DEFAULT_CONFIG(spi); + w5500_config.int_gpio_num = pin_int; + + eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); + mac_config.rx_task_stack_size = 4096; + esp_eth_mac_t *mac = esp_eth_mac_new_w5500(&w5500_config, &mac_config); + + eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); + phy_config.reset_gpio_num = -1; + esp_eth_phy_t *phy = esp_eth_phy_new_w5500(&phy_config); + + esp_eth_config_t eth_config = ETH_DEFAULT_CONFIG(mac, phy); + ESP_ERROR_CHECK(esp_eth_driver_install(ð_config, ð_handle)); + + // Configure MAC address + uint8_t mac_addr[6]; + ESP_ERROR_CHECK(esp_read_mac(mac_addr, ESP_MAC_ETH)); + ESP_ERROR_CHECK(esp_eth_ioctl(eth_handle, ETH_CMD_S_MAC_ADDR, mac_addr)); + + esp_netif_config_t netif_config = ESP_NETIF_DEFAULT_ETH(); + eth_netif = esp_netif_new(&netif_config); + + ESP_ERROR_CHECK(esp_netif_attach(eth_netif, esp_eth_new_netif_glue(eth_handle))); + + // Add to Arduino + add_esp_interface_netif(ESP_IF_ETH, eth_netif); + + ESP_ERROR_CHECK(esp_eth_start(eth_handle)); +} + +W5500::~W5500() { + // TODO(LennartF22): support cleanup at some point? +} + +String W5500::macAddress() { + uint8_t mac_addr[6] = {}; + esp_eth_ioctl(eth_handle, ETH_CMD_G_MAC_ADDR, mac_addr); + + char mac_addr_str[18]; + snprintf( + mac_addr_str, sizeof(mac_addr_str), "%02X:%02X:%02X:%02X:%02X:%02X", + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5] + ); + return String(mac_addr_str); +} diff --git a/src/WebApi_device.cpp b/src/WebApi_device.cpp index 42c175f7..b4878817 100644 --- a/src/WebApi_device.cpp +++ b/src/WebApi_device.cpp @@ -50,6 +50,14 @@ void WebApiDeviceClass::onDeviceAdminGet(AsyncWebServerRequest* request) cmtPinObj["gpio2"] = pin.cmt_gpio2; cmtPinObj["gpio3"] = pin.cmt_gpio3; + auto w5500PinObj = curPin["w5500"].to(); + w5500PinObj["sclk"] = pin.w5500_sclk; + w5500PinObj["mosi"] = pin.w5500_mosi; + w5500PinObj["miso"] = pin.w5500_miso; + w5500PinObj["cs"] = pin.w5500_cs; + w5500PinObj["int"] = pin.w5500_int; + w5500PinObj["rst"] = pin.w5500_rst; + auto ethPinObj = curPin["eth"].to(); ethPinObj["enabled"] = pin.eth_enabled; ethPinObj["phy_addr"] = pin.eth_phy_addr; From 9b9c1e29f15e44b85bc29ff79468bc171e47d522 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 17:57:01 +0200 Subject: [PATCH 073/127] Add SpiManager library --- lib/SpiManager/library.json | 13 ++++++ lib/SpiManager/src/SpiBus.cpp | 49 +++++++++++++++++++++ lib/SpiManager/src/SpiBus.h | 45 +++++++++++++++++++ lib/SpiManager/src/SpiBusConfig.cpp | 67 +++++++++++++++++++++++++++++ lib/SpiManager/src/SpiBusConfig.h | 20 +++++++++ lib/SpiManager/src/SpiCallback.cpp | 65 ++++++++++++++++++++++++++++ lib/SpiManager/src/SpiCallback.h | 15 +++++++ lib/SpiManager/src/SpiManager.cpp | 64 +++++++++++++++++++++++++++ lib/SpiManager/src/SpiManager.h | 33 ++++++++++++++ 9 files changed, 371 insertions(+) create mode 100644 lib/SpiManager/library.json create mode 100644 lib/SpiManager/src/SpiBus.cpp create mode 100644 lib/SpiManager/src/SpiBus.h create mode 100644 lib/SpiManager/src/SpiBusConfig.cpp create mode 100644 lib/SpiManager/src/SpiBusConfig.h create mode 100644 lib/SpiManager/src/SpiCallback.cpp create mode 100644 lib/SpiManager/src/SpiCallback.h create mode 100644 lib/SpiManager/src/SpiManager.cpp create mode 100644 lib/SpiManager/src/SpiManager.h diff --git a/lib/SpiManager/library.json b/lib/SpiManager/library.json new file mode 100644 index 00000000..22e5ddc9 --- /dev/null +++ b/lib/SpiManager/library.json @@ -0,0 +1,13 @@ +{ + "name": "SpiManager", + "keywords": "spi", + "description": "Library for managing the allocation of dedicated or shared SPI buses on the ESP32.", + "authors": { + "name": "Lennart Ferlemann" + }, + "version": "0.0.1", + "frameworks": "arduino", + "platforms": [ + "espressif32" + ] +} diff --git a/lib/SpiManager/src/SpiBus.cpp b/lib/SpiManager/src/SpiBus.cpp new file mode 100644 index 00000000..26b361cc --- /dev/null +++ b/lib/SpiManager/src/SpiBus.cpp @@ -0,0 +1,49 @@ +#include "SpiBus.h" + +#include "SpiBusConfig.h" +#include "SpiCallback.h" + +SpiBus::SpiBus(const std::string &_id, spi_host_device_t _host_device) : + id(_id), + host_device(_host_device), + cur_config(nullptr) +{ + spi_bus_config_t bus_config { + .mosi_io_num = -1, + .miso_io_num = -1, + .sclk_io_num = -1, + .quadwp_io_num = -1, + .quadhd_io_num = -1, + .data4_io_num = -1, + .data5_io_num = -1, + .data6_io_num = -1, + .data7_io_num = -1, + .max_transfer_sz = SPI_MAX_DMA_LEN, + .flags = 0, + .intr_flags = 0 + }; + ESP_ERROR_CHECK(spi_bus_initialize(host_device, &bus_config, SPI_DMA_CH_AUTO)); +} + +SpiBus::~SpiBus() { + ESP_ERROR_CHECK(spi_bus_free(host_device)); +} + +spi_device_handle_t SpiBus::add_device(const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { + if (!SpiCallback::patch(shared_from_this(), bus_config, device_config)) + return nullptr; + + spi_device_handle_t device; + ESP_ERROR_CHECK(spi_bus_add_device(host_device, &device_config, &device)); + return device; +} + +// TODO: add remove_device (with spi_device_acquire_bus) + +void SpiBus::apply_config(SpiBusConfig *config) { + if (cur_config) + cur_config->unpatch(host_device); + cur_config = config; + if (cur_config) + cur_config->patch(host_device); +} diff --git a/lib/SpiManager/src/SpiBus.h b/lib/SpiManager/src/SpiBus.h new file mode 100644 index 00000000..a5fde06c --- /dev/null +++ b/lib/SpiManager/src/SpiBus.h @@ -0,0 +1,45 @@ +#pragma once + +#include + +#include +#include + +class SpiBusConfig; + +class SpiBus : public std::enable_shared_from_this { +public: + explicit SpiBus(const std::string &id, spi_host_device_t host_device); + SpiBus(const SpiBus&) = delete; + SpiBus &operator=(const SpiBus&) = delete; + ~SpiBus(); + + inline __attribute__((always_inline)) void require_config(SpiBusConfig *config) { + if (config == cur_config) + return; + apply_config(config); + } + + inline __attribute__((always_inline)) void free_config(SpiBusConfig *config) { + if (config != cur_config) + return; + apply_config(nullptr); + } + + inline const std::string &get_id() const { + return id; + } + + inline spi_host_device_t get_host_device() const { + return host_device; + } + + spi_device_handle_t add_device(const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); + +private: + void apply_config(SpiBusConfig *config); + + std::string id; + spi_host_device_t host_device; + SpiBusConfig *cur_config; +}; diff --git a/lib/SpiManager/src/SpiBusConfig.cpp b/lib/SpiManager/src/SpiBusConfig.cpp new file mode 100644 index 00000000..c3cc0196 --- /dev/null +++ b/lib/SpiManager/src/SpiBusConfig.cpp @@ -0,0 +1,67 @@ +#include "SpiBusConfig.h" + +#include +#include +#include + +SpiBusConfig::SpiBusConfig(gpio_num_t _pin_mosi, gpio_num_t _pin_miso, gpio_num_t _pin_sclk) : + pin_mosi(_pin_mosi), + pin_miso(_pin_miso), + pin_sclk(_pin_sclk) +{ + if (pin_mosi != GPIO_NUM_NC) { + ESP_ERROR_CHECK(gpio_reset_pin(pin_mosi)); + ESP_ERROR_CHECK(gpio_set_direction(pin_mosi, GPIO_MODE_INPUT_OUTPUT)); + } + + if (pin_miso != GPIO_NUM_NC) { + ESP_ERROR_CHECK(gpio_reset_pin(pin_miso)); + ESP_ERROR_CHECK(gpio_set_direction(pin_miso, GPIO_MODE_INPUT)); + } + + if (pin_sclk != GPIO_NUM_NC) { + ESP_ERROR_CHECK(gpio_reset_pin(pin_sclk)); + ESP_ERROR_CHECK(gpio_set_direction(pin_sclk, GPIO_MODE_INPUT_OUTPUT)); + } +} + +SpiBusConfig::~SpiBusConfig() { + if (pin_mosi != GPIO_NUM_NC) + ESP_ERROR_CHECK(gpio_reset_pin(pin_mosi)); + + if (pin_miso != GPIO_NUM_NC) + ESP_ERROR_CHECK(gpio_reset_pin(pin_miso)); + + if (pin_sclk != GPIO_NUM_NC) + ESP_ERROR_CHECK(gpio_reset_pin(pin_sclk)); +} + +void SpiBusConfig::patch(spi_host_device_t host_device) { + if (pin_mosi != GPIO_NUM_NC) { + esp_rom_gpio_connect_out_signal(pin_mosi, spi_periph_signal[host_device].spid_out, false, false); + esp_rom_gpio_connect_in_signal(pin_mosi, spi_periph_signal[host_device].spid_in, false); + } + + if (pin_miso != GPIO_NUM_NC) + esp_rom_gpio_connect_in_signal(pin_miso, spi_periph_signal[host_device].spiq_in, false); + + if (pin_sclk != GPIO_NUM_NC) { + esp_rom_gpio_connect_out_signal(pin_sclk, spi_periph_signal[host_device].spiclk_out, false, false); + esp_rom_gpio_connect_in_signal(pin_sclk, spi_periph_signal[host_device].spiclk_in, false); + } +} + +void SpiBusConfig::unpatch(spi_host_device_t host_device) { + if (pin_mosi != GPIO_NUM_NC) { + esp_rom_gpio_connect_out_signal(pin_mosi, SIG_GPIO_OUT_IDX, false, false); + esp_rom_gpio_connect_in_signal(GPIO_MATRIX_CONST_ONE_INPUT, spi_periph_signal[host_device].spid_in, false); + } + + if (pin_miso != GPIO_NUM_NC) + esp_rom_gpio_connect_in_signal(GPIO_MATRIX_CONST_ONE_INPUT, spi_periph_signal[host_device].spiq_in, false); + + if (pin_sclk != GPIO_NUM_NC) { + esp_rom_gpio_connect_out_signal(pin_sclk, SIG_GPIO_OUT_IDX, false, false); + esp_rom_gpio_connect_in_signal(GPIO_MATRIX_CONST_ONE_INPUT, spi_periph_signal[host_device].spiclk_in, false); + } +} diff --git a/lib/SpiManager/src/SpiBusConfig.h b/lib/SpiManager/src/SpiBusConfig.h new file mode 100644 index 00000000..e4549ef1 --- /dev/null +++ b/lib/SpiManager/src/SpiBusConfig.h @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +class SpiBusConfig { +public: + explicit SpiBusConfig(gpio_num_t pin_mosi, gpio_num_t pin_miso, gpio_num_t pin_sclk); + SpiBusConfig(const SpiBusConfig&) = delete; + SpiBusConfig &operator=(const SpiBusConfig&) = delete; + ~SpiBusConfig(); + + void patch(spi_host_device_t host_device); + void unpatch(spi_host_device_t host_device); + +private: + gpio_num_t pin_mosi; + gpio_num_t pin_miso; + gpio_num_t pin_sclk; +}; diff --git a/lib/SpiManager/src/SpiCallback.cpp b/lib/SpiManager/src/SpiCallback.cpp new file mode 100644 index 00000000..e281db98 --- /dev/null +++ b/lib/SpiManager/src/SpiCallback.cpp @@ -0,0 +1,65 @@ +#include "SpiCallback.h" + +#include "SpiBus.h" + +#include +#include + +namespace SpiCallback { + namespace { + struct CallbackData { + std::shared_ptr bus; + std::shared_ptr config; + transaction_cb_t inner_pre_cb; + transaction_cb_t inner_post_cb; + }; + + std::array, SPI_MANAGER_CALLBACK_COUNT> instances; + + template + void IRAM_ATTR fn_pre_cb(spi_transaction_t *trans) { + instances[N]->bus->require_config(instances[N]->config.get()); + if (instances[N]->inner_pre_cb) + instances[N]->inner_pre_cb(trans); + } + + template + void IRAM_ATTR fn_post_cb(spi_transaction_t *trans) { + if (instances[N]->inner_post_cb) + instances[N]->inner_post_cb(trans); + } + + template + inline __attribute__((always_inline)) bool alloc(CallbackData *&instance, transaction_cb_t &pre_cb, transaction_cb_t &post_cb) { + if constexpr (N > 0) { + if (alloc(instance, pre_cb, post_cb)) + return true; + if (!instances[N - 1]) { + instances[N - 1].emplace(); + instance = &*instances[N - 1]; + pre_cb = fn_pre_cb; + post_cb = fn_post_cb; + return true; + } + } + return false; + } + } + + bool patch(const std::shared_ptr &bus, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { + CallbackData *instance; + transaction_cb_t pre_cb; + transaction_cb_t post_cb; + if (!alloc(instance, pre_cb, post_cb)) + return false; + + instance->bus = bus; + instance->config = bus_config; + instance->inner_pre_cb = device_config.pre_cb; + instance->inner_post_cb = device_config.post_cb; + device_config.pre_cb = pre_cb; + device_config.post_cb = post_cb; + + return true; + } +} diff --git a/lib/SpiManager/src/SpiCallback.h b/lib/SpiManager/src/SpiCallback.h new file mode 100644 index 00000000..f8d52d0d --- /dev/null +++ b/lib/SpiManager/src/SpiCallback.h @@ -0,0 +1,15 @@ +#pragma once + +#include + +#include + +// Pre and post callbacks for 2 buses with 3 devices each +#define SPI_MANAGER_CALLBACK_COUNT 6 + +class SpiBus; +class SpiBusConfig; + +namespace SpiCallback { + bool patch(const std::shared_ptr &bus, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); +} diff --git a/lib/SpiManager/src/SpiManager.cpp b/lib/SpiManager/src/SpiManager.cpp new file mode 100644 index 00000000..f4dc967a --- /dev/null +++ b/lib/SpiManager/src/SpiManager.cpp @@ -0,0 +1,64 @@ +#include "SpiManager.h" + +SpiManager::SpiManager() { +} + +bool SpiManager::register_bus(spi_host_device_t host_device) { + for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { + if (available_buses[i]) + continue; + + available_buses[i] = host_device; + return true; + } + + return false; +} + +bool SpiManager::claim_bus(spi_host_device_t &host_device) { + for (int i = SPI_MANAGER_NUM_BUSES - 1; i >= 0; --i) { + if (!available_buses[i]) + continue; + + host_device = *available_buses[i]; + available_buses[i].reset(); + return true; + } + + return false; +} + +spi_device_handle_t SpiManager::alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { + std::shared_ptr shared_bus = get_shared_bus(bus_id); + if (!shared_bus) + return nullptr; + + return shared_bus->add_device(bus_config, device_config); +} + +std::shared_ptr SpiManager::get_shared_bus(const std::string &bus_id) { + // look for existing shared bus + for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { + if (!shared_buses[i]) + continue; + if (shared_buses[i]->get_id() == bus_id) + return shared_buses[i]; + } + + // create new shared bus + for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { + if (shared_buses[i]) + continue; + + spi_host_device_t host_device; + if (!claim_bus(host_device)) + return nullptr; + + shared_buses[i] = std::make_shared(bus_id, host_device); + return shared_buses[i]; + } + + return nullptr; +} + +SpiManager SpiManagerInst; diff --git a/lib/SpiManager/src/SpiManager.h b/lib/SpiManager/src/SpiManager.h new file mode 100644 index 00000000..92923d5b --- /dev/null +++ b/lib/SpiManager/src/SpiManager.h @@ -0,0 +1,33 @@ +#pragma once + +#include "SpiBus.h" +#include "SpiBusConfig.h" + +#include + +#include +#include +#include +#include + +#define SPI_MANAGER_NUM_BUSES SOC_SPI_PERIPH_NUM + +class SpiManager { +public: + explicit SpiManager(); + SpiManager(const SpiManager&) = delete; + SpiManager &operator=(const SpiManager&) = delete; + + bool register_bus(spi_host_device_t host_device); + bool claim_bus(spi_host_device_t &host_device); + + spi_device_handle_t alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); + +private: + std::shared_ptr get_shared_bus(const std::string &bus_id); + + std::array, SPI_MANAGER_NUM_BUSES> available_buses; + std::array, SPI_MANAGER_NUM_BUSES> shared_buses; +}; + +extern SpiManager SpiManagerInst; From 4364daf54c1e57f639f78dc32d4e100b94db487e Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:46:29 +0200 Subject: [PATCH 074/127] Optimize CMT FIFO access --- lib/CMT2300a/cmt_spi3.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/CMT2300a/cmt_spi3.c b/lib/CMT2300a/cmt_spi3.c index 80d31035..aeae3d46 100644 --- a/lib/CMT2300a/cmt_spi3.c +++ b/lib/CMT2300a/cmt_spi3.c @@ -101,10 +101,12 @@ void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) }; SPI_PARAM_LOCK(); + spi_device_acquire_bus(spi_fifo, portMAX_DELAY); for (uint8_t i = 0; i < len; i++) { t.tx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); } + spi_device_release_bus(spi_fifo); SPI_PARAM_UNLOCK(); } @@ -116,9 +118,11 @@ void cmt_spi3_read_fifo(uint8_t* buf, const uint16_t len) }; SPI_PARAM_LOCK(); + spi_device_acquire_bus(spi_fifo, portMAX_DELAY); for (uint8_t i = 0; i < len; i++) { t.rx_buffer = buf + i; ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); } + spi_device_release_bus(spi_fifo); SPI_PARAM_UNLOCK(); } From 1a583e765d7a4a78f1df5187e80ef30f884063e6 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:42:52 +0200 Subject: [PATCH 075/127] Change cmt_spi3 implementation from C to C++ --- lib/CMT2300a/{cmt_spi3.c => cmt_spi3.cpp} | 54 +++++++++++++++++------ lib/CMT2300a/cmt_spi3.h | 10 ++++- 2 files changed, 50 insertions(+), 14 deletions(-) rename lib/CMT2300a/{cmt_spi3.c => cmt_spi3.cpp} (74%) diff --git a/lib/CMT2300a/cmt_spi3.c b/lib/CMT2300a/cmt_spi3.cpp similarity index 74% rename from lib/CMT2300a/cmt_spi3.c rename to lib/CMT2300a/cmt_spi3.cpp index aeae3d46..aaf00fc9 100644 --- a/lib/CMT2300a/cmt_spi3.c +++ b/lib/CMT2300a/cmt_spi3.cpp @@ -15,7 +15,7 @@ SemaphoreHandle_t paramLock = NULL; spi_device_handle_t spi_reg, spi_fifo; -void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const uint32_t spi_speed) +void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const int32_t spi_speed) { paramLock = xSemaphoreCreateMutex(); @@ -25,24 +25,32 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .sclk_io_num = pin_clk, .quadwp_io_num = -1, .quadhd_io_num = -1, + .data4_io_num = -1, + .data5_io_num = -1, + .data6_io_num = -1, + .data7_io_num = -1, .max_transfer_sz = 32, + .flags = 0, + .intr_flags = 0, }; + ESP_ERROR_CHECK(spi_bus_initialize(SPI_CMT, &buscfg, SPI_DMA_DISABLED)); + spi_device_interface_config_t devcfg = { .command_bits = 1, .address_bits = 7, .dummy_bits = 0, .mode = 0, // SPI mode 0 + .duty_cycle_pos = 0, .cs_ena_pretrans = 1, .cs_ena_posttrans = 1, .clock_speed_hz = spi_speed, + .input_delay_ns = 0, .spics_io_num = pin_cs, .flags = SPI_DEVICE_HALFDUPLEX | SPI_DEVICE_3WIRE, .queue_size = 1, - .pre_cb = NULL, - .post_cb = NULL, + .pre_cb = nullptr, + .post_cb = nullptr, }; - - ESP_ERROR_CHECK(spi_bus_initialize(SPI_CMT, &buscfg, SPI_DMA_DISABLED)); ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg, &spi_reg)); // FiFo @@ -51,14 +59,16 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .address_bits = 0, .dummy_bits = 0, .mode = 0, // SPI mode 0 + .duty_cycle_pos = 0, .cs_ena_pretrans = 2, - .cs_ena_posttrans = (uint8_t)(2 * spi_speed / 1000000), // >2 us + .cs_ena_posttrans = static_cast(2 * spi_speed / 1000000), // >2 us .clock_speed_hz = spi_speed, + .input_delay_ns = 0, .spics_io_num = pin_fcs, .flags = SPI_DEVICE_HALFDUPLEX | SPI_DEVICE_3WIRE, .queue_size = 1, - .pre_cb = NULL, - .post_cb = NULL, + .pre_cb = nullptr, + .post_cb = nullptr, }; ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg2, &spi_fifo)); } @@ -66,11 +76,14 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin void cmt_spi3_write(const uint8_t addr, const uint8_t data) { spi_transaction_t t = { + .flags = 0, .cmd = 0, .addr = addr, .length = 8, + .rxlength = 0, + .user = nullptr, .tx_buffer = &data, - .rx_buffer = NULL + .rx_buffer = nullptr, }; SPI_PARAM_LOCK(); ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); @@ -81,11 +94,14 @@ uint8_t cmt_spi3_read(const uint8_t addr) { uint8_t data; spi_transaction_t t = { + .flags = 0, .cmd = 1, .addr = addr, + .length = 0, .rxlength = 8, - .tx_buffer = NULL, - .rx_buffer = &data + .user = nullptr, + .tx_buffer = nullptr, + .rx_buffer = &data, }; SPI_PARAM_LOCK(); ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); @@ -96,8 +112,14 @@ uint8_t cmt_spi3_read(const uint8_t addr) void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) { spi_transaction_t t = { + .flags = 0, + .cmd = 0, + .addr = 0, .length = 8, - .rx_buffer = NULL + .rxlength = 0, + .user = nullptr, + .tx_buffer = nullptr, + .rx_buffer = nullptr, }; SPI_PARAM_LOCK(); @@ -113,8 +135,14 @@ void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) void cmt_spi3_read_fifo(uint8_t* buf, const uint16_t len) { spi_transaction_t t = { + .flags = 0, + .cmd = 0, + .addr = 0, + .length = 0, .rxlength = 8, - .tx_buffer = NULL + .user = nullptr, + .tx_buffer = nullptr, + .rx_buffer = nullptr, }; SPI_PARAM_LOCK(); diff --git a/lib/CMT2300a/cmt_spi3.h b/lib/CMT2300a/cmt_spi3.h index 6d3a67b6..16655dba 100644 --- a/lib/CMT2300a/cmt_spi3.h +++ b/lib/CMT2300a/cmt_spi3.h @@ -3,7 +3,11 @@ #include -void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const uint32_t spi_speed); +#ifdef __cplusplus +extern "C" { +#endif + +void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const int32_t spi_speed); void cmt_spi3_write(const uint8_t addr, const uint8_t dat); uint8_t cmt_spi3_read(const uint8_t addr); @@ -11,4 +15,8 @@ uint8_t cmt_spi3_read(const uint8_t addr); void cmt_spi3_write_fifo(const uint8_t* p_buf, const uint16_t len); void cmt_spi3_read_fifo(uint8_t* p_buf, const uint16_t len); +#ifdef __cplusplus +} +#endif + #endif From ece452068754f72dbb857ef69cb4309439dccbcc Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:19:06 +0200 Subject: [PATCH 076/127] Add Arduino SPI translation --- lib/SpiManager/src/SpiManager.cpp | 42 +++++++++++++++++++++++++++++++ lib/SpiManager/src/SpiManager.h | 7 ++++++ 2 files changed, 49 insertions(+) diff --git a/lib/SpiManager/src/SpiManager.cpp b/lib/SpiManager/src/SpiManager.cpp index f4dc967a..efbd5e0a 100644 --- a/lib/SpiManager/src/SpiManager.cpp +++ b/lib/SpiManager/src/SpiManager.cpp @@ -1,8 +1,39 @@ #include "SpiManager.h" +#ifdef ARDUINO +#include +#endif + SpiManager::SpiManager() { } +#ifdef ARDUINO + +std::optional SpiManager::to_arduino(spi_host_device_t host_device) { + switch (host_device) { +#if CONFIG_IDF_TARGET_ESP32 + case SPI1_HOST: + return FSPI; + case SPI2_HOST: + return HSPI; + case SPI3_HOST: + return VSPI; +#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 + case SPI2_HOST: + return FSPI; + case SPI3_HOST: + return HSPI; +#elif CONFIG_IDF_TARGET_ESP32C3 + case SPI2_HOST: + return FSPI; +#endif + default: + return std::nullopt; + } +} + +#endif + bool SpiManager::register_bus(spi_host_device_t host_device) { for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { if (available_buses[i]) @@ -28,6 +59,17 @@ bool SpiManager::claim_bus(spi_host_device_t &host_device) { return false; } +#ifdef ARDUINO + +std::optional SpiManager::claim_bus_arduino() { + spi_host_device_t host_device; + if (!claim_bus(host_device)) + return std::nullopt; + return to_arduino(host_device); +} + +#endif + spi_device_handle_t SpiManager::alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { std::shared_ptr shared_bus = get_shared_bus(bus_id); if (!shared_bus) diff --git a/lib/SpiManager/src/SpiManager.h b/lib/SpiManager/src/SpiManager.h index 92923d5b..ee3b56a5 100644 --- a/lib/SpiManager/src/SpiManager.h +++ b/lib/SpiManager/src/SpiManager.h @@ -18,8 +18,15 @@ public: SpiManager(const SpiManager&) = delete; SpiManager &operator=(const SpiManager&) = delete; +#ifdef ARDUINO + static std::optional to_arduino(spi_host_device_t host_device); +#endif + bool register_bus(spi_host_device_t host_device); bool claim_bus(spi_host_device_t &host_device); +#ifdef ARDUINO + std::optional claim_bus_arduino(); +#endif spi_device_handle_t alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); From 5457db269cf17238c37e4882b69fb1dbc1d41f68 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 21:45:50 +0200 Subject: [PATCH 077/127] Use SpiManager for nRF, CMT and W5500 --- lib/CMT2300a/cmt_spi3.cpp | 16 ++++++++-------- src/InverterSettings.cpp | 20 +++++--------------- src/W5500.cpp | 10 ++++++++-- src/main.cpp | 9 +++++++++ 4 files changed, 30 insertions(+), 25 deletions(-) diff --git a/lib/CMT2300a/cmt_spi3.cpp b/lib/CMT2300a/cmt_spi3.cpp index aaf00fc9..181bbb56 100644 --- a/lib/CMT2300a/cmt_spi3.cpp +++ b/lib/CMT2300a/cmt_spi3.cpp @@ -1,6 +1,7 @@ #include "cmt_spi3.h" #include #include +#include SemaphoreHandle_t paramLock = NULL; #define SPI_PARAM_LOCK() \ @@ -8,17 +9,16 @@ SemaphoreHandle_t paramLock = NULL; } while (xSemaphoreTake(paramLock, portMAX_DELAY) != pdPASS) #define SPI_PARAM_UNLOCK() xSemaphoreGive(paramLock) -// for ESP32 this is the so-called HSPI -// for ESP32-S2/S3/C3 this nomenclature does not really exist anymore, -// it is simply the first externally usable hardware SPI master controller -#define SPI_CMT SPI2_HOST - spi_device_handle_t spi_reg, spi_fifo; void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const int32_t spi_speed) { paramLock = xSemaphoreCreateMutex(); + spi_host_device_t host_device; + if (!SpiManagerInst.claim_bus(host_device)) + ESP_ERROR_CHECK(ESP_FAIL); + spi_bus_config_t buscfg = { .mosi_io_num = pin_sdio, .miso_io_num = -1, // single wire MOSI/MISO @@ -33,7 +33,7 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .flags = 0, .intr_flags = 0, }; - ESP_ERROR_CHECK(spi_bus_initialize(SPI_CMT, &buscfg, SPI_DMA_DISABLED)); + ESP_ERROR_CHECK(spi_bus_initialize(host_device, &buscfg, SPI_DMA_DISABLED)); spi_device_interface_config_t devcfg = { .command_bits = 1, @@ -51,7 +51,7 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .pre_cb = nullptr, .post_cb = nullptr, }; - ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg, &spi_reg)); + ESP_ERROR_CHECK(spi_bus_add_device(host_device, &devcfg, &spi_reg)); // FiFo spi_device_interface_config_t devcfg2 = { @@ -70,7 +70,7 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .pre_cb = nullptr, .post_cb = nullptr, }; - ESP_ERROR_CHECK(spi_bus_add_device(SPI_CMT, &devcfg2, &spi_fifo)); + ESP_ERROR_CHECK(spi_bus_add_device(host_device, &devcfg2, &spi_fifo)); } void cmt_spi3_write(const uint8_t addr, const uint8_t data) diff --git a/src/InverterSettings.cpp b/src/InverterSettings.cpp index 0e903187..7e7a5f86 100644 --- a/src/InverterSettings.cpp +++ b/src/InverterSettings.cpp @@ -8,20 +8,7 @@ #include "PinMapping.h" #include "SunPosition.h" #include - -// the NRF shall use the second externally usable HW SPI controller -// for ESP32 that is the so-called VSPI, for ESP32-S2/S3 it is now called implicitly -// HSPI, as it has shifted places for these chip generations -// for all generations, this is equivalent to SPI3_HOST in the lower level driver -// For ESP32-C2, the only externally usable HW SPI controller is SPI2, its signal names -// being prefixed with FSPI. -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 -#define SPI_NRF HSPI -#elif CONFIG_IDF_TARGET_ESP32C3 -#define SPI_NRF FSPI -#else -#define SPI_NRF VSPI -#endif +#include InverterSettingsClass InverterSettings; @@ -44,7 +31,10 @@ void InverterSettingsClass::init(Scheduler& scheduler) if (PinMapping.isValidNrf24Config() || PinMapping.isValidCmt2300Config()) { if (PinMapping.isValidNrf24Config()) { - SPIClass* spiClass = new SPIClass(SPI_NRF); + auto spi_bus = SpiManagerInst.claim_bus_arduino(); + ESP_ERROR_CHECK(spi_bus ? ESP_OK : ESP_FAIL); + + SPIClass* spiClass = new SPIClass(*spi_bus); spiClass->begin(pin.nrf24_clk, pin.nrf24_miso, pin.nrf24_mosi, pin.nrf24_cs); Hoymiles.initNRF(spiClass, pin.nrf24_en, pin.nrf24_irq); } diff --git a/src/W5500.cpp b/src/W5500.cpp index 3ce60b8d..93a9a316 100644 --- a/src/W5500.cpp +++ b/src/W5500.cpp @@ -1,5 +1,7 @@ #include "W5500.h" +#include + #include // Internal Arduino functions from WiFiGeneric @@ -10,6 +12,10 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i eth_handle(nullptr), eth_netif(nullptr) { + spi_host_device_t host_device; + if (!SpiManagerInst.claim_bus(host_device)) + ESP_ERROR_CHECK(ESP_FAIL); + gpio_reset_pin(static_cast(pin_rst)); gpio_set_level(static_cast(pin_rst), 0); gpio_set_direction(static_cast(pin_rst), GPIO_MODE_OUTPUT); @@ -40,7 +46,7 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i .intr_flags = 0, }; - ESP_ERROR_CHECK(spi_bus_initialize(SPI3_HOST, &bus_config, SPI_DMA_CH_AUTO)); + ESP_ERROR_CHECK(spi_bus_initialize(host_device, &bus_config, SPI_DMA_CH_AUTO)); spi_device_interface_config_t device_config { .command_bits = 16, // actually address phase @@ -60,7 +66,7 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i }; spi_device_handle_t spi; - ESP_ERROR_CHECK(spi_bus_add_device(SPI3_HOST, &device_config, &spi)); + ESP_ERROR_CHECK(spi_bus_add_device(host_device, &device_config, &spi)); // Reset sequence delayMicroseconds(500); diff --git a/src/main.cpp b/src/main.cpp index 00ab3f3a..0377c8b3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,12 +26,21 @@ #include #include #include +#include + +#include void setup() { // Move all dynamic allocations >512byte to psram (if available) heap_caps_malloc_extmem_enable(512); + // Initialize SpiManager + SpiManagerInst.register_bus(SPI2_HOST); +#if SOC_SPI_PERIPH_NUM > 2 + SpiManagerInst.register_bus(SPI3_HOST); +#endif + // Initialize serial output Serial.begin(SERIAL_BAUDRATE); #if ARDUINO_USB_CDC_ON_BOOT From 36da830f96e49b3b7e2a2843e43c4e2116248ef8 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 22:06:10 +0200 Subject: [PATCH 078/127] Use shared SPI bus for CMT and W5500 --- lib/CMT2300a/cmt_spi3.cpp | 34 +++++++++++++--------------------- src/W5500.cpp | 34 ++++++++-------------------------- 2 files changed, 21 insertions(+), 47 deletions(-) diff --git a/lib/CMT2300a/cmt_spi3.cpp b/lib/CMT2300a/cmt_spi3.cpp index 181bbb56..f6f912fb 100644 --- a/lib/CMT2300a/cmt_spi3.cpp +++ b/lib/CMT2300a/cmt_spi3.cpp @@ -15,25 +15,11 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin { paramLock = xSemaphoreCreateMutex(); - spi_host_device_t host_device; - if (!SpiManagerInst.claim_bus(host_device)) - ESP_ERROR_CHECK(ESP_FAIL); - - spi_bus_config_t buscfg = { - .mosi_io_num = pin_sdio, - .miso_io_num = -1, // single wire MOSI/MISO - .sclk_io_num = pin_clk, - .quadwp_io_num = -1, - .quadhd_io_num = -1, - .data4_io_num = -1, - .data5_io_num = -1, - .data6_io_num = -1, - .data7_io_num = -1, - .max_transfer_sz = 32, - .flags = 0, - .intr_flags = 0, - }; - ESP_ERROR_CHECK(spi_bus_initialize(host_device, &buscfg, SPI_DMA_DISABLED)); + auto bus_config = std::make_shared( + static_cast(pin_sdio), + GPIO_NUM_NC, + static_cast(pin_clk) + ); spi_device_interface_config_t devcfg = { .command_bits = 1, @@ -51,7 +37,10 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .pre_cb = nullptr, .post_cb = nullptr, }; - ESP_ERROR_CHECK(spi_bus_add_device(host_device, &devcfg, &spi_reg)); + + spi_reg = SpiManagerInst.alloc_device("", bus_config, devcfg); + if (!spi_reg) + ESP_ERROR_CHECK(ESP_FAIL); // FiFo spi_device_interface_config_t devcfg2 = { @@ -70,7 +59,10 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin .pre_cb = nullptr, .post_cb = nullptr, }; - ESP_ERROR_CHECK(spi_bus_add_device(host_device, &devcfg2, &spi_fifo)); + + spi_fifo = SpiManagerInst.alloc_device("", bus_config, devcfg2); + if (!spi_fifo) + ESP_ERROR_CHECK(ESP_ERR_NOT_SUPPORTED); } void cmt_spi3_write(const uint8_t addr, const uint8_t data) diff --git a/src/W5500.cpp b/src/W5500.cpp index 93a9a316..3f274204 100644 --- a/src/W5500.cpp +++ b/src/W5500.cpp @@ -12,41 +12,22 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i eth_handle(nullptr), eth_netif(nullptr) { - spi_host_device_t host_device; - if (!SpiManagerInst.claim_bus(host_device)) - ESP_ERROR_CHECK(ESP_FAIL); - gpio_reset_pin(static_cast(pin_rst)); gpio_set_level(static_cast(pin_rst), 0); gpio_set_direction(static_cast(pin_rst), GPIO_MODE_OUTPUT); - gpio_reset_pin(static_cast(pin_mosi)); - gpio_reset_pin(static_cast(pin_miso)); - gpio_reset_pin(static_cast(pin_sclk)); gpio_reset_pin(static_cast(pin_cs)); - gpio_reset_pin(static_cast(pin_int)); esp_err_t err = gpio_install_isr_service(ARDUINO_ISR_FLAG); if (err != ESP_ERR_INVALID_STATE) // don't raise an error when ISR service is already installed ESP_ERROR_CHECK(err); - spi_bus_config_t bus_config { - .mosi_io_num = pin_mosi, - .miso_io_num = pin_miso, - .sclk_io_num = pin_sclk, - .quadwp_io_num = -1, - .quadhd_io_num = -1, - .data4_io_num = -1, - .data5_io_num = -1, - .data6_io_num = -1, - .data7_io_num = -1, - .max_transfer_sz = 0, // uses default value internally - .flags = 0, - .intr_flags = 0, - }; - - ESP_ERROR_CHECK(spi_bus_initialize(host_device, &bus_config, SPI_DMA_CH_AUTO)); + auto bus_config = std::make_shared( + static_cast(pin_mosi), + static_cast(pin_miso), + static_cast(pin_sclk) + ); spi_device_interface_config_t device_config { .command_bits = 16, // actually address phase @@ -65,8 +46,9 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i .post_cb = nullptr, }; - spi_device_handle_t spi; - ESP_ERROR_CHECK(spi_bus_add_device(host_device, &device_config, &spi)); + spi_device_handle_t spi = SpiManagerInst.alloc_device("", bus_config, device_config); + if (!spi) + ESP_ERROR_CHECK(ESP_FAIL); // Reset sequence delayMicroseconds(500); From 31cf756a7ecbeed133218ea56263ac9a0a302fae Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 21 Sep 2024 23:00:31 +0200 Subject: [PATCH 079/127] Only use a single SPI device for CMT --- lib/CMT2300a/cmt_spi3.cpp | 137 ++++++++++++++++++++------------------ 1 file changed, 72 insertions(+), 65 deletions(-) diff --git a/lib/CMT2300a/cmt_spi3.cpp b/lib/CMT2300a/cmt_spi3.cpp index f6f912fb..28fdc8ae 100644 --- a/lib/CMT2300a/cmt_spi3.cpp +++ b/lib/CMT2300a/cmt_spi3.cpp @@ -9,7 +9,16 @@ SemaphoreHandle_t paramLock = NULL; } while (xSemaphoreTake(paramLock, portMAX_DELAY) != pdPASS) #define SPI_PARAM_UNLOCK() xSemaphoreGive(paramLock) -spi_device_handle_t spi_reg, spi_fifo; +static void IRAM_ATTR pre_cb(spi_transaction_t *trans) { + gpio_set_level(*reinterpret_cast(trans->user), 0); +} + +static void IRAM_ATTR post_cb(spi_transaction_t *trans) { + gpio_set_level(*reinterpret_cast(trans->user), 1); +} + +spi_device_handle_t spi; +gpio_num_t cs_reg, cs_fifo; void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin_cs, const int8_t pin_fcs, const int32_t spi_speed) { @@ -21,128 +30,126 @@ void cmt_spi3_init(const int8_t pin_sdio, const int8_t pin_clk, const int8_t pin static_cast(pin_clk) ); - spi_device_interface_config_t devcfg = { - .command_bits = 1, - .address_bits = 7, + spi_device_interface_config_t device_config { + .command_bits = 0, // set by transactions individually + .address_bits = 0, // set by transactions individually .dummy_bits = 0, .mode = 0, // SPI mode 0 .duty_cycle_pos = 0, - .cs_ena_pretrans = 1, - .cs_ena_posttrans = 1, - .clock_speed_hz = spi_speed, - .input_delay_ns = 0, - .spics_io_num = pin_cs, - .flags = SPI_DEVICE_HALFDUPLEX | SPI_DEVICE_3WIRE, - .queue_size = 1, - .pre_cb = nullptr, - .post_cb = nullptr, - }; - - spi_reg = SpiManagerInst.alloc_device("", bus_config, devcfg); - if (!spi_reg) - ESP_ERROR_CHECK(ESP_FAIL); - - // FiFo - spi_device_interface_config_t devcfg2 = { - .command_bits = 0, - .address_bits = 0, - .dummy_bits = 0, - .mode = 0, // SPI mode 0 - .duty_cycle_pos = 0, - .cs_ena_pretrans = 2, + .cs_ena_pretrans = 2, // only 1 pre and post cycle would be required for register access .cs_ena_posttrans = static_cast(2 * spi_speed / 1000000), // >2 us .clock_speed_hz = spi_speed, .input_delay_ns = 0, - .spics_io_num = pin_fcs, + .spics_io_num = -1, // CS handled by callbacks .flags = SPI_DEVICE_HALFDUPLEX | SPI_DEVICE_3WIRE, .queue_size = 1, - .pre_cb = nullptr, - .post_cb = nullptr, + .pre_cb = pre_cb, + .post_cb = post_cb, }; - spi_fifo = SpiManagerInst.alloc_device("", bus_config, devcfg2); - if (!spi_fifo) - ESP_ERROR_CHECK(ESP_ERR_NOT_SUPPORTED); + spi = SpiManagerInst.alloc_device("", bus_config, device_config); + if (!spi) + ESP_ERROR_CHECK(ESP_FAIL); + + cs_reg = static_cast(pin_cs); + ESP_ERROR_CHECK(gpio_reset_pin(cs_reg)); + ESP_ERROR_CHECK(gpio_set_level(cs_reg, 1)); + ESP_ERROR_CHECK(gpio_set_direction(cs_reg, GPIO_MODE_OUTPUT)); + + cs_fifo = static_cast(pin_fcs); + ESP_ERROR_CHECK(gpio_reset_pin(cs_fifo)); + ESP_ERROR_CHECK(gpio_set_level(cs_fifo, 1)); + ESP_ERROR_CHECK(gpio_set_direction(cs_fifo, GPIO_MODE_OUTPUT)); } void cmt_spi3_write(const uint8_t addr, const uint8_t data) { - spi_transaction_t t = { - .flags = 0, - .cmd = 0, - .addr = addr, - .length = 8, - .rxlength = 0, - .user = nullptr, - .tx_buffer = &data, - .rx_buffer = nullptr, + spi_transaction_ext_t trans { + .base { + .flags = SPI_TRANS_VARIABLE_CMD | SPI_TRANS_VARIABLE_ADDR, + .cmd = 0, + .addr = addr, + .length = 8, + .rxlength = 0, + .user = &cs_reg, // CS for register access + .tx_buffer = &data, + .rx_buffer = nullptr, + }, + .command_bits = 1, + .address_bits = 7, + .dummy_bits = 0, }; SPI_PARAM_LOCK(); - ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); + ESP_ERROR_CHECK(spi_device_polling_transmit(spi, reinterpret_cast(&trans))); SPI_PARAM_UNLOCK(); } uint8_t cmt_spi3_read(const uint8_t addr) { uint8_t data; - spi_transaction_t t = { - .flags = 0, - .cmd = 1, - .addr = addr, - .length = 0, - .rxlength = 8, - .user = nullptr, - .tx_buffer = nullptr, - .rx_buffer = &data, + spi_transaction_ext_t trans { + .base { + .flags = SPI_TRANS_VARIABLE_CMD | SPI_TRANS_VARIABLE_ADDR, + .cmd = 1, + .addr = addr, + .length = 0, + .rxlength = 8, + .user = &cs_reg, // CS for register access + .tx_buffer = nullptr, + .rx_buffer = &data, + }, + .command_bits = 1, + .address_bits = 7, + .dummy_bits = 0, }; SPI_PARAM_LOCK(); - ESP_ERROR_CHECK(spi_device_polling_transmit(spi_reg, &t)); + ESP_ERROR_CHECK(spi_device_polling_transmit(spi, reinterpret_cast(&trans))); SPI_PARAM_UNLOCK(); return data; } void cmt_spi3_write_fifo(const uint8_t* buf, const uint16_t len) { - spi_transaction_t t = { + spi_transaction_t trans { .flags = 0, .cmd = 0, .addr = 0, .length = 8, .rxlength = 0, - .user = nullptr, + .user = &cs_fifo, // CS for FIFO access .tx_buffer = nullptr, .rx_buffer = nullptr, }; SPI_PARAM_LOCK(); - spi_device_acquire_bus(spi_fifo, portMAX_DELAY); + spi_device_acquire_bus(spi, portMAX_DELAY); for (uint8_t i = 0; i < len; i++) { - t.tx_buffer = buf + i; - ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); + trans.tx_buffer = buf + i; + ESP_ERROR_CHECK(spi_device_polling_transmit(spi, &trans)); } - spi_device_release_bus(spi_fifo); + spi_device_release_bus(spi); SPI_PARAM_UNLOCK(); } void cmt_spi3_read_fifo(uint8_t* buf, const uint16_t len) { - spi_transaction_t t = { + spi_transaction_t trans { .flags = 0, .cmd = 0, .addr = 0, .length = 0, .rxlength = 8, - .user = nullptr, + .user = &cs_fifo, // CS for FIFO access .tx_buffer = nullptr, .rx_buffer = nullptr, }; SPI_PARAM_LOCK(); - spi_device_acquire_bus(spi_fifo, portMAX_DELAY); + spi_device_acquire_bus(spi, portMAX_DELAY); for (uint8_t i = 0; i < len; i++) { - t.rx_buffer = buf + i; - ESP_ERROR_CHECK(spi_device_polling_transmit(spi_fifo, &t)); + trans.rx_buffer = buf + i; + ESP_ERROR_CHECK(spi_device_polling_transmit(spi, &trans)); } - spi_device_release_bus(spi_fifo); + spi_device_release_bus(spi); SPI_PARAM_UNLOCK(); } From 9b565596d59e908a7fbb8eb2037c2b0bc293ac90 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 25 Sep 2024 20:18:36 +0200 Subject: [PATCH 080/127] Feature: Allow reset of radio statistics via WebApp --- include/WebApi_errors.h | 1 + include/WebApi_inverter.h | 1 + src/WebApi_inverter.cpp | 22 ++++++++++++++++++++++ webapp/src/locales/de.json | 4 +++- webapp/src/locales/en.json | 4 +++- webapp/src/locales/fr.json | 4 +++- webapp/src/views/HomeView.vue | 23 +++++++++++++++++++++++ 7 files changed, 56 insertions(+), 3 deletions(-) diff --git a/include/WebApi_errors.h b/include/WebApi_errors.h index 0da8d3d9..c4cdaf21 100644 --- a/include/WebApi_errors.h +++ b/include/WebApi_errors.h @@ -32,6 +32,7 @@ enum WebApiError { InverterChanged, InverterDeleted, InverterOrdered, + InverterStatsResetted, LimitBase = 5000, LimitSerialZero, diff --git a/include/WebApi_inverter.h b/include/WebApi_inverter.h index c316622e..6ba6c5e8 100644 --- a/include/WebApi_inverter.h +++ b/include/WebApi_inverter.h @@ -14,4 +14,5 @@ private: void onInverterEdit(AsyncWebServerRequest* request); void onInverterDelete(AsyncWebServerRequest* request); void onInverterOrder(AsyncWebServerRequest* request); + void onInverterStatReset(AsyncWebServerRequest* request); }; diff --git a/src/WebApi_inverter.cpp b/src/WebApi_inverter.cpp index 4e8fc53a..79c8a8e9 100644 --- a/src/WebApi_inverter.cpp +++ b/src/WebApi_inverter.cpp @@ -21,6 +21,7 @@ void WebApiInverterClass::init(AsyncWebServer& server, Scheduler& scheduler) server.on("/api/inverter/edit", HTTP_POST, std::bind(&WebApiInverterClass::onInverterEdit, this, _1)); server.on("/api/inverter/del", HTTP_POST, std::bind(&WebApiInverterClass::onInverterDelete, this, _1)); server.on("/api/inverter/order", HTTP_POST, std::bind(&WebApiInverterClass::onInverterOrder, this, _1)); + server.on("/api/inverter/stats_reset", HTTP_GET, std::bind(&WebApiInverterClass::onInverterStatReset, this, _1)); } void WebApiInverterClass::onInverterList(AsyncWebServerRequest* request) @@ -349,3 +350,24 @@ void WebApiInverterClass::onInverterOrder(AsyncWebServerRequest* request) WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); } + +void WebApiInverterClass::onInverterStatReset(AsyncWebServerRequest* request) +{ + if (!WebApi.checkCredentials(request)) { + return; + } + + AsyncJsonResponse* response = new AsyncJsonResponse(); + auto retMsg = response->getRoot(); + auto serial = WebApi.parseSerialFromRequest(request); + auto inv = Hoymiles.getInverterBySerial(serial); + + if (inv != nullptr) { + inv->resetRadioStats(); + retMsg["type"] = "success"; + retMsg["message"] = "Stats resetted"; + retMsg["code"] = WebApiError::InverterStatsResetted; + } + + WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); +} diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index 93610890..995f6ec7 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -148,7 +148,9 @@ "RxFailNothing": "Empfang Fehler: Nichts empfangen", "RxFailPartial": "Empfang Fehler: Teilweise empfangen", "RxFailCorrupt": "Empfang Fehler: Beschädigt empfangen", - "TxReRequest": "Gesendete Fragment Wiederanforderungen" + "TxReRequest": "Gesendete Fragment Wiederanforderungen", + "StatsReset": "Statistiken zurücksetzen", + "StatsResetting": "Zurücksetzen..." }, "eventlog": { "Start": "Beginn", diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index 34be62f4..cf3c74f0 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -148,7 +148,9 @@ "RxFailNothing": "RX Fail: Receive Nothing", "RxFailPartial": "RX Fail: Receive Partial", "RxFailCorrupt": "RX Fail: Receive Corrupt", - "TxReRequest": "TX Re-Request Fragment" + "TxReRequest": "TX Re-Request Fragment", + "StatsReset": "Reset Statistics", + "StatsResetting": "Resetting..." }, "eventlog": { "Start": "Start", diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index d9d148da..fcb22a19 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -148,7 +148,9 @@ "RxFailNothing": "RX Fail: Receive Nothing", "RxFailPartial": "RX Fail: Receive Partial", "RxFailCorrupt": "RX Fail: Receive Corrupt", - "TxReRequest": "TX Re-Request Fragment" + "TxReRequest": "TX Re-Request Fragment", + "StatsReset": "Reset Statistics", + "StatsResetting": "Resetting..." }, "eventlog": { "Start": "Départ", diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 7082e17c..95c91031 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -293,6 +293,20 @@ + @@ -551,6 +565,7 @@ export default defineComponent({ alertMessageLimit: '', alertTypeLimit: 'info', showAlertLimit: false, + performRadioStatsReset: false, powerSettingView: {} as bootstrap.Modal, powerSettingSerial: '', @@ -780,6 +795,14 @@ export default defineComponent({ this.limitSettingView.show(); }, + onResetRadioStats(serial: string) { + this.performRadioStatsReset = true; + fetch('/api/inverter/stats_reset?inv=' + serial, { headers: authHeader() }) + .then((response) => handleResponse(response, this.$emitter, this.$router)) + .then(() => { + this.performRadioStatsReset = false; + }); + }, onSetLimitSettings(setPersistent: boolean) { this.targetLimitList.limit_type = (setPersistent ? 256 : 0) + this.targetLimitType; const formData = new FormData(); From 0847f021f10e5424630eaf9b42732e0d0eb5d09d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 25 Sep 2024 20:21:24 +0200 Subject: [PATCH 081/127] webapp: Update dependencies --- webapp/package.json | 6 +++--- webapp/yarn.lock | 52 ++++++++++++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 20 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 5d7c5908..dbecc368 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -27,14 +27,14 @@ "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.5.5", + "@types/node": "^22.7.1", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", "@vitejs/plugin-vue": "^5.1.4", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", - "eslint": "^9.11.0", + "eslint": "^9.11.1", "eslint-plugin-vue": "^9.28.0", "npm-run-all": "^4.1.5", "prettier": "^3.3.3", @@ -42,7 +42,7 @@ "sass": "^1.77.6", "terser": "^5.33.0", "typescript": "^5.6.2", - "vite": "^5.4.7", + "vite": "^5.4.8", "vite-plugin-compression": "^0.5.1", "vite-plugin-css-injected-by-js": "^3.5.1", "vue-tsc": "^2.1.6" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 9d7d8648..8b71b70a 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -191,6 +191,11 @@ debug "^4.3.1" minimatch "^3.1.2" +"@eslint/core@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" + integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== + "@eslint/eslintrc@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" @@ -206,10 +211,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.11.0": - version "9.11.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.0.tgz#fca7533ef33aa608770734786e02f1041847f9bb" - integrity sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ== +"@eslint/js@9.11.1": + version "9.11.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986" + integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA== "@eslint/object-schema@^2.1.4": version "2.1.4" @@ -487,15 +492,25 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== +"@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/json-schema@^7.0.12": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== -"@types/node@^22.5.5": - version "22.5.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.5.tgz#52f939dd0f65fc552a4ad0b392f3c466cc5d7a44" - integrity sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA== +"@types/json-schema@^7.0.15": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/node@^22.7.1": + version "22.7.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.1.tgz#c6a2628c8a68511ab7b68f3be7c9b38716bdf04f" + integrity sha512-adOMRLVmleuWs/5V/w5/l7o0chDK/az+5ncCsIapTKogsu/3MVWvSgP58qVTXi5IwpfGt8pMobNq9rOWtJyu5Q== dependencies: undici-types "~6.19.2" @@ -1265,20 +1280,23 @@ eslint-visitor-keys@^4.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== -eslint@^9.11.0: - version "9.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.0.tgz#f7a7bf305a4d77f23be0c1e4537b9aa1617219be" - integrity sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA== +eslint@^9.11.1: + version "9.11.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567" + integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.11.0" "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.6.0" "@eslint/eslintrc" "^3.1.0" - "@eslint/js" "9.11.0" + "@eslint/js" "9.11.1" "@eslint/plugin-kit" "^0.2.0" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2606,10 +2624,10 @@ vite-plugin-css-injected-by-js@^3.5.1: resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== -vite@^5.4.7: - version "5.4.7" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.7.tgz#d226f57c08b61379e955f3836253ed3efb2dcf00" - integrity sha512-5l2zxqMEPVENgvzTuBpHer2awaetimj2BGkhBPdnwKbPNOlHsODU+oiazEZzLK7KhAnOrO+XGYJYn4ZlUhDtDQ== +vite@^5.4.8: + version "5.4.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.8.tgz#af548ce1c211b2785478d3ba3e8da51e39a287e8" + integrity sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ== dependencies: esbuild "^0.21.3" postcss "^8.4.43" From 155735c8286c52b874f6c6112b6e719f42c2fa21 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 25 Sep 2024 21:46:38 +0200 Subject: [PATCH 082/127] Embed current branch into building process --- include/__compiled_constants.h | 1 + pio-scripts/auto_firmware_version.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/include/__compiled_constants.h b/include/__compiled_constants.h index ac8991e9..a00caf6d 100644 --- a/include/__compiled_constants.h +++ b/include/__compiled_constants.h @@ -5,4 +5,5 @@ extern const char *__COMPILED_GIT_HASH__; +extern const char *__COMPILED_GIT_BRANCH__; // extern const char *__COMPILED_DATE_TIME_UTC_STR__; diff --git a/pio-scripts/auto_firmware_version.py b/pio-scripts/auto_firmware_version.py index 26e1bd65..c1fa9771 100644 --- a/pio-scripts/auto_firmware_version.py +++ b/pio-scripts/auto_firmware_version.py @@ -36,9 +36,20 @@ def get_build_version(): return build_version +def get_build_branch(): + try: + branch_name = porcelain.active_branch('.').decode('utf-8') # '.' refers to the repository root dir + except Exception as err: + branch_name = "master" + print("Firmware Branch: " + branch_name) + return branch_name + + def get_firmware_specifier_build_flag(): build_version = get_build_version() build_flag = "-D AUTO_GIT_HASH=\\\"" + build_version + "\\\"" + build_branch = get_build_branch() + build_flag += " -D AUTO_GIT_BRANCH=\\\"" + branch_name + "\\\"" return (build_flag) @@ -64,6 +75,8 @@ def do_main(): if 1: # Add the description of the current git revision lines += 'const char *__COMPILED_GIT_HASH__ = "%s";\n' % (get_build_version()) + # ... and git branch + lines += 'const char *__COMPILED_GIT_BRANCH__ = "%s";\n' % (get_build_branch()) updateFileIfChanged(targetfile, bytes(lines, "utf-8")) From d69a43373eaebdcb70913125d4bd609036b96adc Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 25 Sep 2024 21:49:38 +0200 Subject: [PATCH 083/127] Slight adjustments to github bug_report template --- .github/ISSUE_TEMPLATE/bug_report.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index b3eb471c..d41f9824 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -47,7 +47,8 @@ body: label: Install Method description: How did you install OpenDTU? options: - - Pre-Compiled binary from GitHub + - Pre-Compiled binary from GitHub releases + - Pre-Compiles binary from GitHub actions/pull-request - Self-Compiled validations: required: true @@ -92,5 +93,5 @@ body: required: true - label: I have updated the title field above with a concise description. required: true - - label: I have double checked that my inverter does not contain a W in the model name (like HMS-xxxW) as they are not supported + - label: I have double checked that my inverter does not contain a W in the model name (like HMS-xxxW) as they are not supported. required: true From 468cbad4f3f875d9cb8b749e7063a5d6434ff063 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 25 Sep 2024 21:53:30 +0200 Subject: [PATCH 084/127] Upgrade github actions/checkout to v4 --- .github/workflows/cpplint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cpplint.yml b/.github/workflows/cpplint.yml index 4ee4b4a8..84d9fd06 100644 --- a/.github/workflows/cpplint.yml +++ b/.github/workflows/cpplint.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: From 67cae68e834f8e0ceb749ac7ed339bc67e42b2b0 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 17:43:07 +0200 Subject: [PATCH 085/127] GitHub Build Action: Automatically generate littlefs image If a data directory exists, the content of this directory will be placed in the littlefs image and embedded into the factory.bin file --- pio-scripts/create_factory_bin.py | 52 +++++++++++++++++++++++++++++-- platformio.ini | 2 ++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/pio-scripts/create_factory_bin.py b/pio-scripts/create_factory_bin.py index d394998b..c0ef4a8c 100644 --- a/pio-scripts/create_factory_bin.py +++ b/pio-scripts/create_factory_bin.py @@ -18,20 +18,64 @@ Import("env") +env = DefaultEnvironment() platform = env.PioPlatform() import sys -from os.path import join, getsize +import csv +import subprocess +import shutil +from os.path import join, getsize, exists, isdir +from os import listdir sys.path.append(join(platform.get_package_dir("tool-esptoolpy"))) import esptool +def esp32_build_filesystem(fs_name, fs_size): + filesystem_dir = env.subst("$PROJECT_DATA_DIR") + print("Creating %dKiB filesystem with content:" % (int(fs_size, 0)/1024) ) + if not isdir(filesystem_dir) or not listdir(filesystem_dir): + print("No files added -> will NOT create littlefs.bin and NOT overwrite fs partition!") + return False + # this does not work on GitHub, results in 'mklittlefs: No such file or directory' + tool = shutil.which(env.subst(env["MKFSTOOL"])) + if tool is None or not exists(tool): + print("Using fallback mklittlefs") + tool = "~/.platformio/packages/tool-mklittlefs/mklittlefs" + + cmd = (tool, "-c", filesystem_dir, "-s", fs_size, fs_name) + returncode = subprocess.call(cmd, shell=False) + print("Return Code:", returncode) + return True + def esp32_create_combined_bin(source, target, env): print("Generating combined binary for serial flashing") # The offset from begin of the file where the app0 partition starts # This is defined in the partition .csv file app_offset = 0x10000 + fs_offset = -1 + fs_name = env.subst("$BUILD_DIR/littlefs.bin") + + with open(env.BoardConfig().get("build.partitions")) as csv_file: + print("Read partitions from ", env.BoardConfig().get("build.partitions")) + csv_reader = csv.reader(csv_file, delimiter=',') + line_count = 0 + for row in csv_reader: + if line_count == 0: + print(f'{", ".join(row)}') + line_count += 1 + else: + if (len(row) < 4): + continue + print(f'{row[0]} {row[1]} {row[2]} {row[3]} {row[4]}') + line_count += 1 + if(row[0] == 'app0'): + app_offset = int(row[3], base=16) + elif(row[0] == 'spiffs'): + partition_size = row[4] + if esp32_build_filesystem(fs_name, partition_size): + fs_offset = int(row[3], base=16) new_file_name = env.subst("$BUILD_DIR/${PROGNAME}.factory.bin") sections = env.subst(env.get("FLASH_EXTRA_IMAGES")) @@ -77,9 +121,13 @@ def esp32_create_combined_bin(source, target, env): print(f" - {hex(app_offset)} | {firmware_name}") cmd += [hex(app_offset), firmware_name] + if fs_offset != -1: + print(f" - {hex(fs_offset)} | {fs_name}") + cmd += [hex(fs_offset), fs_name] + print('Using esptool.py arguments: %s' % ' '.join(cmd)) esptool.main(cmd) -env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_combined_bin) \ No newline at end of file +env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp32_create_combined_bin) diff --git a/platformio.ini b/platformio.ini index 99b67634..dd849165 100644 --- a/platformio.ini +++ b/platformio.ini @@ -20,6 +20,8 @@ custom_ci_action = generic,generic_esp32,generic_esp32s3,generic_esp32s3_usb framework = arduino platform = espressif32@6.8.1 +platform_packages = + platformio/tool-mklittlefs build_flags = -DPIOENV=\"$PIOENV\" From 8e26ef4e2e8def828b28de096f0d59d3318529f4 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 17:45:34 +0200 Subject: [PATCH 086/127] Fix: Only count RF RX packets when packets where sent This mainly occours after a reset of the statistics that receive count is higher then transmit count --- lib/Hoymiles/src/HoymilesRadio.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Hoymiles/src/HoymilesRadio.cpp b/lib/Hoymiles/src/HoymilesRadio.cpp index a3c3a02d..55281ab0 100644 --- a/lib/Hoymiles/src/HoymilesRadio.cpp +++ b/lib/Hoymiles/src/HoymilesRadio.cpp @@ -67,7 +67,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_ALL_MISSING_TIMEOUT) { Hoymiles.getMessageOutput()->println("Nothing received, resend count exeeded"); // Statistics: Count RX Fail No Answer - inv->RadioStats.RxFailNoAnswer++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailNoAnswer++; + } _commandQueue.pop(); _busyFlag = false; @@ -75,7 +77,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_RETRANSMIT_TIMEOUT) { Hoymiles.getMessageOutput()->println("Retransmit timeout"); // Statistics: Count RX Fail Partial Answer - inv->RadioStats.RxFailPartialAnswer++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailPartialAnswer++; + } _commandQueue.pop(); _busyFlag = false; @@ -83,7 +87,9 @@ void HoymilesRadio::handleReceivedPackage() } else if (verifyResult == FRAGMENT_HANDLE_ERROR) { Hoymiles.getMessageOutput()->println("Packet handling error"); // Statistics: Count RX Fail Corrupt Data - inv->RadioStats.RxFailCorruptData++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxFailCorruptData++; + } _commandQueue.pop(); _busyFlag = false; @@ -101,7 +107,9 @@ void HoymilesRadio::handleReceivedPackage() // Successful received all packages Hoymiles.getMessageOutput()->println("Success"); // Statistics: Count RX Success - inv->RadioStats.RxSuccess++; + if (inv->RadioStats.TxRequestData > 0) { + inv->RadioStats.RxSuccess++; + } _commandQueue.pop(); _busyFlag = false; From 8db267b21abb8cc6480c3c101acc7533e7c3abd5 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:00:30 +0200 Subject: [PATCH 087/127] webapp: Apply auto format --- webapp/src/views/HomeView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 95c91031..0aef275a 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -303,7 +303,10 @@ {{ $t('home.StatsReset') }} From cc7145361e46eccbee712c2e5c2fcd585b61b6d0 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:01:59 +0200 Subject: [PATCH 088/127] webapp: Update dependencies --- webapp/package.json | 6 +- webapp/yarn.lock | 140 ++++++++++++++++++++++---------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index dbecc368..ac5161ff 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,7 +19,7 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", - "vue": "^3.5.8", + "vue": "^3.5.9", "vue-i18n": "9.13.1", "vue-router": "^4.4.5" }, @@ -27,7 +27,7 @@ "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.7.1", + "@types/node": "^22.7.2", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", @@ -40,7 +40,7 @@ "prettier": "^3.3.3", "pulltorefreshjs": "^0.1.22", "sass": "^1.77.6", - "terser": "^5.33.0", + "terser": "^5.34.0", "typescript": "^5.6.2", "vite": "^5.4.8", "vite-plugin-compression": "^0.5.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 8b71b70a..f804bf6d 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -507,10 +507,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/node@^22.7.1": - version "22.7.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.1.tgz#c6a2628c8a68511ab7b68f3be7c9b38716bdf04f" - integrity sha512-adOMRLVmleuWs/5V/w5/l7o0chDK/az+5ncCsIapTKogsu/3MVWvSgP58qVTXi5IwpfGt8pMobNq9rOWtJyu5Q== +"@types/node@^22.7.2": + version "22.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.2.tgz#80ed66c0a5025ffa037587fd69a816f29b54e4c7" + integrity sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA== dependencies: undici-types "~6.19.2" @@ -667,13 +667,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.8.tgz#03ee4a2fa022c9bc3e59f789a1e14593b1e95b10" - integrity sha512-Uzlxp91EPjfbpeO5KtC0KnXPkuTfGsNDeaKQJxQN718uz+RqDYarEf7UhQJGK+ZYloD2taUbHTI2J4WrUaZQNA== +"@vue/compiler-core@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.9.tgz#d51fbfe6c18479b27fe6b1723344ba0832e4aacb" + integrity sha512-KE1sCdwqSKq0CQ/ltg3XnlMTKeinjegIkuFsuq9DKvNPmqLGdmI51ChZdGBBRXIvEYTLm8X/JxOuBQ1HqF/+PA== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.8" + "@vue/shared" "3.5.9" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -686,13 +686,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.8.tgz#03e4a6bef00a1979613a1db2ab39e9b2dced3373" - integrity sha512-GUNHWvoDSbSa5ZSHT9SnV5WkStWfzJwwTd6NMGzilOE/HM5j+9EB9zGXdtu/fCNEmctBqMs6C9SvVPpVPuk1Eg== +"@vue/compiler-dom@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.9.tgz#6fa2b7e536ae4c416fc2d60b7e9e33b3410eac7a" + integrity sha512-gEAURwPo902AsJF50vl59VaWR+Cx6cX9SoqLYHu1jq9hDbmQlXvpZyYNIIbxa2JTJ+FD/oBQweVUwuTQv79KTg== dependencies: - "@vue/compiler-core" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/compiler-core" "3.5.9" + "@vue/shared" "3.5.9" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -702,16 +702,16 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.8.tgz#b2091ec01c63ab02a1cd6783224322f245c6a308" - integrity sha512-taYpngQtSysrvO9GULaOSwcG5q821zCoIQBtQQSx7Uf7DxpR6CIHR90toPr9QfDD2mqHQPCSgoWBvJu0yV9zjg== +"@vue/compiler-sfc@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.9.tgz#020b7654f1fde7c606a49ec4e4d2838e8e1a43c5" + integrity sha512-kp9qawcTXakYm0TN6YAwH24IurSywoXh4fWhRbLu0at4UVyo994bhEzJlQn82eiyqtut4GjkQodSfn8drFbpZQ== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.8" - "@vue/compiler-dom" "3.5.8" - "@vue/compiler-ssr" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/compiler-core" "3.5.9" + "@vue/compiler-dom" "3.5.9" + "@vue/compiler-ssr" "3.5.9" + "@vue/shared" "3.5.9" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.47" @@ -741,13 +741,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.8.tgz#fbad34f8bbed15aa6e7b9d78324d93af93403145" - integrity sha512-W96PtryNsNG9u0ZnN5Q5j27Z/feGrFV6zy9q5tzJVyJaLiwYxvC0ek4IXClZygyhjm+XKM7WD9pdKi/wIRVC/Q== +"@vue/compiler-ssr@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.9.tgz#e30f8e866589392421abcbfc0e0241470f3ca9a6" + integrity sha512-fb1g2mQv32QzIei76rlXRTz08Grw+ZzBXSQfHo4StGFutm/flyebw3dGJkexKwcU3GjX9s5fIGjEv/cjO8j8Yw== dependencies: - "@vue/compiler-dom" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/compiler-dom" "3.5.9" + "@vue/shared" "3.5.9" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -801,38 +801,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.8.tgz#23e1bceceb9b94b136fa91f11b308e3f712dea6d" - integrity sha512-mlgUyFHLCUZcAYkqvzYnlBRCh0t5ZQfLYit7nukn1GR96gc48Bp4B7OIcSfVSvlG1k3BPfD+p22gi1t2n9tsXg== +"@vue/reactivity@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.9.tgz#8864a55e4c495666f3c679beb8f734489eeb042e" + integrity sha512-88ApgNZ6yPYpyYkTfXzcbWk6O8+LrPRIpa/U4AdeTzpfRUO+EUt5jemnTBVSlAUNmlYY96xa5feUNEq+BouLog== dependencies: - "@vue/shared" "3.5.8" + "@vue/shared" "3.5.9" -"@vue/runtime-core@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.8.tgz#235251fa40dae61db7becacf6bda5bc6561cbbc5" - integrity sha512-fJuPelh64agZ8vKkZgp5iCkPaEqFJsYzxLk9vSC0X3G8ppknclNDr61gDc45yBGTaN5Xqc1qZWU3/NoaBMHcjQ== +"@vue/runtime-core@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.9.tgz#e47f890734039f77dac86328cc059cf8188c5729" + integrity sha512-YAeP0zNkjSl5mEc1NxOg9qoAhLNbREElHAhfYbMXT57oF0ixehEEJWBhg2uvVxslCGh23JhpEAyMvJrJHW9WGg== dependencies: - "@vue/reactivity" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/reactivity" "3.5.9" + "@vue/shared" "3.5.9" -"@vue/runtime-dom@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.8.tgz#9d3a4f4a9a9a0002b085a5e18a2ca16c009cb3ad" - integrity sha512-DpAUz+PKjTZPUOB6zJgkxVI3GuYc2iWZiNeeHQUw53kdrparSTG6HeXUrYDjaam8dVsCdvQxDz6ZWxnyjccUjQ== +"@vue/runtime-dom@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.9.tgz#088746207f74963d09b31ce7b79add0bf96aa337" + integrity sha512-5Oq/5oenpB9lw94moKvOHqBDEaMSyDmcu2HS8AtAT6/pwdo/t9fR9aVtLh6FzYGGqZR9yRfoHAN6P7goblq1aA== dependencies: - "@vue/reactivity" "3.5.8" - "@vue/runtime-core" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/reactivity" "3.5.9" + "@vue/runtime-core" "3.5.9" + "@vue/shared" "3.5.9" csstype "^3.1.3" -"@vue/server-renderer@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.8.tgz#d6c292409e880db4151223c27fa0d1cd879cc239" - integrity sha512-7AmC9/mEeV9mmXNVyUIm1a1AjUhyeeGNbkLh39J00E7iPeGks8OGRB5blJiMmvqSh8SkaS7jkLWSpXtxUCeagA== +"@vue/server-renderer@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.9.tgz#3bf0736001623960d120ef01dee5045fad6efadb" + integrity sha512-tbuUsZfMWGazR9LXLNiiDSTwkO8K9sLyR70diY+FbQmKmh7236PPz4jkTxymelV8D89IJUGtbfe4VdmpHkmuxg== dependencies: - "@vue/compiler-ssr" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/compiler-ssr" "3.5.9" + "@vue/shared" "3.5.9" "@vue/shared@3.2.47": version "3.2.47" @@ -844,10 +844,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.5.8": - version "3.5.8" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.8.tgz#6ef14933872dcc4f7b79fee3aaecf648ff807fed" - integrity sha512-mJleSWbAGySd2RJdX1RBtcrUBX6snyOc0qHpgk3lGi4l9/P/3ny3ELqFWqYdkXIwwNN/kdm8nD9ky8o6l/Lx2A== +"@vue/shared@3.5.9": + version "3.5.9" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.9.tgz#713257216ea2cbf4e200cb9ae395c34ae2349385" + integrity sha512-8wiT/m0mnsLhTME0mPgc57jv+4TipRBSAAmheUdYgiOaO6AobZPNOmm87ub4np65VVDgLcWxc+Edc++5Wyz1uA== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -2506,10 +2506,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.33.0: - version "5.33.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.33.0.tgz#8f9149538c7468ffcb1246cfec603c16720d2db1" - integrity sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g== +terser@^5.34.0: + version "5.34.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.34.0.tgz#62f2496542290bc6d8bf886edaee7fac158e37e4" + integrity sha512-y5NUX+U9HhVsK/zihZwoq4r9dICLyV2jXGOriDAVOeKhq3LKVjgJbGO90FisozXLlJfvjHqgckGmJFBb9KYoWQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -2691,16 +2691,16 @@ vue-tsc@^2.1.6: "@vue/language-core" "2.1.6" semver "^7.5.4" -vue@^3.5.8: - version "3.5.8" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.8.tgz#7d2fa98ea85228dcb90f897ef5df74df1d5825a1" - integrity sha512-hvuvuCy51nP/1fSRvrrIqTLSvrSyz2Pq+KQ8S8SXCxTWVE0nMaOnSDnSOxV1eYmGfvK7mqiwvd1C59CEEz7dAQ== +vue@^3.5.9: + version "3.5.9" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.9.tgz#a065952d7a7c0e2cbfec8e016582b055ab984357" + integrity sha512-nHzQhZ5cjFKynAY2beAm7XtJ5C13VKAFTLTgRYXy+Id1KEKBeiK6hO2RcW1hUjdbHMadz1YzxyHgQigOC54wug== dependencies: - "@vue/compiler-dom" "3.5.8" - "@vue/compiler-sfc" "3.5.8" - "@vue/runtime-dom" "3.5.8" - "@vue/server-renderer" "3.5.8" - "@vue/shared" "3.5.8" + "@vue/compiler-dom" "3.5.9" + "@vue/compiler-sfc" "3.5.9" + "@vue/runtime-dom" "3.5.9" + "@vue/server-renderer" "3.5.9" + "@vue/shared" "3.5.9" webpack-sources@^3.2.3: version "3.2.3" From 595b153bbf05014e26cf119a821182088b8755f8 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:08:48 +0200 Subject: [PATCH 089/127] Simplify network callback handling --- src/NetworkSettings.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index 31313feb..ca881754 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -111,8 +111,7 @@ bool NetworkSettingsClass::onEvent(NetworkEventCb cbEvent, const network_event e void NetworkSettingsClass::raiseEvent(const network_event event) { - for (uint32_t i = 0; i < _cbEventList.size(); i++) { - const NetworkEventCbList_t entry = _cbEventList[i]; + for (auto& entry : _cbEventList) { if (entry.cb) { if (entry.event == event || entry.event == network_event::NETWORK_EVENT_MAX) { entry.cb(event); From 818fdc42c9fcb75dbee122ba6d9a47220e8c0eed Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:17:11 +0200 Subject: [PATCH 090/127] Simplify inverter handling --- lib/Hoymiles/src/Hoymiles.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index 97922e34..7f1a3c1f 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -195,9 +195,9 @@ std::shared_ptr HoymilesClass::getInverterByPos(const uint8_t std::shared_ptr HoymilesClass::getInverterBySerial(const uint64_t serial) { - for (uint8_t i = 0; i < _inverters.size(); i++) { - if (_inverters[i]->serial() == serial) { - return _inverters[i]; + for (auto& inv : _inverters) { + if (inv->serial() == serial) { + return inv; } } return nullptr; @@ -209,9 +209,7 @@ std::shared_ptr HoymilesClass::getInverterByFragment(const fra return nullptr; } - std::shared_ptr inv; - for (uint8_t i = 0; i < _inverters.size(); i++) { - inv = _inverters[i]; + for (auto& inv : _inverters) { serial_u p; p.u64 = inv->serial(); From 355900743d9bbd7912078663b01b9706e7d115ec Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:21:16 +0200 Subject: [PATCH 091/127] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 186295 -> 186480 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 995f369618d18a1eeef320142a3e8ac27b0a534e..35a47f59f398217885b8a6c5ae00083c2d5cff70 100644 GIT binary patch delta 134097 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

eexV7~B5 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 From 7746d01fc088681e5f02445cddd7e8fa98ff0e1e Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 18:47:27 +0200 Subject: [PATCH 092/127] Apply license headers and automatic code formatting to SpiManager --- lib/SpiManager/src/SpiBus.cpp | 19 ++--- lib/SpiManager/src/SpiBus.h | 24 ++++--- lib/SpiManager/src/SpiBusConfig.cpp | 18 +++-- lib/SpiManager/src/SpiBusConfig.h | 3 +- lib/SpiManager/src/SpiCallback.cpp | 106 +++++++++++++++------------- lib/SpiManager/src/SpiCallback.h | 4 +- lib/SpiManager/src/SpiManager.cpp | 22 ++++-- lib/SpiManager/src/SpiManager.h | 9 +-- 8 files changed, 115 insertions(+), 90 deletions(-) diff --git a/lib/SpiManager/src/SpiBus.cpp b/lib/SpiManager/src/SpiBus.cpp index 26b361cc..0dcb5e4f 100644 --- a/lib/SpiManager/src/SpiBus.cpp +++ b/lib/SpiManager/src/SpiBus.cpp @@ -1,12 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #include "SpiBus.h" - #include "SpiBusConfig.h" #include "SpiCallback.h" -SpiBus::SpiBus(const std::string &_id, spi_host_device_t _host_device) : - id(_id), - host_device(_host_device), - cur_config(nullptr) +SpiBus::SpiBus(const std::string& _id, spi_host_device_t _host_device) + : id(_id) + , host_device(_host_device) + , cur_config(nullptr) { spi_bus_config_t bus_config { .mosi_io_num = -1, @@ -25,11 +25,13 @@ SpiBus::SpiBus(const std::string &_id, spi_host_device_t _host_device) : ESP_ERROR_CHECK(spi_bus_initialize(host_device, &bus_config, SPI_DMA_CH_AUTO)); } -SpiBus::~SpiBus() { +SpiBus::~SpiBus() +{ ESP_ERROR_CHECK(spi_bus_free(host_device)); } -spi_device_handle_t SpiBus::add_device(const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { +spi_device_handle_t SpiBus::add_device(const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config) +{ if (!SpiCallback::patch(shared_from_this(), bus_config, device_config)) return nullptr; @@ -40,7 +42,8 @@ spi_device_handle_t SpiBus::add_device(const std::shared_ptr &bus_ // TODO: add remove_device (with spi_device_acquire_bus) -void SpiBus::apply_config(SpiBusConfig *config) { +void SpiBus::apply_config(SpiBusConfig* config) +{ if (cur_config) cur_config->unpatch(host_device); cur_config = config; diff --git a/lib/SpiManager/src/SpiBus.h b/lib/SpiManager/src/SpiBus.h index a5fde06c..1ca79c7c 100644 --- a/lib/SpiManager/src/SpiBus.h +++ b/lib/SpiManager/src/SpiBus.h @@ -1,7 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include - #include #include @@ -9,37 +9,41 @@ class SpiBusConfig; class SpiBus : public std::enable_shared_from_this { public: - explicit SpiBus(const std::string &id, spi_host_device_t host_device); + explicit SpiBus(const std::string& id, spi_host_device_t host_device); SpiBus(const SpiBus&) = delete; - SpiBus &operator=(const SpiBus&) = delete; + SpiBus& operator=(const SpiBus&) = delete; ~SpiBus(); - inline __attribute__((always_inline)) void require_config(SpiBusConfig *config) { + inline __attribute__((always_inline)) void require_config(SpiBusConfig* config) + { if (config == cur_config) return; apply_config(config); } - inline __attribute__((always_inline)) void free_config(SpiBusConfig *config) { + inline __attribute__((always_inline)) void free_config(SpiBusConfig* config) + { if (config != cur_config) return; apply_config(nullptr); } - inline const std::string &get_id() const { + inline const std::string& get_id() const + { return id; } - inline spi_host_device_t get_host_device() const { + inline spi_host_device_t get_host_device() const + { return host_device; } - spi_device_handle_t add_device(const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); + spi_device_handle_t add_device(const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config); private: - void apply_config(SpiBusConfig *config); + void apply_config(SpiBusConfig* config); std::string id; spi_host_device_t host_device; - SpiBusConfig *cur_config; + SpiBusConfig* cur_config; }; diff --git a/lib/SpiManager/src/SpiBusConfig.cpp b/lib/SpiManager/src/SpiBusConfig.cpp index c3cc0196..64234d65 100644 --- a/lib/SpiManager/src/SpiBusConfig.cpp +++ b/lib/SpiManager/src/SpiBusConfig.cpp @@ -1,13 +1,14 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #include "SpiBusConfig.h" #include #include #include -SpiBusConfig::SpiBusConfig(gpio_num_t _pin_mosi, gpio_num_t _pin_miso, gpio_num_t _pin_sclk) : - pin_mosi(_pin_mosi), - pin_miso(_pin_miso), - pin_sclk(_pin_sclk) +SpiBusConfig::SpiBusConfig(gpio_num_t _pin_mosi, gpio_num_t _pin_miso, gpio_num_t _pin_sclk) + : pin_mosi(_pin_mosi) + , pin_miso(_pin_miso) + , pin_sclk(_pin_sclk) { if (pin_mosi != GPIO_NUM_NC) { ESP_ERROR_CHECK(gpio_reset_pin(pin_mosi)); @@ -25,7 +26,8 @@ SpiBusConfig::SpiBusConfig(gpio_num_t _pin_mosi, gpio_num_t _pin_miso, gpio_num_ } } -SpiBusConfig::~SpiBusConfig() { +SpiBusConfig::~SpiBusConfig() +{ if (pin_mosi != GPIO_NUM_NC) ESP_ERROR_CHECK(gpio_reset_pin(pin_mosi)); @@ -36,7 +38,8 @@ SpiBusConfig::~SpiBusConfig() { ESP_ERROR_CHECK(gpio_reset_pin(pin_sclk)); } -void SpiBusConfig::patch(spi_host_device_t host_device) { +void SpiBusConfig::patch(spi_host_device_t host_device) +{ if (pin_mosi != GPIO_NUM_NC) { esp_rom_gpio_connect_out_signal(pin_mosi, spi_periph_signal[host_device].spid_out, false, false); esp_rom_gpio_connect_in_signal(pin_mosi, spi_periph_signal[host_device].spid_in, false); @@ -51,7 +54,8 @@ void SpiBusConfig::patch(spi_host_device_t host_device) { } } -void SpiBusConfig::unpatch(spi_host_device_t host_device) { +void SpiBusConfig::unpatch(spi_host_device_t host_device) +{ if (pin_mosi != GPIO_NUM_NC) { esp_rom_gpio_connect_out_signal(pin_mosi, SIG_GPIO_OUT_IDX, false, false); esp_rom_gpio_connect_in_signal(GPIO_MATRIX_CONST_ONE_INPUT, spi_periph_signal[host_device].spid_in, false); diff --git a/lib/SpiManager/src/SpiBusConfig.h b/lib/SpiManager/src/SpiBusConfig.h index e4549ef1..736b8951 100644 --- a/lib/SpiManager/src/SpiBusConfig.h +++ b/lib/SpiManager/src/SpiBusConfig.h @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include @@ -7,7 +8,7 @@ class SpiBusConfig { public: explicit SpiBusConfig(gpio_num_t pin_mosi, gpio_num_t pin_miso, gpio_num_t pin_sclk); SpiBusConfig(const SpiBusConfig&) = delete; - SpiBusConfig &operator=(const SpiBusConfig&) = delete; + SpiBusConfig& operator=(const SpiBusConfig&) = delete; ~SpiBusConfig(); void patch(spi_host_device_t host_device); diff --git a/lib/SpiManager/src/SpiCallback.cpp b/lib/SpiManager/src/SpiCallback.cpp index e281db98..e353d04b 100644 --- a/lib/SpiManager/src/SpiCallback.cpp +++ b/lib/SpiManager/src/SpiCallback.cpp @@ -1,65 +1,69 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #include "SpiCallback.h" #include "SpiBus.h" - #include #include namespace SpiCallback { - namespace { - struct CallbackData { - std::shared_ptr bus; - std::shared_ptr config; - transaction_cb_t inner_pre_cb; - transaction_cb_t inner_post_cb; - }; +namespace { + struct CallbackData { + std::shared_ptr bus; + std::shared_ptr config; + transaction_cb_t inner_pre_cb; + transaction_cb_t inner_post_cb; + }; - std::array, SPI_MANAGER_CALLBACK_COUNT> instances; + std::array, SPI_MANAGER_CALLBACK_COUNT> instances; - template - void IRAM_ATTR fn_pre_cb(spi_transaction_t *trans) { - instances[N]->bus->require_config(instances[N]->config.get()); - if (instances[N]->inner_pre_cb) - instances[N]->inner_pre_cb(trans); - } - - template - void IRAM_ATTR fn_post_cb(spi_transaction_t *trans) { - if (instances[N]->inner_post_cb) - instances[N]->inner_post_cb(trans); - } - - template - inline __attribute__((always_inline)) bool alloc(CallbackData *&instance, transaction_cb_t &pre_cb, transaction_cb_t &post_cb) { - if constexpr (N > 0) { - if (alloc(instance, pre_cb, post_cb)) - return true; - if (!instances[N - 1]) { - instances[N - 1].emplace(); - instance = &*instances[N - 1]; - pre_cb = fn_pre_cb; - post_cb = fn_post_cb; - return true; - } - } - return false; - } + template + void IRAM_ATTR fn_pre_cb(spi_transaction_t* trans) + { + instances[N]->bus->require_config(instances[N]->config.get()); + if (instances[N]->inner_pre_cb) + instances[N]->inner_pre_cb(trans); } - bool patch(const std::shared_ptr &bus, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { - CallbackData *instance; - transaction_cb_t pre_cb; - transaction_cb_t post_cb; - if (!alloc(instance, pre_cb, post_cb)) - return false; + template + void IRAM_ATTR fn_post_cb(spi_transaction_t* trans) + { + if (instances[N]->inner_post_cb) + instances[N]->inner_post_cb(trans); + } - instance->bus = bus; - instance->config = bus_config; - instance->inner_pre_cb = device_config.pre_cb; - instance->inner_post_cb = device_config.post_cb; - device_config.pre_cb = pre_cb; - device_config.post_cb = post_cb; - - return true; + template + inline __attribute__((always_inline)) bool alloc(CallbackData*& instance, transaction_cb_t& pre_cb, transaction_cb_t& post_cb) + { + if constexpr (N > 0) { + if (alloc(instance, pre_cb, post_cb)) + return true; + if (!instances[N - 1]) { + instances[N - 1].emplace(); + instance = &*instances[N - 1]; + pre_cb = fn_pre_cb; + post_cb = fn_post_cb; + return true; + } + } + return false; } } + +bool patch(const std::shared_ptr& bus, const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config) +{ + CallbackData* instance; + transaction_cb_t pre_cb; + transaction_cb_t post_cb; + if (!alloc(instance, pre_cb, post_cb)) + return false; + + instance->bus = bus; + instance->config = bus_config; + instance->inner_pre_cb = device_config.pre_cb; + instance->inner_post_cb = device_config.post_cb; + device_config.pre_cb = pre_cb; + device_config.post_cb = post_cb; + + return true; +} +} diff --git a/lib/SpiManager/src/SpiCallback.h b/lib/SpiManager/src/SpiCallback.h index f8d52d0d..98222b1a 100644 --- a/lib/SpiManager/src/SpiCallback.h +++ b/lib/SpiManager/src/SpiCallback.h @@ -1,7 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include - #include // Pre and post callbacks for 2 buses with 3 devices each @@ -11,5 +11,5 @@ class SpiBus; class SpiBusConfig; namespace SpiCallback { - bool patch(const std::shared_ptr &bus, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); +bool patch(const std::shared_ptr& bus, const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config); } diff --git a/lib/SpiManager/src/SpiManager.cpp b/lib/SpiManager/src/SpiManager.cpp index efbd5e0a..d727a96e 100644 --- a/lib/SpiManager/src/SpiManager.cpp +++ b/lib/SpiManager/src/SpiManager.cpp @@ -1,15 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #include "SpiManager.h" #ifdef ARDUINO #include #endif -SpiManager::SpiManager() { +SpiManager::SpiManager() +{ } #ifdef ARDUINO -std::optional SpiManager::to_arduino(spi_host_device_t host_device) { +std::optional SpiManager::to_arduino(spi_host_device_t host_device) +{ switch (host_device) { #if CONFIG_IDF_TARGET_ESP32 case SPI1_HOST: @@ -34,7 +37,8 @@ std::optional SpiManager::to_arduino(spi_host_device_t host_device) { #endif -bool SpiManager::register_bus(spi_host_device_t host_device) { +bool SpiManager::register_bus(spi_host_device_t host_device) +{ for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { if (available_buses[i]) continue; @@ -46,7 +50,8 @@ bool SpiManager::register_bus(spi_host_device_t host_device) { return false; } -bool SpiManager::claim_bus(spi_host_device_t &host_device) { +bool SpiManager::claim_bus(spi_host_device_t& host_device) +{ for (int i = SPI_MANAGER_NUM_BUSES - 1; i >= 0; --i) { if (!available_buses[i]) continue; @@ -61,7 +66,8 @@ bool SpiManager::claim_bus(spi_host_device_t &host_device) { #ifdef ARDUINO -std::optional SpiManager::claim_bus_arduino() { +std::optional SpiManager::claim_bus_arduino() +{ spi_host_device_t host_device; if (!claim_bus(host_device)) return std::nullopt; @@ -70,7 +76,8 @@ std::optional SpiManager::claim_bus_arduino() { #endif -spi_device_handle_t SpiManager::alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config) { +spi_device_handle_t SpiManager::alloc_device(const std::string& bus_id, const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config) +{ std::shared_ptr shared_bus = get_shared_bus(bus_id); if (!shared_bus) return nullptr; @@ -78,7 +85,8 @@ spi_device_handle_t SpiManager::alloc_device(const std::string &bus_id, const st return shared_bus->add_device(bus_config, device_config); } -std::shared_ptr SpiManager::get_shared_bus(const std::string &bus_id) { +std::shared_ptr SpiManager::get_shared_bus(const std::string& bus_id) +{ // look for existing shared bus for (int i = 0; i < SPI_MANAGER_NUM_BUSES; ++i) { if (!shared_buses[i]) diff --git a/lib/SpiManager/src/SpiManager.h b/lib/SpiManager/src/SpiManager.h index ee3b56a5..1e8f6e1b 100644 --- a/lib/SpiManager/src/SpiManager.h +++ b/lib/SpiManager/src/SpiManager.h @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "SpiBus.h" @@ -16,22 +17,22 @@ class SpiManager { public: explicit SpiManager(); SpiManager(const SpiManager&) = delete; - SpiManager &operator=(const SpiManager&) = delete; + SpiManager& operator=(const SpiManager&) = delete; #ifdef ARDUINO static std::optional to_arduino(spi_host_device_t host_device); #endif bool register_bus(spi_host_device_t host_device); - bool claim_bus(spi_host_device_t &host_device); + bool claim_bus(spi_host_device_t& host_device); #ifdef ARDUINO std::optional claim_bus_arduino(); #endif - spi_device_handle_t alloc_device(const std::string &bus_id, const std::shared_ptr &bus_config, spi_device_interface_config_t &device_config); + spi_device_handle_t alloc_device(const std::string& bus_id, const std::shared_ptr& bus_config, spi_device_interface_config_t& device_config); private: - std::shared_ptr get_shared_bus(const std::string &bus_id); + std::shared_ptr get_shared_bus(const std::string& bus_id); std::array, SPI_MANAGER_NUM_BUSES> available_buses; std::array, SPI_MANAGER_NUM_BUSES> shared_buses; From a18e298cddda8c4ef77a486f1812a9ce21e1f0df Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 19:22:30 +0200 Subject: [PATCH 093/127] Apply automatic code formatting --- include/NetworkSettings.h | 2 +- include/W5500.h | 8 ++++---- src/NetworkSettings.cpp | 5 +++-- src/W5500.cpp | 30 +++++++++++++++++------------- 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/include/NetworkSettings.h b/include/NetworkSettings.h index 51ec1075..6c1c217d 100644 --- a/include/NetworkSettings.h +++ b/include/NetworkSettings.h @@ -1,11 +1,11 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +#include "W5500.h" #include #include #include #include -#include "W5500.h" enum class network_mode { WiFi, diff --git a/include/W5500.h b/include/W5500.h index f4ee9d2a..fc0c6614 100644 --- a/include/W5500.h +++ b/include/W5500.h @@ -1,19 +1,19 @@ +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include - #include +#include class W5500 { public: explicit W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst); W5500(const W5500&) = delete; - W5500 &operator=(const W5500&) = delete; + W5500& operator=(const W5500&) = delete; ~W5500(); String macAddress(); private: esp_eth_handle_t eth_handle; - esp_netif_t *eth_netif; + esp_netif_t* eth_netif; }; diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index f754ea3f..d1edcc82 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -7,10 +7,10 @@ #include "MessageOutput.h" #include "PinMapping.h" #include "Utils.h" +#include "__compiled_constants.h" #include "defaults.h" #include #include -#include "__compiled_constants.h" NetworkSettingsClass::NetworkSettingsClass() : _loopTask(TASK_IMMEDIATE, TASK_FOREVER, std::bind(&NetworkSettingsClass::loop, this)) @@ -404,8 +404,9 @@ String NetworkSettingsClass::macAddress() const { switch (_networkMode) { case network_mode::Ethernet: - if (_w5500) + if (_w5500) { return _w5500->macAddress(); + } return ETH.macAddress(); break; case network_mode::WiFi: diff --git a/src/W5500.cpp b/src/W5500.cpp index 3f274204..0f5b5739 100644 --- a/src/W5500.cpp +++ b/src/W5500.cpp @@ -1,16 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2024 Thomas Basler and others + */ + #include "W5500.h" #include - #include // Internal Arduino functions from WiFiGeneric void tcpipInit(); -void add_esp_interface_netif(esp_interface_t interface, esp_netif_t *esp_netif); +void add_esp_interface_netif(esp_interface_t interface, esp_netif_t* esp_netif); -W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst) : - eth_handle(nullptr), - eth_netif(nullptr) +W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst) + : eth_handle(nullptr) + , eth_netif(nullptr) { gpio_reset_pin(static_cast(pin_rst)); gpio_set_level(static_cast(pin_rst), 0); @@ -26,8 +30,7 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i auto bus_config = std::make_shared( static_cast(pin_mosi), static_cast(pin_miso), - static_cast(pin_sclk) - ); + static_cast(pin_sclk)); spi_device_interface_config_t device_config { .command_bits = 16, // actually address phase @@ -65,11 +68,11 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); mac_config.rx_task_stack_size = 4096; - esp_eth_mac_t *mac = esp_eth_mac_new_w5500(&w5500_config, &mac_config); + esp_eth_mac_t* mac = esp_eth_mac_new_w5500(&w5500_config, &mac_config); eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); phy_config.reset_gpio_num = -1; - esp_eth_phy_t *phy = esp_eth_phy_new_w5500(&phy_config); + esp_eth_phy_t* phy = esp_eth_phy_new_w5500(&phy_config); esp_eth_config_t eth_config = ETH_DEFAULT_CONFIG(mac, phy); ESP_ERROR_CHECK(esp_eth_driver_install(ð_config, ð_handle)); @@ -90,18 +93,19 @@ W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, i ESP_ERROR_CHECK(esp_eth_start(eth_handle)); } -W5500::~W5500() { +W5500::~W5500() +{ // TODO(LennartF22): support cleanup at some point? } -String W5500::macAddress() { +String W5500::macAddress() +{ uint8_t mac_addr[6] = {}; esp_eth_ioctl(eth_handle, ETH_CMD_G_MAC_ADDR, mac_addr); char mac_addr_str[18]; snprintf( mac_addr_str, sizeof(mac_addr_str), "%02X:%02X:%02X:%02X:%02X:%02X", - mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5] - ); + mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); return String(mac_addr_str); } From 12b9542f72a0f262be58d269cde3cb26d413e819 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 26 Sep 2024 20:15:19 +0200 Subject: [PATCH 094/127] Added device profile for OpenDTU Fusion v2 PoE --- docs/DeviceProfiles/opendtu_fusion.json | 59 ++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/docs/DeviceProfiles/opendtu_fusion.json b/docs/DeviceProfiles/opendtu_fusion.json index f33dc47d..bb1e4108 100644 --- a/docs/DeviceProfiles/opendtu_fusion.json +++ b/docs/DeviceProfiles/opendtu_fusion.json @@ -1,6 +1,9 @@ [ { "name": "OpenDTU Fusion v1", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -25,6 +28,9 @@ }, { "name": "OpenDTU Fusion v1 with SSD1306 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -54,6 +60,9 @@ }, { "name": "OpenDTU Fusion v1 with SH1106 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -83,6 +92,9 @@ }, { "name": "OpenDTU Fusion v2 with CMT2300A and NRF24", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -115,6 +127,9 @@ }, { "name": "OpenDTU Fusion v2 with CMT2300A, NRF24 and SH1106 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -152,6 +167,9 @@ }, { "name": "OpenDTU Fusion v2 with CMT2300A, NRF24 and SSD1306 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], "nrf24": { "miso": 48, "mosi": 35, @@ -186,5 +204,44 @@ "data": 2, "clk": 1 } + }, + { + "name": "OpenDTU Fusion v2 PoE", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], + "nrf24": { + "miso": 48, + "mosi": 35, + "clk": 36, + "irq": 47, + "en": 38, + "cs": 37 + }, + "cmt": { + "clk": 6, + "cs": 4, + "fcs": 21, + "sdio": 5, + "gpio2": 3, + "gpio3": 8 + }, + "w5500": { + "mosi": 40, + "miso": 41, + "sclk": 39, + "cs": 42, + "int": 44, + "rst": 43 + }, + "led": { + "led0": 17, + "led1": 18 + }, + "display": { + "type": 0, + "data": 2, + "clk": 1 + } } -] \ No newline at end of file +] From d770566aec64b25a881a83f40012f4406404a425 Mon Sep 17 00:00:00 2001 From: vaterlangen Date: Thu, 26 Sep 2024 21:22:08 +0200 Subject: [PATCH 095/127] increase chunkSizeWarningLimit for webapp build (#1287) increase from 500k (default) to 1024k in order to get rid of the warning messages. --- webapp/vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/webapp/vite.config.ts b/webapp/vite.config.ts index 7c9c5805..fcf7fe78 100644 --- a/webapp/vite.config.ts +++ b/webapp/vite.config.ts @@ -45,6 +45,7 @@ export default defineConfig({ outDir: '../webapp_dist', emptyOutDir: true, minify: 'terser', + chunkSizeWarningLimit: 1024, rollupOptions: { output: { // Only create one js file From b43383007a637decac54a331d4b5feecf8741426 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 27 Sep 2024 17:32:28 +0200 Subject: [PATCH 096/127] Rename NetworkEventCb to DtuNetworkEventCb to prevent further upgrade issues --- include/NetworkSettings.h | 6 +++--- src/NetworkSettings.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/NetworkSettings.h b/include/NetworkSettings.h index 6c1c217d..ea3869cb 100644 --- a/include/NetworkSettings.h +++ b/include/NetworkSettings.h @@ -24,10 +24,10 @@ enum class network_event { NETWORK_EVENT_MAX }; -typedef std::function NetworkEventCb; +typedef std::function DtuNetworkEventCb; typedef struct NetworkEventCbList { - NetworkEventCb cb; + DtuNetworkEventCb cb; network_event event; NetworkEventCbList() @@ -54,7 +54,7 @@ public: bool isConnected() const; network_mode NetworkMode() const; - bool onEvent(NetworkEventCb cbEvent, const network_event event = network_event::NETWORK_EVENT_MAX); + bool onEvent(DtuNetworkEventCb cbEvent, const network_event event = network_event::NETWORK_EVENT_MAX); void raiseEvent(const network_event event); private: diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index d1edcc82..8e0322f9 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -106,7 +106,7 @@ void NetworkSettingsClass::NetworkEvent(const WiFiEvent_t event, WiFiEventInfo_t } } -bool NetworkSettingsClass::onEvent(NetworkEventCb cbEvent, const network_event event) +bool NetworkSettingsClass::onEvent(DtuNetworkEventCb cbEvent, const network_event event) { if (!cbEvent) { return pdFALSE; From b85e0ab574bf11df48b13b13aece81ee94f1b9ac Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 27 Sep 2024 17:35:33 +0200 Subject: [PATCH 097/127] Add default values for ethernet pins in case they are not defined for a specific board --- src/PinMapping.cpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/PinMapping.cpp b/src/PinMapping.cpp index 7514af5f..67b68a15 100644 --- a/src/PinMapping.cpp +++ b/src/PinMapping.cpp @@ -108,6 +108,30 @@ #define W5500_RST -1 #endif +#ifndef ETH_PHY_ADDR +#define ETH_PHY_ADDR -1 +#endif + +#ifndef ETH_PHY_POWER +#define ETH_PHY_POWER -1 +#endif + +#ifndef ETH_PHY_MDC +#define ETH_PHY_MDC -1 +#endif + +#ifndef ETH_PHY_MDIO +#define ETH_PHY_MDIO -1 +#endif + +#ifndef ETH_PHY_TYPE +#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#endif + +#ifndef ETH_CLK_MODE +#define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN +#endif + PinMappingClass PinMapping; PinMappingClass::PinMappingClass() @@ -261,5 +285,7 @@ bool PinMappingClass::isValidW5500Config() const bool PinMappingClass::isValidEthConfig() const { - return _pinMapping.eth_enabled; + return _pinMapping.eth_enabled + && _pinMapping.eth_mdc >= 0 + && _pinMapping.eth_mdio >= 0; } From 8b05bd22b53df9d8ae6e6b9772ed481a5c040fee Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 27 Sep 2024 18:27:26 +0200 Subject: [PATCH 098/127] Take care of different signature of ETH.begin method in Arduino Core 3.x --- src/NetworkSettings.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index 8e0322f9..33de9255 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -37,7 +37,11 @@ void NetworkSettingsClass::init(Scheduler& scheduler) _w5500 = std::make_unique(pin.w5500_mosi, pin.w5500_miso, pin.w5500_sclk, pin.w5500_cs, pin.w5500_int, pin.w5500_rst); } else if (PinMapping.isValidEthConfig()) { PinMapping_t& pin = PinMapping.get(); +#if ESP_ARDUINO_VERSION_MAJOR < 3 ETH.begin(pin.eth_phy_addr, pin.eth_power, pin.eth_mdc, pin.eth_mdio, pin.eth_type, pin.eth_clk_mode); +#else + ETH.begin(pin.eth_type, pin.eth_phy_addr, pin.eth_mdc, pin.eth_mdio, pin.eth_power, pin.eth_clk_mode); +#endif } setupMode(); From 0fcf6061c1732db94809c16bc2296d2cad9b2289 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 27 Sep 2024 18:30:44 +0200 Subject: [PATCH 099/127] Added required include to work with IDF 5 --- include/W5500.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/W5500.h b/include/W5500.h index fc0c6614..f62c3312 100644 --- a/include/W5500.h +++ b/include/W5500.h @@ -2,6 +2,7 @@ #pragma once #include +#include // required for esp_eth_handle_t #include class W5500 { From d758a347ebfc49a0a6be1ff55015efd35ec8c745 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 27 Sep 2024 19:36:52 +0200 Subject: [PATCH 100/127] Update espressif32 from 6.8.1 to 6.9.0 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index f9410c91..bc81b1a7 100644 --- a/platformio.ini +++ b/platformio.ini @@ -19,7 +19,7 @@ extra_configs = custom_ci_action = generic,generic_esp32,generic_esp32s3,generic_esp32s3_usb framework = arduino -platform = espressif32@6.8.1 +platform = espressif32@6.9.0 platform_packages = platformio/tool-mklittlefs From 759f899620beeb5fb071793e730880439584b774 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sat, 28 Sep 2024 00:50:57 +0200 Subject: [PATCH 101/127] webapp: Update dependencies --- webapp/package.json | 6 +- webapp/yarn.lock | 140 ++++++++++++++++++++++---------------------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index ac5161ff..908058cc 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -19,7 +19,7 @@ "mitt": "^3.0.1", "sortablejs": "^1.15.3", "spark-md5": "^3.0.2", - "vue": "^3.5.9", + "vue": "^3.5.10", "vue-i18n": "9.13.1", "vue-router": "^4.4.5" }, @@ -27,7 +27,7 @@ "@intlify/unplugin-vue-i18n": "^4.0.0", "@tsconfig/node22": "^22.0.0", "@types/bootstrap": "^5.2.10", - "@types/node": "^22.7.2", + "@types/node": "^22.7.4", "@types/pulltorefreshjs": "^0.1.7", "@types/sortablejs": "^1.15.8", "@types/spark-md5": "^3.0.4", @@ -44,7 +44,7 @@ "typescript": "^5.6.2", "vite": "^5.4.8", "vite-plugin-compression": "^0.5.1", - "vite-plugin-css-injected-by-js": "^3.5.1", + "vite-plugin-css-injected-by-js": "^3.5.2", "vue-tsc": "^2.1.6" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" diff --git a/webapp/yarn.lock b/webapp/yarn.lock index f804bf6d..9d68694e 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -507,10 +507,10 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/node@^22.7.2": - version "22.7.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.2.tgz#80ed66c0a5025ffa037587fd69a816f29b54e4c7" - integrity sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA== +"@types/node@^22.7.4": + version "22.7.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.7.4.tgz#e35d6f48dca3255ce44256ddc05dee1c23353fcc" + integrity sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg== dependencies: undici-types "~6.19.2" @@ -667,13 +667,13 @@ estree-walker "^2.0.2" source-map-js "^1.0.2" -"@vue/compiler-core@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.9.tgz#d51fbfe6c18479b27fe6b1723344ba0832e4aacb" - integrity sha512-KE1sCdwqSKq0CQ/ltg3XnlMTKeinjegIkuFsuq9DKvNPmqLGdmI51ChZdGBBRXIvEYTLm8X/JxOuBQ1HqF/+PA== +"@vue/compiler-core@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.10.tgz#dc382e4173c5ad6d309887f5cb02983dfd88cfee" + integrity sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA== dependencies: "@babel/parser" "^7.25.3" - "@vue/shared" "3.5.9" + "@vue/shared" "3.5.10" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" @@ -686,13 +686,13 @@ "@vue/compiler-core" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-dom@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.9.tgz#6fa2b7e536ae4c416fc2d60b7e9e33b3410eac7a" - integrity sha512-gEAURwPo902AsJF50vl59VaWR+Cx6cX9SoqLYHu1jq9hDbmQlXvpZyYNIIbxa2JTJ+FD/oBQweVUwuTQv79KTg== +"@vue/compiler-dom@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.10.tgz#233c660289ce289a48e8fe759b07b95f607cd98e" + integrity sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA== dependencies: - "@vue/compiler-core" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/compiler-core" "3.5.10" + "@vue/shared" "3.5.10" "@vue/compiler-dom@^3.4.0": version "3.4.21" @@ -702,16 +702,16 @@ "@vue/compiler-core" "3.4.21" "@vue/shared" "3.4.21" -"@vue/compiler-sfc@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.9.tgz#020b7654f1fde7c606a49ec4e4d2838e8e1a43c5" - integrity sha512-kp9qawcTXakYm0TN6YAwH24IurSywoXh4fWhRbLu0at4UVyo994bhEzJlQn82eiyqtut4GjkQodSfn8drFbpZQ== +"@vue/compiler-sfc@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.10.tgz#95e262a5ed836521a5aeee9492cc265ad3f1c787" + integrity sha512-to8E1BgpakV7224ZCm8gz1ZRSyjNCAWEplwFMWKlzCdP9DkMKhRRwt0WkCjY7jkzi/Vz3xgbpeig5Pnbly4Tow== dependencies: "@babel/parser" "^7.25.3" - "@vue/compiler-core" "3.5.9" - "@vue/compiler-dom" "3.5.9" - "@vue/compiler-ssr" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/compiler-core" "3.5.10" + "@vue/compiler-dom" "3.5.10" + "@vue/compiler-ssr" "3.5.10" + "@vue/shared" "3.5.10" estree-walker "^2.0.2" magic-string "^0.30.11" postcss "^8.4.47" @@ -741,13 +741,13 @@ "@vue/compiler-dom" "3.2.47" "@vue/shared" "3.2.47" -"@vue/compiler-ssr@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.9.tgz#e30f8e866589392421abcbfc0e0241470f3ca9a6" - integrity sha512-fb1g2mQv32QzIei76rlXRTz08Grw+ZzBXSQfHo4StGFutm/flyebw3dGJkexKwcU3GjX9s5fIGjEv/cjO8j8Yw== +"@vue/compiler-ssr@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.10.tgz#195f83ae7c52174be37fd7a4a0217132c1c0ed11" + integrity sha512-hxP4Y3KImqdtyUKXDRSxKSRkSm1H9fCvhojEYrnaoWhE4w/y8vwWhnosJoPPe2AXm5sU7CSbYYAgkt2ZPhDz+A== dependencies: - "@vue/compiler-dom" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/compiler-dom" "3.5.10" + "@vue/shared" "3.5.10" "@vue/compiler-vue2@^2.7.16": version "2.7.16" @@ -801,38 +801,38 @@ estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.9.tgz#8864a55e4c495666f3c679beb8f734489eeb042e" - integrity sha512-88ApgNZ6yPYpyYkTfXzcbWk6O8+LrPRIpa/U4AdeTzpfRUO+EUt5jemnTBVSlAUNmlYY96xa5feUNEq+BouLog== +"@vue/reactivity@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.10.tgz#81140ef0b05096973356d3c8fc32f48c79940b9c" + integrity sha512-kW08v06F6xPSHhid9DJ9YjOGmwNDOsJJQk0ax21wKaUYzzuJGEuoKNU2Ujux8FLMrP7CFJJKsHhXN9l2WOVi2g== dependencies: - "@vue/shared" "3.5.9" + "@vue/shared" "3.5.10" -"@vue/runtime-core@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.9.tgz#e47f890734039f77dac86328cc059cf8188c5729" - integrity sha512-YAeP0zNkjSl5mEc1NxOg9qoAhLNbREElHAhfYbMXT57oF0ixehEEJWBhg2uvVxslCGh23JhpEAyMvJrJHW9WGg== +"@vue/runtime-core@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.10.tgz#e902eb2640fa6ab4cc4589af263818a898812668" + integrity sha512-9Q86I5Qq3swSkFfzrZ+iqEy7Vla325M7S7xc1NwKnRm/qoi1Dauz0rT6mTMmscqx4qz0EDJ1wjB+A36k7rl8mA== dependencies: - "@vue/reactivity" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/reactivity" "3.5.10" + "@vue/shared" "3.5.10" -"@vue/runtime-dom@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.9.tgz#088746207f74963d09b31ce7b79add0bf96aa337" - integrity sha512-5Oq/5oenpB9lw94moKvOHqBDEaMSyDmcu2HS8AtAT6/pwdo/t9fR9aVtLh6FzYGGqZR9yRfoHAN6P7goblq1aA== +"@vue/runtime-dom@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.10.tgz#dca26d7761147373c6929f1370cf2733aa19f3de" + integrity sha512-t3x7ht5qF8ZRi1H4fZqFzyY2j+GTMTDxRheT+i8M9Ph0oepUxoadmbwlFwMoW7RYCpNQLpP2Yx3feKs+fyBdpA== dependencies: - "@vue/reactivity" "3.5.9" - "@vue/runtime-core" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/reactivity" "3.5.10" + "@vue/runtime-core" "3.5.10" + "@vue/shared" "3.5.10" csstype "^3.1.3" -"@vue/server-renderer@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.9.tgz#3bf0736001623960d120ef01dee5045fad6efadb" - integrity sha512-tbuUsZfMWGazR9LXLNiiDSTwkO8K9sLyR70diY+FbQmKmh7236PPz4jkTxymelV8D89IJUGtbfe4VdmpHkmuxg== +"@vue/server-renderer@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.10.tgz#90462492c30c8cae499b9149d1b90af2ebfe7599" + integrity sha512-IVE97tt2kGKwHNq9yVO0xdh1IvYfZCShvDSy46JIh5OQxP1/EXSpoDqetVmyIzL7CYOWnnmMkVqd7YK2QSWkdw== dependencies: - "@vue/compiler-ssr" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/compiler-ssr" "3.5.10" + "@vue/shared" "3.5.10" "@vue/shared@3.2.47": version "3.2.47" @@ -844,10 +844,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== -"@vue/shared@3.5.9": - version "3.5.9" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.9.tgz#713257216ea2cbf4e200cb9ae395c34ae2349385" - integrity sha512-8wiT/m0mnsLhTME0mPgc57jv+4TipRBSAAmheUdYgiOaO6AobZPNOmm87ub4np65VVDgLcWxc+Edc++5Wyz1uA== +"@vue/shared@3.5.10": + version "3.5.10" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.10.tgz#066f7dde31e09d700123e92e63eaa126cda21a17" + integrity sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ== "@vue/tsconfig@^0.5.1": version "0.5.1" @@ -2619,10 +2619,10 @@ vite-plugin-compression@^0.5.1: debug "^4.3.3" fs-extra "^10.0.0" -vite-plugin-css-injected-by-js@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.1.tgz#b9c568c21b131d08e31aa6d368ee39c9d6c1b6c1" - integrity sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ== +vite-plugin-css-injected-by-js@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/vite-plugin-css-injected-by-js/-/vite-plugin-css-injected-by-js-3.5.2.tgz#1f75d16ad5c05b6b49bf18018099a189ec2e46ad" + integrity sha512-2MpU/Y+SCZyWUB6ua3HbJCrgnF0KACAsmzOQt1UvRVJCGF6S8xdA3ZUhWcWdM9ivG4I5az8PnQmwwrkC2CAQrQ== vite@^5.4.8: version "5.4.8" @@ -2691,16 +2691,16 @@ vue-tsc@^2.1.6: "@vue/language-core" "2.1.6" semver "^7.5.4" -vue@^3.5.9: - version "3.5.9" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.9.tgz#a065952d7a7c0e2cbfec8e016582b055ab984357" - integrity sha512-nHzQhZ5cjFKynAY2beAm7XtJ5C13VKAFTLTgRYXy+Id1KEKBeiK6hO2RcW1hUjdbHMadz1YzxyHgQigOC54wug== +vue@^3.5.10: + version "3.5.10" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.10.tgz#14be9d4655e07be8d5e8295d017815ed14337f96" + integrity sha512-Vy2kmJwHPlouC/tSnIgXVg03SG+9wSqT1xu1Vehc+ChsXsRd7jLkKgMltVEFOzUdBr3uFwBCG+41LJtfAcBRng== dependencies: - "@vue/compiler-dom" "3.5.9" - "@vue/compiler-sfc" "3.5.9" - "@vue/runtime-dom" "3.5.9" - "@vue/server-renderer" "3.5.9" - "@vue/shared" "3.5.9" + "@vue/compiler-dom" "3.5.10" + "@vue/compiler-sfc" "3.5.10" + "@vue/runtime-dom" "3.5.10" + "@vue/server-renderer" "3.5.10" + "@vue/shared" "3.5.10" webpack-sources@^3.2.3: version "3.2.3" From b206cee820d610bf6b33d49f1f0f82933e64a62d Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Sat, 28 Sep 2024 00:52:28 +0200 Subject: [PATCH 102/127] webapp: add app.js.gz --- webapp_dist/js/app.js.gz | Bin 186480 -> 186504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/webapp_dist/js/app.js.gz b/webapp_dist/js/app.js.gz index 35a47f59f398217885b8a6c5ae00083c2d5cff70..b25783cac7401b735a79162fe5146d5fb55a3bd0 100644 GIT binary patch delta 130341 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

f{VmSbz2MJ<-z#hS}vLneoSYGKM7!R$+zU zLJh!!6ga8R6iQtf6scc>$<`~$(T!EKeg8YR9w=It$VLg(sH8W{3&GvjFlA-=ILY(V zWcc>F%;tRlpsdDmlLKr85ohia^#g7Df_RN}LT~$3_X8XHm{%G+f4yNfL|e~-3ikBGB!nR#C^4-vqFYR6r@=4`e^tSd8t&0FhiTRG!QHS*?$>$ z|LR#2m;@nMNMVvNQqZO0aeR~tE$$MMi${Yg+_ z>M0wwlwlZwoxZ81Y}QeR;j&+Xs5?u+TgD3+6d*2-3N#Yc(j{aKKnbMJr3B(LLBLop z*)u^-hxMzh{E73~PM)1Pnw+9pb5g zzi57lQ`UYt6uBb-b?Y8!&l1OMTG{KErP4vT#EIV{jkO4w77l@D0eyADn(>6z3E?v! zZrYg=-XcTaePV3!PkbL$*)9;eY2XlMH!Y>U8-1oPL+HZphxyZ>h%JkUcgJL-&MxLcA5M zw>=Sb`B2+VX|cbEyOuJRUB?Wdc~tx&f_H*ICxAIL+N;;*WCh|KbkFXJwDIvjTw}Ih zM9@t$2y~X6Y16n`P-hkZa90iZ>qsmXdj)x-wWO-R{n^)kM&CImyMGUhK!B*UPnRq5 zLrS=_J%mfbuY+I@Z!#9HZ_(SoilD%?21^aQ3Mq~>gpv&iE%SXj5K-oAhF_Zlhiy1g z$BP9&f{)@4{rzKS0DcfFNOr5w7c8+*|75X1pR;rAl61SD_&%y3&>4@mYT{(ugSg16 z@^;sYDNEv78u@*K5`W3!NFK*35Q7~O>4gyr_M`zYX0@N%u8tv4`v5{fy}uF<=Z$ZM ztGX?1|jWPBj6A9nX zdMCh!WO%9BrYbB4mHGb9BFNAXqKv8H`CEPwkwclqBJur%e*N?0)?6+B8Quvx3G9dN z$>_8T9>SL_Su7xIfbV}(fPj<1x8Fo}@7K0!J$)raz8_k9NY7<_WZ&KC-i3G~Y_-K( z4G7B5q5)H~3cb#x(6WA5qJUWkW3Yf8!EzrSe@2#mlI5x70_cKvF>Bn?5>GI=1yunz z$;0Tk`k)NS^86L`HmTtnDmg!i-~xkNtZVc;-KIBc z?I%dRj|8i^cu--(d}NHKAz>7;au*y`MkRw41IlcB7T}EmH&uleR=03l0&ZASi##s1 zIg<7HkcS!(mlGn++cu~*i55AKbl)UpHt8FaBy7^xCJBE`Sdscbmw!ZN&7N%V{dgNq z8&N$`@z&O*5uk^NsfaZNM8V)tz3)RI@bP$x(MNXi z6!Cw35TQ4c7-!v6V6>feSTN(rD9YHBt4WcTQOSs~<}kZwS<0g!%LE)zQN`$xN~4sW z))7;pDKiqqkxtjteqsfTV`eX)(HTqY>u7YLi|p}I$>Jh9F;!6Dl;{IX=?zb#Lspq^ zD$y>JT%=q^&-9O10D5im3I)=HwG*C#yfgQ|x(_#!@s za2l3r%iw-_Ap?p0>tZ3$QzpK{-S57lr;s6rZ?HZV3S1ZFZtRmSwi+1)p@m`mKx2RZ z5H`r|W6YOfgi&dVgpj+r6|mH89^ZBEG`5faB-IWH2>)lvf? zPf2-7n+I}~@#`W$+$CAQ6w9!`evE%5o3$O|vN^_OJ;u<}e05CoFq1(JHwei{ocq-Tw{vHSb4ebXn1e?I$eZj`?_pM-O@b{Hq7x4FqVDI7YW5Ivk!rwQ7 zy@J2D1p5GgUkbJhf1eBXC}gu>4=;XuE80o$)JA(cMGjK`jv@NZUK1a4-A3VTZl(!u z_Ap0^e#dHAyXd<9L(f1=M#KnE@wk}v}4(KMmOdZ3at& z;)9Sq@_iJpJBEiAO#6ch^!a~dLq2G&zTu%kBhW~p)2uc!l&hxlvKHZXd);vGi$pUN zJxKD{M!2aZ#77+VKFER}l4R9h+7Ts#i8VdwuiofqR}oE4vzpg-30uBLI28#U*FWtp zR!24s8YNAm&`XMA#@IM`>E6fY)9igFz{*rxii4%8vdIP07awAmGQEH0qd6t-b2;XR zN_(-FG=CuN>rY85LI73ZRWakb_jfBm#=a9iLJLIRgzKaCjlZ zM+HEa2;4OiS#Fq{f^flf-4<>C%UQxPn(_K0~bnjbZndlqK5d`1z$~93tlrXOf@iDqt#-> zo8kfA_%x^<(3O80*)OlF8!tHUKb>D{pdh4N<8w1#~HAE50)FWa;ZU%+Jts#fV za?k}f66@vFC|EB#r(h$IPMsiQ2^$i{wzn&A>2@;YZ=M$^Uo1|Fz=auC4u=tgk#ii! z!@)4_mS^K`gh1FKdXh69CKBIQ0~J&(1JHBDGB$q%S$=1W!B@Y{r$zNW0+*Rtl@au|Mlvb*v1h>`K5`3A>)|BEUBFYw~*`9p5kY2SIOyF$)%pGe_%w zCI@G-XZElCS|kUWrs&oUq*g-IOA36Ztfn~?tai&dBO~|8Ixwgq18_|MZKd%@XX9;J zg)40O`s_xBEp%%E_Zrlj6A66rxkSxEbGUy_WXL{9P|AG5k=lu@r}9v)AQX-=hN25s z=t=aG<=U{UhMpJ148cNp6%=6&(xrwDW56aEJpf79t9TD`4p2*GX%OIj0Q?6?qA&!U z&oC17=Vuv^(#5of6+p1y%hLCU;56W<01O1WIT%7KxA2ahG(6}a$gl*gzHNNG)h~a( zPYh>MxS+cP+6_|Ocvpg$nw3l*mB*mxC)sUi!#p|{i(R?i#U|GvXW}Ii$381am=%H< z&AfH!FYAnn5r^UGF&ewa`oq58NqV5od7OZq=>;AfVI9k&n3a1}9IrKq84x5*l5qx& zbFL%_AVZ3O~ZV_4OlIDSg!JDO)$5T$Vm`An|&y6|@0wiknEGE%*oCt*n}9czDU&7ain z(zP}L@0dfwB&2$YcU;>R+)wk=hU_>JOdiL&A%Nnk0BMQdm4+7KEyHEMBLIIfr%zUM zi?s>n8Y$sG*SAjJ$JI^`kWP6)!g8h55>H6q?-;O?N3lMQ|0%%c^pUkMYeOr7(v}S< zt##lOlt=AbH_Q_BybQSKE;c_LiIoD9v>D31Ub@%nq9k?&MhbB@yod>@0T2r$=B!rH$8P6+HbqitW*RuZ}_;2N!APl%R1 zVIRZUx?Zg1Iu~3#oIei2-pR?E*N;w4EZv)DqT~`Z1CmdRGthsQ&Op=xWIr;}q(?ai z&L%4L^DDS6<@#Z_nBvPJT!ZjU1;2C|Oh_5=Q^4s*Qwl|uo#vSsM>EK)aWK&&P8hWZ z^tjnjqs5~!V3p5eE8)X~tDrv_{Yi{Jgp!`~xYJR+^g<-lY`AN{E*b~y;3EJK+8Gzd z5r&L^f}7H>XkdSrp?FZ^klEe)81e>3hj8;jPWsE0uekSDB8o#M`3Q!^fV86&1d$pW zG1S-yS-_3Ym|NBXDZHYHF4n%t3KJXJ_fG<1Qj$gvQA96X{)LPyOcvuwXxmQ*yKAyV z-}>obf8C4V+i(1Iu>cc*l*pqjKtX*qF9UFlMS~Z5PB@#>17Bc6tsAUMD z(hteyE`xtl2C^|8XMGG(12AKDxKf!~nu=tjBGnHiRU`;PDf?hSv}C*Sn%RyY%<mL^MAkp{m?lhs0FqDobE~ZWMu958U!L#7X`gw$(sS}p$8O;MFz4o{;YqOm23tEc9TIGOqqj(i?+Y@C%*sQ zowF(73!zQ7fHwpY3adhP=KE+4q~CV6)V&+Bw@@kL2G7Taz_ZO04F&$s1Kb_t6}qy1*3S@E5sYP);_F7|Do@{DgxMPJY24} z+fjcJ7=VR$8n2UVqu(ixptQzW2#lHUci@DSWmYPlE`x-P!~Uu7k2Q|tkpTBAQ&_fB znB$NI&{&ua-QImtA^_g zeZbqpxKDHUQWD;s1><ZHYD)&mKVp4&QylZX~WLqzON2RoqdZjJ(*vLO!SEkG_L06U5D#o{3j z@Q~JU<2ClPday--dB63m@E{nn8Jm9)e!?)%_x%d?5&EX;K%4LvP>LZq<4wv^QwseC z>i!1GV1`m%D~ZaSerP4t+1+Bn`5C%uDMti&)~9H#uK;( zfOT2s`cM< zXTxx@_}iAB*T#I{Zwc~;k?5ZVcq-Clnq3NFu_ZfjwyC)TcIawMzlzmcz6wFMr$ug{ zm`8?J;msb|X*hXS%7|-af@OaU4og{1qCr@Od1IPU0>TQG<1}aCvOd!Uy)$Q;GSEf+ z7a}FF7nViSbVxG?23Sk%*Z^ozL;(V)vCteArfY79!UZ;|)#wVfnlYCEN0VhN`V&+& z3qlSu7NzoBB*pt{b5c}(j2yW#*9Mo^mGc|D@ts(+?e2sE9voAuHrIZ!^9(Bn? zxe1C!DuOMegr-6nUpp#g(})@~{ZPt!;YgyCeLrqLEdyI710 zjRX*$UXoLq6!iO9sd-d-cx`bn_~=-vLc-}#BM0cu>6HHJKc|&mKKhSM)<4ojw?WU6 z8k--wKCb_k)YyMzKY?u+&rhOc$r3bn0dxcY0K*PcwZuP2#{*dcg6JV$!-qUbtOzh! z;>|Kc&KK-sQD}_2oK_2XwSZW7UBB`1qkKb`ffC zZ6A%v_H_}NU*OvW7iOF-LmE90e+TR2r?_ybL)j?!8r-yy8nQm}9j5D~&j-PQB!gt) zSRum1Ntc|NhtZD20BYKX-1nc75*M2RfW_LtZP2{a)scHqLeE|Mg0(}dvHPyWWLOl8 zOEcNzLP3ARaS5tg_Z#k(jHT6&4qV}+^=J#u6fG82Ef#aDyPnhbcbhroiJDqvIO4X^MZ`rU9?HMGo$Ih6KeK%_tUw#YB&f zNldxK|BXtTwj8KAf*jl%mLbb+Mc7z0C6s&&mvgztXF<-MK(-DrO!ach4d)P_6hTph z{R^TL#!v*C@FdU)=8nkTtkDxF=MZ-ebQsIEXZjjK;UHBqkp9k%m72{`vYLy_0na*& zvxa|88E@&@1C8sDq_&JhS75^T^9S*k4R#fD!1S(MEK1)mds+(v!kG>Mq2-{HEEc>7 zBw|{kPKVI!+gta)@$*LI+uzy*aLMNuf!E*p`Da|QgpK}{9EoGlWE=_5D*X&ssycSp zmQiYVwwK1AGOP+|7m4q8^n*F?8m>y-Y4U&5mlW3$VqO#D6Bxo{Bmqo=Dq^){Pu5(P z%x$4|$YD=al(Aq)lSttK$*P)1%Qf$Y7Kpa{Z=}`)*UB#R6$Wx!Xv{loKoV+icfxj9 zZ%k|jG{K(bi$xhAIv&vtER9wFr6hmkObymm9jSN-bomyjW`fGdEl^_wKdzTiR49LM z8HS9$ux04bDECvs=hwE8E*S(k55gOgSVA^Nlc_{oN>gJ3evXl}d)uNYb1F?R=!xBUIo5UQ)zSFc>+^ z6fINExd#JqS-~Zw`cZ!c{U|ErvMdpZTd?XvGp5@JWEz$Z!p<|A0v#tZ&@tVId~R5@ zt?w3WG0~QOfv9j`JO_jl=*;Rmz-Iw694KDFJ!MI2SrvS~gbN&a6XqRLkR_pRG_W;~ z6tdY&sMj_|MpIXI0A&FK%4lE&Q>x!(*lCh6sypJy0HEMQa;krf<~lMgS^Zj*FqDh| zsOWg_s6t+%d!VvYaH@;o{U$*o?B`!9pa39N53ucXb%~}3V zw{cye#QxMKAdr8oO7cMj&}!FGzTc5@(`_sUC`f2DexqD>oy;jZ8yJ($b(DZE2X?!$ z80`9%$FiaMuGWQuAR{nbArFX7>sj;-c`tV#RSB5jZU>jUNKAfk`?+36I$K3ReDTM* ze-acka~^@_z?6AMz}0sR#s|;l{p*q}&irC{J@O|Y=YoGHlyl)j|5gi!*VF)&-U3B+ zHp}PJ!EY2*nY!E}bKU!*)v8VA`iA`ZNPCcG6wt}Sn_r(>COfM14IU-gw`#*Y&VN6pFG)o?K^Y&ok#lX`@b_c z403H4NF;wepHtxcXa2RM6#K*`ksm&r4#27s81snLsdwGid_b^)Fb}})oAHk>Db`PpY^Yx7p^GUI2^hc!z*JpYBX>f z6vL|#Tps-^rfn(C=4c>&-qS9Ikue+jOBnR${=?wGkGwlL8g8+aXtZMr-9LH4l_3xO zyPbcmp^yQB0G7niqRPEuvyo^#316EY&9Mw>1@bt0DpQ0SggN(GK>rx<~a~I;F%~A#ljabmadn`FqD7iR$s@I0SPG4Aj}lC3*DnSLs$Mmx#KMT zv0?X@&tZBQhU6mU$r3jJu+#CwCpKN5Pi(eA=?qwo25f!8(w|F%=7FcSt7q1F4HU+~ z@M<*pRilX<-Mcaj)LQse65mnXI6+2)07#0LuUuB-iAyfeL^>gtOtA-K;qqzs>rQ`& zTB`QZXD8{h2EQt9v!L{-m1*0}TGE`Rpyd^m;gF-)R$qYy5bESrb(tr828Q7BLYtrx zGyOsZI$YzDN$QS@6&$6N@88i+(}SK0Q&C19^Cg<m?_NwGbECU z$5k8#x9Ai$jD!1Qd`U@gU4$8Zi8g;epvP*6JI6|8h@IeYmoiaujRKZY=1D&tz;zE~ zl-@+}h*;(g`Q%HSe(GsJ%mI9a;fXP0naxfdX0&qpWNu#kh0n5g-1o#bj*#cdLDHCi@^#Ra}Xh(0;b0K07bZ!^5 zM}g6biY-8p##F|UH5#u$Eq;GTmk2hUzFseO>2P58)LSJC)Kvzms55Xs=HQz zURlM3yo!^JACZ(TTvQ8A27p%=0*5E17{RzQ!TN`M6w39ovgp?|MSp*(^Zi#Kzs#8U zJ4JbTBt+){NI7#d2Sho_#(k9mL*-S5$j!iD%XE@*_gfK~y)s4jF8QPdM7RRPfd|Ae zvAb27xc;8C(b4_-mfk+D;b)(E>JI(Y!n=Qkx%P?7yKZpE}U!jQ};f7MGuX6dlMSa@LJ9+HH* z6O-MLW*Xg0LUwvl20OF*VcOG4qoKkc8{H(#H89ow%q;w0J^qk5CokgM~_7gZ;JQNHwjroG7|9P1ZZ z4UF(T4=C%xgTCq<^EzJUGcTu3GGlOpIpMeu)G`w~<1__IR)wa+RF~`z{{l6MDFuv& z(Fhr2M$Uh+<12vxl`eomK_y)>wZ&6Hn81hBcV0k3?p_ZbsRzD*gqw*86^3(!+xops z`xKn4+~d%1+MG&8ks$?Jp}I(OT-5nsA~F9Fs|z}84ssd3{puT!wi>w9z#hjvO_mw3 zBe@uWi%s-iwb9AMEFFwu$wlb|2bM1Au$J!*d=q~Jty6!FLW$6f{5eqRoG4{(PAB4W zGHo=b^uoK)$)X(cKeM_b9->ZCOvlu}r^bm}C|iI~g(zEK%*kQ9G9W-HcLI$^BfkLh zu;3V1aPpJ{)LF`W!sh;a0KJM>A+qgapj8l(f6ZzR?$N-mz*=$N_NCi_uy%t>O3Pln z#1((wb!`}qBxoEqH$I7BQs?P3j6ZOrjsmuI2r-162OxQ3(1~z06Au3XIB5~^2O_5b z@xuxr({}_P)q=}K`tpCn~agmaJcxN@DeG7>`&d z31~bT0k}zWDp;hi0cV7MO!iH<>o_dT5{@F!l3mg`Fu@?O0bcnB2!w;^ zVk9I}GAE#EGSk6}biR?8=pfm*2xbUNWxi0GlNE0kZzgRXzyxd5lnzT{vc-Qv?!C=4 zFf^hnad-MENK4mk9}De{fKzO8#Z=OepFQ@kkn7!O?Ad$1FSSMXd~mOmRmmGFHvYID zih17wY8v$77<4{*+`0FE&a``!Hje$fR2!3f#<&pEJ3(!-Mnhu>=p_czkTG>}Mt=tM zhg%EKd|)?e0_^!U2NoP1Rp`}Kp0{Z#}SY%l}xcCCWX+3x{hv29loP+Zk5~KpoEUkeu#ioqhFP7aI`m>pHTV(o?ZlGf<_I`29{^*fXZSceNjrtR#G`MH>l;W+?-aJ zsIUShrY&V7#cY4lGP8P26J&skEInTUl`9AAOUZKvLIJp^mLzG2BuPU?WR)PWSgDC9 zXeAa^ixfD!uaixQl&gJCDc%q;?eJhq09!JS9zqRhrUb1pN{u=H9^BG(J;0o!iw?Ze z;9`$U*2Qycy>2%^Ez1SbQ7nU3@CAx6x=dD`R!puQpFV#uRTz@MdvtT+r<4d|XyG#Wx(1Z2}(vQUd_^ z8INx#le0yUgMA@FSJQP*11Vlgz`T3QMrIPo=pkKk4?ye&Zo;T4i{-w=n&OzdO$c2ng|&=a6F6mcV%16>BcIZ%xr)X1pSeKleyj?tY>+) zSJdyN6~~=PmSTHE!}(6^*{U~znz~+w+#x~UgnEA=Y@IW1>n!#5kUbI>Ig)_6OS%Y3 z;T=9?k0hhNqcTIhg$E8-IKcbcOV?{Kw@lY-I+&7&NKiM^3cT4w0gc|2Ouu6%rpAzT#Fn@nFL66witQML64#({2d*vgYR2k>`?T&2 zBZ7ZVBM*N-Y{Rzh62_vkgNId&0(nl*9X2%SLuHrcf%sP4Zg~`at!%u&tP^k2CM-!d zqzPJZ2h1pp93a9{FtFR6-ChS?P~EJn>YQ6U_qO@%Bc`VG6k@J`(4^7G@HR3f z6Xu0?s_SGbdBX*AR8>?`_?Fl$$ElVvH*8_W`{xCwR?$9CLcP|w^R|@d(sgevze?bX zGJ(p3O6#?HB_P~5?KGelL=SB zMpKN=cB_%eY)+0TDM_O>1Z1V&Su5rG=$ zo>us5dO@6x{DM7+{;QurE^hEkC_V>)MOwncxn;L)2B zczDeOyjzGa-UU-7t2ibAssvmD53LbG5%!N#zW~2)fa!L0dU3gbdT=J(G4E;vgi#v*uA<+JH1rBKzSX$9dHEu|3!If9|tY{&_7 zz5FsosNh->X5vyxP~}C}+%|uV#oO+AN=`wJUS|6smb_m|pI z+wloG>jq40z%rco)p?4}&o&#;dpv5r4mP5Fl4&hMQfIg?GBj$mr7a}?)NfLsI;&yO z*Wmw-dA_6WeafN!tIDomHo^n`ggjTtlg+!D!SbsD7LmvYsJ{g%ohE`t5#>BZ`5|z< z^XMuLadMnj5+b_~rU!qmH(lh&h${x*UdqGgx5?mbGE88hayb84kPGy5WT&my1x>m^ zhc?JS#_NgXk>CZr%I{fKNA^H%UkX(?IT660Jy7f(gO1}x(i&*3|-O2s?b8COi)RD4zE)cwD1G*mf z(8I$Fc9H?Id8nUP@MlQ5KJ1ra7<*dw+#Mv$VeW#XW7E^0GPT85K{u5hW3!as#DE=2 zI6p~jgukY~>Y6RHr}qEx^rxTx@ssjDZkOTHY?&0%JT#{1T)D;gfBd9q6J2pEyK5}6 zFb|VL`Lz5JDcXPGZII~7r*x?V$yE8U48c=CkwsU_BF%Cr5vrKvp>lF``H!D|dJ1Fk ziA#cBr@p#OsDr1ey2p?HyC|8acZ~-9HH&Ns+F+OWix91zU#B{(yickBI%Q`3@6tG$ z+-vGBpzN$@7(iR0uhNaqIPkA8^%ZOS$JGCn4nqI=CtiO9B!}6I?p=S`U9o98!A>6V z2g>jGE%kp%8;xIhQEbD}RKD}6I(eJ=9E?;piK9VO9TLWyavJpw$19Z&D(?LiE=zrO z@qt80z$1iz70*0!fkQ zd-L19UiW_~*tg)HlVdC=*~+YiWEJJWJM^}r__|Z`Fy>lCNX&D!|M@a5qD73j-g$`9 zBA9@ort%n-l&N%*Ze*m_(0?wz2?5Z(KnGOuU*%LR3=(lrSibuJXKNawm>kT+Ye=zW zDhXN*(n$ca)M2oAufWMt&%0#+`D+A=Q^^M)hmcKBd<&>~~a5)=5f@C$-eC z=I=92;NQ{`zRv#$-m&Sl&IW%x%WrR<|F8--&tTp@|3jX&5DjlE9v}bk!qOYdZ|L=; zV2XcCqST5Go1}P?n%7ar+f9{9dd$CahFc`2Z!mmCTmj=&NuT zMk8NM(uDG%D9eeTnP%awGH=Z=ys>u%K0~k3g{o`qiWT3Up&M^7jgMlBMN{fet7zuGWHMEiI(p^a8K?x8GkefObJoxNcba6t zLWQbvv_q=w}2GlKZOYb5-{c zkv-v;ggEkt>aXF|=LigxPtpgKsPkMMkx2x+Wv1{G`Mb~8-qSB}lzdjpft*J2&h3AK z+ukYzf*f z#wQU5t|>tWJfj`PD7Ly zfW`eBNzz%Q_w`WN{#isA(t>~62HxKU^z-UkJ)=^EGx1fA`c`m8174P^dq-L*^o2MT zHB3k`+Hk#u@>s`7{s@c~$FmvV7P($NJ_8)eq5y54X-&NhqWzaa0rb$FruSbL+Lm`i zWCF@KT1C1z;%c_Ant~ft6R#?^?n=RIQ0PqvSvX@zx}fF~q!7A#h5vtiuMm-qMu>iL zbzQG4ZU)Z@URPTL#TVk{$Nd14vgQ6&1U8!+YA}QIG@;eMf6dZS_6Rz29(DQ@C5wM0cvj&X(uK4k!GPT) zs!k3fpWRfEQke^_*;O1ofJOyqlzL!F44M>P2CmzH#JY$^{x|~XH9{W<$ZUoyR4QKh zER3@7=>9oSC$k{A3005PksweTLW$Koh-=l-Q#YhDA9XK*Ge*^2sV!6HpQ6|r>jwIg zI->dEC;0~nw`G4~3yA)*Vju%3TCp6o2FTEZ^GYRmfaOq+3zMlz9?BT@org%@O*rb} z<4h<4Cr+`cc#GXlGLrh(WOQs&J~q*2Ljt-n^5LNfl=Z$8fWlG@U?0{%QGgE}%3xs7 z*6XMLw0@sHW#;Z8zG8o%c+bcr09sGK0tILlxuBVE^3naFC(P6aVH5UpTj9I z<)Ey7?ZgQEUyzt2kx#`|?3~_<^c0sWl}k&s>R#4pMCE}qM0cuv;hP3^F@a-Nf-l@u zzQ>)h7J7dl81CSb?cAZ;G?<5`N#bO5}c-_^4sMfOQ~?x68?a zmi`nZp&sg|y1oJPK1!Tb;!tQ*O>Nk+X$OB!FK)~^7U1;&^F-e~w(FN!_G?2{4AgOv zEh*Koq$FlU}n3Za}2Q_hsOll|-VBdgXw0 z!MlM=%z;5MDY954YCemuflU#_@OK^-fjS~5k-vgV73EOFlXN=+eV8n~WnA>oWG@Ws z8WgU>_?kvh8kBmqT4ullzoeR0@Ns`gvIojNS^PGd9@95J&pH~NO0NB%0zC!QMSlVB05BwqxR z&;y04<-${gEKBc<Lz&mzHUnBeP~ZpKZp0|!$W_s+ZP^b2?duDcFy7$2&uT>91s^#R-g}nGGsDx=%x=5 z=*5;^2rEJs(TqSy>e7Cx9$E|@bs91JIUV&gv=P&a!4OR)vynH%ADuN>QH4kPVh3N2 zeFy|}HU1oTwS$~He1=`bFDRUTpnIkA=~wE=G*MGj?-qVjne(H)l=^>jffM;24tZHq z7WBcmiECfgw?VTk^e|8LsZ~$ab#`^>Gk)Z-7&RJsgkaAg?h>$Ik}htc^TZ)f975u{ z&TgWsjJ3{0ks7#Y)d|ayAjgOw>ZvaIt0`^&(`W?x)LQbySNmubk(rY`zeLPa68Vu} zE^h=f zp`!#3777gO&>9US14LUVw(hC_d?e1&y=|Ts(prqn5aK&-O)N=7SN2oS| zZdR#eZV|>Yo`yXCGz)HSxJy|q5TraPeU}_!(&+{;74sdzaYTRZ+lxj+Jvx2&{*p?u z*r8cX3kN1oD^Bpolix*C=1XwBR%apZaae&0*9kLX`lFNAJoSg8mxpKk^tXQpxI*MIXFoWBi;-W;J@}YXd4Mk2c+0(28lg8D>bvu^*XM^97fdp= zmq}LpM!9*UzIyiV^62c8N`_GbNLpI7NFDrQa`Kk}yn(Ewq{MvAP8q0aqI#<82>}K_ zA5!KSOd_rEWTKpuh;PZst|eYje0PnL;(kI6<5ISBs?2{7k`*DDW;5MkkYGqE#eOzO z{MTA3scAH%3l3_asw#l_Sh^?ObuyIjSu|n;>Ng=3ibF)ZosRH*>He}WDSg%W8 zS}=U<*3Mt~#RcEjYbM(QR|6K2GU~8X!40GeNKjr%{LEAFQew!H1^TtTs`!~s$`2ry z;B87zs#kvz=t%ATLs5QG@>!6DQ{}d2+OBD15LJ(In#$+kVR;`YpM$&LW;vNf7<(SZ zVUUMY1$2rsrI?{QlyXc}qfAKi^dC%NF#3v06#0viI}}x}7)bV(q3$sjbEuOS$VdPA z;_TF3^BQ4A6ut<1Rb@CoRx69-&%3noE zgfMaBPnv2-6}^@7@aFK#Vg%z51rYx$#s>jf7=bWhr==|U6!8ekRKU@B&5?FLQo+V+ z5Ny2O-IX_SdKJW%vnU^wkKV47a4#9)<>c`p8PFf^@h`Ejc&m*hhx{d~D0_L%|+~?0R@TMB5V&GrPv>N;)1_z5Y@2mX!_M7Okk{JaSvv&!XS(g=i8&!-&e~TEu z3RpI@w4Wo!*@|-fC1HRA%ZrdE04Zpc*kD9NLL;_K9Y}^T^gKYWb=@!^Bx$hSo+72& zE{QOI8VF%v5O4wJUIvq^JP?ISFD>i_W%z%zJT%MeS8XH;aI}JXvL)zNi76^^1@b`1 zfc;QHVtMjJQhJR8+Q+OzCs;vRx%K*Im>H7Eb0FlU6PjQW0CilKlHmd(`S@ZS`dEeqKTBgk)(}Z&kn}yMDb1qD$ze@T2_m#C#$?#ULz%q#@=``F@a^L6jcchI|s{Dj6Qo%7uI&LaYTVhD!ugGCclTI^Y|S;pbYCIQ$Y# zf>;TXAimF|9B-V}alV8s%Y=eNO%>>W<(n{3K%-PaYef`%91CT0<+gW$ z|MZ`~=L2ov0l~gTl6-9phQCkE(UbL$!+-ub`sv5DI{c?P`bpJ)&j+&N;#t6u1DOpa z=P{&epL5`=>ME3*uJmk={<`$H*`~j4ll}HM`#kK^ge?}q5;j{NXJ@E?ECr3QE%wVw zw%aVA-EulCP1kW9@#OM??$nJavZNSJf|`B`Wo|M0Lba$+AKHlRTd((`{4_Y#7D1MW zM+vp8!z)}t-UUK$aW@QorK<#wbFZe|Q+j;R*K4;)Z)Z7-j5e#t`7#c3z0oKFO z8I;ioQO90@xx+6h$Wo$)BLn`x6GAy30)B&w{Q!F+OTjB@nu)IA0VO<(KG+%Ty$ZLWr)E-+I> zXh<$U8D=CM`3aLTAnQ>jfv>84AYJ(FXOIP2rVq3LY={_fw_XP%0{u4BzlwCP2oMwu z60O&P?m1EcK=D+gNfBtNjv@g-meNb-Y%rF9S~2leH2qa6Q}E|Vi}gk$7{o(shiF2| zfsYAZFmvxy1n4f{#Y`-^3j93K9G$!l{MG5%<@nXv`_q@>w}+oRhrHTteSWfkIX-=V^5XEE#>kmyI7_uF<4aMXoDD)NnGQd`J3K!+IXu1GKOP^v zzqmX*8J`?pTp&1<=x=J@Pj|M+nH?)>cJ=;CnvVgLC3q{?iIPl&qvBj5A*V45J^RL60b-> zDMN@MRQ;W)QctOO2nJ}Di{xmhs=g{YV(2JXaE|a~k+y&8FFOmg!cXWnTA)rge?}%d z=lQ%1wBG{rTf-v=w=nmU%{OvZhfM!gau_L31!T!UJb4rf1)34) zgJCf80)izr8mv4(Fxgo(0FDKztU#oHExRcd-9#0(x3DD33wr`*R#ic+0M(x&(9p?c z=0{i6B+03QW5PrkZ`(xG8df;mc+6694-uh{IHVlV`#VoL-~HO;O0A9? zyvQ_L-~2(rp>wjNu*lO~K1Ju$N70nVU0323_`%h6?lXrEvm6|&3G~Ojem4LzAWeP^ zGNi)klNSd7N)A!C;C>~=IQHm&sgyCIl8h!{o9B8RN^b-H#MUL!Ryp`Rk6=}V<~2ia zI_9~NLfHx}c82az#l~v*pdJAHD@vB`qNcsoFdccT4d6{yC4hZVG(9zT)B}RFyV}}lz5OQq@Luil83qZkn`{$Z<4Rq=K*=}rQL%gyU`r= zFmIW!*GWz;=;faGDMJR*2U|h>N`K&odRPyKp$u?m^q=n!u z37_;+BF$oNPUM;CU6bmp^cF;#k=~5dXWk7dr`Rp2%^~lK)aH+OPwMkzOzN}Xj%-Az2ubx_F)zLgijeBqTwlmrumgb#Q@HItK#zR|vr zgk0+6OG)V5=3C0;D?YRl?~_2n*aN(bl0c?5sD9*YLAs=_i3Ushnqn z%BxpB+@>^rAa zG>FmJPV7y}+msZls$_;f0)XmYkQ*P_0u#MImzS@9zCwBwc#e45M0vqjzonr#(kZB= z<00Nhz~7vnYJq4a)t;bZE-*gK{*xguk7$IRUx&?OP34_QLy!xs6w*oi5}btwBO^09v)Yf3VI);|gBAK_x~4&>|X?E%Ueq~2Y=A#;Dl zPJh|@@R9Dxy(xI^5$AHFq0P%TU#1ZI8P07?fpeX{LpT@i%;}TQLUa&#WQ@kvY0;(d z!xu5UO>@xkydwAD>H64zO#i=-RARG@W|0f>BG3+W9muRfrX7=5_l{v)9zBF5%a68OEqzw32D!j0Gwf~s%5?P7Rl$R%WIT1M)-o$LpHq+HxE zBa^K*q$EvHg#|(XC<~Svg&azU;tDLu8+$pVkW zlw4CjIqtbYcKN;^3&5`MPB}`7*n|!GQnX0BCX`%)XG)j7V*wg}pA2Vo=eqT8hVh61 zyZu(z`{O51^jk`z%wYfFeaTe-X>Bp_dJVOn3CbrcDW5C3-PISM&ko1PEt#Uid>bvK_2ednLywV7CI}+ z1P@5gwkh1CBolvzy!BN3eY$FHjNhj#hyB&H%k}TMKG4jc^rv*Hggf`KEwO5;ZXFKY z(E$E19jyxF+NG)wKr%42c{E4?%EX&Lyjt{SJzk3JQ}rpBQ9xONQBGhM>Cwd*+fQZO z+wW^e34J1e>@=WwZlzIB@h8=_i*3;#u)(_O7=wpo;~2W z5*xmJ4NLTjL&nvYyp#!r`XEPtCE%eo;!lVZXY8N*?}elk_% z690j7X^YueJC)x3|LjycmD=+^^Gu@s_}}M5s`SIZeI6a{I*)RG93ZB{*Pc3uil@6w%Wnv;mh&);pO}DQ>vDAo|7$wvr{Plg{7LGTmxr&8PHCnwH7th~ z?;jtZ{fgzET^yl8+>V}+qRU>Q3AdDg;~-R0j(e5YjdN-ma?Gqa_y3B(L5|?aP!YRM z{^Bv5(7?@I)yWGUK^FuMe$Rse^0?$osyg|T$3zM254ZBady&-yZ>{lUgGKzHr44+{*iV`J%1%i>ch?KFQLwl24eB@fd}P*%qHLCD(CK{G6u=Sa20o7Y0@3en!s6YU8b7M_z64 zV8B4w^eX!}0%73p%m9s4ARK{zJw)YTtUiL9#bd!qWY{kTS^!cG_=D8Y64>nliaI>{ z%=)09BDiIsA?<>uDrm1u@k2RlK9Yc7&}c5u-$ojM<6`Fp!@TUgpzOTYxui5&apES{ z#78R68;-~?^l6XIncph2Si`;=?! z9USffZ(I9*4KJ1x*M&}hu6f>Xs(MxO^(n6%yfMg^oqtX3XolrfZbARD9@0&vtaF%! z)v_R{k_`gL?Jo7DtFLQW-PfXF?T9y;Wc>Hko$j#mbyoTJ>o+~@(r*${O&lyCX`_0B z{8g6?E<8q3ACTj^?pcBudSyuez^8J*w9#1P)DN6M8dz;eHDR@Vr+t?&!>EV65KeBU4Q;>TO^jJqwhpogsk zYfCw7O9x_0<%}x=t*)WiyEOakq1&eo2V^4hldl`Iv4P+wF^8 z`a@;LEp7?TCisMZH@Q{{IoMPI6nP!c*>mlH@EO6T0G~sj{r9OxU9;)_bDk&<3+gIL z;L{)Q8x{+Ko$a!ccUjB3l=4=mq0f_6DhBrh3ZeS3{A$9QG}&E?u}v?f~2j`WXIw+0}y9r|V8%LH{< zwoA727iK|!3NjRVL0yXeP`esVgT3=trES?RXXRCm9BOk)m4rfl@H*E@2e+W7v#Hpv zp^Y##YNM*gQXia2A7L{K(FInU&2RaWCxBo72C(g4WEv-pu==aG(a?4*vvBvSMOqfi zs4l6ptgkG)uaqe`2mUIWdcO(1(a-f0i ztSsh#rdkX}hWhHp539KtFIVKdt>$CVp}xAURDg#2x3sX@abA{oM@y^6hx+Oci>pQO z%GHR0vb+acUOhh4R}WZTEdt6bydx-+P9RQioIx?wpe>g(68t}2gaNv#4(|Cj0wZI3 zyF@I{enGjH6LF#2pl`Yar#Xm%5Rtp-wm3DrHPU#}I`wX9kuRW0LH%SL*Ci8g~^ zCS4Y&@2ni4TUBYeH;5jSm31t4U8V+wkPFbQ-^v;4t1%8%jZ9>Ne?k|^;~%`juRNA4 z)K?`ulXmapm0X9*NVy38`wbbs&qtM9$Fxr6hTtD>g#P%+7PWXtPHJ@GOLAgnMXAw$ zwo4y|`<*~za$P=&x4G=x(KIp=K+;mvhV{T*QHE+{`i7jCMOZ@=FOO`zV^9%w4bUv{ zIQP?VSC%s;5p+BnSxNX~$H)AYumLxtKr8MVd&cxQV0JY z7!qLokYA{ugM^*^(6aeXWQr|MTC$~oTjFPMu5f~ow@vW>-WF&jhwvRvI{_V!a_3 z4jEI?jvh%#sFy1Bk-jSYh%x?T4^b6lxIMoZ6dqm!i#ZY}aMGNZ)B3de3b}Rp2)T7w zl3R6EmYqb`v_f=IZS^YI1ylTQRBZo|ioGiGH}Cnj#>-&^XZNUPS06#Dmm=q4;=@$0S@U+-%1BblIP z*VXp!zW1JOwf6f;{1j=|JKFl~j|~6JM}9_5hHqqdc{`>bbCoA_hN+WvNwfJKN&H9d zDjA!j;wmTS!?R2{@c!m?rhuA%@<^DeL*yur=*!O$pSHulzR{rn%t9~VJ3Pt9oJcn! zsV*=6R$czJwOznhzEu-;y9;A~RRlNQ3NK+phR{jL{LzNrS!gVc+>jhx6<5Ltg82o^ z!?8+{ZMZuY3a*N8gjfX7S%0@Q&WDVJjs~dP zRW5Mg*`szrQ%59$9H5l|-q=)B;R6)~(A+CRbwq8g&>rPKEg>h9+}|SOtFl9+5U3@_ z4*}}BP>(@?h_oC3iXl3GFa>R3JAt8xZ`fq%TVyJHC(a?IU>RI%k`euI^2A2p7%kuT zmyL${Bf~jw)At|MA7zm9$&)7}_0`{hSDzGQKD0)fPQU?SnrZMx9asthP&UZ?)XSdu z>4wY!6;O(1PPqz-RFDB>$2m}B4(NcGmVILSaZbEUkg z&!xtQzaZnrXZ{J$fdoY}QWR891GhMgK411hRtt>n`c~pnqR_qg(obok&FE0VNTY^5#Q$9FZLTgeSCaIVdAa zxjQf#x***Ei4ItQJ3j=d*@VuF$zD>KN&M&$bYv+6&QOnWW>N0vm+N#j#e1?CwhfS==TriZlyu5Ec^AgH$|~v;i?Xdr_cHrAbvQ zF}l_N+uc`x33w@aqW%x?7$5*zSWxe2F63SLnOM~B7} zSbZ9&H&LRJzm{Qk@3G3f&tfm(E}+iSWx*X%UN7T+_+3!UK=e?$wS^;2C_be=*OlgV`-8GHbQKX?MR+(zNui}Z`9T8gFEZN+Y@(Qo;Avs&AlC66<6o9E5<2LE##C9{bZ+Q(qiS z(qtbzprU@|kI!JLDNuJKTgIWUf&;R2I#rb$sjr^26(=xTW=p|#DrU1|y6&-UDYj!; zZacP@%yR)70kN0pa{)PjaxJ$XTxT7`>E!cWl!xE!g|6ZTEv3a;(KK7lw&IvQyD4`~ z&*~ax)9&oIl{W1KrK>m(>eJ`6a9U8)Y_{7U%$C~>Os8c!WzX7%Y4@DiG2OOeo4s~> zV%m;r!yl*HR4m1GyUpXS*|e3W*=}|BEBRT;w5f}&rlSA9Z1OLEwb(Xxwb(MYTWo!Q zi!Fn<__$>{uHu-k)vY98EtWcDzY<+(@vPqBm*^Jlo2|4fv%6)sZf)D_^xW7r?PeQh zYqL{H(y_YmFE*M=vod)*R#&lNqiHnj=`rrOW409AHJzUO!8Tj+4DBj5ZNyEz5y$8O z?i-D;TS_;OhoxnIn5{RC*|9pAbNWv$s#zC0zpUiEG+Q zFKA)vmdIl%U9;2bD2{1&o$@OReC3gkIHuKgmEHp##H;!szF&OLa%xqk4a~$3O6E!tEIr7prdre z8t9q5>eBAeX|Ht4BgZz~>i*AC%^lNr90mUdO{FOcZJF&>yE5RkB?=!;D7Ir-9cRaW zGsoPRr@p;F(PasWTmt_L?M$gMhFqC)PoQ--;BW1JD;=C|-SQ-d=DW2{!as`Ckw&E> z=|?&bC$^<@14nWA>7rN)eWNG5MF(#z58m>oGHgxLZMDpnQ>|v(aZT5CW7Fx`X0O%W zFZ-pd*c02dupPG9Yqm|N*M<4x!a}qmivd{zd9CzX9nuu&+s>9!oHK-*Q?Gjqpu zuaG8xwqo6yt$iEz{xZ-tTd-oU=EjI`^z1`PK}Q|a6`rDXHer+QI{U8K>niw%Z?jHN3xle*VHdaTu2gzcX|w(FPMW<3v)bwBnC(s% z)=;_QLV|NO9ni8`@Ox7RXE7fB_j*)hy^54QKV+ceB>&y|aTgT(58 zH23*}g%;S&iEH+HK&L@JcVVF#?c8up%W4{JqXYjGi0B#}r9FXV(rkClwvC~#Vq=|M zsPfz}n>`nL!)gVv*EwPn0L4wGH!)1O9ykUJoMGCXwqZIQ*D&3-6Tsy`5F1Xj35Q-M zHZ99FOv|2_P80Sk$85IX>}+<;mIDJc*?So-GSD0Cl(y3Z8%(7UB~Ds zU89pjO>MWSbQL&oTU|%#7+s|k^pqZ}m&4r)73pVg_1W({h~Sj@j&VlpavlN(%{*4vhO&YM_d( z_Ho^9Y2Pf`c z%?Y`s*rNR~@vNYiaCreHHElm_{(;dbPHe;8|c>y8>TO7upm+^T4D1Y#v@=1fe-B#1$;MmQXVgIKh zYAuBmY8R8^jdN?*|9)`oYj8?BAF4Of7Hm^+l2*=jOM!LSy6x0Ln|QOGb%JWJZQ=%g zYt++2>lF9lq@}dCD2KM$Qd%>&PETOOZ9TXLZ@^Qkg|{H);RMQRZ_zw%od%h?TSVNg z;ck&sY=4uylorC_&CS;KAdy`yqlMH>uhll&J>ZgcVbg-+r43viIM>Xc4M(eOJ8<~4 z;K=D%aNODL=0V4_noY$v9jguew2nh}+#E}Ea0hI)nr6ptPs~=&Fst?rDb;PCXlXOTC%IymRw<_1>0Fb**WlE+ka?JETaim9m6$j%V-<6bpaR6cDD@^ z)shn{Y_t0!_tBS09L!NH@vokkz(Wdv)_{M4_hj~Zt=M#d+-q5Ir))X&rp+dwtymC^ zbYy40njLsYb9w=0bQ7hW9EDR+NaE4f9Dc1e|AmL+Ne63a+oFm#zcTUtNwH2kCM@Az zuYV=?5boqAUY{T7AvpMK#bT5CrPRdNS+sZqqNFq_g6c>)N>{3j++DD>ICINzzZ&l< z?*GpDXjUhYy>4t; zU1Suu@m_$pfo2bGF>M3(5&GZ&VP=?arv)E^yMom;%$Dmuob=#`DSOtatO8gQv}ccM zJ$v!jGRUeu3%j3mQ?eEN)^^GO!&dA!m3PDb;K&&a`{Ben6#}b(SoP%%-ND8ITiLhB$``>vz>EW z2G#m+k+ZVbyNWfl%V`CjR+(1Nr_LK!em8)?o7uPJgvL&XVx)k|1h!y8zj5VvSOITr zX@1%;Un_O9l~$F>L<#iPY=?Nyseh51a6fW)$_2(o;O z3~4K-)9D6gr(<^bUJEz!ZmX+wOb7ol+N0Z{OKt+RujSZ^3t1sWrvrC&n?3(!c0kNv zAy2CXEGxSmn4O;4>G2PAVR5$2j%#*YJ~=GlN%q|RE}Y%?hw(5?7l^j@0e>WJB59m7)RW*UPc6B#_+j1U59>=B>wDxhTdczgH{B zU=_j?w6y(NNlFhW-nQB5xqs|?#?BgHQL&VuUJllU*6ZQK23C`6TEI-On=SY!n0Flz zN|{cpYj!%#iD}y{(`~j*x7!9Tn%QxI-R#5=3#sY_SXcz?=qw)Ugsm465mti1KT<2g zV0FNFEN5pK1}mh~X&O5#g5|^_ege%fusv-XSZ3X}D26Su6KRQ^Eq{wRtV>y3xQO(6 z%?TVMhUvOpvkga14<`QIS^ZFZqNkiy|3 z$i3RRVVh3dfhB$KsMaF{_khA8n((`?$!2{2ik*gL(R0pB#rN*y?6r|sZE z!-*E4MgmT;>Fr>4{D;a$81 z(+Z!UNUPUVT(bkMYuhcQX}U0>thQ-&T+?m?kF{;$U+l7pX(LC}gbStBa!uH2oVMAr z;rw=8S`5$@ZihW%kvY!lo&ldSr0`muX=yV9K2_x|wSmvSEq_7Z=5e&Qj>vg)n``ua zIZrx@ZQa^4IR2!QOi&p=NOSRBm`tMDb<+V!q%09H1!*x*_?1(IiYAd|T{*z*cGtA+ z*r+h$Kz`eTf3ag!yTzti9zgExSRE=<0ajiUlnoS{{y>0@QIP0iZkw%cTLE<&lxjf6 zCa}Fh=4s7#^nd);u_!{Fp8GI2fMsr@-VM-jRvZ2SkH$g9J|1LU$EG0|2Y;%JA*kO6 z+o_6^7)A2|m@&2RCM|hn82{;+D^%;fDY_*akjQV zM$~P=soazlQEX^T+iu5(*|Kc2+ivX(eHMk4N9%Md)qm+?5r)$gZ7FLvGG~j$*{n}h zr>@rFoWM!#DEN0=huTK$oK3i(O!4(@nEh zhy`-kmX`~G0WyE+Um+*9CZIIYro@yB*RmGsNdOVow%UQ<{~MqKXNi61gFKIx$rgdx zRcx*hfP0ovk;p6ElkSck(WyAhjV$5+GjIRTy!~G=Z{JAs_AiNmw&>zX2=QtE%;G4rMy zlp1o5(G-8$QNVd?KFp1_(iQXBuFPl5e*zMSvILMvwWW8if*8a(z)Xy%O?p(ll+Gc6QUW zTD=dpTVt%XYkW0Kb_`lPT}Np?oIu~XGu!^)%nX||pWatSDy%X3f#+&EPF332b&<7! z!d6+s76)}^TD>mp3Y|8H``t+sAOPZvvTR!7D_(k#AkVsd1Y0gEp|OsT#6f(`#d`gNnC%cwKqpny%H0u{#Xx z4!H&}3A?loy>85PP#m|~AC~RHMWRCo^-q6kP(S|5V$GK6wqUZgx0SP*hO5(am2M0K zY!h|8n(eyoEG9(7533Vn3QV_K$M(2O)mSkhYTGs2b(LF|P{EJ0Is9wv51FB@8YU{Z zu|=Fa^)R`KqkN`r2#*F7ZxQ`6To(C6j=s*M=vP^g{J;NC5asG-L_Wm;3HloT_J4nk ztEj7=;vutf8u`MjjJE>67#^5mhgmdH33b*X1yH9QQUJL6kTZbG59xgx+)HoNm4~-y zZ=hOo1;R-*2lHn{Zigo0ySgFl=`^M2=vyhsPDpmoB0C}3Jxi2$mV_Agy(QX@lxT|* zFYo?lC7nl#bT(uWW|J@}E63hd5wm|)eV*d)SO4n12t_dzQ6Bz!DnzIo@;QprN7L{~ z72t?&f=AQwNOeOdVVp96eT;qP@mUzQfkEo+WOBAB^7UH6cpd^) zeR{1FI^ePRslZd&kYB*m9Ot3RUA6xf`>RPD0%1@FB^aIwv4_i z66LB$j5ta@E07i+7WamuEWQ{P{E2T2N8~mNq+yh)aUF+Wlpv075-dMAVDNxL5=}kz zYHAd-5WL|~G`Xu~QJ@KGkVSzJepv*`G@Pp3=nXL(0^=%Y#jBnws$0fQ8K}Rff^8ox zM_ODQT!pdfsg%4@@WYB0EQ^0sS2yJ6vazBO^DtQ|l{X_yrs{@-6Mt2$aXl;T%g0+^ zwgjqS&~fq97|aBDg%??v=Th@Gr1-D;?lj0gKmOU|-~6lsbNe=Y^y@GN+g~p-Kp*91 z;}dzRUIm##f7m23=2PW5`Vvl!B3&p~HwL(uHHt7Rq9D7kf0#FTL(+e;*a_&YL`j$# z*YPrfQI6!uI1Uzh$iK?pRg#6*yh;Zm5au=wI}L94S~@;qj3S(ma9r;*qr}MZoviCC`xW# zils&kQ^jKa+M?XOkT-v1IoZA3DvLD^r&q9!AFIfQOuydd`G2c6U;k&?yx2MVGpTT# zJiN+z7-T?4v4wOq@ju4eUBYd!_ZJJ5Ot^J@?yXLP+ZRFRu|#qV*IV>1W5T&X-YfPD z_Y?1ZOenU=#a)CxYP`y~s&U}^vzVpR+*>UdK$#r}$<2~NB36Iw?Q?E#&!JU{S(KYU z00s?*Qs0!Yh2UKcF&KkP;Z9eW`$?_vfjo?oDVm8F3~Li$C3KwwE*B;vG7+9&vmtY| zf1TEAbyKUAKG>?3|Md*(HBiLf-)`$hC&Qsi4ZPK_y2ey)6HSX#4g9cbY99W7%)M!M z+eWf5{QdbA6h z$RZL>Ag)bM7NVy~bj{p+G#EotV~C!T(G`_`v224#z27yqGVg!vd zJSTB#TYXNvgnk_L1YzTlXkGQoQ47sOt?eZ%t??yhRzchpN&FLS=+AQY+q*fK&1|c! zr?FMbCdK-A`i~(gJCA{4TYqvEIzLDRp*nO$F9>uk0%4MPwS2Y8W%!lDX*df~7TMM# zOSF>8Ii-Dn28l1@fWi5PxDp0htpn;Bw8?i3uqLM$`DYRm@u}r_IHF!{pVwFab{O`8 z;OK@$IV=^6SZZ57qEbsFDi_BF(lpm*+U;@(ZhiH@`N5|Bd7x;S!+$IUPa{4B6`l)* zu6%yw1{m*3ci|=(M4=~>RP=DJM%?vuhT>mC4@PIZ;P2lei7|Jn><{g*(&p~ z)vVGg>pkwoiRXv;qJQ_}z~}((h_A72b*vq@0k?BWKV;&f>K`Kr!WHO@7Z)_%tZ+}&`TDX@XlVf`0&1|C? zvrg%dJ@$iBBIQ!#EO3`$_HpiIHA*6iZ{e(;fSl8IcJ?UUdn|C0c!l|KohS714{hZ? z(Z~NNNthjZ8IMY?@&pS+#$TKjQQ$3X^ZVz;Z1#zHDdKLOiI>48Ydq;7Xd+TAPn^qp z?>&ZaSn@@rUw`cE>2-So@uB3yPZ8WnlFrgg?PfDFi?8D%cfA>bP)Q+%JY@YO1)Gxm z84r$W%WX{|s#eP5T*)9@Kxl;5QC#GkKIPrmb@*tB^wriAbOQdNq5nkzYRV>Azbc#% zGj4m;LKy%qwm5fH*)M}kI`Q&pe=>{X6k-$peeZurN`G^k?d}Z*4vDFq_HsMj{lV$w zw*AjX>CWEw&hFzMot?e^c@*vJ{pkGt`vD1Q+{^8F_whfSNA_MXw;%t{t{v~}InJZp zwjb~HB4>AR&vA%H!=BA{p#2}5op9%IFWuqIJAeQGNJhWk$!*))`C;Jf{_q2!c5mnL zKYQQrJ%7sWZ1)EpURr?>$$EQa=9GWzazUkB_7%A`+ktzL4>vd(x|%D02tz>j0bxi*?%H@d7tBuA?MZ-#NxoF4Ty+>_Wi(Y zQwtD#VKfUP*1H0~W+6I+aBe8a!yj4UL!@D=giIuTiBNP;8SiQD&-WBYlNh^EZO?ey zkNKX~*1;LXeXwI+DvlB={KdT&U!w5(IV^U`Yu zqx)Nnlv7BvK%Sb$v&?E0g{~Lzx5?@w?e*{!5OT6fE!h-P9)o<)40RGK-qVAe|TYZ!&1-!J!FV4MdkngFf-;Cn7{iW!#op}|NFxX^5Q`we0Kise}7?c z>?ZWt!^VeIPrS&x21;Y|2=meR{BHT4-z`;6ZklS8tcDkaHzCke6@2{H%+imeNqGIB zSsr3lK1)ml|DWE9Ntn)Wy_D@1$#v=l58I39;-h!soB#A6=N_bWi@eBZyD7Vhvr~V-(}?wQ=0D*tRSJN>5{es?c3C z)V*~>mE5o~R;_idjx~(rP{U~LNI^J-14Y;&Kkhx&lG1M#iEzsSB@YqOjvHiw>H-X@ z{zZu|ZhGd7$v=L;o-ysojek$AJWecf^n`qTpJEpqHrP;Mki7+t@?gf^K)zWCIFktQ+JJ@=`V z#7P44zJo47=fWbNS>(v4U;Tc{g2HFE-I_#>_5C>Vz1$w z?2uf$K2h!^k zpIUSLwJj_17jIR?4`~Q#oL>9Xy5&FL%c|nlbDxe5eDcyKZ+vpY@XpN6!$hU^#u1p)`ZTJfe;jtV`Nrqfoj5oTu&qi}r5d~}#Mt>~Ose{g@UJ&0xp3`pE zZs|_Hul1&1$V>+xd@3v>F!|LP2(dDYum}t}0?cqe^)lv4h?zu{Op2_c6Kebc{F>jJY4lxIm zZWu>SQ)m`b<$vVESjf+{qLevqTs1~uWNUzxEz3m>C#pCJn@pIWuU{e((Iv-B?lOt9 z5Ut_!KDUhl1#;@;?0P`}GlIC5xx zSRcKVeLfVqUg8nblkiQU5iu%bx83gA#_+vr3!fZf}8odvV@jT9LuqhHsn(U<@B>;25P3B<%|a75?1eLpX+w!-W~ZUe}@tIRs2rl zA_{bSzkm5QUv)->xHeAvkRj*b8dP0g?p2d}Vxk{ZMP%LXL7IAtewg83Tb4UR`HN>O zZ_Q(l6?Uv$$X9g3(kzT24@>`Z97doWcHEZHXiWLaS9;H_-GAHmaLb>j@tm!^C`jWl zaQe=p%$s;=xEuC!mgP3g(?~`0i_ZxnM`sxWq<@-Yjx|*T8NVYa;u+nz9mP{vz%aT# zoQ05$2XpO^nC_8~?(OH@E?x?lgp2j#$s}X>2T(&i8Fah9`gYn!rG&FvdAVA_=d$Pp z>MGO+Ty>$p;ICIJF)WYTc%2RL5)kHMPX8v%3UBsa5Jx1VTd-)|ZbW9(PWymqc5KL? zGk^3%yO4Uq9XQTzOnj)4$4RZmd7NN{kQ7u*WH%-Om1Eou1+a)LI)zlb1c=alf<&M@ z+bIYq4PAdH;7D&q?%Ww!xPGZOi4_`=!iIq=xw32|t*x0#W(<(-T>)Oek@O-gnn5hYJ{tsen!~ z9&Jo;gmfa9vO}gWnNn_miTk?U&%PZw3Onux@sej*2Il0aLKZh-WMkPI=OT7Tny z7zOO^bYdgP=sckVBg>lcsV#uFM$@@W83j6$j?*P|gFz#)nbEX0&F7d3^9Aq0Wdd!p z;B1C8Qe}zk&tf33Qb@Zxs}&B_NJwTbk~ruVdN5#GKX}`h_w!H!3g=d8)NqC^fd>$W z@81P{V-NdLx0@Dr1g#5i7>dnDx_|k72P;QfJKpWu=9JMA8XPLr^M=+SId-&KH3=Ay z09`<$zlgF)d{@Dv0F}GvX$VQSDlZiF6N^IYi&Dw?$BzbX8Tvwf=7Y2&8sR43aef-?%cFslLRKP*BL;ht_A!$!NFi1$qcmY@mM}E%TCJ=EB&smlRGxpr z)vC9*MIp_n{M;gz@sTkKz=X3Ix5I`M;W+ylXl$@S{Sx1$eg3lBHAcgW)Z*;J3TW6Y zjYTUlyQ%^4v+6kn)?4!3dWZ}T;Ly6WTx((E*YgW`3yL0ohHLSo&oe>ldW8x0jRa&% z!0iKp+XoV}4>(>Ql*BwhK~W*L@+N;RW)3GGMPtfH&Pg$u)T~gf3(%TvObcg-+jthd zK{!bccL%gX@S^6FI0pMlD&_qLP10WJA_W z5(f+I=NVb5VY;~N`$p$9-Ww0t{6^Sz(6`nNthV$!vJzyB9v0sOKx+ zUHBxS5$~w47?P1c-f0%j#yt=Ik#G2tLWYM!1tfUNVP$rTc0bL#vZO`U%VgHkyHmdd=G zy__7~g;|bOxV7Br4NE7p__o5uOp0|}%pT`rl7b>y5fVa4q4C(A5Ml(ZmE{a`FtI}!r6=9Kv?F1 zv&f+=_@I#4S4x4PF)0pC9(|=TG@|K&ZdXe&AYXB}YoAezyHkG}9qgY)e8PDe5czDDW!+Lb3w0sGVM`2=yqW&x83e-jUgJ=3k1dQejS~Sou1@q$n+7N z4fot0=6#m^*>VK%_sZyaK^H!md}GI)iTFA?#D4LKOk}rs8ji^qT0`kd3Y3+^?{<^I zA?FljQ^l})e{g>)i}mji`WGlp;f4lp!aFv53lO|o?Mcq<&i&Q5qero`8?ROavVg}_ zK9;41Jc2uH!k;+L6MBwdc-~)-*|2dHeId4ejL7q1Os|I40CN745x zL>Cytgh!P~_FB;>RY^_@tx}QEZxXYbw*~kgHIPuOu}8XErAW&tq~z(B;c69<3~p)@ zNzHVHY_-aWPYqh(lW*rHg`?1>LH>fakVcgXWLh-ICs4-n7Tt~gkxjx~xfiZS%$0X%C3-owPe({!^)&c( zynYs(X#K`X@Q+#~%X-jTd#$53MY9{0xKW8LEt9lS5M)*9QsHC?LT$X!3c5_7T^P_n zI!9lr)5c6^sE6t^oaF;aHK|eIVkdDDW19B)^+bO{eT3rGDkdHUfo~RmWhB$Dyw%Dh zGq@ichXh#$rC-cNyF%NkNnuidBfgdhIP7-)b^&yo#~5$QB9U+zCN~B8sbt;mtfe}i zP_?=#?%&iomwtas|E*uN4WX<-%A%l4P8tfuvmhb4?pczM$SxzDDOhHMguJNIs4`vs zF0_BJ!q!&&qg5U!yVs;m&b=r`Yz)$U7}9M)m#Ectxkj5oq#~~7HoE<~rdzDIVo|WB zt6SNXYU#`npQ3n4Uh#azQQVvN6YrXRAbRQ}0_k4T@$r%!)k$h$z_uXxidcscVHt7#YnEZXJbr)VeM zNsY;Wsfa~P@e#59CdG$sV#>NCvJW4*Lac=o88Y`vVWZf}=_wLuU3Zt=9A>g~G4$?`5H>IcN1Avz3KfP3Yoz3AH5!xS!cLuG>W;>ao05#?vbKMx z5JWu8+)Ngq<6Jz)oXp)ufe$16XaP+LhX<%ie!N)!ZifjHR-7@`U+geJO_xR&M|Ig# zPAUE35AO=Qjeh0w(Uitw{i3>pBLvx<=0gzqnv4p`=zz>9O4MU#8PZsc)1$E%9&V9O zK~J)8`>WNKZwfMV;EOXFo7#YxdOUxR6Dd^}%8yWL1w3-+W;=Lt$ikhKr434I$9?MC zxzkFlqjqX*kC>e+F)!$4DE_;{#0)_d5#b@E{EvErqXZ~|y{LU9)+OrW-qpY4s~GV` zqV-ZfHQH$EPBcTJ{(^T$q7r3#Ze?RNZ_YO~rDt+uWz3ItXM&$d64IYR>}G#(h9s&C zG9Jd}TX%pZMh$lW2g+zg&7v|X-3~9PG$f0_da9Qi$WQF|OqZU=iP%Fc&1XV19;z(vmHL9`c$d|?}ZL&g);$R94{Nk?O7o$!1&U~O=~K&YiLqH=MvYEh>i@( zPynY!p*2bW6FLy;fFUY7Tqb`(_$e@s!(2$cTNT7lIle_D8j2ARb#Dn>4#+Da zT!e51ETNY!D&m9TvG0Na0VE7Dx0iq_g|6Zczxb|C0aD|(n+^FAyd?qaaF~&{(3qbxKnaNTl6NK>)|!1I<8UGL9XbWQhM$W?|k>% zCks3thJ4~epO9>n46ocdXbheept-(qh8OMyDh=6Pu5A4P{Wh7q87YY8kgs^Z>(}Zm zf^hYqu$S7H>nnc|wcG_!D{tUny=!slkVAUc!uBu7nd6XSImtu!EBV5O>$iXV@~{-<`3>r)bzVDma13D$-b>M6rcNTIbh29UljzN6@huA= ziigqdwIP4N(fb~u&w`K!W|h)gMgZyD^YKq~fWkjj^b(55!RQTtb=qe) zEM2tQm4Z-uc}Ty&D(-Q5s{9Hj-1Zl8>XhNcK64~)J)upMy%2FGHRwv7{41El**RJl zX)~sNHVb`b4+wMa8CJ>7rgHh|Awz_}sry&HkUw7X>#NOe4q5#d0(iZd(*U>}R)N@t4 zBc3?PReIVroS;e&Qt(RVLEeJRn$gq31_qS)@GC<%F;dWz!k)pca#Gm7vtNg`XiPP+ zdMLyRNUF!E`B7wdiyWfL*#rg|jxutVPgz>A(ORwMXxqqN32lE_i?tTVu8M$~ zRS76xkxW%mswf@K3so#Bu4vu1VnMgA$ORae-ZX;6}5FmuXV1qs9U;tHzZ zqRTr?rl7SNl3O7M$s>RAOvv&sgpKQgdgeB+FV%Bh)<@pZucM1GIi+uQu1C+tQnjxCi)IcX9om_ z|9tdv?2ylNf%Dvb+}rNG>;2yQqRzDYwpKts(8aLFYwv9DyxV!YW7K|KD)kK6(ImA={e(ECV! zgXvC&AAS3jyxD*G-22%3*>O+F8!{RG?As^gSI0eZ_5mp9Z{!aD^xgm$l5uEzMSfAo zm_r+5s(^!A&gj?C?U+PNz};;V?ovi`wsSrDWlUoD*}EPwHYOpX+==0alfm-By>W=g zm>Vz`7c*mSimxZb8FOO>>vub*J|lPhZ!c#klP?$v zn)hKkrgxj!8-tyBUNqbQYd(KK2-A0nx-8C!<=JKlEOfG!u2X#t+v8$cMF|vY*WPs zPFKg^!vJr<8Ib1A7Uf0=sMJfHq1l%m)6_KmFuIPl`m=P;KuF~fT*skp7clr7B5F85 zbmgYfx&Rt0*N4?{fp9DOck~bkhOT)tE`j!qu6ut4YHnsI)%JDgy`sMm{(3W^`w?h! zCiO|0m3(0utO&Ub4`X}AK*l#RVj{#)HNs%)oNfWBj}#$-DuDwc+GglS371g3Mz#$S z;s^}2LHVjYqd^J*!p?3t21h=yloG*YnUY?!_69NLt{5aiEh<@4Q*_Ixvs%Sm=SosM zcfWrZrfH}O@}Z8QI~upqmd3GrTG(2|&8U}N7aU)6IhTkZEWC>03=Q_9pV)r1v*V!n zP<=3pB%iUB*SUNp3)r$DVtb3DO#7jADn?ZAI3!5yz##I168Pqnp(T^h9G=J(s5)_s z#%?66uCdyw@-;Fzyx$8~rTuEKZ&lnB^3H!_;*qR%C*m|0(h$m z4t2rCM_i$YPY3W4BPJHZ6ht zFfEq%XB_E=tCh!ZfkIfr+D=I(aq2UX?8mgto!DEx4ELa1&N7l$EJC!u6pa08!M#D3 z8Rz%R!}J{9akn6Cs+Kh@-<4MYgQ_LTq#$~a80tXdL#;r2=+-DOs1k!rKy!c7gi*pC z_dMp8>tH|qsii}qd`Wk999Te*GKd*S4A%T;l#aoEray_$zEA>+VI|=Kpm-#pF_-JK zz(|M&hoJ@#2@W$3DuDqirL$UPPRV8&>lo{s(jFwGBpft=PBXy42&?`kjpt!jyFQD) z0Y|n&n4R%(H_bM@)ynqh+LnJrA&e`Y-7wpM>^PB8$5~1{6TjkE@w5zZZ%O*8=<5p$yyRoB^j%>)XEkvc~g-0 z1(_FQyBL=;_vp`s1o=tI*jMEc%tJ~kufOHRMUuvOd~qR6ykz(=ciSf_=$QLPJfM@3 z``#x;%qaJRF9H+I3j$W!?yXO*yo?#z(62txAUOp5gU^(-Z)Y5%fpgI1bPpU2??p1+0U-wNx zKqKUC7hLjj;S-QUxF^1%o!-DTow?6_!kIYtZK36}}y|j$IIP!mq44CJB@d>)axUc<^ zoGs>8@k~WqJNK?t3g?qJC?MXY)dIFXJ_W`K36Is zvtame{LLQy`(K&$x9`R~4!CiM$zA?!d#OJH8uJoRA9Khr*w2#nAq>>}Rk^7VwZL z{F@=vcOf|?_c_;`6hxxo*W{DIa7{|JS7=1c5lw`x<33>*90-sh(~MYVJEBn;*Jf{D zrZ2H>!YqW4Ghj5-3{%5XZgDJ!c@Ay%ixHZdBN1T zz%XNGhb`L79;RwJ4vFAf1pAj8qmB7`Lg1Bz*xO5z3LK$>#8l4QJsKmebA%^1JEN~>97jVWYcN{kd zUMUDLPdhAgL>a7ddrTFK#p_07&g+v13~7G^=qp5l2M#2G`p&ZzrjwNh`!kj=^_B9h z5T4IDF$x*v^@&OmiJ>hRm+Im*>ev8qGxmHIb7zRSrC3LcN>{6RXy*`!lLy}*7(x)F zoVAiY_WdKft%seq_8kX|f8gzpFw0I%71j=^z2qrq+^B?=i-ZMb%x#t0d_8|d=@fr1 zs8jB@006H54p`xwL2zfj{qbt`3rcGo0+CB5a?ePrj|1@Ng13W_hUnqTH6+U2s<(%B z?^_U%Ysf}%Z*T14Eog^3G~y=45QZhBcDNHee~%r)Ml$}QJs>jtq8*Z$Xa6Zl642ez zzx(4y_K^Oo-+$!%tH0_$+9lI~?!tfbF1ZfquIv6Q*xBACHvwIi`~PqE(boU#bRKn{ z#&HgOb<(-{vHyMl`;I-$^CWY3cduD~C13Xac)si42ZwR8Knk(*c(AwEdpvmjL+5W^j(NdUCiz{p+zrD(KRkOR-sh3PKg9FE7ahma7jzgbC84EfPwl;t5oV+}L zNOM=S_zJTb>>j^7JbHb0gpKXOZd?Ua!p$O}%XwU641?^r7XAh&P>?wnkO|qlVX_zl zpwKFZ+vq*WeglgpPinZ!1I~#RW`?kC_mF28@UMUrA*aQKNMic_F}5Ff~Vq*fjm{#3Sv526qJ%^Ss^ zKHP9Hz9fbe5vk}#Jc*CQ6ZR&4;}Yse)yy@^@*-ujYw@VYC7$^JCb3_@M6PB9tct3H zvIw;T@T0hzhq?R$OhfoDzJzcsSi~wK@q=@R>QVZBTVgUz{EyZ&3lx8us4=iKjbTvU zRm^vT@8j6ff`Z$i8kwxyy@V{)uDiXw3U+qNOQ6Y$kfWc~3d^+9c3|e#yA2E>u>OeV zX?=q6*}B-}h#idz)iYhI|W8xh3gt;A>2U z#$g~iHhFtA$a%0^Pltbzo3B=pK#h0ilr92ftwNwMLkjvXRFfJLISzEZd2Y;F4^x$| zR_a28K1Ly^Gsg5VusNDWGNltnokak`A(*adz{%YwQU>8&f^)o8cvfSh0P^$76=A%n z+uf=c8F4qOpDS?^UuMj934y&F+mq&^Gm1M;d^#It5YQj~fO>z36!a{xed3XD81Z0| zFrmVv6YQcNM_?F9<&SPRmX~?}P~;Jnr`b*dVnNXVISq$(1yN0J)Jeg^SzfxVnO->O zQct8p_=W71G~Nf>DUs87-=m&M2y1dG19B<^NoWRAOgW)vfgM8v3Ug(_WS^vJZbt!7 z%{C)(AAkUd4iSH&L6~HFWE4a40(8Ul9Jk$kUj-|*Q&spZu+v7*pihXJJ*T2)j9Y^J zGBQdHa=EY>Lk9a`*Q81=+(h_MSBXbg(AqpyoL~hqvV1tem z3->_++#WU~A|ZJi$1~Iv}EbwZCu<$MHlW z9R?RYgNW8n*bgIrRs<|VBLFpePpt~^T9(g@DiD}rS3@u|Mc5{b0E2roak!2Gy3~m) zoTY(Ow)QY>Dr9E>YYkkcM8=9h+1oUxQZBNUo{w#SYo%bBzYQMU$ayqrTZ40ivZ*$gq$g7 z81Srxz!P}zPX-(W;PSfwt#4A~7}7o$fFTk|;Z}c?-N)buz7_Yw3?x9Fm}3soRnQuE z{N2m>9J0jcthEw^c?dI+==Tkm!@>)RooDn}U`XM>=CioE0+Dn`IPnCl%uVYx&xH|f z8cBpbytgazy_rL1(po_E-tETSZruESX8LD5!(#w9kmi8lc5VTq+;Q@Bv1DK|6_-Br z4myANc1-~zDOvKwZAB{P#^tjPeG->WOOB0$Kp3%Dd0L>Lj#a{13jvc^j`A^}WjJSv zyQ;H)h%VGSYy`iD$iBsFX11jTOm!GkHP}APU&gXIJAKVLSvz2U9I$t9Ujn}k0^c0D zPrgEi?}%Y9^fG7<+A})n{Wbu1^J(sM5M4eQKh} zs|@6dTlGSo;}3+18uN8hK$elS1dI@27%j1)|Gvt05z&F5!k>ESL2eIfiD!1CTh@Ob zMnyr?MbK~vU{a10?|m(LtxsQS9`KXv&Fc@c36#ZlPJ<;6c-gsTc}E>mnYO+xn{PqJ zyQT(6<}fRG8sDOt_6YbG`@2tZ(V2QTtdqx`aGr4CUnifkj`)~oMDJM8fJHi!IPEac zpLTo+(Ocg+<&01n&zS7wjA-dE5K$u)nU+>3Nn^;)7j$5xP#Bh0=c>p%><&V# z8!zJ0>R<8@YEfD8b9NGR*d2d}Q}DuOb zfyf>5E7xLHJ|oR-JvcwOcy;s%-#AVQ7kLa5UjAALy!+5593uFXd+Hy(2Q?6UuwRpM z3jnxgxe?nJvU6oNA0GTW0_!eNYh3(Zu!0?mAOTvYy_`!C!MC9ZQW<~uA4V7&|Gg9{ z8>8=Ex$+h_l{cbR&-m~(Jw%niZa~mP65Ydx)ecrGfNFSQGtxNfQk`UW(s_UM_Uz^9 zYlXWl6v$c?6fXv+>ReuBeQ{pkjFgvVZMCtwx~wc4(jOod2z#qn=W=_=O7VeetGq0w zZ!1>}!Ihdfm3q}2@f?2%F4NA*ogSJB4sK7#=o7Asmg$CwB^7;d z1G)t18eaZu)ohSiQ<+}&`!ZXcfq3f@7a>3*5Jd~xKaJSEUEF`us&10_({L7~ERrNk zWpJ!7U)M-8ybJhU;}96*H7+e@@- z;T=hsf|4*UGBM?|@M;!D*Sz^?pC=78$18liqcKmE(fV~MV}z6>Vt0A9!$=$Weq(3N zFO7~+j1An;p;&)%Qz|@y1j;I3s1-&D%DX}3;HAtnCFH^)!6Mcu_pVSWHMYoiBcDsU zSrB5r9m+YY@poed*oXqSC4>C(-_+_^W9QNY_k9x)qBt1<$%K!sG(c;cDBywQfIgO> z_dJc~Vhzj*ZksaVyxV;n^aZQ~Pno-svYukSrR+`a`oD{P>OlC|pmVH}m zHX3%9C3!8hzueznD+eQbiP|FI%;#a20q5c!{`Z2h?|mo*MQt%2bwH@8i@P6V%ikbw@ARYEiYDItvD?q z4kcVJX?cI?>?2Zd+?la6%EvZ0_MX0BixDCf*go$UfoN6{nUWZ& z*;g1+3arnnwy&n~N88RLu$ZzFO$Xt|Xk&NOV^syA7hrf~8T2ZrA6hww*RkYO!Jat) zVm~jfOJ^S%=EEp4H{$;5!2UfT7D9*RkOCg%EUyqU%xRpc-hm{;~te+zoYb)Y1gvOJzQ%2~T<>_MBB(|5s!U9)(17WY-kM@$^y zvWBO)S{%+apE62CdR`J*}P*j#-czJeGKTOq4gG}zv|K=5oNyxbjhMX z9%Er=#U^>R1dS#tMJ0Jv`_xkVgGQ*1Rc)vFy4q;ty%Zz;@-X(c&eF1O_m==t0u~7v z_=3b*F}~{=U5UYFx%ZI{#AC*rc*EBY#nKs-3MXNbWWJQmgi)CD+P34A8)RXf--3Vp zgkhamLAmy%a*#3j?N;XbbKsO02u45EXQ$M2l3$> z2Jy+PE4F=2)t}qO>y+!^vvNDNE+XV3OIU=LPhU(9PV{QU&66506o#naEO~##CHV4kh~5i{{ii07sT%%n*^v$G1FC zUOcB3@O~Bv=M;n9Sj3xCkxwFTSz!JJ-d z^EOd9mxXAVB?>2VdKskNwYYyBu`HR>OE8VX$L(bfWz)G}Ud+PlIkoiUZ{}1IB;*Pf zLOv|uLDuVqIh$MLVotB-JBvBFozvwgnvdOVPDbf`?0WN(e4W!JZs?6SbAM#tlP_#> z6?-X<0OS=A0cgri7J}6? z_~vmw4+bS{SIwGuy}e*Fh!~Wv1Xl;DRM$#*Z?%K z*Yj?dbBzmsW^f#>SNea~`Mp>A*?j$#uE4WIiH$hq{`Jcb-Q3i+_rxHjCtuxvG=x9isf0hz7^kaC(K5% zf}ji}(&DA&EgO@rZIt{R?s;!<#g5Ri`LH@3y{C%GP?H?u?NEPLQ}}bD#~^0s2x><@ zmU(Q7S`=;hGH3Hlq_uvM3!f@-`(BD5M>|0r6MAhD3g5=9qMF)5w zMdsqjFcVPrC+tZyjOT7R-#0-cCBQ+MTAjw}6yRkRY5trbx-j_ljoMHt)Q~`c2I>4K zC{kOFY;}7jlH`8|Z}t1Wm>c)KxPmx!AkZ_V6@^V7&qTM|N|OZUPKd*^hR&FqRa-#R zsRJ~k#5PVwVJ^Jk>uXW2ePcL-b!_Q~8IcKJy(UlWXkpT_!u;tu zb666DtxWZC9-o5Gxb4j$uu6rTec+cFd}(r{==pHZW}1H+*1UnbUBq0{m!k2$ zy;!@?hoN#+XDsT0Z?9~x1#%Zp56rI+%mHbm;Ed~3h(>$5QK|Eu{rDgi>b zHe{hUn3aE|ZX3jk?CurY8PSKwHbqzWKN%~ z6-4J`S+SINW1>!mV8$^Z#(Dfq7K6TilE!nlrN77_dF+NI4$`w{^Y!9=sc4R?)6k-+ zDoG`_s)FxKB3wzk)*i;tX{G67WeA!Mt;#LZjSL5Oj#vOtV zsD6PMF^vM-8N%WA=EHFALLhYhfMjXecA|e8pN8|HH+M7sX*eHdb70Z`q`u*BzE
ADcK1cr44+oBp} zX`js7EWiyASYv{cf+3h}q-w>&6dR-%IuRirwWBJ3O>=`C9F0AF^K8-{HWLsW{?O;Wh+`=xMiH%Z|nDAkqV zYJ^-B1K@89fe=76j0*plbZrF`sQ3G)|=~`BPm=h)2q>FO4`xOH=}=OTqbvyCExN5 zhiYrhsoDf~cN@U2%2;m%E^haYS^Ya4bX(g`i0U; zzB&60+$bx{%1i-dJM@q8F?y!11@|?JXGy8!e;2MdSehNRgKnu;qlP?$0mvRpHiDl3E3)9Jj8s8L*mBC=X*Rm_JCA7r#2UO#9Vu}@y6 zb(d-8L@m~IavuYWY~^dDi0m%$B8&-=Z!)^mPK`1@cT0S`T_ArfR)C9lg?Jh5btL3& z?TO>E*3|O#1}-{px3*+;YfCo%Mn*UijBpF@`)p25=2gblwhp+3MpbYQEP6ePhOAi& zrJ=2sTbSCW7Un)PZf@kfZsjWESl!0(wc_pGupal&KaJQtjvE_qS41NmJVe!NR8 z@>D)N!>aET*Y|%MII+(L*M|ik6w`>0pET2m&p&IX@HyCJynw=wra_1<{*@Pl(V{N= zO)-zJ+L%B!r!jf}s5pNPKDz4hJMzmMZtPd{vcJ9j4O(UsSOoEXkB30YClm!s7Nqb4 z`K61$L@=Ppd@E(1vL;F8Tan6-e=bv&^A_S-9odNS3Gshq9nAYDYlxKSyqQc^F-u+Z z12UV?CB&vZ1Z!2WJ5d>$tXhm&i-4{cBClD&BJ$>;Z^>w`qXBs=L&0<7Nnt0dVzElw z+miT|4qI$d^Z=y&ie|*s2n0Tm1F&olC>YVmN}gQDst!sp_S}WdtYr+e)~Tqh?N5uz zxAFWUJ)eJJs3NcJ%7v^wgNSq?j0(7XP?A*B^GzW7+-mhU;1Z;@Z>7AKO)6b$3G8d{ z=E@WDvI`#fmlxf`N6#kr^3nceEg#)^Ki3R&g*^EdK02+_$!mFNrG&0(W-4FvVA*S_ zz7KP70&1`Yn)NUPDccTtuz{W;ruo+Bz^VNRH==(Rc{i5hRJ~a%UToD!n#!Y1sOMQF zAX^yJ*%b84vKyS&CW=8bY5=1(+WEJ8XzSlL(bk_}l}m%IYuV$iKefq{ID^OlIV9P{ zK*n_&7Jgcyb1bk(LnTQh{#E4ZGh9y98Rk);JDmX=V+Tz4l9+K zj!q~6F+T#^$S~oU>3FoxNLN^sm}gD&f%o&Zp$2sF+j_hKF^SG?m`~#(?|2=NnJMU4 zt-V`<#O`0}(0*kNBUZ@upNrN3TPpD8cUgZ&Qe2try~CT*!7~L&eTEbh*ASPQ%StO- zwQq5}+A#W2(;vz&gz%r$+y(U33^8KDnwM_VF}}5;A+T+<(Ue`jF{l^2da&rH!Zv9I zVB|DbtX`|NQ>Iw{-{xHNtAgM+Y)AN_ptWLqNNtFu5Cz(I-J5K#%rTLwp50TuNP2%h z8h@)#fRMH}e}sg3{WFmPN{2~@VYh`y*GtwGE4>F?MG|vyljR7<`u$BZ9x)Ni8Ro-i z;^q@KAI1|mos_k^VQKjP*Jbbx!a!*Gc~S(qZ%aWBv$6tXYnk^UYYPF;F#Q3`9#Da{ zMSsre6JR*2*R;#UP*w0%pk<~-RgizKLC{Q>wl0&dO!uM_%2v*lEGINgqZ1nYmB&AhWk z%%fvSyo3YIex!6llK}Ep6VO3Eof9)Q1}K{ZP5NhzGm6Q*#u*Q=!uW&s723lOZDC*w zWYn<7C?4XzrK^>QZp?*C3rLJ%oqJb2xxg2;SYy*@|56c_qBJnCPhCwp(iRsGv^!TY zqZn}quvHipOj~{TF(OvRf;WF&KD8ledTMNw*k)+ATC6E`D~vKQh-mMz+ue#GB}b8O ztQ6~!0k0+RGKpKIKn{-Hnw6wtC08q94a*P3iemz08@rms>3qF`Y<+>k2BTqc86vQ@ zF%moMV;K*H3ITd*TuA7s@Ma*pI!MA-T=Mk-9SJLO8y;%aOCo9=Vd8%jwFr=)^Y=M< zIyZtUa5zH>25X6?&uy)629?ATQ#D1%ALr!N zoD`FO>t;%u9fE6{;d^d2dFv?RloT!(Y&@*67%Z!Cy>qmE3K*j2@3 z?MAV>H#d(IQxD2ewyCD?QHL96jVr#50@Qv>2s5ohLFV4M>Bo&BZQ4^7)O?wfg8 ze(qhp_HL93`2BeB_I^D0bv+)m^h%fL|4@+tixI9?RlrcICZ(d%kWsIk637c&pli#*`ObH3qbXaiM!(X9T;^mVMS?!YMnwsvlYv#j2ZmO(pZV`xHFVZuvZ z6Ih^phm*5L5-d=+t3pg_(PRYbenLQ6He%1^&OXm-$Qjb1T6T9mKv8-z8AhW>`RtC> zM-iCjNv^fAw95(`qSmdg4=~aUC;2P37+y?VYZ8B_cq-K~KZIkB>4bZEoRE(A&1GAp z(+{&AmXJns8WpnkVQ@98IV`w&37mKZ*XT=z>FJEIg z!hl6q*}mkp3_k5pg7UQ!FA5X5g2Om6Lj8Zrq;w54XqClOgXI%ug7HpT4Yk)gYcLH^ zeDnGQc1_VUn7N6y$n-lqClKPgB@12bIABkTl<)eX81e3S+im?u-ENy)Q$|8w13lRM z1J_%QqRqJmS4_ynqoKVKiMesnb*d(NtDArS zDa(0C{3o&Zks#8L!?nn>i8Pry0y^wKJSq*YD1SN8rc_w)W+F|g@bPq_OsVksWI``_ zDlk#7J!u5&#PYWle!TkbwLvOY-@KnFORb}c>Av$EE)eA1K_z677mD%!UA+-PZ}N0P zmy*K=B2!VDMu41>yfbUHSPIn%&}M%m97%nC{zjvnAoOPObv1wtp8-qY$yvQ}CDW>R;_W@Xb{LXqlfwFhf`GwOeFUsbvx1M;Xg&o1n!v8|PNH1LB1LyQ(!% zb-T+}q@WbP?6z|~v6ouNSoMG1m)cD+PRA5cHrJx8^k(1{v%9m2U1h{7vKXKoDgd~w z!MMr~ShLcqRui(5jczUcdKQ{gYF*7@$Vb{H_^Mm^2zu}V_CVs|ZSgd!)J@|VWX2Sz zzEKyC{dt_wL0hB|c~PM3xpJL27)+(ofb)&sJ})NDy?$N-NGfs$4ZwemquFwqtVI>4 zZK$-YUYc!(vOPdkTSTPSTt>01>#b_BT2(x!<~1T+nx2Y7qG#9UPJJR}colSKcsNxS zM|+u6&h(n-PH)9rTH|$XbGER?O=}MW*_D2it2eeZ9@whcAxOk9Y%LW{e#>GZacm&q z<;F7`#SydaKZWAFwj6)M_Vdk8?Y(vJ)ZXi9t#CXpgOJ~@xwpj~^}Na^AK>QCdDzqj zDIhrf^=IhigsE)(<+ZZ4IVDeDs#wxmdfzDq~?h)qjTBL5w>!AKpOB`D6i2h;@BUasmj~tRXfZL6 zmm{!gBD8*!8Bu?gUdroQP?OT}Sjyh<#%hbpCaAK$$Z-*MyPxYOQZj(Ry4_M14?OvT zZ{dt1M51*Cs!v`Vbi6;}^i*CHkBA+G|FS?&6GA!|jNx8lJ1VWXMN>=i#_=Oe< zzfBOS;qO<_ifWZlg#4mJK_8$QmMBpWKIe&)FyUjAG$emaSe_IKP*zNR#%RtJ@p>Ss7Qm{7MpXo5fZ8H8GcAlczA3 zVfd$|V60;CS2glm>qc8O?_)zA0{B6kvp|e%7dwASoRS;E{3Rl`hYCl$*rHEK9aTBu=tmHttR_@PPc*!@ZD6#bhf_tC#?#P6#KQoIoW zeYeXus)g`fw}VZ>w<1FOS<>XSjJr}L`fB1hYno<`bnC7+8Yi0@wMH7njz@?{9#H^f zK%2j4OFd|Rj54+y$3n9hIQDJ2cInS07pHBYe31m%?!po>>g&G+xCt&b52=L$V2LIrzAcue19R8i+H`6_T{P!{b`#t{q1OEFX{`(L3H^hJD z*Y3#5QXl-3QXd_sEN_+@1LIMFh>Qv}CNun!k1D}`QXE-^|IED^zR40V!oS58|ASS* zCpfx>Uj_aHRZ9{isKz{FxjjM)#p@K@x-4S(Vb1hgfoBq66j2^2-FTUwhDq)^_RxjQ--F)&?DTu%9d|YQch}t={%!mS z-oTI5w&U!EWRg&kP1Z1;h~j|3fv)8Xm#9;p{>T|_1xbJE!Ozu7-k9@5I&nZtXn6rC zB`R_GI-!6^I0%@4+;RF@JZBbCxwz}+oDM(>mAvDe+kuM)L>lxPfUm4(wan{kH&7+>j%PRQO`IVu_FUhD zj&kx7KnxnttkI>kz)~+{CbdE7PrV59q~}7rSm9NDk^Wq~ByFRm;11dL0z4#HiQklY z{34&v?1x*vqk-3p^OIw0WNbJS&{ti5H3@cxH{K{E@mQyv2M7$;Ew-bK2h~JLOj0wQ zqzt$)8jOhyd%tc|s)_E@dDE0PM0Tz6Nd10ar4R2|pkgmulFu(i9D|m$^lh7^=2zBt zQD5kzoJ1|l#2jZ$UrTjJbHa~x1ZSKljL^$hG5<5Dpa{s&wA;1q{JvFmoFRmN0T5AW zE|Nl$c`qY*%IqASQBtSscnnBvnBE6Kj+^$udru6S=5DH-I%KXQRl9L41dAx%4>fJd zr;gbiWWYG-Hz5T1EgsyF$~teW2m~ob##2})K07^m17?M(Bg_kd)9Q~Gm{$@ zm4{Ho)eT#~zXB2;gGh9)C71(?&D(jXai z7RAbDwNSEr_f)Dz89}aXH!X}?*C2lH4{N74)c&JE@4l77ZqmqlNgC9*+^}_ow`1(2 zB-jO^eY9DZ^R0n|1Xz7T9HAC%5zopHXf;JHQhaGE(H8)ZENCXXJm>SI%W`c;`wzl&!S9BCQb#FEHt>GM~a2Lw3dJw3#JN!b;8j zv>w>!YvPczgw%{)RS1Aa4DpuaCUF{GhmkkyaVd>cGa{>hDZ7Ly=Z`e3Emv^bD(qoh zTcD#ga^tXi&WWl8nQ@lIIes%^UdB2_#yZecCyqKdTqn>GEo7F6Z6bCH#Kwx#G@=Cx zV5r+Vt=C#%HYSaG`Y56Wvd-r839JFN<8?tO(2|1aEDf(%aJ8^VRD*>OqI~flmin4Zn~s~`umH9B=V1b-Ua2HE zqYVnLO&b(O8H3E2mUe3uIJYHOXVlCZc9DET1WzM$V*G8fIpZ~v6Wi31e;80BfK(p# zr+QII#~4 z=!4O5GG6!U(0o-TH6D=n190Mj*&bjQG5KXsN)Sq8gzn=Lxs!AXO2*rYLzHr-~z2I4Td5ve{T$ z66uZj-TFKVoHRJXBZaK_f#Fv_WS*jBYip zHBO^vBFdPseyVSj35Kmo;aZq79k)d`EF)iTH20S>Kq;vZGs{Eiu#tyJn_2uKSsU()3#- zu*Ui{W1*UmN-ml*AX2~y59;G02V z5!2oue>E5JS1U$cRnH9-{D;$qS_jw6f&>h-iYb{pZN_1nh%5f-8o>~^DXZHuw_!&! zFuxWSXBf7&9qQ>a#p#`s(3-# z_fcu@H5fhaLd~G9vcMdlskWKO6I2(kyRXsrM%d&kMo6K-3 z2hmV$V{*YtrU`k(TY}{@1c|jcHC64ob0rPYx?P}UbJl^}nu;N#>auHpWH(^lE*mm; zS(Zc|usH;4z17dUWCQY%zm`!K>9M_d!k*c%hT z7`iYm29X~D_fidZDivRU+Fbo8`QHr=UlxIVq|Aq(fn7rqCxEbeQ|1LAL_9DHc{que z2_DI#MDClmvNV&i{j;L+7nTC;ntRdyM$Nq(LsfG>{l5NQ4E)J|PrK9aTN}Vh)D`BkCNpkP3Oz|HJxuZXgcKrt`#-bHNg<;HvsAZMUbNYMev9-+n(zI|Q+E1);FO)JQ+ASY-(2opl_d*{Y$xqpd74nknDZQpah#uETu#>-BzGP7zxVjZzgr}m$8kPA zlm4_at%tA+NLe&0eH`1xKZQBg`-FMn(8F`V!VG zD(c!dI_2_~kHhFohH}jlPty7ERmRdA;QG&aq||x^Gc2?vRKy#y`$+Oghi4eVLbz?= zr378Z!_FE;7ko^$)Q%~;3F9K;iw2Y#U5e2hfyL^1oVWwRoz%``7$A2b3`0^jft9>3 zI@|sD>fHu^e5HZERQ)x$e?HsnAPP>^%4^FKv`^&<^)mxT)O)!y!|Efb`TaPGFx$CX zTSSG$UbEX%QCLZg%XHH6CNxM&TG~^qF2#?w$m^}cYWh2FPR`At0x3-qf4CO=itq^K z{A^Ly=jU&DxxJLXOL?fjAN>8&HLH^*a_pZK%$i^1O}Rk20=EqR`_i7Hxl6{Qq1tI5>Mrg&xKZMiCHrVj=_SgnLlSxR%U z0R4&iJybVQ3!@c@%WiQveO8YkZQQZT zzX5QIT?>Qq5(IZz#@NJ>{ThnYX|~n2DEu1xEX!;J-;$)%ZrSd&+I_tLD#%xB{GH=` zUgxVVGE#k3JM%#>ez|vLkxx1(670^;X7D2@_?W1eO7Qrr5mO1Ce=|ZM!SgE}1xb|r zq8LVeWK(J#faC-tnUP#R@;GNClF#oFi=^`58Gt{Dr__28&zVKSDYcHk_t~3&YOXVz zO0SvORC>+$Q`&O6iYdLsY>nGXe_A@1B$(1>%mY}SG3hkQlMq(CtLz0*`yC zxZdq$F>PUPMe#_8nxHo zXruz`v1K`S;%P~CCWetgvPB|)1_1^DNzoM6wVZ1?S9YGNo-vS=owdLH?X%a8MF2fk zcUMGi&KbelVSmOAn^jp%Na^PwW#3oU`{ur*!OxZ&2^YIu6sgZj50$0d{7aIN*X|w&ayQv zK2YhnBAoBq6QGq586v>Xi4=ZLsGrd(3GB0QcQ@3E0O_3_t`03a56>quw-Vjd?I9xY2sF8pB~~F5k@({;EIL zf`a0krFf$f-HgQv86Ov8bwb7$pU2{ajE~o2c|ykLi!lRcu*fTUEd4arV2$68omG)z zK6sd*&5e4+UFo?AO-k;JtUC>rXQ#mvAJVq;Bp*M2@B)$>b7`8`u^Ybz65?8MS(HX; zc{X-H zS_GT40wH3`8c?-YPsa63s{o-TwbKEAoJ*?TzqeN@Q0?WIyc;{Km?pF7v$wB1x>(JS z=cb7`qu49Rk!*xpoVZ@VU+y?&MCo(ms|N2~XBZDp(eVrQL|Qt#V|wdn(wZM{y(nf{ zoV-IcKgzv}=&g6RXHAm`^a2_}8fqF}yV0lFv>5cD)>ugK3CVk+xC3i3~TQ3EJGnTT(_P`aRy;9}#ecOQml(34<#D!8c}{PD?b1 zQjd9IAv2h~$Cf!FBDPR{04c+NY0m+xO8~!8TeZdn%?20+skxeMnKp}A)41MEUpnSA zVdn8jX*Yq}F3x2@aV*RRdGo+7hQS{glwvEPj9mKaxj}UIdJs_> z{MrFulo=?Nx{aQAnUdF9J#22!Gx4I5R5|AkpbugXl=lDy4Wt^5k1$V3ZM)m(ojn=X znY*sDvlGAwN-CQqqRzX2ab4^x43j4whcka@5E)?@fE;q)cHWM`>W3II&y#Uo3Ow(| z0u2QG%Vj46G$S;ZEE1HpHe1a(e?sAa)d?ZRAJRg7dT2B3yjn()VrEvfEzNx2GS~y3 z-dg7=n)@Tq@9Q}38$buz6noEF`aQH(F@w<|jqacibsFC7v1LK_zKpylN zRg=6@Z9Vtpc)ch5e+>KuRWFP-S0UyLU#@H6CG% zN~Y$=nQ|XAY>bmpW8@Tf%Zyza-^(=UyR92kwkhV@R6Lsyon9Z>(&b>xq3_IDm!A*X z8jYA5rF@m*XJh4mzZ~1-<=83Pt+OQ+FTHo;Iu|xj@k$OGjjabDJ0om;Y~}jjFzG2T z60C^WjDN_i5@L;*z=QcuPd@x|fqHU+U8J6SisAilrP zl0PTmunS~3SQhWN>hgQDTvs4d>C>Ei;p%x%HpRcSUBlRaaPY*YF=&JPHBz-?LNUwr zQ&a9DEi14AByh>{wei&FIr;P9`HG(&JJ3}2^ZtIPnReL0{_KmTmul(xl@~MvQ#qS# zN``ljpxxh;5C+8}0r70RQ(id}q`(MoUELbe+}f%!omO#qN^bHo3U5d7b!p8pT$i$FbPCfKlfFD@W-QAS z77SBiVl`4}nvzFjXJzaKoudZf!baz$K@^Yg9I_`SLvOJ#TahZ+< zEXN|+%I<)|qE@pA=Xo7#;srGxv4_ZmRma->=H%#q`0$Lq(@tX6?wI<%H-#@{=bnxQ zj};jDN)lGY_Cwa4z&aLxvnGdX#Fe&hnma+~u+bn=0n^ECIsg1U(A|)g?x7#vS&x4Y zDwX2T-2Ig$DNBT>WA4VhE*&0+wRGZ_`1{Y4NKHw;3)b&JU6nOWqRI*i>4$fsMOliyUOA8t`d#L-VEqTViWwsb1}&>!Mk@O-K?@aLF+V^4{ULEhnCDvf$OCKWa5@C8du?~26JwJ*YXyb>o7 zO$Ot$--Gn`z@ThDyknH*(Vw9aQ&u__*mq+umMzQXhMk&a*Qvnin@tRTXNf21sZ~Rg z*4u4P_d)1~Q71QwZM&c>n1rmXb-B!D;qTipnpD_mV43^h{vP~1ra{F`D#;iY=9D>q zT++(a9Z^!@VBM8DjS_F*`ZzX>;Z@>LXp$?)FMkhwarIIexIraxKT%9y|2_D2-y}vj z<%ENbHFmSnsZ8CVc8C8WW0`uvU|jnghLZvsaH*?ONEX@IP9+LK(5p628bdnb#I!)K z2pU#>Xn$>zmhJ3Ix5Vgv0c9nqf7I;C$Lw54CByl z(7V5XH0}mHl;AU>xl;gkVx~CHzUVv}XWo#jaX|~Hy~^Dq!7UJ|7$6k9)K;5+`boT7 z!qWzv8jtQ2`gw52LDT&R)fnHeMQ>X@!>m9m~B z&YLmV04h;m)-s*Np!Xt4dZuZA_J}&%DRlzBuX{0e7D0722q)7pz#VG!^ra9|F8pxt zY2n4RbL*#M8imuivtltORxlen3^RxDAP)czm=Z636}rgHSsIS|t0ig@Zf$`9$pOJ* zNUu>#x_uVfkHf(y1l$PFn03pnV65{q?O$W&2jt;0<5n3`B5pwK)$?(GbyXl(mP>Yc z@B1jJT75UB^>^%)x>l|;b6m;eaEWM_O)lj;TjRjWFyaxNfL}Y~yB6I1reqeV4*oPo z6F~CU*kQ4SI~MF+0+%KwPt^xNvPsDY^DCEu%m;^Qe^0o3|ogy244!P~)T#2CKj7nO4E#WUCUmo*NFErL1z zYwY~uS6_@tw`)Z-z*5ZEUnC+S@x;x%>pTsrR>2CgY!W+v22~06BiFAVR&8<{vYT1L z8}xH^Wl0pR+TERRb#`c7Un)fVe(TS?q17=Hq&Dv_Og}3n-KD61Ic~$lSLXBF)7@nW2t1$4rfWm=+My!>&{VRtv|=4I}fVrZGV;|Av6@1vwY-};TEtOK$@-e zlK}p!g|h@2SDQwE-o%ZT772q3a7XMU-9`^AjJl1U0|>U+5DC!@@ zewf6>;{1&dZZoxeq-CeQo=tvJ%g7xJ!e|I8O5zQ*$ICl^cQW;AWi zO#pL2dGOl{Mk25Ub3#Z79TnsgV``4DW%?*u$Yp$Y8dLoniwoSbz7ZeI8cD{yy<;WO zjEdK=EThnmwX)v^(Dg($v+oW^l%2==qgqS{AtLx%DG5f-3c6ZSbFP~rT}A$2w!b;2 zgA(egUb72-a_DuzutkL=hOI0m;mGM)@~+kD5pPsJ#_njlF=ix-%STprc=$JsG1QnJ z*<06-HxI49&Cm`qLyHw|9?*4T$=bZt2+r1w;4nLalkAJz?2Bpk#dyu2kG352_lwX< z$^5@?(4oeM4?1gSf15#HW(FNA{JKGBZQg3oZ?dC*v{*ArpSK;QaYUi;>;KAe!aBcT zqZCpFBQV^U!hgIwU{BLW2PsqWnNv8ZG#bF}r4n|r-BK|P7R0WG# z5JnTg;g#dxDXrltY_a0lazerp)~46zjZ|OVk=fVS=&S$GzP^h>P%^$nAoHTW4)ngx zzM!v04ba!7*4g2RRrOT`wzL8#e@B6Bt-#yAqrd~Lz-fMb$J+RgGUGcp#<$PLH{N=G zeBaPT`~lT@ana~5_0cVn{z^Kjm7JNuH=|4~3$1^jGyS_Z`gg(l=WpFV^hmg(a5HY4 zT~+0;zPyWO;hA23%J%ZT*2}w0FE5Q=K4ZNcY|oLrcrc6O5_a_D%X_E_&h+l3n58}2 zCO4gCN=}GWu;HoxtjG&u`_m~eiItonN7G>LlQ?+~32+L0E?iW*Z#)Atw}v7vCLprU!i$D;fyN zO29t>N6jGIbP65xnWG6ypM@5X^+$CU(g2K!p#c##0E*}DA*@d-ES#Q?$cqvAD?{L? zWd#195%~G&{=WJg$g1C%2=}OeCOsm7)1++@IhMMHMcb1QU@^hIk>BuLTwm+I>ogv? zQ+DG*m3PE9)$Sj^$JRIh?Csh6BT_{dK<6>QZmLYsyN`(QY7-Bt0U|mMMdaD^V<$I1 zMbrU4Gi?S)0KOR2u3P&Ib$NET*{dhvt8gKrd=b|vj00%I0Q@$2P!vFa5@VS44%&p5#X~T zQ89)zaXmjq0K9HEr9sc;QKJJfzYy&V@n#eSh5(wOkGFV# zu6}khI3`+Nu;9f5@J=2qOQo{OtsKNMP~EzlB<^5*jkZWe*io?0E%I#}(c~%&k#st( zwbxpdPcUvm!;0{Kw!-RwMCZ({QaXo~q=NIG8mDsrDpikcnxl4tQ6rzpHZ5Eu1%-Iz^ELaSGy0yffT2bN~?Z}Sz(2K|o zHoMQA*2Nf(ssf%{Id=m}1p;s11`t??{{{YJdK(k|rGBA6Ivn*j2qE;1?+p@cWL1@B`#IsX! z?FhY#j;bX1H8#>i&ogOi!unQ&2uj}hPO!ThozreuYxX+00aU#`Cpd3*YE1$md_1S> z?S=L~LYvSovtx4astqDdnmiKLnzr4u(=(J~y@39IfaCJcp8@dw4WV^ zGX`jXyAU=2$5U~YRP!%`q2m)SrZI|&4X;Yc^>We=eJQlPcSmG}F%UWyJAqiKomQVp zG2ga{dPx7*{<^-lfIxH3Pix9janb(|#AxU;`MqDfz* zt`EY=zKtbZgwrJk7^<`y&1S9DXdP7EkEvFF@{?II4x?Br$xFtwK9-Rz`tiOjc7GJP z({a3y>R8~WVHC4kUU>r=#B^AJvsqMm{qp@b#r6HLzYit{`>$SJT)w%!#KQKa5dWtp z#J?Dw|D~OhUVu3NSHUSs+q3q&f7E;5R?nT^>-BH#-|P4FZ}&;y?8D?iYoFarZe-NnFk4bWW*#BUY=R6fdLMl?=l5fxSQ zN7*j^%o>1@Cl;{)rWB|t5&`a@q5%Au^(S5;azGGT1(!l_cejW&3-}KftX4jP@#trY zq{bHK_i+nl0d!N6ZJ?krf(wLx$VP+XV%zGB>N9K@AxiD;etfh_(oW~m%G=w2OFx1P zI`i0ObAJ!7WX^#;&3(ejq&Bl&V!jX(#lN6-dD zU=q~BfWE!G-QDeDh!IL6gtbAKE`TBMfdO_S2(T*)9t!NfY>iPh6kUNG&^WF<@nH)^ z2u(a)vNpJ>6P~%dyDmhu9eeSAnd`W^+^FQK800Arg7e0X^*Id#Kjjm0&WP*mA#Q`L#hCNF00FNHmD0#>z zV#ayUN$&3h&dTQ6yoga5kl#hbiDXid!KK5=Ne1gZq1b1sLqpq#Khd z8TXvqDrRHmrlYf<;sq6Vcegrnrex~m(MJq4A(-OE3wBg8hGutnC;O^AzO5Kyt|j3Z zH>r>e=MJnK(s$dSs#2^$qEFZ+a-Cc#Mn4+lfgD$Oy(ZipwTu+Eix;CdK>o?A4-19d9K3eo_(uM>!nI)u< zTlKP(-Y&ZeWD1J-V*KHU>$h*%0at}ax)7!&sLx=dqXa>!$u%Z~vAo^rKB@iIgKG`y zJpNe2NMibh0|Hg6izy@cHIp&mmdXIS`Y1GVk5+JhpOk*Yt0%T8r;*EeC2`!T3#cd{>82x!aJS#Bi+CLP%;U_y}- zDq{Z8kN1(q!X3q6>_$(LYQr`ux)%vHP9niINdT*hs)nLWDrQN(_nj(JJ<)1lYLgAp zMQrqc@XoD31;K$X|KHF({HXDXUq|P^Xnf*V;1jSv8qO+X7o9pQ9@v_JHVj=td1j8yXh8uMfuLL!fQhU~d$XN?W@Fb&0qVap zW_+5h$CM(Ks;?TsO;~nzgP1bl>#ifcCLu_Fby+xdQm@y=6`edoh38>smBOcuHG+)F z)8>i^&I8zT(mWkR^o4>3;dS4}tu?SU-F-Le5zin_V4usVznz3@FRKB+N~4R)6&+pP zO{<|@2cSs^Sy+hb`Dm4ECd{CE5`KVS@SM?iDsQK_RIEp< zT9y7RsnEMAdgRCtVQSSs!sWhXSXJ1T3E$WYSP!_R)a0!Fe}o17ps}FuN9R`>3;G^d z&{Z)DGLK*u(#hh0>z>404-B|Mb(>TZC(=~l#~>*&*Bm*2L31kgRHfVZW|FMon7Tu7e{UCfsnK;7BH&x zqn=t0xk@e)i-J@JJOaU}tIePf}r5wp=;wsAyn zd1AnhqDl#1eN!O*)@39ac2wDalpfzzsly@?a~qv+EHGo@QHghVt#8l>;vBEwCRN+8 zEC|knTr_R;tu(InfP>lfKSM9TWZbYIa8{s{?cfY9jY;f0?)HF#4BP}Rqa{SFw9CqB zthwe9V#*R8B4%S18%kA0k^zrq)!{~EM&oE*e9oL(MC=-%15trkHA{ehZtsj8PIMCt zXE-@>FH(yp+KBra@-XDR&LdF-o!eM%2}> zrnv2sMXaufhSjskKf4@%5{C}G1l7Sz;n4eMPlk*~zQk;%M9x1Pt7i4=kNRvs(-||~ zLIgxR*Ct@@q+P9Z3r~58j&p_~Ao1C#-PbGL6FG@?-4H?OM-d+>vblB}ODT@3Rb0xs zUWh8<^$fh?ePLM;Kcp-usM||b@O7z9Dm?IVfwLx*H`%p3mul2cMKAV*? z;jWAa6;cK+9uLF|I>?C^$H3#Y4HQgMal1ZCjCfEU`6$D~@|=$KXyv9>@1qtbim7w9 ziWF4)Ly! zTXw>)G$je7WWWS}5s)OfAVSo)qFL_xH2NQYq~bOmbLZ`-`e>_D6B5ND9*g0{pIn&G zVNBs@`;o-_X~-UZ5$k!tV`}ju*GwL{=&CF{R3%KYD2At-l!WndA0B#$pP>fgc7Zw@ zgYEch0=SAmun0sX_5eE@T8Lu2Su;&0#1U^79NLQe8uLPbRoI}fjDj-z?;IFU3zQ=E zr9v)Ioe>KsiUk}jZ^l=h*<_Yhe~`x!PvZjdoS9s{ao^a^V{Yv3#Xw37i3?#36XMSi zdw46}ZKk=uW~z#=5{(ri3R2Ng@M?q@yOm!ddfq5)P@4R^&WU zSEORS=;a`PnAQ|F2bbO;DQUMC+=f<~5`bojJ6(&nAFX`&@7e$WjcVM`iHCAfO|*Ih z!L+KBte_N#D=Y=Wx48GPKcVv>WXr0$>V8BPgV!m%f$7IyM?SDl(YmUJFcwwQ2n?t` z+9RW?o+lNdfjy@o?cBHlxeV#&os*D#Ns5JSjw zH2kkpCt{_eo0Q}*gumtOR8`GnRXfZ{La%S9xnsWC-L39afl&HjHSF)2aQxjddIM$^ z&bsb@lARg*z)sHNaB+XnTX}z973~F9p{as`NREz?7s0hIwf7l{6O2Qwtqg0+N(R~V+i%LilQM611bg4wM#;Jmo*ou=I>{sJL?+>QPK&K&YceroCr2;a#%0RtMKaVJc{ zCx0-9a=OfUyrL z=@w!-!O&?;=DYwXi`82QmjwV>Yy(r!3A{8*)U1OpXeTzO93~fuLnVg`sOJ8=K)=ATONg+42@^m#p(o+c^%LAjlyHJ zz>a(3`o0`D?)W1|j10J+TW5uya=d7T25mWxIvB#Ia}z_6$whX@Oaw5HC>_R~l{g6K zh>Be1L;i6K{KFdpuF_m$pCFk8jIx!IarTphSR7@)Fi-B3%(Hxn^s`Ah1k`eWz7|yR zX1*<`;$mJ7sz^R(YrhRctbnh{Yh06)`PVHWRyJbb;En*3jRo{@FElV`lA6Y$f2~OwQ!gqxq&*+pF{usV%WidrQYeAxek7?m`m8faX2Z29ozsbs5RpAJi}f1blH-a z2;HbKgEaCq8F`u;$x}WMjH&A67d>R0?}XgW8S}fC>j0>gQLU|Gr>iygYM#MG1wg2R zckf|Q&-tWD#0bOGN1G2w^Q;$eV#_)2>ohO@|WbKNckXKSUvJ|o`LK7FfRm! z`g6V!6v{Z1cV=^P;YLG$0UA7yYN5L&ILyNlR?=J5K zzRMy(voFs*-|yV{DS@foVP{pG)6ZQ{cr01O$5l#DbbC$X7#e9=?D;(s8IRO>fMpHd zY07PNr$J^@`OqYSh@A%cfbUUz0_CyC>)BucpLd!B#tSNjzo5W>g5RL1noXa3KEL^c zjNnQXMpS<(?bu+5Z4H1Kx7=L!@O<^>ZPohbR(lIFKMUw7bB<{8oVN!2b>)s826}Ng zI;EA>S%i47LDyejpy_XUE*_FPlj|LgVAf}lL!O7x1dN%^D32M+Zig*`=Aujw=G`u< zD`xVKw#GKOg}4lVRcqg!di#uk`|P_#R;;HT>)qSy_ZDHIM%)Sgs!c#-0Iwk)bc#BU z5mrSBHwlgSQxwh;8o^DiOv}2f&n-uaQ|{D@Xgm#rn6eO;;gB+aPItnUhjJ1+lsodk zTR9UQ*0T*HHAa;+h|gHCATJ;bgjTS~N+-kD^~&`_e?WY&gclD{ekwuL?RiqRBaw>R5Y)^_KUY)Y@iuaobE}06l0f`gq}m6{w1&iaKQhTMeQxl@eAU z`Iob!^kn*fG80CBk0N@@Mgz?$5QPFXANUH!P->_6EBl-&qB_D&+Zs+v}VBmAJ~f3CHjvvg;t0l|WHiW9MaE`IF3c>n%g1fmp-Zs27wZ9zVDfC12c$tilSI#VuvScY0Av#XrDy0U{GbEFdgoLWqjiL-!>Z! zo0YxrlJP}Ehcrk$*N++GfMCMhf>o_?Wz-6;iBlRt#4X@0#%g5kH5O!U&$9`vL={+q z8;<~g1!=;^@CB|}v@&6hjiFTuY;&N=6}(R;u*Dmj8A(o9b31%E9Hn{pAkZi^S;xep zERgd76@CaexkY)gGPGXC+}4cw9FfQo=2 zPf$h3mkh~Ky9c3a8zWX2e8}l2^KkQO-%D(N<6g$HvIQ4i(atr(_(|2@=O4zfFUd0FKQ7udmIf@8LL`-M*3es55qd zIAzf6cp{;=v6DHUA@IPCo@~EACGY1D7nU?zC$`-qhs_qO$vc3z$Tq5H0t?>FO%%gb z=Hy%u?4ZSZ-7@sEhIE1YSySE+iiYwbQrZC%j}UZ_n`YS+LfwcdQDA=&Lyvfv4F0mB&@ZzSL01xKBt6%E zXQ=sHX9F+h1xT4Si`D>mH#nH)h@U7mb*ZRYwujF8dZ1@g22g}J9$ik9t zv(4vCyXRo#k~?uMk|En`(00ijf3Y1u9kTn{B~_Bb!Q_dcn=aolXHDQ55;k zgP3mku2Rh=VCD8~gA3+5mSKZ`SDdKap!3a~tq3SWPxjNpx#ba~+>yRO^g{=%6XOuF zj#F|zXRylbWVxJ60Ox0nvG^uqdBQeIjd^hva>|-|x{iTx(WBY;A_n5K0H}&Od|tKx z6YPWJ0dqmTsc`cOfOCl|lcd(RjQi0XjBe3J;{}O^r2BOKWqTG){-Zlc*1C~k-PecW zm<`3TJ`@ECE*O|1z1O;FtEYa-8kCX5{?-wqNoIUL6pv2lmbR9#gDvKqT2<#K_SByHELf%lnjH z4Lv_ZhRa?Yz!{NUM8pd(8H^z&Tu~Z+-9~OfZ|%;KkOO$74etE#;W(Icz}8NpUVTL~m!{Sbt5ccE_^py+j}*0P+{q zO5mRWmq2L0yL@en-NnM4yAHO%7?>=0-4bW&%Wr zUI;fiVQ3($^h-L0_auLEe2n`hc*PZFRjUD4H6xn52xn1TwQUY#^?30`{v z`q{5Za*fyZ*(7yqugXjCeJ>Vi_Q681o`lc6J36ekMV1yhgl*+<#o~I-3pRNr*U{&) z0|L|_oGw)&(b2NY3F-1>qcbEINSu7xYc3`zbEXDnRkc+*@H2nD2qzPlDUYWBt8Es- zt}sL)4_CpOy4H9@P@g!b_=MioF9d5fbe$TzFV}aPA~BZslNTj3*MCO)vym!!tysKP zH~6!DO#W4W_+Fiv`Ejpcv*%x!yoIm&;hnT|VuAt-Z>c1KZS}SK7KR6GdDbM|?kkU& zDSG_y#>J0c3^jizlI{{63RI4w03!d=DeznN7`s-i%pGd^$&8OunrqL6_7&Q4N`9Pw zrL_*+0?XA|P-8eaZ`u#RY!WN|VJ@QZ@X=OYnmlM2YauDLBZ7<(A_OFW(FLwo^4Y$WgXzU+X4qHxleLguhGioAbeW#mq4t;(=A8P;xndRO^# z7AM~AQXC)QJ(Ev^zQcz?0I8OYy|B%TP!L_EW$Y$rlP51wbb6tAT%;XJ(TcFb{?yu) zaOw`cWLY~t6qJ*i1)RT0{~`0Y(D-XZ#NO15n=6iIIUBy9ZzjA3>|3$?mAp|WH6*>@W3XXVPzLe(#-V)DueBlCZ{O(xa|QpYzA$n2`7dH= zGy#84`sEZ6nZCF+x?+J3fu>bX87qT8CwJ&aD?~2bM5othFqZAjH6( z=XDq?DZb_=;hHx*D!#5UL6GMWwI z_6wa6GTl2--D@^jbD@u79%pZaW_>B*X`B9*8##W24ZKh;KznjA8j7s~6bJv!I47;c zAEJeX5kC!HO?952VkY*boPe$A6>9noTm7G_t1^XFN1qNHw1VrRpnk^6!DEiG@su)A zmpy2dWw!^WgMd~R_ZC6=7z|0=dqHs^m&JV}?0iNP-%^Io3=++mZ;;Xu835c|fLp@?f-VU*JW^!@?z|GX^IGEeV|EVXPvVFMMS{6zO6Eqc zn(qalDlP^vQ5mORz%u7U9cNz4D91coHdcSKti2$@vCP80h|5l>1R!8i($6+E$S*CChaU^XV}Dl2$>!hc*fGq~yk!P4Zeyp9mMyWolt2p1J|8fCqI2 z?52vQg4PU3>=#ChHl~g8D}rnO&#FRn;!DZ3`9}C#T@=boulf#d`fTmK^8mAsIWd12 z4hywbC9{jCj;~hxLZ@znCK>D z-{mO#wwSW73p@EJ*U17JUKLZ~jZVX#3X6ZfP4O>^i~mb6{%K+HAGRs}&*I{L){FnO zu=wwdY4?l`0<5CQjgu|r-Y>;9|7(A{Ny3=HmNP_g9CLd7mYW_w7Eg~K)RBZP3!9xR z#c`oX9uYfIuza{r515ZXXLr0&pS%QOi;KHSpS<(%$j~V$Hhaa#)dgZ3dFKUB;@BGn zn1HE7n4x{fZFUv`wA+@+b;sC&o6u2+c(npnu-oI;Rt1G30H6WBU6zuAS0sP3xWYc+ zJyou}!lb-FM86ZbD^4H)^)R5#lPGeR_1h?%R7HHJz&6nJEHJLLb`Yu%cDxvV!<9rB zu?r)4J2+*SP96q?S(#larVIp5tgNG4vK{5Rw5RuV9r09^Wz-F}q^_zo(g=(|=ZwG@ zR;Pf#k)j^);>*8guCGJ-o#KE0k%<2=@a?{$Q)@fYO?u*T^UDT`J7|;)4i;Z)?f?!( z>+lf&GXId^{=O=@%#uVrNhFd)00knG1dbD>WZ+J{#Pz+;^tl(s$twzeMjaM?NJE*| z;GFlU3>NZr_e9xiA@d$*>IL8rSbygQZ|5|cdvx(t_cym(4T5I_i%fsTBX}Tjn=|$z zGM>g6!&%X+3&y*anhv)#Er82ylMeR+<%6?j1{ORqb4Qaf*ag;+GK+D=e*wu^*@_1t zJM<-Mtj#qRl>ihEiyENLjzC5%BuGiO;W&|Yu1tmsbA%nqI++5wxd1yz7EVz>nvL^l@!_3OUT0=Ja%r0Qe}MN{#GO#5K?~^ce%8sTXjwTkYkL z&bvRqQnYcHoEXRK-%>e$YDxGaeR0R#?etFp`SmLWIU0HMX<6rE+3(G3+!)s1;2cX#M zEcgzlIcOa0IF$P{3V+^Wzh_1xW*hkqP_8doq{$UVoCLih%aP`spe6u`OpiVj~6 z0XLXk%7cIG%~U3@E}vO@bk9=sw;(-B1{p9Xq(=<V@Z-G@2Z~?4d>xE(H$$~-V z7qjA`x`@}>f;%V9<3#7qjzhD27z2L7CHgWLT>BmjkcjfRZVs9-%N(O1-+zEZVzEBG zA$Ldrdv=o~yPNz?e#u-TBYl!}jg9m|R!SY^fn0xTPd78|>2$u&7$0*aj>;|T@Ukw; zKMRgiXwMMv`u`{R8iR-pT1Shl!r&ThmO7^IqjGdG*d91In0!$B6+xMSJJ*kqcmf?| ztc>Q$*2mbYb%DIVM5te!jVo9SGAxTTyaEkrfo0!KUu*M1fB39FTCZ~~6}QkzsB zI^4SH`)=^bGQHxT^^H@oLD#SII5QXk8~lvV*^|ET|0`C|{|z)RR^^xG(rj`Hn*_dA z1qE6{U!Z9BQs*V_^oO^7=5b0^%sR1vS`h#8+Py^p4t*=iwVEHj>r=>a6T7#xlxqPf zmysa?6n_N=H8(6_;l(@%*AU|xPw=oWMO%|2R(VS4q1o=W@dZ%pHVH?dSx+G%%`9zm#VehTIM4*3@ zQ}Sl}J*A-SVsBYLCpo>J%_3B=Z9Ok}MMIu%TYt!bZOc>hGr$9dg=SaQQKMm@*_Cy2 zbO680=WM29Y~D&s<|6S2J&d-W+r;998MFK+bCy3}D-H@hV|J#$_{y2CPzcr&-RJdh zn&vsB=-)oo|9bdT7md%!P*2Sv_)t6qLZzIg{hwb+d*xWap7s&1e=FMS`tQG;_CG(I z_J5-BIokhf(*FBm+ABMg)qwwm6^R`#t5PJ~Z#Ejln$l>12e33Ve82Q_?p}% z-aq^mau&f?0J=q;VRCjcWuvZK@7IsI=ta&E>|!mwMK*4rO;(I6g2_g&XRH5d9$>nh z_M86j<3^z^qjJjb2_+h#Qrak>5u{D2Qhzfik*w#$J)4xSngWec!7Zq9GLW`WcrJ<3 zBD4IwJ`e&ZZnTvuIp6Ebz7-e@M?|T#*m?*wC0D`3KP5lt_Vjf5_sspWjusCvbsp=@ zbSU^;jiLCCi6EotYLu=KH8q;*(SRsFfbbK1b?9}JFN55*Cx|}-P#;~Pvlr`|et+Sh zO)`-Pp(olcyO(a|kryp9IQp8IUAWZE?A}DT@7z~(4pVC5tnrFX)!e0K+ZXeyn*~+- zM%5RSWc#WI#Z}MLYt7JH)Hf{rs?5;AWzHMa+~F_`0FHmc+ukZ@`)#)E7XTsw8i0*$ zpBA@$tdniTt8N!mJr`9ECdqTKjen!TV4HgT#q}=N((DFWmGgM&k;MaO35uZ4%R&(H z>*ZI2kgvC2Eb?nCHz*h;Gt+P&h;FB@50kR!di*ueW!Q)44JWyK@>gI^%09Mo*X1v~ z(U^Zd%H8(A213I(yzzgKr9$z|yXY0%u50F#+VnAEi&WGVa57_?!Rr^F;eWDh{F(VS zJ_`6{n@+F#V3OS2iW2vm^a#8&2HwQ=-!H;v-pEVf@B(d+OMO$l!>6EHAND7*-sZO@ zHS=*26}JFMYl{C1YSy?sST zu73sl)%t35@_+Ytw8Mvrp?|+T2_1`?ptoK?x96_z*|ocB?%#dwt~Vlk=dSnr z|KAtxf7c~$=F-+LanKzUprg$47rX^X(&di5(;RZNfPFMk-tUxK3YKkz2E z2!zmBN8%n=Ei3~c(lANZ>C6%|7Z)p> zhuLy%=_*!TF;UOVi76904TBJ%XYfrK6NCQkBE}370af;Frn7?R_ zOw2iQTRumGs^bB3glBok9GR};5(NsEFToctJzQ+K^C&wnkSe-`lroKgGmM~sS%_k+ zy@0G>J|^6aBdLRTE`oPLz51L{ZwQ2TT>2=^>M)uQQb8 ze~6)EFD=&{D{YR#kooIQDdsPf7IjmX1>)VSO&ZgOA5lvUgI#l#qW?$zZ8$|qbzK}Bz8c3Z-SH65?Ci`P z3*Qk1j-MeGBM_Q?e_A>#dN&Ot=xCareOlJ}qXDoBNfW1w;VzmMv04_f+7__@G4aqM z){#Z5V}FZSCl;|zVeweR0$7g$0D@S=f&sd+m2;jdxryA{s_y3M|J$nz1yS1Z}#>w%~Y5VBDVSo4C z@qO_4@#EH^y%*g#?A_@8-@$GODVx1o`{eZS=zrkwgr#h@?mbA_u=fH;8r=We+l?S; ztG9R5IBGTyPnxGJ>G6H|`0?ZBp}prpQt$rX;cfs)+r3(|ad2?hI&8Nan6}lrk05Qs z-V5&=+-|j-?Stlq9v$~; z2Y-jhjl);v8tIcOdnG>Sp~+ee4(!*=WRi#z4rhr9pw_|j+|9e*C59vwDW-G{78$Gl77eYE@UP)wx8(dl8M zdDLdTKV@BN^DagA!S25!PWrv0gZ6Rr__)c3>45duXfyM9v+??oi^9^r`hQ3wNDz&qXwVt<=r{#)sBuD2gfJv_Th%^9Dl&L zA0D=kPYzE0hVGp9_70Cu4i1hE+9w;j1JkI{JUwZ&kN7ky?GSLTljHVL`}C-}p+B&Q zn@8=#cJq+WW((Lt z>*%O)eB3_x(jNU0{voDY`}pMWkbe!%0qe;L>&YL{A0Z=Qt<`9?4v!BG1k-A=o-|oc z{s{h%%cgnKK5euchn!*o{s_ciw-4Km)5Al?SzB%F!s)|%01N<1I&C$M z8f$uS0F39jb#mHnAFl1iF%)=saC$7*L|GpiFkw#*j@yl+gT~kPqTSm&I)7=lj!&D% z2Wxr(+~)A)uzlQWwbpf_-K!n9T8FLX>GA2hP8{|2j*l9x)8@(PSN7nvS35drw2uxB zPL9`f0H*Ijt9jBqJQ2L8WHKH0_72;Pw{=|^oMGF z_(wIm|F>sz(l$>|j@pfr1AjIGN2~)!tONJ|4sEeko2{dh)8;{wcc8&K(Bd6Xm6|w!E7U>=5qv$Bo9p$>HH~ zb4{0!ot_??o*W%Djvmq_Tmgs8!&ZA;f11EQ4i8RSt>e?vuj&yn^M8}$cDvbbAD*u1 z5Nvqu#!<6*%!hKj{(yvVcm#V;`=qh9NA2ETv)wpt9yX5-zOG9+D-I7^?Z$CqU5|jx zHCv5Vv(XkSdaFLQdV9ysljD=)7N=NAmri@N_CXt_idaQvhv3xX1bgrYpPD@<+Jis% z)ap6m9{j z^+b)`WUt*TtHx8+gv28*iHT1JjtH?$W=^+x+-||~;j~R^t$*X@al3tTd`fEa^#KuY zPee1JiQhQ`Xy?&^9aLu|0%#Z+DkrHO9gxJfZA>2mSa|lcEzog@=X3!NVa@+~gi$7h z3Y)ga2y>qutna?7CjU72?z^@P5yxe!X6rR6 zos(||03F3c27fh=?D_<8EcUDQZ_n*&ebpc*sr_gl?$o6Ry9+1t<`G<}Yww!)?*6_( zJYdOA41W)Mj!$@FW@_MEHE_{?a^ONXa4uqBnBx{9$b0SR;Jd+jCXw9%(~J*Zkeo2o zjK-IYXOtb!ZqoZ7HHfho#DG9B9i(dDG|qzW4$cB-YJarnBwhOW@yWNr-oY-29pVul zB!-+S(U;Rg;}~L6uui}bCb{rs*QeBYr?>{?4UlK z#p9|5qrq5iH6bkd9i4oF$KD>5@JH4tRrB-McUVCv+{p#{kQ-QDWUNvaX?!P)rn z?0-BvwINh-=*(&ZKEw5Ip-tTEl=6V>WT(a0i^+gMa-21>O*}hIK_jm9idn=N3TWLj zlYM^b1#Yyg4sZ^_`?R18mdGdxi@52}Zg2O5J>LzReS2yia@oRBiOm_xcAQY|I4s@R zjmIRaYMF|J2fZtp$|=oI)UhmO_(CF)R(}i$o#+7@m$vM(!bnsqj2PXx^#U&*S3MZn z!0|PD*n}c5=Pe+v5`D#y!0Z^lcCoLjhqS79B+9%Qs;Km3K7q z^0)wcTL`qFqng8UIKiY|>sXJ`S-IX{-Z?Hn+jlg--%jF~Om~o(ROJSn8lYoRnyRI(bxLm??%5Wcv6xtYC!;KG zS`pJkNHM2~wblo&&&Z+4@YsHU3WFaYc9&MRj(PHOX1pANFgQ{u~_1%O8X}MJ9 z5%RO!k3)Y38$dX%9X2X);zkMlNFq0geK(=Ci8mbjkpG#=A5YO_q{d?U$-tQigK4GY ziAp*5;u%0t*2dm&h*+vG)qlrv6Y+r{^uy9waq}8$4#2|$*RNs7Z>wX;7VvBnAM?B| zD(Lmn4DQX`@1_Z$5G5>3ghqxa97W)do02Q=s6z`Nv?&Y1h4iX>vwT>1ZssNTB#Oet zD|(xBM!xpuicYDUbmsgWdP8$(x@-RK@^0X}6EtOKU!Hru-?=kg?SFjbW;dJ4hb9qS z>NLpP_fOEq1Wf+lzJGE(8w}vXPLrEfLtOWT8&Qh@z!63e4`UW0Sw#^~ZRMZ?$zDG@ zL=RxPsJx59i5JtVu+rmZFp=}z^J(_TLPDq2I6ZD2wutB8L1#ccAI^5(XSy#>6YrP$ zvf;-GDDMhgTM(AscYhjZaXr)mK6|%SS9sMRf1UY>P5eElN&N3Tdr-B{s2@`q_1A^1 zqiUZe7+#k^VTi(t;kALs2=kx;D_{8W_}_*kaFV_7vBMgE&i-_gz3?o?SkF&lLpi{h z4?BlLsfgLhN9^tUC-QhA$I#hn6uS+1w^inxM2ir){9U)v zvr`_|0!#ko^{W?2GQ9%xt~fah>h5rO3I0o9vql3NRV_5ZBFy)z)o3`56L75Cb5??}i`XY>zC&7?edl88BYn%g zcUS6K9ek^n;fc^FBu1Xl1RW)6p%x*3!(u8i_AEu zlV}zUAj)3o4(V_o0_G*I|829;uvys)FBxA%bV!55bA3fMzO>Y^8Ln8;W9;>_LkMh1 z)El*kWmckILX{9Zy^6jL7GWM_;`2U>nrYbt9LDOmVSjY#01;ZR+##($=g%M5bFtMZ71Yd{1mEd4-Iw~qGycHLkDn~1F@3fH!ray_ z^N#Qpeyv=$_xAv)P35XOFH5#VwS`ua>U>AO2UkJ$UWP0kFx%$?qIn8t`|$y@y%XGg zgMYgqu>gRDMluc^M*Lo5ulqA~RqhyS+QIf=pw}E8 z9F&qVOT5-P;=N7WYqmj@&@E<*}tNZN|J!xmQ;c{Svvngr~ua9AG>3%P?E!l3sni~d;MRO<_FX4gkfPdkd zTI3}gE7u&WcZ@#^cFIRY`D>PvTRHHRB+*f-R~bZJA6#B=mH6J^li_Zz776axut1nN zrMqs&Hu)S@t%|i*HqD;8gHK{-S=$uJG*n}hf3<3ikPD$bQbyF9S{rL%J`zx0Gk0e&y+mRDr<5fbAKU_q)3#KzlyT z9MU;_VDLQK#0Ufi>n1A|;&4ajCn z!?kDCt-S#M)eB&0Yt2UE+rY*a4`(RZ{mMjjexGVPk6VrA!JfJ<7BK`w&wqq-e)Gr% zQ_9`up;6q=lzuXb+qR?z#B(#RC(>sY1&d5 z52{`uZ?#F=-zKnMy?+V^u20{46Uuik3VMeL{Vfb=$NKR8!Xo2v7ByRlfCq}_oq&h` z=|;ksudD6V$vy(I*d*$44fCH%JuGxixcM1wdj=tbzlH#&_-ppX_t_V}WL|I~=wDI@ z;vx+qaJ>pg+sic2^_Rhma2BaxOBL!o{=l)g9(m1^099x{C4bcJHhSA_^O+r6Y-N8g zw+?msvr@%ixBPHazlICCOf=G83)6+uOtS9_lD*7EHvOd_5eI+zlAxyga4<}U3<`{l zOe!LS80$eFn@nN&5ON z4TYYN>&#-SMqpAzq8ZL8hQt$s%5R!ZWcI=qBV0MK}CZw7^}L!AMD z_4@8KrbD3w6uJb}{ctq$sfC*fCe^<&(sZnE#7Af=rxd-Ly1|eRt&Rl~B}YJ2BJ1Gn z#zCANqkpJeyT#W^L35^V#B@d9WN0^BGd`0W4N&+t)aKjmO`$endXrH~4BTkQsa=ul z9+A};hTixl14XT6uu?L*$)G(Km4}GCDVb*`Q;px+GP9L_@l*q&*(n_w6Hg$tOx$S1 zfX>sDEN`Ub5QPf>VZKqeCfE{TXA&_bmo;^VK!2P58bzA#d)T+1$|*n{}z)2JXBP zxbxc7^Zi)$0nn`3dgY&LiQ5-yR-m{SOWpw?%L5);qa%%Xz+Q-RlHAJbktasGz$nP* zSAWf&C1FJieD>}p3$}d<20*d`YzQJK`H0-pBd@g_ZUm%zq~1(x&C0D$@4z}}Q3G)D zEA??$gHP=HB66ozO5SKQCObJ=z^hX7)8-`4Hz#?qImutDrJxN39LK&JRi+SOjgJp| zWu@e)nU+J5Qa3Yyfll-}DQ9o}i>ep?H`W}kP=l^Bf z{QoM>|64)+Y}Ox(v;J_i!Gum&&@~%*6S@itEtMz)7n32bt4dZnB6P9FbS_yKlUgwQ zU}3CsoVhTu0ggC|shZ024P#HyBFpoUrG$&@TKIDoC*JK++*|OQnF{hv+^u7ES%2d# zN~{Dc$Wt;mHSW6Z#*6$02UdKC8ByZ$&YetA0P+{*;>2LFPMnx6{_DgExZH~$E>N&+ zDH$$Ik%AZZwL*oW;$%@SSllkQ-i=c-T@>?z9vLs3Rc0!T%vmhLGc1hA5X_q7l{fK{ zY>b9>L5zk)cH20B5Dkl>U<)7^6o0G-k!ewu>2to>#S7!w=*cTLX5F}^+w|mOQM3WR zDkRw_qoVgX{kEmp`@(we$~u3!FydMC$g_o0a$i>&M&WcAE&{PwHm)U+pxU1%JfYjemkGDzL`Qcx03`BBI0DfJ%Exx|i6bVLxvC=dKC4 zp_(>QTVEaO-CK8I_~W)0hCq}lBg%$L!+gq(7l(Rli&Z*HrE>k@3vUmNcDa+%8;Z;d zsEZq~?XC#)S~gq{WGl+u4`{K$ZpxLi*cQVyDo4&;>cGeTqDSzup0MGg-k1ie{&VM|OLU%ZT;G;|7e&vUQ zPn}m~j#r&aWh*uIu;_AmMa3}+lMruLdGHtES6~>?Tl+EpydNY}pcG_#=f?3OjE380 zjp<+(dCAiHQqv^un8I6!v{O*=nL^C-;Gv+?qha z%D#fK-?5_C2!9g=t%5ti8;DZ5ZHxTvT7Tn2ifh#~w_^ z^(FVQx>yL;v8ZAvD~oCR*u752dUAoDA6j#XNTF_$I@ZfKKV{RUJzL!6fGX+M4;LLv z=mk^KEy|O1c$upG*yDufsnH_md+_NKHi5bui}mbcQ_(;D0TQCeV@PvtizArutp9*~upxJ2_fUzjtF7WZiWY>lI2lVr~k%{q2QagM0;N z6)E<9gw<5z;(gZwLR&jdu)CYAIVz4VvMlW}6iB0F36{#{+3eCeI@m z*Aola2~mq6XhrdtwD8zx3f6jjg{-98GTF>~@P9qknT#$XnJ(*6%0YkC_3Y=tf`;K8 zcUH(s7PSylqiwF(*wk9(s zE`KKSt3o0}hAm0_=|4weZqWRt^u_ECB`(Xf4P|-CVzR!^l9i=iOH=M!^Ew>5{xi?@ z!%^p2hugp)Rx}#GF=gS!v@`WfPkzcX7vVKNi}%x6=hFrt4)*nja25qFMhok_mWr(wKs?>fzf@d~6ZoHjC|?l_!)yBUY-v9pOgO(SkO zzBhuG^Ea6Y=Ikwi!q5orrSL$Ex5Zb0FNI(DJ(f-j{T*|hfx7g!8in+BvFWb2i@(XV zi@n`x63*!^!pX!9hBCVs|4jRA_J8uZ29ie;?u2sD*k1-7AZf5m83rfd1zvKEx%D^C z*qn!}AKMIqTn__)I)QalgR4vp$U>|qC%3v%drc`JI3;gej1IYg-}Oa>=KFu%R;_RF zExfXL#o9trskE0OU1kBPw3!bgeRg@M4B0OtM|Kja9N90hRp|&13=YN*V}B|JEF}z- zM1Cz}KP4f`1;o!V9LzxCtRpL>I~!wHx$ZT9%gxr@;iFmIOlz=7N^7kxe*Xw-)<-l+%Dx- z|0ZM`wq>JzqrvF}Bg!;%%YSCbD&7VZ>wrNQ@=L+xsn~1kB26riH0yB~CF=UL&Qu2p z`)kIIS8J*h`{e(!_x9Uu8%w_E-*=uu!gzRqs6~@JN0|gQO&T?=$P1z1EJ!Mt@d!S65g4s(-q~7Z}~_I5Q@r zBAIW>n~$qQXW)Agq2<9Z%V&}c$br&~)c2+9h=?}e;w30m-614p87S`JNv6l#DUErv zTf+?(4u)8Q=_nHUmYHF^u6`W448wrA*@DWjF(jgYKAKrqSvF2xi&Dz=tZ53+q-km` z+{cd}%>tm#qgl346o344mp}QAtsqDE$Sy>ik?0%$*p4IN2Z8aof}w5A7To>N&-^0T z)i2)h+crAq+TznLzn-@JGz~7r>Qu`KB}AB%Oxx(gY$D2^`JFizM+3-wlW zV({gxpYJm@eoe|X;*jZwv&Ndlp`s@hVX=5vCaCq?zhqlmuvz7X(x}Dg)1O2S47t12 z!mtQ(>sB-9gnwVs=`N*Irz=FAyTwSCdwMd)=d#8aug7iR1m7`?eWej|rdNSq?7D8P zJC^37v$G&^59i`) zt?O4D8BV;?<*pJBbzx4*2x8;{s-*^Q-hImB7M`S~VSj(k^GUmk(Tp?%KafK%ceWU@ zCW4j*tbx$fpsQE3^1wAa^EVuP=}t+r#y%we6oV9ey-u*2PKaBqBzGN|y2ya)rTh}* z4>id>RkSxRit3CgU2x^Z%V>Dz&s_S$NK-QEaOwI=yS2%11*Xkc;PPFhVR>MdZy~Og z#awvdHd1@gs(sPU<{S{Yfabh-g2Nxu) zIF{8fxca37h6ZZ0y`85&xE*J!ZmHCVL@lCV!iKa63W)qMgeHIlsz(1AbSdj6;^kJ9VD2 z?0=lM+BgcfWDo`aE9->xql#rEN|FqNSpa%FqO-+rM6*CnkeQmNS^B#7+3rtj$f5ugy&=lx^fDVs`JtO?c5-ZX%Ys;3j=P>`%b`P3~K` zE!bM{Y89CT{?m?N5p45IiSf9?qk)|vq<+D^}!C<4~CcqEi^$=Xe3zEQR z<6)2vrP-dfZMjla#vW(H8ndL2X79UO%_Y830rM(meG{Aa$%tdyUmfbUK1{9nIDaTU zYGy0TA*14hFg}u@R?&E3Ib>WUaD$lTkgFn1Gn`otxiki+L8B~(T-PHKFY57&x25p9 z%V7weKd27Z5#)I%s=zoALhk)Lb+hUlm?*S7^FkoIkVJreO4eU{+e}jZt z8w;yd$)I2g8W_vvZ` z_sw}t1X05UZZrVrVHtt<6yzRL2gDy$*_#c5bR7D(t`)@*vli}bfx$(JxPQt^ye{+# zF@Su5Tv84bfJl=1L{hluBMNatxX}s(oph_?sDXs}UrdL6;N!faEsJ~aSDh;$XRW7d zwUUyfhKdAG^4bxlKzQ0GOrl4+6FVQ?=d_ zkE)JD=rL4U-!P`JAF++0KVTaOnk_A4RYI*g$RF0keW)uXmw)D81b?8k=k_iwmUIn! zkeF5(u%y8c{(@yw#-ci>Q8H6_9)Rrx2zA|z+T%D3&lz`fA?4smuKB&y+Kh_DSLB}h zNd$V`O7_TD@KLc=NhRd=^0Hdd5{G-FQ|rC{<1MV~NUiH){r+CSD)IQ@qPL2@w*{q& zu$x7>SLX)&70Vh9;C~!083{FljKlDJySvJRsa&MSDvE&~H|7XiDnlotJUg& z)L7NRL{2$leXi#ncoLKAU1C1G)1+SU5~Jd!?3$8HaUER}!(mERWcWw%o|K%S676EC z)c_AP6qmkE0uX;se?V{J^Vq&t_s-Gw6OM!gVeraNkEh@gj?N`EE+A*=!zZ!6HiN1D z(uH5z2SODfIjA9o)I9sKtPDqE?<`2S^JGVJ3@rSj^=^gJ!b!S6HJzja>j zpiD}oV6)saT5n}EHT;N%)BDAE;K${Sc;#$KZ170TquPbN^q5BQz5c+cz5dgD?bR|#@Us6DQdmm5B(rK zk9fJe4M8vYmB#@=!k0W8&^V4UFL#e|h>~A<9KAS6CgbeR0)E-}uY@X$UR>YMUaik)1}~iRL5kOY z%(swAarw-j+v!LuR)oW?Qqh^ZRbJ;+>C`FumK9IMHTbuhk(bNmEhCWfk7PV8qCyCP z?pW8Fk)4X)5JqhzmQs@A-&F-SMyBH`ZlRT)lG%RogNh*3{qnr(o`Y_NotTu z3o?Hj#xc008N%jz7vl;i)1G~k_rx+5XtM*x;gWVMdk2xMQq(UO-2J|tC?1w;>_oS& z6K~_F+z*(Yx;1l+Q^LaE0rmza8v{`T{Nw|=vA9Jp%ZTlPJuBgGGDn5cU?uoY-O?4T zvw{+;1ftOTKrGRMA--P<;hD!RB-bULUZa0>RYfm!nf!K&`W5|UMm}}u!AWXgX#`b& zO>9qo0u5N&Pl5}f+t)!l;)d2h=OQKu(z(vL1*ok~bxWRZPrEyyBIpIAzSJ4FK8j`D z{h{u7)k0)$^MPZu)^g_;#QG0Q2^^*NDk!DW4ftFq`}Av(T_LR2BEOcqVH%2;G%J78 zAPe7Z8e}Ok4Pv8r|8f6mP=itit;4Ys@7+$di8%B=-;l`nXj+odksJ%Lac*lQ;IJLp! zP8GWNQ3fhQZu-V=R^`pSLhJ+7m=<>L&9rK^yOX$Cap0|rn}$)!5I1Xppba8;qd4`B zzrWY8@_*#h^aEYRRz{(uQqI5MSac9 zuJx}N-|-I96<39BXG#CMvVVtn=pPt`@7zJTYV;mTA-lVbf}|kgm-RaNp2N3wUb>WJ z74h}nPN~)D?mYSa=@0+-@u&S4y@Qvpet!MSuZKr(-@W%vKK%ai(`SE+{63{Cyvu!+(3%;Rj&oFxtYlA<%3B0`c1%^}+ zNn_z?5eBe_?(C9fCBOQj>kDuhS6&H-FSo5pg`pA#Fl93Jv;LJaay^c^@FZ2;1s@2# z_j+Cl^wy%T!~2sT#$y7O^p{3d0wI6n|L)GZi_`xa>~Ft1n{~U3M~~YXOEWuj_Vg-* zcca#hg2LlixZ+iOKfj7^M?r|DWcTrZ+k3SA-G2=n)ymG-X{8@?UEDx4WAAsm&fMPb z;(vF#4sY@GFWYb5Z-0JwHv3_*ty11?|8X{ZqIZOQwE(XBHA{vF@J=VAN*8}I7jGHz zoy4!>TRW4XO-ivf?nE?}4A1dNXNwq47})Rv45!jD;Vv}>5wFuBl_el}=pAdFh!bi_ zg?gNcDn+$*ZoNKwb@=ngr=NOH3O4l9A3yx#^ZSz>@5h269sK_Cm+yc5?cIlcoi)9E zVUY+A%8OJy%-Tl8;_=Y7wk>~WtLu=&_}(FA4u{0_?X*bh0z#ZV>9+Qh#J_D1lXzq& zPR+Xn5Lq$l#RImVp`6=sh`&ZTt*s18NkBnFsnxZ%veRHIKHJJp{jK;6!lINGTH&@4 z?GEF_=59U!WI&t0o!#i!PrK39mNU!d^hIz9Z?S7lG4Rqb*ofmidnWRIzq9=%^t))= zj-Jt-y^g!%I19;Is!z4Qn#u>nBzIQt;l0MUH-4YqF_#He0w;end1>f&$gARNsI_>8 zN~&U875Hag-eVBg04!UH-Nk-dB61gXR%Go$ysmxv_}?CX_ub~dZG5-k#R-3osN3#7 zZ9jpe|MVx>Rh;}k?D7NGlMDaGZ^y~yb3I!;WzlE@vcX?FPo6w| z`k$90KM33Xc*K8mLR6Y4WgACtPX2Awk@VMuXs za|>_nh$L#aL<=>%7gN}%us@-z8SU<7&-~;P!z-l%FTQ`9!FJ^Y;HV{)<1{?Nu`nkqlk-C6QS{@wm;0DYfJmkdAK0EFNy~)zE5LDgIIZ08c?A zeikQtx(t6NnIF%|7H-W))@m(j4%`8wG)pEBK#NkU(l_PbZHyg+eu%Pfu4>S+nNti? zPG`}vjUd`!d(AYRp&rVONU?G;G9P+bPSo#d5@h1RnkZfdNI1Xh2b>g!Ka4b%-0T)v|xtX>vy4ZFOy7kdITbD?u(Hsws_@ zp9R|y0m~?5LW-U(cCmwSLQ(zDT9p@~J(l?wj4J`Z%4dNjL9(^wL^J@XU8YXu$azjX z^SK?LMrRa`Xm$9-3v7EmP8h7@gm>&vWg=uO=Qrs~wW9cRFcQIZ6eC!u5h$YnjQbR> zE%1MeBdpc|z$E!<=W&Z#EfK#c@~?wS*pY(Po0}@7JxN)ze+dEVMsVMPO#;LJG^IaJ z?Z@_>dy)hL`21aReY)YE?RC5V)t-;ifXxFoiZ6nY%|Bu@>BhUOIAYG@z#+f!;x7l6 z41WH>e-49$4dWX~`IV=n{?Jc?$AQyoZNh)={#6o>Sn=DB21y(Ypu{h{MDWh`2lIF^ zS8cJJmWq~2W;vbp{c$!)7>1gJ&2|lcE_M|;qg?U>*7gSjj;BBaEK4B3H`)9&ZMCvo zTlR@oBw?fYnyphR&eaCs|Fxb&Br}k$AQl_VG_e}=%*@G>Tgb=w1hG_JQB{J?*ED}? zkJ2NaBEt-7S<9bPp((rg0($+1g0-LR%vtntxhMv@*Xw z+FGs5LBgXnjIltpzfYq*%O8L{B41M08B7!eNE7lIK2jkHz*}H|Lx&sDIQ09>4s&As zhRhj4)ggITD@W~Q%Z~OigKJq%r4DTtCu#t^4+yA6%>!$FNJ@&4Ql&V zt1cCIY)>eXJg9arqHE=|8L=$KRfaiC1WY$IlN_SDm+eI^2ywf3;3xC>c6XCU%oBH2 zzThnfEZo*<`RA1wcg9mC%#UXHTe01bzNpLft zib0Ft>SATC~-)pTs3$7(|z%U0I$L z%%Uy-5Lt=}$9ZwH=0kxIyny$TgXpps!aL*dm&#iLH-C#b%i~?A(Og{gK9?b6PeFJNYTe<$23MPsv0Gn ze~!bMa@=ag^w_{`N&*u@`G~iwLevv`?1zC>62|uE769ISqZ8`!XZeh$$ zP|om51b@yHp36pxf!->Gyg=xN%iKDpw540eaDmK{>te@w5OEqen0kUq83$8_v$*#r1To<_4Q9=kq) zj=Cw~OT`TdE)=&@E2!DDGY2fb@Q`i;`u+C%`cg3b1KZnG` z0U1@Y{RGEH`Qqls<}Ox~5C|-*gap;I&uvHsk5x!R4`&8l#WrH983iC8 zu$O*a0ttWDg6GR|z(ExHsbn!d7|L#h9K7h;e9lKgadk(;5`%!npS4<>an3L7yG}&G zA(~wW@gx;hdcg&-Ii>KN&&?iP7^hGNCTEk)=bOe+!3%G9@lLag=SY1kj&<_#=-uJ| z$x95si&7gfb5jk<`C`w5z?~6OgMfa_=h4>IZdHG`bDPWaBBLDwL9`NFK*&QKaWuxT zMHr}(eGLGZt*;3va_P$+R8rHSN552lFg{;e1v7L&Rg(^G6)8YVm?!+W+HzGxC{W3LRk|zB+aQFrdw+u%_$d(7Y@lB z{TT4Hi*2#9wjf-1v9GqMwtIWp?iIqqyEwcZv4li2;jiBy0KO6_|6t=x`F%nV{q`Up z?cskRial};n0Ej_xY1su5+UKVa|S}co~P){Vd=IqTgYZKD^hW+)G1eELz;ti>Vtm} zkd==J;A?F^3P$iyK&usR!u1D>_TgXzu@zSmUj(Bd5?50Y_!7Cs_$+Kv8tesb_i=~x z`4^JFYONOaX(E=fD(Ua}q9lAE2^R}RQU692O{w^#7f$z5cbk{y-$)`P%xVQ8mEZIl z!o5(|AU?wL10>(8BrE3v4R!_!Y>GNl&|-^i&ml5! zj7m9YVP`~98bXl6NclG24>f=6h@u{l7DcCq^&wg^f{_cYgI#0Nh+3`4Ru}ZmF37sO zS^XL+WFm>;BtDJQM3EFYO$2ulE*rj*ANnHUB*vc;%5bre0jz}x*TSIHvQxem2JIn9 z#abA&8Cc{pEJ(p8w{~f@TGQMPNeXOmn%h49Wlyj^tkrpJPk5E7JY|1v-}vkspHTr? zHg20|d-`{h+4$Eup7Qg28&7(&<7{c^SS>%>$&TYZZY&%%6^>Nl?~-Ds7xo0N_laBt zjzgxoof01uM&=AqpXf6{Q<9-lDXCdNM7F`~h)hTd@;=G%P7Oiw3Qio5%pt})i;8N{ zUlGz1n7^9jCSgF!44;2txtT-Zo~asp;J>xeiIm!vf*(=NXv~pe2!rwliuYJkmm9a$ z!Xbg!YyM5jXyb2S}x z&MOAdAsyav>E}?WO*N^@Tr=u}LyEtf*3kNstXH<#CFb;WOS1!S%O@aGqwsQ*gJAJ8 zr?Y^+ixcGR#jSsMx*6e`2RWVLTU2hX{TI%>m$~yYFCTfpF*j{)x#srU?2Nw50iv*b zlh=a=@aPvfuI9e4eyxR;VkH>-pG0}(M>=u_P*bmw#8UTJ0 z3=yzo3OtT$ilbc6F0PDC@+r)VJs*ijnio@(x#H@G&@7MSKS8zRWMtEg^PbzzXjik`#FWc0hx71-sH57)MZ@D z^Bw(OtAH&#I(BOZuv;Xd5R5A$G5ri=-p`%ggS@RVnKs1Pw0oX|w1X`M*Y}s9dz=%l zSb7<{M>)Y8*vrs;l#?Wm;ji~O0m$*o(0!W|(BB@!)97XB{+<(5I=l?sSK`mt7@NX< zofChk+yjpR06lsH@QQLrf6fU!PJ7K%O3!Qa6cQ)FWf1ux=Zgu6L;j|h`*#k1A4rV@ zPy7HqoASS3;NPVTf8_+Ct^W*TdKD+!#m_zW$Rw&spL#@SQKn)b8hd@6b>r+eJp>(6u*n;wRguBhSSIGRe z>g6uk*$eWg3(%=>waVBb2YI`C zK-dY|UgRNr3y185b9H)qMlVip&%l}!wdEe*)VXrV<>~cVs|EiR+@4%Hiv>1SVhkEX zk!uzhRKbZJf6NdTc(y?2k8^UAlSesupOd#a`8_AEa`HMSf9K>yPCn%1ubh0$$>*H> zoRd#E`7I}ZVbqC;@^Gz?*vl@`1c6^9(uG6 zsU{aA8GH1XDY^3KZ&O&TdsaV9Uxl#`VZev@FS+#Sf6#*f+Ig$B`OCD`vXna33N*Zl zSl8Tg#l7?#a_v!5yFT>rpHEW>itFx{Fa)J~ZVDK^K)S$#VMG3p zmCE=xe=H*`{4qttYzHpw0sp%Tf8&)FY~t`9M1X$=XbEq%RDFJX@D3e+XmpoUqXt?y@~>Bt;EqW+Ot2OFPeK zcUk>$tL3+G^=kkik;2!?gj%3ZfIf)yJ)YoNsC2i)lHCmEbL%3`uAl~ZxRUuvt0n#b z?ew1Bwp;XRQQ&=S>jK`6;BATV&gY8kdK%Z%ml7qhw6yR!RoEsVXT(GCRQ|9Kk2*LnhKulZcx(>!Bo(=)Z_)pGFIEZZQ7MYp>OM zlq1`Elo$3G!WW#gAk#JTTOg^*<4Bzu73{Fp2RCJll2=)@sGiXvEEne_LP*3E&%OQ?phpfKS}QxTWxa!1VTfDuqDQL-=Sv z(=Y#qxrsTf&emjuqXY$)31>GF*A3_k%55|g%JE`ag|(eT<%yIZG9=4+9Dx9Le2o?> zzNv5vFNkMO(Q)2t9p@TEf|n1{<4KkV19oy1q%T7iBt^ei^}I5=MZ&M=e{+Dt7QZVB z!9Q8}=f-G~W*Zl5!;dx~`iBsa$Ofnim3DBpP>zm5SKtVTX{MfNlM17Ze&n`Ihu|={ zCQ!@=Zeb z29|3*{|;gY`(w2N-L7~lf8Lw=V`xP@DKhYkT-XvfeInyIj$Q`?#(OB_2mQt@7U6|w zo8yPK#NcAy6LB#GwYM?RBK@m4Wl{MfPqlEMD}{(pWy(2u7C{;XZr3(_(QR zN3VF|W``&fklP_bNzaMS@KNiMrVJkB!F1cg7qsAob9R%7*IAqee}UjOFYuBG^n)G& zY)DJ-GylzCKg$xAzx)FZumc9q8g=-;$I%IJoZ~3Gg#yTaP{UG8fX$7&Z7Cz}iOAXl zS*g-(aVLh?i~H)+O2JZy!W|zYO%;Z+fdZ%3);F=@Rwwu3B zNgeNWpO*O7LEf%tkvTpHL?aS8o3=2ka~-&F0oygy%D0~M#&@i93*{Z9im25kLRQqE z+u|=O{^eRZtVytg2qPw`Yb)JEOL#FIt=6SS>T-(8)lpKje?Tb2+AR@v51oDFoeknI ziB~Vr?tiSNraPa$ZYG7@sN6CJB7HdO@uq~$ZWD-${93tSj z7;SIwI>{C_qAo;*t3?r~;K>i#T6yVdree*o%7~7_JJ55L%=(L-SNK8Fnda8(_B>LS zV5(tX0C)u#KVW1`ppC@`09bekH*gl@{E}q{)pJ-wTsAN+wa(QkzE_{D;V;qeI(OXq zj0>VMe+9QBX|r~*j-`;y0i1GJL_Crz^}%S#Gf!}ozVR_szYyBt9#BZ_=$yg19>{jB z7H3^tMP+LZwr0r&sI*S^%K5z8rGHwBUhNEZT>HVHJCFuPo8gHKL9;5~>J7*w<_rcrDOiZE6q2=or&&CWSaKkp zYPmKFcS&SA(SHU)O5hMg$oM{|0XfR4eVo(C(Otpb=JYskgIQHLlaSwY8j+7V^|`W! z6mB{67%UJ}LNt%TN`fi|7yQl;3C=YRLfc>_e_oJZbNX{Gb8Uwl%J++w_<1`-;2$R_ zScg8*Qr*R;&*rDkRjfSDb%_G}w%X@e5?o%gL|-qN zLyXlQi$&kRisKYs*)oi?(A$1)ALqnxYnM?GQ_pYni>AIAYoV+otb)nC_{HOh2VhT{ zAe?(L4SyLj7y61sJhIA(m~%3=h$5kpokfGDPkcujUxBpuy>5I@DifeqfLB}*G*02S z@#B0h{?IPHt=48H_I$M~+)m~=i7ouYgP~nsQ91+KkXIAFz;>&It1h=%BCg1$5wtm{ zHnWhg$be&qyTxnddr8f#uPWeI?$Epnaj36X34eT-+ogh>O^BE)&T^Mj|?ureKqJy0G#TG?NKwoHb~vo zWL*aa$H*5Cw96*iS5#>bU0j}*Fv8mA_(#1_ZrPQW2lIGKihDk6gr*i9k`%Xn+zV^v zlz-b{Rc38Rh^)(&r`Et7%NV<0b*TlZoF1i%6k=D@MWS+#*sPaY+udZX7MBdT|Fn<`x>8<<+J#~pEqMy~#syF&d5J$BvuJ?uG`l35 z@T)M2Ct^ZO=_Ff-djYQrF8>(fbwSSA2;UTz78TcofPBh@LO}?CpYmGaPbGgQ=YO7E zC`L7?2;(X(nZDtyw8&YosU~)%dk3Tfk-2)P5K`e-T25(M&k_W)MaP_R`d|0sN=$&a#T+ z=Ui8esLKjm`zu;^P?oe!y*q~l)_ZBIOCt|QaQq$vBjDEoOUY2P}J?X)P{ z#j;&q7SquaO>LxBYct?jrbzf88$v|9LWqd#g@|X;scpBy{kS9HA{g3_a(`zQ?Abw^ zZPEU={aZetcN`M5hg)>AZU2Ek9XFse-|dnMcwhibJ8qXSw@-%dgoA_!)EZ%I8C%&7 zf%JHfP`@uqzx$=%gVJwS`aL9;V>!FRjL)O`oD?n|19baF+sZUN?HT^{02s{RI(`g`nT$R7FLOwVZ3jbp z>~URk>`}HW1FY~66tSmASkb^Z;+qzp1-640&TH3+JsNu&E7~=_V;@Up%5ix1pi6p$ zF!+tZLbvvCc>pwQEtzYUg ziQ$S|mN;mdq}f8mK@=0%rTMmJpfiiq1~Npe@}0h-*fFo(t_`JAmQBV88jyl#x!8Pe z+plukgU#$HxiHI;;9`=2?i;4zm7#9v!tZ+3loVsZ3jmw7aeqMr>{w?mhI*%qo#IgK zS2@D4;O{pBT9R{NKpd?GCgqxeD9W`fXo>m!Jy@v0!1jU-($b4Y~xrfdzW)hj!F1ON!(voLqLI3&ZM)7!|rA zBSUdDT$)2(34irW;AYci!y)Tu`(YSQ861j2Qz38`pzjlZs;I3%C%m!fB0DgO2=~%) z-r!vMhYfy}4x+e`C~7V9xz$tHfSc?iaQ!N`#_u&kERP(*u)<%b2$(atKCvLw=r%8) z_<^H#qbZ+Db%``dD?^xHxWT8UEErOOXC!@ExYtbRM}IJjgk(UuWt@!Y=X^fzlOf;c zW6A-Sn*&b^WQe97^SEBEzb8Ie8+?*#hMEA^-%HLdV2oCEe@HdmSP1fkaZ_TqKs#7? zy!x8=sqyRcd_HWSb8YNLkg@mW7l7T$X7=I177S{_5&NyyW~z)?;K9E)K$PZDzDeo( z+;KnW!hgUD)>R<6=1oCA<^^bz8;<$}w7j4u3KeYA{31eY6=+^*z%?wkVAgP?G-J^4 zck%YZQbMXArbjt_pOXXIso{VxZHwbZty;GAHs32Vr(#u_WPtWq zF5y3y5m#_2i;O(vid$rgC1_GB3fU4K9ZIh)i^mIe!o<)!Mu&+^=DZuPCL*d1c*Q zwORo!UL|X_Y###J`4|^%oZEnuKs?l;2dbC=R!v5H5<%3RO<&p7U`nrAtt;KCv=>yS z%We4XxIua1z+M%QH@28SWn;W*wHhbuQcOlin+~vs+;yIw#T?42Pt!9btTso_1o4YW zdKM$fwN$DyxzG6IYIDSga0&h#0qGFzG)&25{Y>%cpqESLqiak@mHL;B^z|#oL^1og zg|5j3xh3b9(Rczy4j%77%2xPzX8|m|VBW`6AT43UJc}9#798 z(4w=~buqdSZXSC?NAtOl9eXDF3ob9R!?I3n_wf#vmFuaqK%;&{Vlv(9x@p@$Cll^D zBB!i`O5Q8wb{q1MKDhLuWI#aRx#shFNco5$e}v)THoYdd^e9)6u1*ing!=AQ#ck!9 zfmStYa_nF^GBPMj#{lzQ--3IeeF>jt+k#UmqliLH2}O2Eh;EI_YD!# z?YGb2JtF>dsM@#rP4#oW_c<^8u?jDMeodlgSV>EU6^DEVaUJ3Xb09gt|LlFvf9cR2 zQZ1>~`kc2~_UD|#B*}=xD~hzjh7;d2kZytK{LJ3Q~;p`W-S_Qp|CP z?W3@QkR%QM2B`r6rwSPq5E}vwO3LO45S_T`f)|yS)%o1Mi&qUQ9dZD>I%KolMvdE6 zy(iZgA}y$O_r`W+FLJ?#$zS3xmq>g990VQ@hewxad;%f?! z-v;Os;}6 z-^1B|l<(PMFY@QK(`wn!qA<)ut=Jm8E2A0`Q0DhFhd^U@6Uo&@9rY#4%|cBNYuBuy zQVv8P5Ng_~e+`&<_XSYn@4VI0sZmRReCu-6fbP{LP23XElV9ZGKJp@;&+QjE{Tt$~ z&<~gCeF7hUM>&0z)3-T&mDAsI`Wn#E^iximM_=UhFX%7*kW&z-Jo-5Yy}E|jR(3sQ zFe;EfxM)XSJt&w-#|(;~c~ba({Fc){a@tu4x87=8sdO6PlV#}k;>`Mf$~aec#h;uT zxQ6+SIsA2wT`dp5_lq(pIJgD3(ZMmyA!g@w3nB7r1ri2y+g;!L%F`fPT_i z7xjbOt;G;zF-A7mXIWvCFx+Y3NTlxZ-~omfP2mt0msPsH%-T2wj7ir9uqN0FWF z@__AsWi%4+e!@F$N2lzJ#*WxYczxr-LBq|F)vw?PqdMA&abQ6rM)lQn37CeKO4*Wr z?O71m$_-+s0!o5Yr+|>LO#EXD@va}nDND0jPdD*&nt+p6X`)T(g2dw*kGUH3pZ@Mw z@r=VMJKN<7*@N7S*C-w3oLwZnGPNapiJK9B3$1tPjn-=2dJz7A3|N{a@vU3&sK8{w zz;+FJe3wTM;I8?reRz}AKD?%2-c(Vu%vj^+n>6_O@+S(4M#Eu}!ak zbNm-3Q{`y_LP#Xq1mOymm@Vcuuiy*rC}r}fhYM0DZOT|gEiR8C(!w`wSgQQ0VU;W# z@AJ|oLd=?EL738iSsb}hPU7LvO>)vtQ+JY+VGs@6QBH!imM3m* ziuWWLXM5}>V^IyN8sBU*9xBM3tolj;MqrN4(BHHO6}KP|LM6*W=H|I#(SA;{`0_Gj zLfI$c0J^=L;J$J%cnH#yp#Q~v=?O>ow=(6xBLkMPzUJP1;X!m;oObszC+uc3>_>yx z{gN*bbH%dSNZ-IJF#|?;rgaiTB}6O9&^4bQ%7`uO>_*SnZnU-Kz}U60t|Pk@px`@h#{@ir7BC zL*#(>4Z^mmJz?!}Fu-kuH5CfTS5SwU_mRg#NWS)Ho|^)g3Y#yVT@(@-38>wKx-Q%- z{neR11Jp;7B5*<^2_Gt7l*v0xnAsY+vguow$7jR^kP@?%jV_@H%Gqr zP6ub|)HtA>-GgUzuzRqz<-GS!56$$vxT#ZncLSlXtWeRZYg~!f3OgYG`tA^ zIV7sg4N)atmh_|i1MG6r!MZz?zMRkP2^c}uM*|C~YxOZd6_Br6xZtWY+R(n+N5VTO zqwl@bB0uzLuafdz=)!Y0<@B3M&Kt?dO}cVAaB_HksM%MlUqDBcbJH$dH$n`op+|d} zfRGi~Ryq#CP)Yug2R~JK_r!?39>D>u#lCw1XIpX9eZZeDmqmmEF#%GScZ32ff8X8$ zB2>Nb$gFr&z!eD1V@^VA;gAo;blsh{;({eRx7$cTk{LJ0tm)#I74I$84d_Ed_wA9|+Ttl?fq~2I=K`Jnnbt$SV1&=kHM5b^O^)$3)v`1aXvwV({ zyUmfE+;<{Yzzxda>IRMm@dbID z!C$A&>~%S&DuI{s@C5Wh7(+jd-Oab&eE!I5wLlH=4xD)bN(3N0NW`goCBBK=3A|A_S;L2voM{o;G%UvEVI z^>*f8q!tMVm;%2nlEfk7UFRK3jZ)iT5PjL;7lfkVB}5|kLtX(N#YMW!^^X=-rYGZF zz;dmB*NR$%PYDlxr}Y9}xkv(k8zl534pYl$e^GwrCQLSf#*zupJgj!R=r4~wf1mD( zsP%X3ttho1{bjxK2iKs49o(m1vg}=ZrphhIq^B=j%m@)w_0=H)5Lyc|Ff)(+h;0o0 z0owqhMAQ1vx&sB&?1laX3qv-zxV385Q|4cAjkVRW7G$I?@{8>!)`ARs6eL&NOn^ZL ze+W|&Kx-mjKMuE%Lts1Bf{ZIA01eTc|EgEw0GG=~UtVTwk6K@q=Af^O_L6wIafy8C zqDX`uk6;dOp{K(*vChbO@p-TfPiSn6F0kCR_<+GJ730itm;;Mgar6O!EAA*Bu<&<3 zoB)6E>Uz;LdSNZdVbO&zOcY*^e=Z2Z4OrSwf(xYF8F?v+oRNcaSN4mpylLvn zyQZ!j-@PkGswoWs|f7^(gf#huj+eXvXUqjpacUd9CYn7@bt$WpsJRRN$ z;kF!A@g>NMqIYohAF=Ez9;EKf{J=A7T?ZxXkO73rdhCyb$FiZvc(#+-74ru$;20DN zPCL6|k!>^j90hr->=7FU83h03zmj;8vBYt-yu49GJj&GH{5^Zy;qk(4f0X>`bGR8o zG>VM>D?tKAue+i-X`r-im}MTvS>iArC2WZ8f&gXS*r~FHfe$4h9Oq5=T9-sw1DX%i9=-3|oB7e_=D=2DRg^>&A*M zVB^PQ7V!@}US3mO6dT0=CU&`fd@UEI(Z(vZ#t`QNx_th{^RL-4Y}}Ot#qC`sIwqHN zy9$7Zs`Q0JPEW0bMOePhM^x@PpT3A}%RIj9Uu7$;`rwc&e zi*M>|vK%rfC4T^if7nrxh^HDjCKXBi+_S(32h+sKYk_%JWh%}~%ORIV|BKFEW1@D} zS`N9Oe?_*H#c`MgVI>GdL79Mv^)3{LUyy z(YWhc7P$uD2QbMZ8{Bc~dXmTXuQoH;8NkNC*YVu#F36AM)H0+vQL}aCkn`9M$qa7H zwKUovsLce2IlIYz7rnCZmVI$46$e&b*KT9m;w}`1(jth$003N)Yr5I#6Hb^XXY^5E z+jhI%7RRQ@e*#D)#boiTLryJ$U9tfGNw76|mXiGC@gMvu!X9;RmRljod~Cp+f8L~^a(hjP@YH(Rk02?!b6>Dcds{-kkV z;&^`(f7IeiJMxG83DTHYMLZ#qzp~Trk7AYoct&|<@y+^oi)?otPEJVuwTbp%2b`p0 z6&iJ{u}#;=udVSlazjwv^>goY^PE^ZV)0}kvBI%WPVF$p2zc62^mAkv7lf495q)mU z;|fVT`@(MBs2vQ5(uU$s!PGJ}7w56vSBq2^f9V&hC&s*`V?R=>`lEenUHAiVWu2*2 zGxd`Q^fm5g)E>uSc+MhN3+EA{qg1wmpL~HnRkADqY1nwizGr;~N-<#1M&Uh9fN^Y3 z_~=27cD>lP;He_#jC4CB>+vDoZ4muRmF)knm~haC7h7Tc13-{~L9lU3=r9jAIh5atzQdB_&hh(SSp9J&x>5S&FZT)}$?}jBfMpNIH z^%t%n<=zfg_jXx7W0)%VgZ0q;tGn}~6XTrWF=U=JLC-vCX3H!pM0M%(m*0*8AAcrX zZ}etRsDe>hvo@JI-1?;Htl~g?n2p&mj^PzP-IqZG3puO;;^aq;y;eGTu!c4Cae&apYrK^D)zyWDo|n`RBatif-%vC zHtrF5LuwwLkQcVB4NJ(y=dpdY&gBtGmgGETn*_1-f|tCH0vvzwY<(G33U|aG3_OrR z8-&pF*uEq)oTl3P-o;_~GU9GkWc6y(gp0-{_YY3re=MV~R!>1@bf$$+!ek0B(HeI$ zvCv9OaQ)G}MN9P^hbZNmhJgwZ{l_&2%4_?U!|idA=??R03R#UK74pPS%SLKe^-mk- z`V(6(voJ}{8o|9mt{7Jur>q-*`$yfDvAG^qb+aNcvQpwX({d=~MeA5S7OizXvC z+3GItbS4!wtUQs(kL0$e(ehj$&%WFAAeDXYN%n6)0@7evTm0~_jNA732~a+dt527Xgavufn*tmfXY0~NNF z)U&kZKNo)_JKYi7a;I}fVT!GfmZ*JlA@x>c)LV(vu}u9AQ_mdoBYD}Yti6M!%k4Ic z@r9HJuDQ<{e`w`lYfjd(&YIiT*W4R@&Aog0nk!LdjfHm`uyAmm#hD+T^RlZ}plsuA z%ka2ZhSetTwH}-L@#lhAUp`)0~`XI^?kcGObyHwv)Q{!D1 zMRhFqT_0yogGyKFUzezK1+0#wBR>oQPOyKz(*K{K-<75aO}#6WGu?lf>RsMDuG$s2 zr{!v02`Fq->^2HryyQ`O3Gx>BZ!A%W5w3$=uKO&cwUzUDMt=C-S%9eVd#~QbOPuq?&pIeVD4U)>OuqGHzbq0dwBSB}X z->m3%w!r2g`dB7of(0DHh(vA33B#p#Xq<#`-w%JiEQUZ| z5UTA>#zr>oiwg8Eg8cBG1yWD6kH}gBPTGclZ7Yl+(7|>92hfWX9)r(ZHsG^WpiJwF z#}kEp)>pZKJcX4`EoG9$6(bisOnMDKc;S3Sq@alk3`;OQ164QXihu0@3FFHkY9GRX z9}JsQqh1#^SCDBXXzpYU%-ny`-63XW!Zvz`i2K#(r5`&yt92|voL1BOF$@j_vCaXRx ztagUlTl8sr$k+hB7_~zulYAk_PJ$T5C=x^o#XC92SwnQJKY=eZuYk zg4g9ZNdEcsOl>Fo2veVj}uCPP>ovjk@PJ-diwbOL&a^k#Ss zrJ?NzUv%NU!H?P5*atJgW2B@-P!4lvh1_S9=uZ*|8S)-Qwrg0>?cpR0-}%|qmmrn` zARNUbF6(m9$cNYp5nP-e^Gw!i{}=W!{})5>xU-jBmI5pe*mclna#8)CE)rGg^Ujx+ zmI5+=v3GyqUtiM_nLMywNz~LOpxVL7hZ;RmwZu2l6%}%xt|{W(v=k4^mmr^;%FFLg7*T55_i*o{QMoK@C^%}a)33#(Ye-d#~utA6T4bs zS0?Ugi96Qf%uotRH_;>2!LpmN{$-_~F^uzZA9H_IFJqH_Qio8{4DdkrT95HiEk}12 z>mf4*n{2sYQ`3#IfMbk(m1L9s?=0DTU02Mq1XAaVS?sLB1+!5RGbsroe`gt2Uc=0P ze>GRe|7ik9z4~NF*nD=L>Ia3nP4KY?bK}TEJHL1h?$QgQdSJjtEwOzx1!*AI8`$0X z(IVr}?=yg1u%xli6%13Y4OOeDxSrG#<6WGrwZkBQWg`(vE46o)3uE0 zjic#dRKPcbbwwHIMc#FtA(quq(4x=?-+>;o+h3g?ASRu}tX_d3$J8&&9#;XFLEA;GV3~6tW#G5pL;6!+>bwe4^X^uoMyw|rZN~0 zoe9!42*fK`%@dg)c`Qw9U`6#jjrq}ef65E2?}f3lsv6+dj4AT5Xaeh-#_m!yIxg*i>qof`I4V7 z-{4Il84hwT_V$Oe2YAsW^0RH;dGVwrK3L^Cr?$gN(f6B7c82^z-4lp9NC&;8a8$} zdF^nT9rGAiYZ5QU+|AU}Lh>x7e;%)A3Hf$9)+*ZYo_}>27HS?2??e=yy_qUntdZqZ z;T1iQEWDC?(M1^%e>QPHp9g*R9SElRqY{yYoSxn^e{oIG*|Rzz z{a56tHZhPgjAR2~-gb4&HnT z+!2?9o$ptTuUzFlMtV=SSprt4RmO@l1=|2PLm2yjJv5BcMhq*S#i~UcHX#dt=`DNI zgB_Y*H+Y^acvVRJ4VoGjrTCOWcDSsv=x&uIODl`-RGF}O2ZyUL5GBL|4^8m`g3Y;q z+^(0Fn*t#LY?rv30x^HTXLwu`-hSyBVK~{L_{pP6)`j7$4OFQ*SdFi#N09W%j4vX= zZspXQret_h<{U>~)XNn)1B(p(Fs*z&kp5#DUlOZTi=MFd7+7*G!`+o*AlCI;S{b#F zuIo0%ZGh`G1eUyeG*X!6)@?`{*Y43+$%kW&#-!Qn9*t>Mn00?!Lpkz3GgUTp)HhgK zNZg)4W-05}F8Q+kV&U9teswd$eRiH{c=%WEKPg7vXCy+V{#OqHEeiMPKiC+)Md!r@ zeeEd#n*vL+UQSyyp{&;(vx4C=Rj3(k9k<3wIRBi2NgK}VXbRudiZ~@bN7f?HjR@n5AgV?RiC`o zt1atLN*`A$QbZrWg||j!_$wSX%&vcBpN&dqN^Tn!I{aVHjenZwhM>K8u!R5kzy2GB z|Ar3dGW|D|phG=u%S9a+!7hModGKTBT2%cL%yfuMg!U4z(np;166&Q_i zTX-;%CR~bF>E8#hGFe*X;67E3mR32uPnF}PRbJhv%FC77E42R({XW|tgKfsG$zF~_ zJ5J(p>dwS+;~GMj$DKL8_>1+k;_2DV&fS+_p8^(tAS6j>DpmXURH~NysL7u7mJWli zZGU_ojMq1Clv_LU`*&?_(0RDB$q!Pc*fsZa8 zvd|{xLK{4Eq3NS3?&9mrz8uos0YJ5l-*KtS*6+36OH;^iLU(CZTxuTJbothDmmY`< z$U}R7px-d=(mdQ3zFONmcW!&Mzfy(POk7Ce5ufHuy z)C%ILaVtEE>;^&waTHBP#2T=EFp{vqwKj);X!D=5Lkyecd(V60r@u}7FvxDf@E0<$ z@pa^?&nSCFx4WIrUdLt6>GspkUboY6cfPaPR=3k}NcOnf`PXbaL2|YCG$KA|1CGrN zc=dn{sCV(cyD-iChHa?V-nbX_OkZt78sl1fSK>(Sye;*%UZi(w?BZdqiCwXj5mdK- zP)$FQGz}aA;ZFOww(sAi_h}m3ficO(@5qzZ09LH>Gtn+K4KRr{y-g%I;2Sucl!o#Z zeNL+EC{^i7L~3;ojzb^LF+XJXW;2ny~=pfyB!6)|ily6I5k7GN58@ z9A(=oK-qTJk-GK=HCI@**J>_&U~`3k$$72j`VVZbum!Jd?#|$^>%+Rp!54?(nJ9b> z0`#eQ92F13H%Ak`J*ffm2o5|7xNPQ2J=pE! z8-v}*i#L7FO?pAn51G3kE@RV~pt#Ptv#|+>Q+Z0iJ#^9s%+07jfvIx=@^#>UXN*62 zWF|qw`M023AfdQOdHW*viMRUcKqP**~nrSAM(y;p9!P_@H7e_ul;eMx{QH zsr%l^@!R7gUIGFzPyMWa<<3fDE?B!bnGB-AuX9;~vUWNS;kl*l?QP3B?VgbpCC>4& z*mAkf*^yO!4DuTVes)crx&BYrf-v90EPB`T9DSU84dw5`IAH zl8B|QTL!>-P=3Q_ME{DHrlSH@6CWC(!Y&S#>dI&aFMp+2VYi15mk*=@B7dD9HU$JT z`y?D{$%>@|1^6tlUOr0bS{DW0e4Saogw(@>*4IL=$sr%cecXiq1RS$!($9iyGGNQ; z8;V?OULS*Zx^ggHeKvq?Tg&PFr z3J{>=a;9Y}O70odP!Yn6Y1nIIVNHEKTkgj@sQ?{iJxf52OSr_5A5Hiz#Ji39S4kX+ zcf-Ferx1cYJ~o%(#jz48j^8KOj_5D0pCxX42lh%XAwnm)%F-F8W=RjaM2avvI9KQYNpZk@^;f$fE0C(FkeY zaMK#t#T^6RMVWvKbANh0+=$5QX}-{!2f?=qdUs=@Jzm}u?IHWOJYJkO(c0~8eK>$@ zrRGYtv>hqr-@l~;Pyh$xtRbw}vPQY`copt|G*5ZK;lF0!j{|e!_a8d(OW{4K4(};1 zf(p1t)p;BB%a|Uu3FAzBeh8RH)}~1e>rE~S1~9{SUsB#AN`Hb>wq#bFPNMT5^-#*( zzxIO=CTFh@bD>Xf4l6x^Vo;~-kmH&~-W^tY@is0R;9a@-d93f_P(NW51!IbhZz0ABR_-PIvX_ z=Zk|6p^|7uuotAG#YJvEH44r`75_Uz*_`gz?mz#37|Q03>U1$(t0=#!tNLxcf>W^) zA*lBE(nmI?!v63!&99%NmTXu43Z>@mFfHX&A1c2lcYhTX;-;`TjUfxViRNTilfypM zNSp8J8nq_2JE|1Vwwtv=C0a7gTjD)LDQ{{|ymCKXrqPV-Xi>gE$Fw_|hN5YAb^lk} z^luB>V<*47s}A4(H*il)c~r?~>&m10uC^Ma#$LZ(jZ~j|bh>te(fkRDqWFJy9c3t$YBB>ixvL^w-ja&=n;)h8?Zg3GgS?UY|f1z+ry|K^zA(y=$Y z%5t&%lm`#P8F?dAW_^Ypr71-1E*P}2&c!Uy_yYW4mn^6PBN0p*`yx|&3l45PFUL8P z6aLzlV5kBg0k4;Ur~)kk>zA&m0v~_V8wIdG-c11e9=MeYCFY==*Xk?wsHy^WQ@Bl9 z)#E{gH>c^8>_e1KFT8@ihMH^@@Ag$uno$3;+o&Nkf4y;RKiq9>|18DGruKhS(wkac>Y$cWwY2I>(6XYpS5>sQuCc> zU)HQ$_8S@o&3`3{3qg#b#5{ix-TLXo@=z^A9(ZTxNho8Fx%}EqZCX0eazJ~}4jsP# zJNEvV0-I{@6TI_yUqspER9RP`w~)s+w`4o_5;;I2 z?w($z<|gT=>2`Ar-mqluXs|(ta({gcOLB~ND(vgfgpJD!Eev7$?wEg#ugUHEAj@g> z+nhHRMAKkrYn2RlKvFx+7{I)y)ZHOekGBL+w0~KJvgC$-A!F|xm5FSBt6EGuF?#uZ zIRL3r_6-8}FBNbH*UXM1MK?XsUO|6)e`xS3C7uWLsTD8Zc@vz9Oys8`%u?CE)s|CG zKw*Ki{%7tyr_sYZH+p~gMcDgQcqxv6h`-TAxsJr=3lP2_>A&NpeCKYw#z1j5-N&>i zyOAepYfa0=>;MO9Wo{SI;m1(TT$1KbW&ZxkpiUR2he9NAW#BwE6n6H(%1HRF1 zGH)u9EV2swiHq*ZRbr;_`rN(4{{3(9AM=)C z5td~s+P;1gGo62kWvZ@j8D{2b=4P}(X2PWiUZJXpblPj z<)V&_QHgl^oNFZywleGoCt-fkRq0w9Jr~s8t8#n|(P(am9bFtazj>`K19ctg`j2C_ z8x7q`Cl1a-WhqRXhDlj|m5AU+viT6r@(Uw#v=h+r{u6(+vkjR>Ba{1i8A%Ugpt@<{ zM=$UW`{3K|#wsZ*fT%t7h$P>ze;qqy&dg&!AKS9d+=KT7%=dx76`%->lzDNKqy`+_ z`TA*J9lGczN{V=INo;(7Q5(GEuRTxow)mW&MN8a$8Y`9?@y|F~^SFLBntcTo>|O3K zs`_Va>dSxixFPH73>B8Oyei(8^QjWejA^{TN-=9>jP_=%kZuLIEK}vc0*UnEMMN6S20)^T-Se>48Pvc6O-Xq{rD6SFT&MhxTr44 z{(Ks~cJ#rvfYxqOZ&UzzaLq?OW^m#TKjM~rc%FS(jmt=$&6NnzFx^9}?kereUD#z{3~e>adQhv-mUFAg601 znAv|Oa&6F`wKKFfgV&vT^ zs3aybW!Bfq^^mQtw7CaVqc8UNZz=tvx!7&|@Vdq|5bbHd60NiQp9v_)q5RvxM2~-A z|IDn6A>yrp#8!5@y2?!!v_BW9ZqeYiAf;#axPRF3Zib%QOwqNlQ?^nzvXk@vbx`(N z#xngNT>$$$u-d^rM<=8E-}L(r?~a70%l!W*Bz*Hke9;E0&(tpXnD4j6!_De$s%`I< zxl09qHXgpyT>K??`19ie>yA1exVwK=iu>+VZf4@%p~pEv^T1bms=@`*x6g91B;Jno zA>D4hzE?#;e1)CZ=i}>s`LyE-X8tQYee1Kd-`Teujn=-K(U=H&ZrbKDR4pW%2hp5p zs{t!DuQybgk!VsG@?V$DSW$9s0Sf^;oO2>>u63vz2Y6neYey2&XJw?vYl?sIPjq2u z8qaUncy6o(?RM^8 zKc{x(K!>&8wAU`bX0H@4?OVfD)OBoJl~|?OUYprfs6^e!b*IlAuiNeZ_~hYZZ=g4o za<>6GP^GbTezI{k2l)kr@&$i4r6)?Iij)pMx)sD@W+a%wgP@;o#YQ!7W(<2D^oM(A z)-m(oH?;9weDLn~}m ziX-;thn=6r+*`|;m`8t7%)B-Sabr4f&C=-_q=JM0=zZP(k5=pJ*5z6pXnL%5`EB>x z?%yz#Olj+W|NghFC$n{^W@+nHC|f6?$|Ko2NmZH)%=UkhXbKkXt&?XXNa$It(ptuV zzVxQ{QWSG~-1b6jx85wuR!MmE9F$Ly#3YoH+LyDl%jxvRD%XDrg+@&Cm}`+~H_WnV zAqQo9s~E!+8U!Z!rWnjqMa)Uwie#(&nDTtACIdNE6TXN^N{4B88Lo(+fgmX@3?`DM z&5M|0Fx!GHV*XI6@TwbS_{%P1-utSzVCOOK`Mm|Zih1w1UT?w9V&3Du1^WOA!`_1Z z0S}$tg1w4)?>~S4_NcdDNBH!(w_wNk^rW|7F+Baf-&?Q|JpDK1`-o3Ry#;%MPf+49 zJl*g27S#kibSAtdB>4HhK7B?!uOnzziB%F#1^E~=Z|ha>uVUtno%f@dc@vKoWv$QL zTCs^T?;kPq{`3ALr}X2Pc^&8d5_5dxq?}{Q-<^~=X5N2W=Y142Z{xf_iJ4b8@5eFo zes_EL((R!pTgA}xYN6`)_J6l`A0XwMryecbd{>z7soUlYY%^C^w&s~I^L=Es0(#;L zO-kf+W1tFB4P2cdu-xlaOL#BVhcWkhp1x^Hv6OEL7IBDcz&+1UrWwz>k)?XS^5_8a zCT`-eI#GYK?-Sq8G(Dd1gG0)a2M33~PZZC)8EjzEX9;Cd`I>YNS@z)IaF_*oS9^m} zmU2NNO7R00R@-e=KBFuw%V(@CMw#L+rC}ljWO=Ca?3XA9meQjowF`__Ta=#v1G}4Z zdnZ88gBpeVnsPN(roDs1$-wJ&y*B5m?|b@TyH$VP)jGQ%o|&nLg)HN;EQ6RL;{8GN zy{%{vbviVflaQ-%G-0}?5PNUx59zrQVLZql9QuBCa8RNRXHL5B(nw-2J6_N0DDx?D zJ`~7mwYeIqAZL=Y&3v6CFT?yIP#qHaJ}hM?>V#~CY3%)4sH-4l=z#YkCLt{qppXgAS{*|k@-FiJQ5LNxpYxSc$dK6|a=G(2H99YpR zA$Ru6o48zigT7;NmBA*{4YfIU({r0{0HJ;8;BpDLT)^72pT~)NrpL_7%W8{~Zzk{6bOwRLg8go(){(J0~xI0hPhfvM9XC5$dtwrb+0{$W9z2C>b ze>LfR<>2ps)`6w!k!mRZsf0pj8|H zikAeo0xKfAdNv~#w?XiwYXC#i0L5qRQkarA4glNHvI6^HT7pI&ftOLX0!;y#m!Gx* zCx2W=&=*mbr|JsUJr~2;TX&Ua5tKQ|gM&j_k|jUI7!2nmTvb3PM$Xb9wn9WDStdd? zg;NPJQ(EwxMO@TrlW0z&2M34t>ddqo$!W5l33MVc=V5jBL>Bi4hfMO+o=CKY8>Geu zNGNqAWv4NbhzHEh!*@YDs*_ezlaH*Z1Am0bDQ_RzY1+W<4+NX)NP0oe%;payGh28T zC}ti(8&fXG@wzCiQ5IZR$`s$|z{EJ`k`_P# z+EB%~a7DE)5m78+q1{tiW9nJLk&Gh}yv^3r87l3Fjv4?ZoR7nyXJ!kST!^6oC|5sENW?r3$jnrSRpybQji+=YouXdgY1Yo0 zkc1X?MNO&gHX=$tGQDcZA=`zspUUNfkL9xECBav%Drjc(y5WMMf5WC+7R7MJgOtHY z9F~H~N>nzF$)>QwVrG%p#`Zzj27dr73Oa~L*fsrSA+{G0!E`10s2rWZT~FDj?0#78 z*v?@Alw$jkGLxN)!j7rYOQ&+vvwTEMXYuS~!uH*seb_1Kv~0iIgo0w0s%;0*)yU!d zn`aB~_1V?(JWZT5gLl#qe}$irOb1dW8nJLx0ed#8ov!nkl+th$DOs>_I)9p=Z-q;J zCiQ}%70E0Q+$-Pg=h=FdL{rf7@x#AQxL3Vf0%JPj-uU<4q%-u` zdc-%GkTCa`0%O?aDw^tOc7Jf50}ufrNA!2lO3CK#($PJ$0qo4L=>mi99F2TQM?-2syZcr z;1~;st!>QmgTC+Q;|irszVBOk)rjluP+k(~6>I@;5gz>U@Zewlga0|3I8^JUITx$N z-cPS-EV3T497wV81b4I(XwFxLIo6)9|7!Wmz0x6=`Heb(lDI-;Af!w>s--~#qL6^kbySL7|Z zx0x06t(7-rpu?~03*SDImthjkTGMrwr%O{3qTIBQ(QJA5Hlpxax~8D@wv$=a7A*>x z*d>?4w}cD>%zr_KLC-$Zuj$*s_F(`syW~^fw+r?C{oz~4es8lZ=v&}fJ4?!@zE74N z4&n`1fF;cH{XQm#9e(f~Wzsy}?^EV=zxFuiGn4eUJ}rcv%a9gEydx-V)e4kkSIAif zbd`)~pvGb{hJV%e>G1A<_iKNLg{{hh3Un1K9m4B9FMp`o!VECT?LF$*Y_5`Vz$mPoT38)XEPNvYYr`beg-!-d|lwT&tEY|O~rWns0;vVsei@Ca1{!+ab~ z0DVPsvWQ7SeZL*jojvqYrI*o6%&ILD6<#aKTA^%(pb==Duk%)vLlQ(Kty*r8uUn~V zby~}G7R@7}GWynn$&_Q0!=#c51_>_eR10OY-DaMgKukNiXj#kgT94k+L0axTplRxJ zJ(Ro>QXU-AK!Hg_Av=6p(%TY6H$_np7XV%9?07suV!-Rc#;j5=MmoK{E9JcwCjm!k z5YSsk)?uQoH3~gBJq0W!3)=JUZKj16w4mf$mmj?XR07+Fmvy}YDFITKpS=Que=J7b zTx2=P=x|ABV5;gf?`!N3%H7RF$2=ql2enr22OiZG!Z0{rkJr_CGFYIq{5buU-}_OI2Jl$-lJ}BhDxUPY(i!x zo23N=bPhoSBtc#{kBMR%C8jCzf3{%ngc6hKMU>2xkRXOe9Y8Ri6r~Od2s=1Xpp;b+ zaNf=vNgzkI6=`5jp$8>Uosa4y>39Nry(z6qf%9dml8UqyOZXYk)`O&MUHQH;&6jxi zXoN}tw&vqRBR9-lld$HyB2%LV8IH}vBrp%nV=Sj@J*=}4(d2Z(Tt^}`f3#idI;n~C zqP0MRnNc_;f~25SkPIxXkW^4b;N0WFHsW9j=^ptc_OC(ebuwiA#UWXT%EyX*)O zFga39*oAFDSRLQ24L1(e!dJ<+dAWOd7Zf9)SM%r#!|I9K_s{lpf z`|UqQWJY~IvQY;pJJu;7m!H1^D}O~?I8r!$G@|IE0uu$oYJfQ)4^?+25&_pK0|^Pl z)Km~zO6zho8+U+zo~kF|6ptsPQ*)B^J}(=ps)5F|dbVsM*ViwY<ick18$m&(PSy{g-5;bz0qz=*rc8mYjYV3jKoQ!&nae&C zJF^LpDJaY;#)Wl1g7&~R4#;IwNp7^jhPiSbkXkWO&NJ8_f(;<0Y!l9Ar(mNKq)dq{ zO)hIu|De7yx^C-!M!Vb4Z*OC%oNSVrMn3L43&(J>X6mv@j;|WE39Q{FWc4}kRXTErB2NL%$$vY^iZ2(4zaA>ZY{&8qTs^VB1Be2os~N1M5~}*m#4u3G=J6TMl&%yqg5#j z1`9DUR+ADX$f~BZnygNrs|J>=`aOWf){o4@bHEkDIReY!Jlt;46GR{8r8xyV7xPq! zClYQ$5nboa_!57B#w(huLfqT!c*3lF8;u7N5nhTPz=$skfK+-Va;EK)8;JtyKMIos zv;tVvp+UUr8F9)`IDbURb_;tdaFTq#w5oMdi^9&MvG&mBi7!>U5-PtUIR+#Lj}pzh z;5BuQF~*1blot%N-8doJZ5t)7RW~)whD|^>xYUAzhE1S53JL-dzGJH>hX4kFEJ@j_ zKZy7@xPipLST@xOT5FWj9|%M=u$2mHs8Ut*YUJAP0nn_cf+5(8m*=R{MR0+$pm4aX zqtU0V9tA}xR#wcRCILY79)LcV`oaPpf8)jy;-VpSX*te4)?dVY0cC(FO%MV>tyIc) zgv5&X2kLu^R0f@natPb8n$+wUTWAB}XiYiTl=BxcNx$zq`p`a0DWd)F`{;E8hFA7m z+5wsYwA{wZ6nX*TwP-RxOQY?U=vO`#80F2%Ewy0*dRyN`%}?lepig6w2@5|7gf(_ApsHmEahCZuZ!da|a2Qib}B?~@sy zY4@!urEKOnB_+5AVaHUK!_Lw*7OtU+3$+N|6--336}lK4p)=!d+E{3Dh^9o4Fhg<# z&~m=rhR#661h}we3^pViOK*~_TiWw)w;4rco$nio<;jR7*!K{Bj1eq*t8JPyLao*e zXE!k}ZISksYe&0M<)d_+%;bN8_#J1qRgS|dxk7vjky=BMvy~K)gh#Y{b|$hDbnV`5 zJ^cU!O~!gZck@(7cpQa`$#$Dq8pHROF)82ZFtU$9g!T-{AcUaJFhx9Kjp^lCDTUfM zSq33Yeg9-crp{y`q3bKH3}qt67`TQ#uM~MW0#W0YBF{#kW_g|JDJ}8J^Oyg{0y}^6 zxO)z~6Pog*`k)QLoXqqwEZ6SM2qZZN_bX~W2budDP{MPRqekPXl3?NDgM4*(ZF8nN z8iWNhly>yS9tII_oegiCPkG&d0_Q`Y);lsprA0_!uU=X*mn>@=-Bh;Qw6d30C7q?Z zS-PyKMFCZS_^PsqE=r4NA}y0>72bb_RYdA$-}tP#7Oz&YoI~G#6W>r{soX^VPwD9E zwhfyb5@B+)hf@@TL@dgld<>_#c@LQkFQWxmVU<%2bZ%t_RM$^ww(4hb1q5iAzmkp-+il9WBBzE29k$Uxt36~k#>L8x!31{ z07{Uk?I?S{o$J{2zn%9YBSo;wTr}@pgyx$!F%BF^pu>FpTnns_Vx+DO9vVweh{Xuj zC-x$yLG#=K{@UCEI>L*bkk$3@kWj}F1ky*xXcMa=*qpq0{3Q6M42zYgCK%S(#Ld;L z#iSlA*IKuktDIPf;BkcBa;ATrsKBO{u5}$%Nfm|W&SZT(mu}r;wkX?Mfm>>UQF>tz z!RZL@eOj-GV4EyS^9-nx5_SHO6GXR^ZL}mS3shloZiP3=X8aVSS5EJl>L!tloqjV< z`{Nxz`hm{s(Mce?c9$?+OLM@cswd6lT76ikQL9s;s5Y*1Hh`qGJmr7NMc;LPKBc%{hW5$n50hv96VgXDBjCld04n`J`+SSw`)5Mlyo zM&EBshawtK(dm@H1;=mJJf7@vG!FIqgo1V!dSo-255S*OcCLTOlM(o-ox|8zYKgvt zzo-yn>ya`(;EADUGHZ{kEn_GnWQ>3^VPoWzCNOGH@#GE>EGIzy_b`;g#}(IAMch=L)?QJlEVkQrzTKw2{~UaqQczJ~!3LWnHM>^v z@i~8x8y16Y<_UjTK6|S)%OUJ`4JTNeXAq*JU^C=)x~9N5)kxfEVoX}hO#e6{(jpSJ zDg7qFU_sLhr4`(ohg!-9o_I699=1WbvmPo#Y6N>2wDoXJ6b;rIr!4t9a0}OR@)^tF zLc=!_JT~PLZq@)27DHr|{q06s`3-E&oVAT698I&~OqzeA)^+fSAuX#RZMREASbAiS zMtq-r7pS@Qe#=1LB(>-;6aN6K{p~g$X%|Q<*f+_e5sI>mcL7MTMxevjKbihX_(@LQ z$J9vw-^YVljKYJOV~g(_PnS~xb?IP`k!+c&eZTT6X=dZzGL&!?bG3LYm!t;%Rf}EN ztp4R?Oxb_3p7bJiF#DVc2v7lXHly%}fcMhai0$g+D`a*Ly+Ob{2F)12Pu0>cT5PX0 zBgi6{r?jg>F#V{+oT#pKwJR4H4Io0cF|fBJVX1DhE}5#UucX@RhNlm>tkA0ZaM099 zS%(6_bmw&MwPL{xL3h_^ol4!SE@eA2XmI#BHI{$vV=?i4t^aMo%b?aEj%h}6*!z*G zi_eICv>K$$nZpp~Z3>VVW*1;kILK_lHCd9ZWC#pI%&)O8HeM-1@IS>T3I=&4E2=FE zq;ZIq9g>#~(t;>f4gyz!toW2YjLGWGp5;_4w=y%y+7)4C`hHOdkGTsKmE-PQL&DTJ zZYl%L`DmB2%K|O|XP4p20&D`URF_Z80ww`Gmv+noe*ut}_RInyf5!lxPl#Zcu^H71 zcbv&wTgpwfB5bAk?Q2&SzLtv%FFWh2S9MnURlkC6!_YDomFVgZOaxn&ni%=24zU_h zl&V5!QlL}d>bolosPyA5UU;EFJ|na%#mAgb!w6L7fqV9Q-c@S}*271sgwR>TW`d5` z;xjWl{TAGzkpLHofm$mKw5u04E~;YZR0W!A)ImAWzH{XzJBm$l6TJb&+j ziy=sbz?6kDSE7FmT!+UnV?{kgEtF11HNK_f6%>E4k);%0VPTLJm(10bD^GQyNf$~e zy9ZiJy;YFAkadLx8f8RXP-qcKciP%tUlsb!RC#Yi(%N9n#hcC1D(!8c>O9w{hkLtT z><%mgWr=bvJg9a-sHf3}4@LcJ)qkVZObYIOr=v9!l3UN43$~7uS2Q?Cbckd)#~IsI z5kY(G49p(gmguMFCj5*=uOnyn9iZg~+Ct8@vf;4DSY}$QE%uoaR+~(;R`gY=b8`ac z8Jr1Pid_{&&N+V{vnij&b!YrwQw+e}No}{;FfB<^QL-OMm>5Um%=f3hKYumM7qBff zF#Fyq0I_-!>!HgYn!aX~Jtmsq#JnxoF`;apAdXomv7zV=tcz8x2#G8#ip;Hd2wI~gz7eNH`Y!XgQUqVa^=efX*7G(Ht zVhINy@h!?uML4_KGv*kaeGzrH;egxWo@h|F0MeT3%?PSRar#6D@J1mkL=C5|ESA)C ziO)yqsL=eVRevY%%|}ppbQei_9wx@RG!kXpaf}f- zuz<7tJO`U+2)yb0?U&_*;EC`1@PBxcNS&*ICRewy`}h zEdu{s>mo=BL4XdftK{JbBNd|=qDgu-Vy{q?MTbi6I;hlc-E~0wUgI7AqVicn00C z9Wn;+N^8E8f|P-G_Tg{{(8Dnf8j!Nh;K;_oLbHkB;l>?>U&e`H*Q26Rk7OJp_>{}d z5-v;SNPq4q!qyOY5a^~2davtwfe?x&P7VW23YZ_cgcZ>}po2A^fj(YeyD~6Z@Gi!%G4N}`q7}G#t5t&= z@amC{gbi;r5cZraC0rOEh*;^h37%66nd3%wGJm0$!rANz7&aW^X(SYZSZ~@15=h)@ zb7`cvmKZ4)2ET$}Lzjjw-K;{?_Uqg=n&6A{y zNZO3Y`lZVG?x@Ns&??r1n-BD_Z=!hcz<)g0n)EdRPEE&GRZZb}y3TFRhx(<;`EpU^ zgqZ9-De@1gifw`C_O&XqIBpct;jnFqSLUrMu#TH;lJ`h7FY_<+S`F&Ra(|sVXMUt74hR^GGhTYlaP!Gk$l=XUF@>*M_vW+-P69=70G1 zmi+l>PsvDL3WZV`UHX}M-&@1;eKpMTwJrR3^m=c(S6BPWiOXnO&hle?Yn_BL#A_j{ z!qO=`H#ZRU)~kgIXJu)7GePUMO?NuIuW?P(+2YzD#x#z1B)a?Qa!>h8OxG&PuS#$& z-<^h?m0E_8%!LGlfu0iQX__|%et&8btKz>N6_bLp*CS3yx7!u&0YaWe+bww-@e@Vf zM99`5l6<&Y>AY|i)mj<_TFHoL`b;<$8x3R0D|A@4>Yn|<0V@|)fsV7lFsr%@2)rK8 z%8?AtjjgJ_X#$>dv0Nn~m=BTa1vPb2s2@is$CT-~N??-#H`k%70f_if(tj_(0fv^L zr6f_TeaM=IpRRkrt2aNGK%CSn3ojQK-DQuS0mS|%$0on;*D9)gvvn=Q{9>7S1;qO* zncSLpf~^Z>?QqgM2A!7&(&*Q4vX zKyw!re>Y;UM_oheUV^D@nkIR)^4Q}G3vIu;7CLBlZ1-eahH$qm)_?v?zSHC~1q0(o z8k06e1zLC-KRJ7L_}%lfSHGS-dU1Sq#v>+6K67slP)vp)Q4o~E ziKj5`PX?lUrZG(>)RT|7kTbwNjU)!SF4yAO;dj!>R7)vL^g3YUFn-rHDndgTYJ5vH z&y^>2cFJN`lXoHV7ayc0A|H!vs-hL3Qiv^L@aN47XVL1*+<(RcrNffVx0dt9J`p$7 zrj`g1IRhs@+M;W3Xj%;Rle!YUNeX(S{3JU3PC{@QXZ-R`6mE*T$XJ>FPph?&#P?QECYw0o+ z&-NC8-5?E;&#@UjC41|Zl?15r_7+6}q0SfK^a|{m8~73UDZJ)N1jfocRox_%i#6VP zr9FHPJUZ@A;EGSwIUei$o{%0hYz>SVRJM7v6i@LA>n|+$HDPkSJQvC){E!qB&W3d+ g$fFTZTln~^e#G@4-dAt{)4_lIUx9vkZYf3#0FZbKQUCw| From 6f9ded5f20d9b5f87f091f2f18451f301ad35db6 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Thu, 26 Sep 2024 21:45:43 +0200 Subject: [PATCH 103/127] issue template: fix typo --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d41f9824..8f357930 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -48,7 +48,7 @@ body: description: How did you install OpenDTU? options: - Pre-Compiled binary from GitHub releases - - Pre-Compiles binary from GitHub actions/pull-request + - Pre-Compiled binary from GitHub actions/pull-request - Self-Compiled validations: required: true From 251bb7bd8933bf7359494fad652824a9cb7dc8f5 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Fri, 27 Sep 2024 00:31:15 +0200 Subject: [PATCH 104/127] Add connection check for W5500 before full initialization --- include/W5500.h | 11 +++- src/NetworkSettings.cpp | 6 +- src/W5500.cpp | 127 ++++++++++++++++++++++++++-------------- 3 files changed, 99 insertions(+), 45 deletions(-) diff --git a/include/W5500.h b/include/W5500.h index f62c3312..d85cb016 100644 --- a/include/W5500.h +++ b/include/W5500.h @@ -2,19 +2,28 @@ #pragma once #include +#include #include // required for esp_eth_handle_t #include +#include + class W5500 { +private: + explicit W5500(spi_device_handle_t spi, gpio_num_t pin_int); + public: - explicit W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst); W5500(const W5500&) = delete; W5500& operator=(const W5500&) = delete; ~W5500(); + static std::unique_ptr setup(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst); String macAddress(); private: + static bool connection_check_spi(spi_device_handle_t spi); + static bool connection_check_interrupt(gpio_num_t pin_int); + esp_eth_handle_t eth_handle; esp_netif_t* eth_netif; }; diff --git a/src/NetworkSettings.cpp b/src/NetworkSettings.cpp index 33de9255..75c4bb12 100644 --- a/src/NetworkSettings.cpp +++ b/src/NetworkSettings.cpp @@ -34,7 +34,11 @@ void NetworkSettingsClass::init(Scheduler& scheduler) if (PinMapping.isValidW5500Config()) { PinMapping_t& pin = PinMapping.get(); - _w5500 = std::make_unique(pin.w5500_mosi, pin.w5500_miso, pin.w5500_sclk, pin.w5500_cs, pin.w5500_int, pin.w5500_rst); + _w5500 = W5500::setup(pin.w5500_mosi, pin.w5500_miso, pin.w5500_sclk, pin.w5500_cs, pin.w5500_int, pin.w5500_rst); + if (_w5500) + MessageOutput.println("W5500: Connection successful"); + else + MessageOutput.println("W5500: Connection error!!"); } else if (PinMapping.isValidEthConfig()) { PinMapping_t& pin = PinMapping.get(); #if ESP_ARDUINO_VERSION_MAJOR < 3 diff --git a/src/W5500.cpp b/src/W5500.cpp index 0f5b5739..fc770c44 100644 --- a/src/W5500.cpp +++ b/src/W5500.cpp @@ -12,52 +12,10 @@ void tcpipInit(); void add_esp_interface_netif(esp_interface_t interface, esp_netif_t* esp_netif); -W5500::W5500(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst) +W5500::W5500(spi_device_handle_t spi, gpio_num_t pin_int) : eth_handle(nullptr) , eth_netif(nullptr) { - gpio_reset_pin(static_cast(pin_rst)); - gpio_set_level(static_cast(pin_rst), 0); - gpio_set_direction(static_cast(pin_rst), GPIO_MODE_OUTPUT); - - gpio_reset_pin(static_cast(pin_cs)); - gpio_reset_pin(static_cast(pin_int)); - - esp_err_t err = gpio_install_isr_service(ARDUINO_ISR_FLAG); - if (err != ESP_ERR_INVALID_STATE) // don't raise an error when ISR service is already installed - ESP_ERROR_CHECK(err); - - auto bus_config = std::make_shared( - static_cast(pin_mosi), - static_cast(pin_miso), - static_cast(pin_sclk)); - - spi_device_interface_config_t device_config { - .command_bits = 16, // actually address phase - .address_bits = 8, // actually command phase - .dummy_bits = 0, - .mode = 0, - .duty_cycle_pos = 0, - .cs_ena_pretrans = 0, // only 0 supported - .cs_ena_posttrans = 0, // only 0 supported - .clock_speed_hz = 20000000, // stable with OpenDTU Fusion shield - .input_delay_ns = 0, - .spics_io_num = pin_cs, - .flags = 0, - .queue_size = 20, - .pre_cb = nullptr, - .post_cb = nullptr, - }; - - spi_device_handle_t spi = SpiManagerInst.alloc_device("", bus_config, device_config); - if (!spi) - ESP_ERROR_CHECK(ESP_FAIL); - - // Reset sequence - delayMicroseconds(500); - gpio_set_level(static_cast(pin_rst), 1); - delayMicroseconds(1000); - // Arduino function to start networking stack if not already started tcpipInit(); @@ -98,6 +56,61 @@ W5500::~W5500() // TODO(LennartF22): support cleanup at some point? } +std::unique_ptr W5500::setup(int8_t pin_mosi, int8_t pin_miso, int8_t pin_sclk, int8_t pin_cs, int8_t pin_int, int8_t pin_rst) +{ + gpio_reset_pin(static_cast(pin_rst)); + gpio_set_level(static_cast(pin_rst), 0); + gpio_set_direction(static_cast(pin_rst), GPIO_MODE_OUTPUT); + + gpio_reset_pin(static_cast(pin_cs)); + gpio_reset_pin(static_cast(pin_int)); + + esp_err_t err = gpio_install_isr_service(ARDUINO_ISR_FLAG); + if (err != ESP_ERR_INVALID_STATE) // don't raise an error when ISR service is already installed + ESP_ERROR_CHECK(err); + + auto bus_config = std::make_shared( + static_cast(pin_mosi), + static_cast(pin_miso), + static_cast(pin_sclk)); + + spi_device_interface_config_t device_config { + .command_bits = 16, // actually address phase + .address_bits = 8, // actually command phase + .dummy_bits = 0, + .mode = 0, + .duty_cycle_pos = 0, + .cs_ena_pretrans = 0, // only 0 supported + .cs_ena_posttrans = 0, // only 0 supported + .clock_speed_hz = 20000000, // stable with OpenDTU Fusion shield + .input_delay_ns = 0, + .spics_io_num = pin_cs, + .flags = 0, + .queue_size = 20, + .pre_cb = nullptr, + .post_cb = nullptr, + }; + + spi_device_handle_t spi = SpiManagerInst.alloc_device("", bus_config, device_config); + if (!spi) + return nullptr; + + // Reset sequence + delayMicroseconds(500); + gpio_set_level(static_cast(pin_rst), 1); + delayMicroseconds(1000); + + if (!connection_check_spi(spi)) + return nullptr; + if (!connection_check_interrupt(static_cast(pin_int))) + return nullptr; + + // Return to default state once again after connection check + gpio_reset_pin(static_cast(pin_int)); + + return std::unique_ptr(new W5500(spi, static_cast(pin_int))); +} + String W5500::macAddress() { uint8_t mac_addr[6] = {}; @@ -109,3 +122,31 @@ String W5500::macAddress() mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); return String(mac_addr_str); } + +bool W5500::connection_check_spi(spi_device_handle_t spi) +{ + spi_transaction_t trans = { + .flags = SPI_TRANS_USE_RXDATA, + .cmd = 0x0039, // actually address (VERSIONR) + .addr = (0b00000 << 3) | (0 << 2) | (0b00 < 0), // actually command (common register, read, VDM) + .length = 8, + .rxlength = 8, + .user = nullptr, + .tx_buffer = nullptr, + .rx_data = {}, + }; + ESP_ERROR_CHECK(spi_device_polling_transmit(spi, &trans)); + + // Version number (VERSIONR) is always 0x04 + return *reinterpret_cast(&trans.rx_data) == 0x04; +} + +bool W5500::connection_check_interrupt(gpio_num_t pin_int) +{ + gpio_set_direction(pin_int, GPIO_MODE_INPUT); + gpio_set_pull_mode(pin_int, GPIO_PULLDOWN_ONLY); + int level = gpio_get_level(pin_int); + + // Interrupt line must be high + return level == 1; +} From b05975b97c30fbe4f85270c6b4c47114d6c01305 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Fri, 27 Sep 2024 01:27:42 +0200 Subject: [PATCH 105/127] Prevent warning on GPIO ISR service registration --- src/W5500.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/W5500.cpp b/src/W5500.cpp index fc770c44..bf539434 100644 --- a/src/W5500.cpp +++ b/src/W5500.cpp @@ -65,10 +65,6 @@ std::unique_ptr W5500::setup(int8_t pin_mosi, int8_t pin_miso, int8_t pin gpio_reset_pin(static_cast(pin_cs)); gpio_reset_pin(static_cast(pin_int)); - esp_err_t err = gpio_install_isr_service(ARDUINO_ISR_FLAG); - if (err != ESP_ERR_INVALID_STATE) // don't raise an error when ISR service is already installed - ESP_ERROR_CHECK(err); - auto bus_config = std::make_shared( static_cast(pin_mosi), static_cast(pin_miso), @@ -105,7 +101,12 @@ std::unique_ptr W5500::setup(int8_t pin_mosi, int8_t pin_miso, int8_t pin if (!connection_check_interrupt(static_cast(pin_int))) return nullptr; - // Return to default state once again after connection check + // Use Arduino functions to temporarily attach interrupt to enable the GPIO ISR service + // (if we used ESP-IDF functions, a warning would be printed the first time anyone uses attachInterrupt) + attachInterrupt(pin_int, nullptr, FALLING); + detachInterrupt(pin_int); + + // Return to default state once again after connection check and temporary interrupt registration gpio_reset_pin(static_cast(pin_int)); return std::unique_ptr(new W5500(spi, static_cast(pin_int))); From cafdb305a3729da4409779701043b37d9d7cf1de Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 28 Sep 2024 02:37:09 +0200 Subject: [PATCH 106/127] Adjust name of OpenDTU Fusion v2 PoE build environment --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index bc81b1a7..82111268 100644 --- a/platformio.ini +++ b/platformio.ini @@ -254,7 +254,7 @@ build_flags = ${env.build_flags} -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -[env:opendtufusionv2_shield] +[env:opendtufusionv2_poe] board = esp32-s3-devkitc-1 upload_protocol = esp-builtin debug_tool = esp-builtin From 69d2727106f183ecad6b6786a45d51e734cf60e6 Mon Sep 17 00:00:00 2001 From: LennartF22 <18723691+LennartF22@users.noreply.github.com> Date: Sat, 28 Sep 2024 02:42:05 +0200 Subject: [PATCH 107/127] Add device profiles for OpenDTU Fusion v2 PoE with displays --- docs/DeviceProfiles/opendtu_fusion.json | 78 +++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/docs/DeviceProfiles/opendtu_fusion.json b/docs/DeviceProfiles/opendtu_fusion.json index bb1e4108..990f4c46 100644 --- a/docs/DeviceProfiles/opendtu_fusion.json +++ b/docs/DeviceProfiles/opendtu_fusion.json @@ -243,5 +243,83 @@ "data": 2, "clk": 1 } + }, + { + "name": "OpenDTU Fusion v2 PoE with SH1106 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], + "nrf24": { + "miso": 48, + "mosi": 35, + "clk": 36, + "irq": 47, + "en": 38, + "cs": 37 + }, + "cmt": { + "clk": 6, + "cs": 4, + "fcs": 21, + "sdio": 5, + "gpio2": 3, + "gpio3": 8 + }, + "w5500": { + "mosi": 40, + "miso": 41, + "sclk": 39, + "cs": 42, + "int": 44, + "rst": 43 + }, + "led": { + "led0": 17, + "led1": 18 + }, + "display": { + "type": 3, + "data": 2, + "clk": 1 + } + }, + { + "name": "OpenDTU Fusion v2 PoE with SSD1306 Display", + "links": [ + {"name": "Information", "url": "https://github.com/markusdd/OpenDTUFusionDocs"} + ], + "nrf24": { + "miso": 48, + "mosi": 35, + "clk": 36, + "irq": 47, + "en": 38, + "cs": 37 + }, + "cmt": { + "clk": 6, + "cs": 4, + "fcs": 21, + "sdio": 5, + "gpio2": 3, + "gpio3": 8 + }, + "w5500": { + "mosi": 40, + "miso": 41, + "sclk": 39, + "cs": 42, + "int": 44, + "rst": 43 + }, + "led": { + "led0": 17, + "led1": 18 + }, + "display": { + "type": 2, + "data": 2, + "clk": 1 + } } ] From ebb225f6c063e1946739cab7674c319a98d66784 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Mon, 30 Sep 2024 14:18:33 +0200 Subject: [PATCH 108/127] Fix: avoid deprecated setAuthentication() to fix memory exhaustion with ESPAsyncWebServer 3.3.0, the setAuthentication() method became deprecated and a replacement method was provided which acts as a shim and uses the new middleware-based approach to setup authentication. in order to eventually apply a changed "read-only access allowed" setting, the setAuthentication() method was called periodically. the shim implementation each time allocates a new AuthenticationMiddleware and adds it to the chain of middlewares, eventually exhausting the memory. we now use the new middleware-based approach ourselves and only add the respective AuthenticatonMiddleware instance once to the respective websocket server instance. a regression where enabling unauthenticated read-only access is not applied until reboot is also fixed. all the AuthenticationMiddleware instances were never removed from the chain of middlewares when calling setAuthentication("", ""). --- include/WebApi.h | 1 + include/WebApi_ws_console.h | 2 ++ include/WebApi_ws_live.h | 2 ++ src/WebApi.cpp | 6 ++++++ src/WebApi_security.cpp | 2 ++ src/WebApi_ws_console.cpp | 23 +++++++++++++++++------ src/WebApi_ws_live.cpp | 22 ++++++++++++++++------ 7 files changed, 46 insertions(+), 12 deletions(-) diff --git a/include/WebApi.h b/include/WebApi.h index b6fdbd08..2932f015 100644 --- a/include/WebApi.h +++ b/include/WebApi.h @@ -30,6 +30,7 @@ class WebApiClass { public: WebApiClass(); void init(Scheduler& scheduler); + void reload(); static bool checkCredentials(AsyncWebServerRequest* request); static bool checkCredentialsReadonly(AsyncWebServerRequest* request); diff --git a/include/WebApi_ws_console.h b/include/WebApi_ws_console.h index cf7beecc..b3194319 100644 --- a/include/WebApi_ws_console.h +++ b/include/WebApi_ws_console.h @@ -8,9 +8,11 @@ class WebApiWsConsoleClass { public: WebApiWsConsoleClass(); void init(AsyncWebServer& server, Scheduler& scheduler); + void reload(); private: AsyncWebSocket _ws; + AuthenticationMiddleware _simpleDigestAuth; Task _wsCleanupTask; void wsCleanupTaskCb(); diff --git a/include/WebApi_ws_live.h b/include/WebApi_ws_live.h index 05f8ab8f..e16372e9 100644 --- a/include/WebApi_ws_live.h +++ b/include/WebApi_ws_live.h @@ -11,6 +11,7 @@ class WebApiWsLiveClass { public: WebApiWsLiveClass(); void init(AsyncWebServer& server, Scheduler& scheduler); + void reload(); private: static void generateInverterCommonJsonResponse(JsonObject& root, std::shared_ptr inv); @@ -24,6 +25,7 @@ private: void onWebsocketEvent(AsyncWebSocket* server, AsyncWebSocketClient* client, AwsEventType type, void* arg, uint8_t* data, size_t len); AsyncWebSocket _ws; + AuthenticationMiddleware _simpleDigestAuth; uint32_t _lastPublishStats[INV_MAX_COUNT] = { 0 }; diff --git a/src/WebApi.cpp b/src/WebApi.cpp index 1a5b2870..117c305a 100644 --- a/src/WebApi.cpp +++ b/src/WebApi.cpp @@ -39,6 +39,12 @@ void WebApiClass::init(Scheduler& scheduler) _server.begin(); } +void WebApiClass::reload() +{ + _webApiWsConsole.reload(); + _webApiWsLive.reload(); +} + bool WebApiClass::checkCredentials(AsyncWebServerRequest* request) { CONFIG_T& config = Configuration.get(); diff --git a/src/WebApi_security.cpp b/src/WebApi_security.cpp index ddd8bb50..6be21ca6 100644 --- a/src/WebApi_security.cpp +++ b/src/WebApi_security.cpp @@ -71,6 +71,8 @@ void WebApiSecurityClass::onSecurityPost(AsyncWebServerRequest* request) WebApi.writeConfig(retMsg); WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); + + WebApi.reload(); } void WebApiSecurityClass::onAuthenticateGet(AsyncWebServerRequest* request) diff --git a/src/WebApi_ws_console.cpp b/src/WebApi_ws_console.cpp index 1f1efcb2..4dd2d693 100644 --- a/src/WebApi_ws_console.cpp +++ b/src/WebApi_ws_console.cpp @@ -21,16 +21,27 @@ void WebApiWsConsoleClass::init(AsyncWebServer& server, Scheduler& scheduler) scheduler.addTask(_wsCleanupTask); _wsCleanupTask.enable(); + + _simpleDigestAuth.setUsername(AUTH_USERNAME); + _simpleDigestAuth.setRealm("console websocket"); + + reload(); +} + +void WebApiWsConsoleClass::reload() +{ + _ws.removeMiddleware(&_simpleDigestAuth); + + auto const& config = Configuration.get(); + + if (config.Security.AllowReadonly) { return; } + + _simpleDigestAuth.setPassword(config.Security.Password); + _ws.addMiddleware(&_simpleDigestAuth); } void WebApiWsConsoleClass::wsCleanupTaskCb() { // see: https://github.com/me-no-dev/ESPAsyncWebServer#limiting-the-number-of-web-socket-clients _ws.cleanupClients(); - - if (Configuration.get().Security.AllowReadonly) { - _ws.setAuthentication("", ""); - } else { - _ws.setAuthentication(AUTH_USERNAME, Configuration.get().Security.Password); - } } diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 4fa79837..c4b4a1f1 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -36,18 +36,28 @@ void WebApiWsLiveClass::init(AsyncWebServer& server, Scheduler& scheduler) scheduler.addTask(_sendDataTask); _sendDataTask.enable(); + _simpleDigestAuth.setUsername(AUTH_USERNAME); + _simpleDigestAuth.setRealm("live websocket"); + + reload(); +} + +void WebApiWsLiveClass::reload() +{ + _ws.removeMiddleware(&_simpleDigestAuth); + + auto const& config = Configuration.get(); + + if (config.Security.AllowReadonly) { return; } + + _simpleDigestAuth.setPassword(config.Security.Password); + _ws.addMiddleware(&_simpleDigestAuth); } void WebApiWsLiveClass::wsCleanupTaskCb() { // see: https://github.com/me-no-dev/ESPAsyncWebServer#limiting-the-number-of-web-socket-clients _ws.cleanupClients(); - - if (Configuration.get().Security.AllowReadonly) { - _ws.setAuthentication("", ""); - } else { - _ws.setAuthentication(AUTH_USERNAME, Configuration.get().Security.Password); - } } void WebApiWsLiveClass::sendDataTaskCb() From d5d1a9982fa076e5ec69bd7e1dcc4a768bd5f192 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Mon, 30 Sep 2024 15:53:30 +0200 Subject: [PATCH 109/127] Fix: force websocket clients to authenticate when changing the security settings (disabling read-only access or changing the password), existing websocket connections are now closed, forcing the respective clients to authenticate (with the new password). otherwise, existing websocket clients keep connected even though the security settings now expect authentication with a (changed) password. --- src/WebApi_ws_console.cpp | 3 +++ src/WebApi_ws_live.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/WebApi_ws_console.cpp b/src/WebApi_ws_console.cpp index 4dd2d693..51035f6f 100644 --- a/src/WebApi_ws_console.cpp +++ b/src/WebApi_ws_console.cpp @@ -36,8 +36,11 @@ void WebApiWsConsoleClass::reload() if (config.Security.AllowReadonly) { return; } + _ws.enable(false); _simpleDigestAuth.setPassword(config.Security.Password); _ws.addMiddleware(&_simpleDigestAuth); + _ws.closeAll(); + _ws.enable(true); } void WebApiWsConsoleClass::wsCleanupTaskCb() diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index c4b4a1f1..29c204a3 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -50,8 +50,11 @@ void WebApiWsLiveClass::reload() if (config.Security.AllowReadonly) { return; } + _ws.enable(false); _simpleDigestAuth.setPassword(config.Security.Password); _ws.addMiddleware(&_simpleDigestAuth); + _ws.closeAll(); + _ws.enable(true); } void WebApiWsLiveClass::wsCleanupTaskCb() From 99a37fe01c5ef94c4638421a3af010908717d72a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Mon, 30 Sep 2024 18:47:41 +0200 Subject: [PATCH 110/127] webapp: Update dependencies --- webapp/package.json | 2 +- webapp/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/webapp/package.json b/webapp/package.json index 908058cc..5f954fce 100644 --- a/webapp/package.json +++ b/webapp/package.json @@ -40,7 +40,7 @@ "prettier": "^3.3.3", "pulltorefreshjs": "^0.1.22", "sass": "^1.77.6", - "terser": "^5.34.0", + "terser": "^5.34.1", "typescript": "^5.6.2", "vite": "^5.4.8", "vite-plugin-compression": "^0.5.1", diff --git a/webapp/yarn.lock b/webapp/yarn.lock index 9d68694e..b6569670 100644 --- a/webapp/yarn.lock +++ b/webapp/yarn.lock @@ -2506,10 +2506,10 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -terser@^5.34.0: - version "5.34.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.34.0.tgz#62f2496542290bc6d8bf886edaee7fac158e37e4" - integrity sha512-y5NUX+U9HhVsK/zihZwoq4r9dICLyV2jXGOriDAVOeKhq3LKVjgJbGO90FisozXLlJfvjHqgckGmJFBb9KYoWQ== +terser@^5.34.1: + version "5.34.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.34.1.tgz#af40386bdbe54af0d063e0670afd55c3105abeb6" + integrity sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" From 2234ac97039a21eb6c471b0c584c43379e974c0c Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 2 Oct 2024 10:32:58 +0200 Subject: [PATCH 111/127] Upgrade ESPAsyncWebServer from 3.3.1 to 3.3.7 --- platformio.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index 82111268..2b3a4c95 100644 --- a/platformio.ini +++ b/platformio.ini @@ -41,7 +41,7 @@ build_unflags = -std=gnu++11 lib_deps = - mathieucarbou/ESPAsyncWebServer @ 3.3.1 + mathieucarbou/ESPAsyncWebServer @ 3.3.7 bblanchon/ArduinoJson @ 7.2.0 https://github.com/bertmelis/espMqttClient.git#v1.7.0 nrf24/RF24 @ 1.4.9 From 38b5807ef772a3568704cb2a3546d25fde430c1b Mon Sep 17 00:00:00 2001 From: mbo18 Date: Wed, 2 Oct 2024 10:44:43 +0200 Subject: [PATCH 112/127] Remove icon because device_class is set --- src/MqttHandleHass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index ab4a2ad1..0363cc8e 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -61,7 +61,7 @@ void MqttHandleHassClass::publishConfig() publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", DEVICE_CLS_SIGNAL_STRENGTH, CATEGORY_DIAGNOSTIC); publishDtuSensor("Uptime", "dtu/uptime", "s", "", DEVICE_CLS_DURATION, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Temperature", "dtu/temperature", "°C", "mdi:thermometer", DEVICE_CLS_TEMPERATURE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Temperature", "dtu/temperature", "°C", "", DEVICE_CLS_TEMPERATURE, CATEGORY_DIAGNOSTIC); publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); From 9df3e30bb2852d0e70f24675d10feef2aa371b96 Mon Sep 17 00:00:00 2001 From: mbo18 Date: Wed, 2 Oct 2024 11:02:52 +0200 Subject: [PATCH 113/127] Remove unused DEVICE_CLASS_TEMP --- include/MqttHandleHass.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 1a3acf59..7dcf9410 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -13,7 +13,6 @@ enum DeviceClassType { DEVICE_CLS_PWR, DEVICE_CLS_VOLTAGE, DEVICE_CLS_FREQ, - DEVICE_CLS_TEMP, DEVICE_CLS_POWER_FACTOR, DEVICE_CLS_REACTIVE_POWER, DEVICE_CLS_CONNECTIVITY, @@ -22,7 +21,7 @@ enum DeviceClassType { DEVICE_CLS_TEMPERATURE, DEVICE_CLS_RESTART }; -const char* const deviceClass_name[] = { 0, "current", "energy", "power", "voltage", "frequency", "temperature", "power_factor", "reactive_power", "connectivity", "duration", "signal_strength", "temperature", "restart" }; +const char* const deviceClass_name[] = { 0, "current", "energy", "power", "voltage", "frequency", "power_factor", "reactive_power", "connectivity", "duration", "signal_strength", "temperature", "restart" }; enum StateClassType { STATE_CLS_NONE = 0, @@ -55,7 +54,7 @@ const byteAssign_fieldDeviceClass_t deviceFieldAssignment[] = { { FLD_IAC, DEVICE_CLS_CURRENT, STATE_CLS_MEASUREMENT }, { FLD_PAC, DEVICE_CLS_PWR, STATE_CLS_MEASUREMENT }, { FLD_F, DEVICE_CLS_FREQ, STATE_CLS_MEASUREMENT }, - { FLD_T, DEVICE_CLS_TEMP, STATE_CLS_MEASUREMENT }, + { FLD_T, DEVICE_CLS_TEMPERATURE, STATE_CLS_MEASUREMENT }, { FLD_PF, DEVICE_CLS_POWER_FACTOR, STATE_CLS_MEASUREMENT }, { FLD_EFF, DEVICE_CLS_NONE, STATE_CLS_NONE }, { FLD_IRR, DEVICE_CLS_NONE, STATE_CLS_NONE }, From 0c2b6f1a61a25233c1945cd109cb09110e8c5072 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Wed, 2 Oct 2024 18:13:12 +0200 Subject: [PATCH 114/127] Fix: Add state_class to several Home Assistant sensors state_class was added to yieldtotal, yieldday ac power and temperature for the whole dtu closes: #2324 --- include/MqttHandleHass.h | 18 +++--- src/MqttHandleHass.cpp | 123 +++++++++++++++++++++++---------------- 2 files changed, 82 insertions(+), 59 deletions(-) diff --git a/include/MqttHandleHass.h b/include/MqttHandleHass.h index 7dcf9410..c0a22c70 100644 --- a/include/MqttHandleHass.h +++ b/include/MqttHandleHass.h @@ -74,21 +74,21 @@ private: static void publish(const String& subtopic, const String& payload); static void publish(const String& subtopic, const JsonDocument& doc); - static void addCommonMetadata(JsonDocument& doc, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); + static void addCommonMetadata(JsonDocument& doc, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); // Binary Sensor - static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); - static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); - static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category); + static void publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); + static void publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); + static void publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); // Sensor - static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); - static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); - static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category); + static void publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); + static void publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); + static void publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); static void publishInverterField(std::shared_ptr inv, const ChannelType_t type, const ChannelNum_t channel, const byteAssign_fieldDeviceClass_t fieldType, const bool clear = false); - static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const DeviceClassType device_class, const CategoryType category); - static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const CategoryType category); + static void publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const DeviceClassType device_class, const StateClassType state_class, const CategoryType category); + static void publishInverterNumber(std::shared_ptr inv, const String& name, const String& state_topic, const String& command_topic, const int16_t min, const int16_t max, float step, const String& unit_of_measure, const String& icon, const StateClassType state_class, const CategoryType category); static void createInverterInfo(JsonDocument& doc, std::shared_ptr inv); static void createDtuInfo(JsonDocument& doc); diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 0363cc8e..7afa87da 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -58,45 +58,45 @@ void MqttHandleHassClass::publishConfig() const CONFIG_T& config = Configuration.get(); // publish DTU sensors - publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", DEVICE_CLS_SIGNAL_STRENGTH, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Uptime", "dtu/uptime", "s", "", DEVICE_CLS_DURATION, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Temperature", "dtu/temperature", "°C", "", DEVICE_CLS_TEMPERATURE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("IP", "dtu/ip", "", "mdi:network-outline", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("WiFi Signal", "dtu/rssi", "dBm", "", DEVICE_CLS_SIGNAL_STRENGTH, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Uptime", "dtu/uptime", "s", "", DEVICE_CLS_DURATION, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Temperature", "dtu/temperature", "°C", "", DEVICE_CLS_TEMPERATURE, STATE_CLS_MEASUREMENT, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Size", "dtu/heap/size", "Bytes", "mdi:memory", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Heap Free", "dtu/heap/free", "Bytes", "mdi:memory", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Largest Free Heap Block", "dtu/heap/maxalloc", "Bytes", "mdi:memory", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishDtuSensor("Lifetime Minimum Free Heap", "dtu/heap/minfree", "Bytes", "mdi:memory", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", DEVICE_CLS_ENERGY, CATEGORY_NONE); - publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", DEVICE_CLS_ENERGY, CATEGORY_NONE); - publishDtuSensor("AC Power", "ac/power", "W", "", DEVICE_CLS_PWR, CATEGORY_NONE); + publishDtuSensor("Yield Total", "ac/yieldtotal", "kWh", "", DEVICE_CLS_ENERGY, STATE_CLS_TOTAL_INCREASING, CATEGORY_NONE); + publishDtuSensor("Yield Day", "ac/yieldday", "Wh", "", DEVICE_CLS_ENERGY, STATE_CLS_TOTAL_INCREASING, CATEGORY_NONE); + publishDtuSensor("AC Power", "ac/power", "W", "", DEVICE_CLS_PWR, STATE_CLS_MEASUREMENT, CATEGORY_NONE); - publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, DEVICE_CLS_CONNECTIVITY, CATEGORY_DIAGNOSTIC); + publishDtuBinarySensor("Status", config.Mqtt.Lwt.Topic, config.Mqtt.Lwt.Value_Online, config.Mqtt.Lwt.Value_Offline, DEVICE_CLS_CONNECTIVITY, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); // Loop all inverters for (uint8_t i = 0; i < Hoymiles.getNumInverters(); i++) { auto inv = Hoymiles.getInverterByPos(i); - publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", DEVICE_CLS_NONE, CATEGORY_CONFIG); - publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", DEVICE_CLS_NONE, CATEGORY_CONFIG); - publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", DEVICE_CLS_RESTART, CATEGORY_CONFIG); - publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", DEVICE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Turn Inverter Off", "cmd/power", "0", "mdi:power-plug-off", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Turn Inverter On", "cmd/power", "1", "mdi:power-plug", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Restart Inverter", "cmd/restart", "1", "", DEVICE_CLS_RESTART, STATE_CLS_NONE, CATEGORY_CONFIG); + publishInverterButton(inv, "Reset Radio Statistics", "cmd/reset_rf_stats", "1", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit NonPersistent Relative", "status/limit_relative", "cmd/limit_nonpersistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", STATE_CLS_NONE, CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit Persistent Relative", "status/limit_relative", "cmd/limit_persistent_relative", 0, 100, 0.1, "%", "mdi:speedometer", STATE_CLS_NONE, CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); - publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit NonPersistent Absolute", "status/limit_absolute", "cmd/limit_nonpersistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", STATE_CLS_NONE, CATEGORY_CONFIG); + publishInverterNumber(inv, "Limit Persistent Absolute", "status/limit_absolute", "cmd/limit_persistent_absolute", 0, MAX_INVERTER_LIMIT, 1, "W", "mdi:speedometer", STATE_CLS_NONE, CATEGORY_CONFIG); - publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", DEVICE_CLS_CONNECTIVITY, CATEGORY_DIAGNOSTIC); - publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", DEVICE_CLS_NONE, CATEGORY_NONE); + publishInverterBinarySensor(inv, "Reachable", "status/reachable", "1", "0", DEVICE_CLS_CONNECTIVITY, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterBinarySensor(inv, "Producing", "status/producing", "1", "0", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_NONE); - publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); - publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", DEVICE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "TX Requests", "radio/tx_request", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Success", "radio/rx_success", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Nothing", "radio/rx_fail_nothing", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { @@ -142,7 +142,6 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr if (!clear) { const String stateTopic = MqttSettings.getPrefix() + MqttHandleInverter.getTopic(inv, type, channel, fieldType.fieldId); - const char* stateCls = stateClass_name[fieldType.stateClsId]; String name; if (type != TYPE_DC) { @@ -155,7 +154,7 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr JsonDocument root; createInverterInfo(root, inv); - addCommonMetadata(root, unit_of_measure, "", fieldType.deviceClsId, CATEGORY_NONE); + addCommonMetadata(root, unit_of_measure, "", fieldType.deviceClsId, fieldType.stateClsId, CATEGORY_NONE); root["name"] = name; root["stat_t"] = stateTopic; @@ -164,9 +163,6 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr if (Configuration.get().Mqtt.Hass.Expire) { root["exp_aft"] = Hoymiles.getNumInverters() * max(Hoymiles.PollInterval(), Configuration.get().Mqtt.PublishInterval) * inv->getReachableThreshold(); } - if (stateCls != 0) { - root["stat_cla"] = stateCls; - } publish(configTopic, root); } else { @@ -174,7 +170,10 @@ void MqttHandleHassClass::publishInverterField(std::shared_ptr } } -void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, const String& icon, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterButton( + std::shared_ptr inv, const String& name, const String& state_topic, const String& payload, + const String& icon, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { const String serial = inv->serialString(); @@ -190,7 +189,7 @@ void MqttHandleHassClass::publishInverterButton(std::shared_ptr inv, const String& name, const String& stateTopic, const String& command_topic, const int16_t min, const int16_t max, float step, - const String& unit_of_measure, const String& icon, const CategoryType category) + const String& unit_of_measure, const String& icon, + const StateClassType state_class, const CategoryType category) { const String serial = inv->serialString(); @@ -221,7 +221,7 @@ void MqttHandleHassClass::publishInverterNumber( JsonDocument root; createInverterInfo(root, inv); - addCommonMetadata(root, unit_of_measure, icon, DEVICE_CLS_NONE, category); + addCommonMetadata(root, unit_of_measure, icon, DEVICE_CLS_NONE, state_class, category); root["name"] = name; root["uniq_id"] = serial + "_" + buttonId; @@ -307,7 +307,10 @@ void MqttHandleHassClass::publish(const String& subtopic, const JsonDocument& do publish(subtopic, buffer); } -void MqttHandleHassClass::addCommonMetadata(JsonDocument& doc, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::addCommonMetadata( + JsonDocument& doc, + const String& unit_of_measure, const String& icon, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { if (unit_of_measure != "") { doc["unit_of_meas"] = unit_of_measure; @@ -318,12 +321,18 @@ void MqttHandleHassClass::addCommonMetadata(JsonDocument& doc, const String& uni if (device_class != DEVICE_CLS_NONE) { doc["dev_cla"] = deviceClass_name[device_class]; } + if (state_class != STATE_CLS_NONE) { + doc["stat_cla"] = stateClass_name[state_class];; + } if (category != CATEGORY_NONE) { doc["ent_cat"] = category_name[category]; } } -void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishBinarySensor( + JsonDocument& doc, + const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { String sensor_id = name; sensor_id.toLowerCase(); @@ -335,31 +344,39 @@ void MqttHandleHassClass::publishBinarySensor(JsonDocument& doc, const String& r doc["pl_on"] = payload_on; doc["pl_off"] = payload_off; - addCommonMetadata(doc, "", "", device_class, category); + addCommonMetadata(doc, "", "", device_class, state_class, category); const String configTopic = "binary_sensor/" + root_device + "/" + sensor_id + "/config"; publish(configTopic, doc); } -void MqttHandleHassClass::publishDtuBinarySensor(const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishDtuBinarySensor( + const String& name, const String& state_topic, const String& payload_on, const String& payload_off, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { const String dtuId = getDtuUniqueId(); JsonDocument root; createDtuInfo(root); - publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, category); + publishBinarySensor(root, dtuId, dtuId, name, state_topic, payload_on, payload_off, device_class, state_class, category); } -void MqttHandleHassClass::publishInverterBinarySensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterBinarySensor( + std::shared_ptr inv, const String& name, const String& state_topic, const String& payload_on, const String& payload_off, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { const String serial = inv->serialString(); JsonDocument root; createInverterInfo(root, inv); - publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, device_class, category); + publishBinarySensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, payload_on, payload_off, device_class, state_class, category); } -void MqttHandleHassClass::publishSensor(JsonDocument& doc, const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishSensor( + JsonDocument& doc, + const String& root_device, const String& unique_id_prefix, const String& name, const String& state_topic, + const String& unit_of_measure, const String& icon, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { String sensor_id = name; sensor_id.toLowerCase(); @@ -369,7 +386,7 @@ void MqttHandleHassClass::publishSensor(JsonDocument& doc, const String& root_de doc["uniq_id"] = unique_id_prefix + "_" + sensor_id; doc["stat_t"] = MqttSettings.getPrefix() + state_topic; - addCommonMetadata(doc, unit_of_measure, icon, device_class, category); + addCommonMetadata(doc, unit_of_measure, icon, device_class, state_class, category); const CONFIG_T& config = Configuration.get(); doc["avty_t"] = MqttSettings.getPrefix() + config.Mqtt.Lwt.Topic; @@ -380,20 +397,26 @@ void MqttHandleHassClass::publishSensor(JsonDocument& doc, const String& root_de publish(configTopic, doc); } -void MqttHandleHassClass::publishDtuSensor(const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishDtuSensor( + const String& name, const String& state_topic, + const String& unit_of_measure, const String& icon, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { const String dtuId = getDtuUniqueId(); JsonDocument root; createDtuInfo(root); - publishSensor(root, dtuId, dtuId, name, state_topic, unit_of_measure, icon, device_class, category); + publishSensor(root, dtuId, dtuId, name, state_topic, unit_of_measure, icon, device_class, state_class, category); } -void MqttHandleHassClass::publishInverterSensor(std::shared_ptr inv, const String& name, const String& state_topic, const String& unit_of_measure, const String& icon, const DeviceClassType device_class, const CategoryType category) +void MqttHandleHassClass::publishInverterSensor( + std::shared_ptr inv, const String& name, const String& state_topic, + const String& unit_of_measure, const String& icon, + const DeviceClassType device_class, const StateClassType state_class, const CategoryType category) { const String serial = inv->serialString(); JsonDocument root; createInverterInfo(root, inv); - publishSensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, unit_of_measure, icon, device_class, category); + publishSensor(root, "dtu_" + serial, serial, name, serial + "/" + state_topic, unit_of_measure, icon, device_class, state_class, category); } From edfe06e31eae286fbb88da69e9b65420cfa8628a Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Fri, 4 Oct 2024 17:36:17 +0200 Subject: [PATCH 115/127] Feature: Show RSSI of last received packet in radio stats The value is also published via MQTT --- lib/Hoymiles/src/HoymilesRadio_CMT.cpp | 2 +- lib/Hoymiles/src/HoymilesRadio_NRF.cpp | 2 +- lib/Hoymiles/src/inverters/InverterAbstract.cpp | 9 ++++++++- lib/Hoymiles/src/inverters/InverterAbstract.h | 6 +++++- src/MqttHandleHass.cpp | 1 + src/MqttHandleInverter.cpp | 1 + src/WebApi_ws_live.cpp | 1 + webapp/src/locales/de.json | 5 ++++- webapp/src/locales/en.json | 5 ++++- webapp/src/locales/fr.json | 5 ++++- webapp/src/types/LiveDataStatus.ts | 1 + webapp/src/views/HomeView.vue | 12 ++++++++++++ 12 files changed, 43 insertions(+), 7 deletions(-) diff --git a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp index bbd31f21..f6d19588 100644 --- a/lib/Hoymiles/src/HoymilesRadio_CMT.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_CMT.cpp @@ -169,7 +169,7 @@ void HoymilesRadio_CMT::loop() dumpBuf(f.fragment, f.len, false); Hoymiles.getMessageOutput()->printf("| %d dBm\r\n", f.rssi); - inv->addRxFragment(f.fragment, f.len); + inv->addRxFragment(f.fragment, f.len, f.rssi); } else { Hoymiles.getMessageOutput()->println("Inverter Not found!"); } diff --git a/lib/Hoymiles/src/HoymilesRadio_NRF.cpp b/lib/Hoymiles/src/HoymilesRadio_NRF.cpp index 4bf104ad..bd496afe 100644 --- a/lib/Hoymiles/src/HoymilesRadio_NRF.cpp +++ b/lib/Hoymiles/src/HoymilesRadio_NRF.cpp @@ -80,7 +80,7 @@ void HoymilesRadio_NRF::loop() dumpBuf(f.fragment, f.len, false); Hoymiles.getMessageOutput()->printf("| %d dBm\r\n", f.rssi); - inv->addRxFragment(f.fragment, f.len); + inv->addRxFragment(f.fragment, f.len, f.rssi); } else { Hoymiles.getMessageOutput()->println("Inverter Not found!"); } diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.cpp b/lib/Hoymiles/src/inverters/InverterAbstract.cpp index 3e51bbd7..7fe522f3 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.cpp +++ b/lib/Hoymiles/src/inverters/InverterAbstract.cpp @@ -137,6 +137,11 @@ bool InverterAbstract::getClearEventlogOnMidnight() const return _clearEventlogOnMidnight; } +int8_t InverterAbstract::getLastRssi() const +{ + return _lastRssi; +} + bool InverterAbstract::sendChangeChannelRequest() { return false; @@ -185,8 +190,10 @@ void InverterAbstract::clearRxFragmentBuffer() _rxFragmentRetransmitCnt = 0; } -void InverterAbstract::addRxFragment(const uint8_t fragment[], const uint8_t len) +void InverterAbstract::addRxFragment(const uint8_t fragment[], const uint8_t len, const int8_t rssi) { + _lastRssi = rssi; + if (len < 11) { Hoymiles.getMessageOutput()->printf("FATAL: (%s, %d) fragment too short\r\n", __FILE__, __LINE__); return; diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.h b/lib/Hoymiles/src/inverters/InverterAbstract.h index f139fab3..2f49f912 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.h +++ b/lib/Hoymiles/src/inverters/InverterAbstract.h @@ -61,8 +61,10 @@ public: void setClearEventlogOnMidnight(const bool enabled); bool getClearEventlogOnMidnight() const; + int8_t getLastRssi() const; + void clearRxFragmentBuffer(); - void addRxFragment(const uint8_t fragment[], const uint8_t len); + void addRxFragment(const uint8_t fragment[], const uint8_t len, const int8_t rssi); uint8_t verifyAllFragments(CommandAbstract& cmd); void performDailyTask(); @@ -131,6 +133,8 @@ private: bool _zeroYieldDayOnMidnight = false; bool _clearEventlogOnMidnight = false; + int8_t _lastRssi = 0; + std::unique_ptr _alarmLogParser; std::unique_ptr _devInfoParser; std::unique_ptr _gridProfileParser; diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 7afa87da..6491c9ba 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -97,6 +97,7 @@ void MqttHandleHassClass::publishConfig() publishInverterSensor(inv, "RX Fail Receive Partial", "radio/rx_fail_partial", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); publishInverterSensor(inv, "RX Fail Receive Corrupt", "radio/rx_fail_corrupt", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); publishInverterSensor(inv, "TX Re-Request Fragment", "radio/tx_re_request", "", "", DEVICE_CLS_NONE, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); + publishInverterSensor(inv, "RSSI", "radio/rssi", "dBm", "", DEVICE_CLS_SIGNAL_STRENGTH, STATE_CLS_NONE, CATEGORY_DIAGNOSTIC); // Loop all channels for (auto& t : inv->Statistics()->getChannelTypes()) { diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index 8e720663..6185f193 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -50,6 +50,7 @@ void MqttHandleInverterClass::loop() MqttSettings.publish(subtopic + "/radio/rx_fail_nothing", String(inv->RadioStats.RxFailNoAnswer)); MqttSettings.publish(subtopic + "/radio/rx_fail_partial", String(inv->RadioStats.RxFailPartialAnswer)); MqttSettings.publish(subtopic + "/radio/rx_fail_corrupt", String(inv->RadioStats.RxFailCorruptData)); + MqttSettings.publish(subtopic + "/radio/rssi", String(inv->getLastRssi())); if (inv->DevInfo()->getLastUpdate() > 0) { // Bootloader Version diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 29c204a3..a50a792a 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -153,6 +153,7 @@ void WebApiWsLiveClass::generateInverterCommonJsonResponse(JsonObject& root, std root["radio_stats"]["rx_fail_nothing"] = inv->RadioStats.RxFailNoAnswer; root["radio_stats"]["rx_fail_partial"] = inv->RadioStats.RxFailPartialAnswer; root["radio_stats"]["rx_fail_corrupt"] = inv->RadioStats.RxFailCorruptData; + root["radio_stats"]["rssi"] = inv->getLastRssi(); } void WebApiWsLiveClass::generateInverterChannelJsonResponse(JsonObject& root, std::shared_ptr inv) diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index 995f6ec7..0bc17768 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -150,7 +150,10 @@ "RxFailCorrupt": "Empfang Fehler: Beschädigt empfangen", "TxReRequest": "Gesendete Fragment Wiederanforderungen", "StatsReset": "Statistiken zurücksetzen", - "StatsResetting": "Zurücksetzen..." + "StatsResetting": "Zurücksetzen...", + "Rssi": "RSSI des zuletzt empfangenen Paketes", + "RssiHint": "HM-Wechselrichter unterstützen nur RSSI-Werte < -64 dBm und > -64 dBm. In diesem Fall wird -80 dBm und -30 dBm angezeigt.", + "dBm": "{dbm} dBm" }, "eventlog": { "Start": "Beginn", diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index cf3c74f0..f760178f 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -150,7 +150,10 @@ "RxFailCorrupt": "RX Fail: Receive Corrupt", "TxReRequest": "TX Re-Request Fragment", "StatsReset": "Reset Statistics", - "StatsResetting": "Resetting..." + "StatsResetting": "Resetting...", + "Rssi": "RSSI of last received packet", + "RssiHint": "HM inverters only support RSSI values < -64 dBm and > -64 dBm. In this case, -80 dbm and -30 dbm is shown.", + "dBm": "{dbm} dBm" }, "eventlog": { "Start": "Start", diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index fcb22a19..023fc099 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -150,7 +150,10 @@ "RxFailCorrupt": "RX Fail: Receive Corrupt", "TxReRequest": "TX Re-Request Fragment", "StatsReset": "Reset Statistics", - "StatsResetting": "Resetting..." + "StatsResetting": "Resetting...", + "Rssi": "RSSI of last received packet", + "RssiHint": "HM inverters only support RSSI values < -64 dBm and > -64 dBm. In this case, -80 dbm and -30 dbm is shown.", + "dBm": "{dbm} dBm" }, "eventlog": { "Start": "Départ", diff --git a/webapp/src/types/LiveDataStatus.ts b/webapp/src/types/LiveDataStatus.ts index db95897c..4f681070 100644 --- a/webapp/src/types/LiveDataStatus.ts +++ b/webapp/src/types/LiveDataStatus.ts @@ -28,6 +28,7 @@ export interface RadioStatistics { rx_fail_nothing: number; rx_fail_partial: number; rx_fail_corrupt: number; + rssi: number; } export interface Inverter { diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 0aef275a..ef8fa8ef 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -291,6 +291,16 @@ {{ $n(inverter.radio_stats.tx_re_request) }} + + + {{ $t('home.Rssi') }} + + + + {{ $t('home.dBm', { dbm: $n(inverter.radio_stats.rssi) }) }} + + +

&K&Dl`zRRLCiwZf#Q8LL8uuH|O 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 AN&o-= delta 133888 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