From 58a1a547ab66f32bdb3eb9684e92994c5dc39843 Mon Sep 17 00:00:00 2001 From: homelab-runtime-publisher Date: Fri, 18 Sep 2026 04:24:45 +0000 Subject: [PATCH] runtime: publish SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1 --- ...PPORT-PERMISSION-REGISTRY-RCA-515R2R1.json | 38 ++++ ...UPPORT-PERMISSION-REGISTRY-RCA-515R2R1.txt | 38 ++++ runtime/latest.json | 39 +++- runtime/latest.txt | 188 +++--------------- 4 files changed, 146 insertions(+), 157 deletions(-) create mode 100644 runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.json create mode 100644 runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.txt diff --git a/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.json b/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.json new file mode 100644 index 00000000..433aef57 --- /dev/null +++ b/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "read-only", + "component": "gram-support-permission-registry-rca", + "started_at_utc": "2026-09-18T04:24:44Z", + "finished_at_utc": "2026-09-18T04:24:44Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "325172ba0d369dcfaf99973ef6c61e5f8558b496d7f47e4e766fa44ed64f23ce", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 1, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5", + "sanitized_output_sha256": "5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64;exec(compile(base64.b64decode(\"aW1wb3J0IG9zLHN5cyxqc29uLHN1YnByb2Nlc3MsaGFzaGxpYixiYXNlNjQKQ0lEPSdTVVBQT1JULTI2MDkxOC1HUkFNLVNVUFBPUlQtUEVSTUlTU0lPTi1SRUdJU1RSWS1SQ0EtNTE1UjJSMScKU0lURVM9W3sic2x1ZyI6ImNvZGV2aXBlIiwidm1pZCI6MTYwLCJob3N0IjoicHZlMDIiLCJwdWJsaWMiOiIvdmFyL3d3dy9mb3J1bXMvY29kZXZpcGUvcHVibGljIiwic2Nhbl9jb3JlIjp0cnVlfSx7InNsdWciOiJkc21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9kc21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiZ2FtZXZpcGUiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9nYW1ldmlwZS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJoa21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9oa21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoia2luZ29md29sayIsInZtaWQiOjE2MCwiaG9zdCI6InB2ZTAyIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL2tpbmdvZndvbGsvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiemFrcnV0aW0iLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy96YWtydXRpbS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJuZXdmaSIsInZtaWQiOjIxMCwiaG9zdCI6InB2ZTAxIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL25ld2ZpL3B1YmxpYyIsInNjYW5fY29yZSI6dHJ1ZX1dCkdVRVNUPWJhc2U2NC5iNjRkZWNvZGUoJ0NtbHRjRzl5ZENCdmN5eHplWE1zYW5OdmJpeHpkV0p3Y205alpYTnpMSFJsYlhCbWFXeGxMR2hoYzJoc2FXSXNjbVVLWm5KdmJTQndZWFJvYkdsaUlHbHRjRzl5ZENCUVlYUm9DZ3B5WlhFOWFuTnZiaTVzYjJGa2N5aHplWE11YzNSa2FXNHVjbVZoWkNncEtRcHphWFJsY3oxeVpYRmJJbk5wZEdWeklsMEtjR2h3WDJOdlpHVTlKencvY0dod1hHNGtjbTl2ZEQwa1lYSm5kbHN4WFQ4L1hDZGNKenRjYmlSemJIVm5QU1JoY21kMld6SmRQejljSjF3bk8xeHVKRzkxZEQxYlhDZHpiSFZuWENjOVBpUnpiSFZuTEZ3bmIydGNKejArWm1Gc2MyVXNYQ2RsY25KdmNsd25QVDV1ZFd4c1hUdGNibHh1Wm5WdVkzUnBiMjRnWm1GcGJGOXZkWFFvSmlSdmRYUXNKRzBzSkhKalBUTXBYRzU3WEc0Z0lDQWdKRzkxZEZ0Y0oyVnljbTl5WENkZFBTUnRPMXh1SUNBZ0lHVmphRzhnYW5OdmJsOWxibU52WkdVb0pHOTFkQ3hLVTA5T1gxVk9SVk5EUVZCRlJGOVRURUZUU0VWVGZFcFRUMDVmVlU1RlUwTkJVRVZFWDFWT1NVTlBSRVVwTzF4dUlDQWdJR1Y0YVhRb0pISmpLVHRjYm4xY2JtWjFibU4wYVc5dUlITmhabVZmZFc1elpYSW9KSFlwWEc1N1hHNGdJQ0FnSkhnOVFIVnVjMlZ5YVdGc2FYcGxLQ1IyS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5mWVhKeVlYa29KSGdwUHlSNE9tNTFiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZU2xjYm50Y2JpQWdJQ0JwWmlnaGFYTmZZWEp5WVhrb0pHRXBLU0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdKR3M5WVhKeVlYbGZiV0Z3S0Z3bmMzUnlkbUZzWENjc1lYSnlZWGxmYTJWNWN5Z2tZU2twTzF4dUlDQWdJSE52Y25Rb0pHc3NVMDlTVkY5VFZGSkpUa2NwTzF4dUlDQWdJSEpsZEhWeWJpQWthenRjYm4xY2JseHVhV1lvSkhKdmIzUTlQVDFjSjF3bmZId2hhWE5mWm1sc1pTZ2tjbTl2ZEM1Y0p5OXpjbU12V0VZdWNHaHdYQ2NwS1NCbVlXbHNYMjkxZENna2IzVjBMRnduVWs5UFZGOUpUbFpCVEVsRVhDY3BPMXh1WEc1MGNubGNibnRjYmlBZ0lDQnlaWEYxYVhKbElDUnliMjkwTGx3bkwzTnlZeTlZUmk1d2FIQmNKenRjYmlBZ0lDQmNYRmhHT2pwemRHRnlkQ2drY205dmRDazdYRzRnSUNBZ0pHRndjRDFjWEZoR09qcHpaWFIxY0VGd2NDaGNKMWhHWEZ4RGJHbGNYRUZ3Y0Z3bktUdGNiaUFnSUNBa1pHSTlYRnhZUmpvNlpHSW9LVHRjYmx4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymx3blhUMGtaR0l0UG1abGRHTm9VbTkzS0NKVFJVeEZRMVFnWVdOMGFYWmxMSFpsY25OcGIyNWZhV1FnUmxKUFRTQjRabDloWkdSdmJpQlhTRVZTUlNCaFpHUnZibDlwWkQxY0owZHlZVzB2VTNWd2NHOXlkRnduSWlrN1hHNWNiaUFnSUNBa2IzVjBXMXduY0dWeWJXbHpjMmx2Ymw5eWIzZHpYQ2RkUFNSa1lpMCtabVYwWTJoQmJHd29JbHh1SUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZhV1FzY0dWeWJXbHpjMmx2Ymw5bmNtOTFjRjlwWkN4d1pYSnRhWE56YVc5dVgzUjVjR1VzYVc1MFpYSm1ZV05sWDJkeWIzVndYMmxrTEdSbGNHVnVaRjl3WlhKdGFYTnphVzl1WDJsa0xHUnBjM0JzWVhsZmIzSmtaWElzWVdSa2IyNWZhV1JjYmlBZ0lDQWdJRVpTVDAwZ2VHWmZjR1Z5YldsemMybHZibHh1SUNBZ0lDQWdWMGhGVWtVZ2NHVnliV2x6YzJsdmJsOW5jbTkxY0Y5cFpEMWNKMmR5WVcxVGRYQndiM0owWENkY2JpQWdJQ0FnSUU5U1JFVlNJRUpaSUhCbGNtMXBjM05wYjI1ZmFXUmNiaUFnSUNBaUtUdGNibHh1SUNBZ0lDUnZkWFJiWENkd1pYSnRhWE56YVc5dVgyVnVkSEo1WDJOdmRXNTBjMXduWFQwa1pHSXRQbVpsZEdOb1FXeHNLQ0pjYmlBZ0lDQWdJRk5GVEVWRFZDQjFjMlZ5WDJkeWIzVndYMmxrTEhWelpYSmZhV1FzUTA5VlRsUW9LaWtnUVZNZ2NtOTNYMk52ZFc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUZOVlRTaHdaWEp0YVhOemFXOXVYM1poYkhWbFBWd25ZV3hzYjNkY0p5a2dRVk1nWVd4c2IzZGZZMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnVTFWTktIQmxjbTFwYzNOcGIyNWZkbUZzZFdVOVhDZHVaWFpsY2x3bktTQkJVeUJ1WlhabGNsOWpiM1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0JUVlUwb2NHVnliV2x6YzJsdmJsOTJZV3gxWlQxY0oyUmxibmxjSnlrZ1FWTWdaR1Z1ZVY5amIzVnVkRnh1SUNBZ0lDQWdSbEpQVFNCNFpsOXdaWEp0YVhOemFXOXVYMlZ1ZEhKNVhHNGdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJkeWIzVndYMmxrUFZ3blozSmhiVk4xY0hCdmNuUmNKMXh1SUNBZ0lDQWdSMUpQVlZBZ1Fsa2dkWE5sY2w5bmNtOTFjRjlwWkN4MWMyVnlYMmxrWEc0Z0lDQWdJQ0JQVWtSRlVpQkNXU0IxYzJWeVgybGtMSFZ6WlhKZlozSnZkWEJmYVdSY2JpQWdJQ0FpS1R0Y2JseHVJQ0FnSUNSMFlXSnNaWE05SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1ZFRkNURVZmVGtGTlJWeHVJQ0FnSUNBZ1JsSlBUU0JwYm1admNtMWhkR2x2Ymw5elkyaGxiV0V1VkVGQ1RFVlRYRzRnSUNBZ0lDQlhTRVZTUlNCVVFVSk1SVjlUUTBoRlRVRTlSRUZVUVVKQlUwVW9LU0JCVGtRZ1ZFRkNURVZmVGtGTlJTQk1TVXRGSUZ3bmVHWmZjR1Z5YldsemMybHZiaVZjSjF4dUlDQWdJQ0FnVDFKRVJWSWdRbGtnVkVGQ1RFVmZUa0ZOUlZ4dUlDQWdJQ0lwTzF4dUlDQWdJQ1J2ZFhSYlhDZHdaWEp0YVhOemFXOXVYM1JoWW14bGMxd25YVDFoY25KaGVWOXRZWEFvWm00b0pISXBQVDRvYzNSeWFXNW5LU1J5VzF3blZFRkNURVZmVGtGTlJWd25YU3drZEdGaWJHVnpLVHRjYmx4dUlDQWdJR2xtS0dsdVgyRnljbUY1S0Z3bmVHWmZjR1Z5YldsemMybHZibDlwYm5SbGNtWmhZMlZmWjNKdmRYQmNKeXdrYjNWMFcxd25jR1Z5YldsemMybHZibDkwWVdKc1pYTmNKMTBzZEhKMVpTa3BYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWtiM1YwVzF3bmFXNTBaWEptWVdObFgyZHliM1Z3WDNKdmQzTmNKMTA5SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQWdJQ0FnVTBWTVJVTlVJQ29nUmxKUFRTQjRabDl3WlhKdGFYTnphVzl1WDJsdWRHVnlabUZqWlY5bmNtOTFjRnh1SUNBZ0lDQWdJQ0FnSUZkSVJWSkZJR2x1ZEdWeVptRmpaVjluY205MWNGOXBaRDFjSjJkeVlXMVRkWEJ3YjNKMFhDZGNiaUFnSUNBZ0lDQWdJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnSkc5MWRGdGNKMmx1ZEdWeVptRmpaVjluY205MWNGOXliM2R6WENkZFBWdGRPMXh1WEc0Z0lDQWdKSE4wWVdabVBTUmtZaTArWm1WMFkyaEJiR3dvSWx4dUlDQWdJQ0FnVTBWTVJVTlVJSFZ6WlhKZmFXUXNkWE5sY2w5bmNtOTFjRjlwWkN4elpXTnZibVJoY25sZlozSnZkWEJmYVdSekxHbHpYMkZrYldsdUxHbHpYMjF2WkdWeVlYUnZjaXh3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtYRzRnSUNBZ0lDQkdVazlOSUhobVgzVnpaWEpjYmlBZ0lDQWdJRmRJUlZKRklHbHpYMkZrYldsdVBURWdUMUlnYVhOZmJXOWtaWEpoZEc5eVBURmNiaUFnSUNBZ0lFOVNSRVZTSUVKWklIVnpaWEpmYVdSY2JpQWdJQ0FpS1R0Y2JpQWdJQ0FrYjNWMFcxd25jM1JoWm1aY0oxMDlXMTA3WEc0Z0lDQWdabTl5WldGamFDZ2tjM1JoWm1ZZ1lYTWdKSFVwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrWTI5dFltODlKR1JpTFQ1bVpYUmphRkp2ZHlnaVhHNGdJQ0FnSUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVmYVdRc2RYTmxjbDlwWkN4MWMyVnlYMmR5YjNWd1gyeHBjM1FzWTJGamFHVmZkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQkdVazlOSUhobVgzQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtQVDljYmlBZ0lDQWdJQ0FnSWl3a2RWdGNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmNKMTBwTzF4dUlDQWdJQ0FnSUNBa1kyRmphR1U5SkdOdmJXSnZQM05oWm1WZmRXNXpaWElvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2RqWVdOb1pWOTJZV3gxWlZ3blhTazZiblZzYkR0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNOMFlXWm1YQ2RkVzEwOVcxeHVJQ0FnSUNBZ0lDQWdJRnduZFhObGNsOXBaRjl6YUdFeU5UWmNKejArYUdGemFDaGNKM05vWVRJMU5sd25MQ2h6ZEhKcGJtY3BKSFZiWENkMWMyVnlYMmxrWENkZEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjNCeWFXMWhjbmxmWjNKdmRYQmZhV1JjSnowK0tHbHVkQ2trZFZ0Y0ozVnpaWEpmWjNKdmRYQmZhV1JjSjEwc1hHNGdJQ0FnSUNBZ0lDQWdYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENjOVBpaHpkSEpwYm1jcEpIVmJYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENkZExGeHVJQ0FnSUNBZ0lDQWdJRnduYVhOZllXUnRhVzVjSnowK0tHSnZiMndwSkhWYlhDZHBjMTloWkcxcGJsd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oybHpYMjF2WkdWeVlYUnZjbHduUFQ0b1ltOXZiQ2trZFZ0Y0oybHpYMjF2WkdWeVlYUnZjbHduWFN4Y2JpQWdJQ0FnSUNBZ0lDQmNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmZjMmhoTWpVMlhDYzlQbWhoYzJnb1hDZHphR0V5TlRaY0p5d29jM1J5YVc1bktTUjFXMXduY0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJsOXBaRnduWFNrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqYjIxaWIxOTFjMlZ5WDJsa1gzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduZFhObGNsOXBaRnduWFNrNmJuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCY0oyTnZiV0p2WDNWelpYSmZaM0p2ZFhCZmJHbHpkRnduUFQ0a1kyOXRZbTgvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2QxYzJWeVgyZHliM1Z3WDJ4cGMzUmNKMTA2Ym5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOaFkyaGxYMko1ZEdWelhDYzlQaVJqYjIxaWJ6OXpkSEpzWlc0b0tITjBjbWx1Wnlra1kyOXRZbTliWENkallXTm9aVjkyWVd4MVpWd25YU2s2TUN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk5oWTJobFgzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduWTJGamFHVmZkbUZzZFdWY0oxMHBPbTUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqWVdOb1pWOTBiM0JmYkdWMlpXeGZhMlY1YzF3blBUNWhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZMkZqYUdVcExGeHVJQ0FnSUNBZ0lDQWdJRnduWTJGamFHVmZhR0Z6WDJkeVlXMVRkWEJ3YjNKMFhDYzlQbWx6WDJGeWNtRjVLQ1JqWVdOb1pTa21KbWx6YzJWMEtDUmpZV05vWlZ0Y0oyZHlZVzFUZFhCd2IzSjBYQ2RkS1NZbWFYTmZZWEp5WVhrb0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTBwTEZ4dUlDQWdJQ0FnSUNBZ0lGd25aM0poYlZOMWNIQnZjblJmWTJGamFHVmNKejArYVhOZllYSnlZWGtvSkdOaFkyaGxLU1ltYVhOelpYUW9KR05oWTJobFcxd25aM0poYlZOMWNIQnZjblJjSjEwcEppWnBjMTloY25KaGVTZ2tZMkZqYUdWYlhDZG5jbUZ0VTNWd2NHOXlkRnduWFNrL0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTA2Ym5Wc2JGeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnlaV2RwYzNSeWVWSnZkM005SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1pHRjBZVjlyWlhrc1pHRjBZVjkyWVd4MVpWeHVJQ0FnSUNBZ1JsSlBUU0I0Wmw5a1lYUmhYM0psWjJsemRISjVYRzRnSUNBZ0lDQlhTRVZTUlNCa1lYUmhYMnRsZVNCTVNVdEZJRnduSlhCbGNtMXBjM05wYjI0bFhDZGNiaUFnSUNBZ0lDQWdJRTlTSUdSaGRHRmZhMlY1SUV4SlMwVWdYQ2NsVUdWeWJXbHpjMmx2YmlWY0oxeHVJQ0FnSUNBZ0lDQWdUMUlnWkdGMFlWOXJaWGtnU1U0Z0tGd25ZV04wYVhabFFXUmtUMjV6WENjc1hDZGhaR1JQYm5OY0p5bGNiaUFnSUNBZ0lFOVNSRVZTSUVKWklHUmhkR0ZmYTJWNVhHNGdJQ0FnSWlrN1hHNGdJQ0FnSkc5MWRGdGNKM0psWjJsemRISjVYQ2RkUFZ0ZE8xeHVJQ0FnSUdadmNtVmhZMmdvSkhKbFoybHpkSEo1VW05M2N5QmhjeUFrY2lsY2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNSMllXdzlLSE4wY21sdVp5a2tjbHRjSjJSaGRHRmZkbUZzZFdWY0oxMDdYRzRnSUNBZ0lDQWdJQ1JoY25JOWMyRm1aVjkxYm5ObGNpZ2tkbUZzS1R0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNKbFoybHpkSEo1WENkZFcxMDlXMXh1SUNBZ0lDQWdJQ0FnSUZ3bmEyVjVYQ2M5UGloemRISnBibWNwSkhKYlhDZGtZWFJoWDJ0bGVWd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oySjVkR1Z6WENjOVBuTjBjbXhsYmlna2RtRnNLU3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNW9ZWE5vS0Z3bmMyaGhNalUyWENjc0pIWmhiQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1hDZGpiMjUwWVdsdWMxOW5jbUZ0VTNWd2NHOXlkRnduUFQ0b2MzUnljRzl6S0NSMllXd3NYQ2RuY21GdFUzVndjRzl5ZEZ3bktTRTlQV1poYkhObEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOdmJuUmhhVzV6WDBkeVlXMVRkWEJ3YjNKMFhDYzlQaWh6ZEhKd2IzTW9KSFpoYkN4Y0owZHlZVzB2VTNWd2NHOXlkRnduS1NFOVBXWmhiSE5sS1N4Y2JpQWdJQ0FnSUNBZ0lDQmNKM1J2Y0Y5c1pYWmxiRjlyWlhselhDYzlQbUZ5Y21GNVgzTnNhV05sS0dGeWNtRjVYMnRsZVhOZmMyOXlkR1ZrS0NSaGNuSXBMREFzTVRBd0tWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUmhaR1J2YmtScGNqMGtjbTl2ZEM1Y0p5OXpjbU12WVdSa2IyNXpMMGR5WVcwdlUzVndjRzl5ZEM5ZlpHRjBZVnduTzF4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymw5d1pYSnRhWE56YVc5dVgyUmhkR0ZmWm1sc1pYTmNKMTA5VzEwN1hHNGdJQ0FnWm05eVpXRmphQ2hiWENkd1pYSnRhWE56YVc5dWN5NTRiV3hjSnl4Y0ozQmxjbTFwYzNOcGIyNWZhVzUwWlhKbVlXTmxYMmR5YjNWd2N5NTRiV3hjSjEwZ1lYTWdKR1lwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrY0Qwa1lXUmtiMjVFYVhJdVhDY3ZYQ2N1SkdZN1hHNGdJQ0FnSUNBZ0lDUnZkWFJiWENkaFpHUnZibDl3WlhKdGFYTnphVzl1WDJSaGRHRmZabWxzWlhOY0oxMWJKR1pkUFZ0Y2JpQWdJQ0FnSUNBZ0lDQmNKM0J5WlhObGJuUmNKejArYVhOZlptbHNaU2drY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RpZVhSbGMxd25QVDVwYzE5bWFXeGxLQ1J3S1Q5bWFXeGxjMmw2WlNna2NDazZNQ3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNXBjMTltYVd4bEtDUndLVDlvWVhOb1gyWnBiR1VvWENkemFHRXlOVFpjSnl3a2NDazZiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk52Ym5SaGFXNXpYMmR5WVcxVGRYQndiM0owWENjOVBtbHpYMlpwYkdVb0pIQXBQeWh6ZEhKd2IzTW9LSE4wY21sdVp5bG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5Z2tjQ2tzWENkbmNtRnRVM1Z3Y0c5eWRGd25LU0U5UFdaaGJITmxLVHBtWVd4elpWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnZkWFJiWENkdmExd25YVDEwY25WbE8xeHVJQ0FnSUdWamFHOGdhbk52Ymw5bGJtTnZaR1VvSkc5MWRDeEtVMDlPWDFWT1JWTkRRVkJGUkY5VFRFRlRTRVZUZkVwVFQwNWZWVTVGVTBOQlVFVkVYMVZPU1VOUFJFVXBPMXh1SUNBZ0lHVjRhWFFvTUNrN1hHNTlYRzVqWVhSamFDaFVhSEp2ZDJGaWJHVWdKR1VwWEc1N1hHNGdJQ0FnWm1GcGJGOXZkWFFvSkc5MWRDeGNKMFZZUTBWUVZFbFBUbDljSnk1d2NtVm5YM0psY0d4aFkyVW9YQ2N2VzE1QkxWcGhMWG93TFRsZlhTOWNKeXhjSjE5Y0p5eG5aWFJmWTJ4aGMzTW9KR1VwS1NrN1hHNTlYRzRuQ2dwa1pXWWdjMmhoS0dJcE9pQnlaWFIxY200Z2FHRnphR3hwWWk1emFHRXlOVFlvWWlrdWFHVjRaR2xuWlhOMEtDa0tDbVJsWmlCeWRXNG9ZWEpuZGl4MGFXMWxiM1YwUFRFeU1DazZDaUFnSUNCMGNuazZDaUFnSUNBZ0lDQWdjRDF6ZFdKd2NtOWpaWE56TG5KMWJpaGhjbWQyTEhOMFpHOTFkRDF6ZFdKd2NtOWpaWE56TGxCSlVFVXNjM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVVRWxRUlN4MGFXMWxiM1YwUFhScGJXVnZkWFFzWTJobFkyczlSbUZzYzJVcENpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBdWNtVjBkWEp1WTI5a1pTeHdMbk4wWkc5MWRDeHdMbk4wWkdWeWNnb2dJQ0FnWlhoalpYQjBJSE4xWW5CeWIyTmxjM011VkdsdFpXOTFkRVY0Y0dseVpXUTZDaUFnSUNBZ0lDQWdjbVYwZFhKdUlERXlOQ3hpSWlJc1lpSlVTVTFGVDFWVUlnb0taR1ZtSUhOdmRYSmpaVjl6WTJGdUtISnZiM1FwT2dvZ0lDQWdkR0Z5WjJWMGN6MWJDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMHB2WWk5UVpYSnRhWE56YVc5dVVtVmlkV2xzWkM1d2FIQWlMQW9nSUNBZ0lDQWdJRkJoZEdnb2NtOXZkQ2t2SW5OeVl5OVlSaTlRWlhKdGFYTnphVzl1SWl3S0lDQWdJQ0FnSUNCUVlYUm9LSEp2YjNRcEx5SnpjbU12V0VZdlVtVndiM05wZEc5eWVTSXNDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMFZ1ZEdsMGVTSXNDaUFnSUNCZENpQWdJQ0J3WVhSelBYSmxMbU52YlhCcGJHVW9jaUlvVUdWeWJXbHpjMmx2YmxKbFluVnBiR1I4Y0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJueHdaWEp0YVhOemFXOXVRMkZqYUdWOGNHVnliV2x6YzJsdmJpQmpZV05vWlh4aWRXbHNaRkJsY20xcGMzTnBiMjU4Y21WaWRXbHNaRkJsY20xcGMzTnBiMjU4WjJ4dlltRnNVR1Z5YldsemMybHZibnh3WlhKdGFYTnphVzl1WDJWdWRISjVmSEJsY20xcGMzTnBiMjVmYVc1MFpYSm1ZV05sWDJkeWIzVndmR1JoZEdGU1pXZHBjM1J5ZVh4eVpXZHBjM1J5ZVNraUxISmxMa2twQ2lBZ0lDQnliM2R6UFZ0ZENpQWdJQ0JtYVd4bGN6MWJYUW9nSUNBZ1ptOXlJSFFnYVc0Z2RHRnlaMlYwY3pvS0lDQWdJQ0FnSUNCcFppQjBMbWx6WDJacGJHVW9LVG9LSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNaWE11WVhCd1pXNWtLSFFwQ2lBZ0lDQWdJQ0FnWld4cFppQjBMbWx6WDJScGNpZ3BPZ29nSUNBZ0lDQWdJQ0FnSUNCbWIzSWdjQ0JwYmlCemIzSjBaV1FvZEM1eVoyeHZZaWdpS2k1d2FIQWlLU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjNjOWMzUnlLSEFwTG14dmQyVnlLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNKd1pYSnRhWE56YVc5dUlpQnBiaUJzYjNjZ2IzSWdJblZ6WlhJdWNHaHdJaUJwYmlCc2IzYzZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc1pYTXVZWEJ3Wlc1a0tIQXBDaUFnSUNCelpXVnVQWE5sZENncENpQWdJQ0JtYjNJZ2NDQnBiaUJtYVd4bGN6b0tJQ0FnSUNBZ0lDQnpjRDF6ZEhJb2NDa0tJQ0FnSUNBZ0lDQnBaaUJ6Y0NCcGJpQnpaV1Z1T2lCamIyNTBhVzUxWlFvZ0lDQWdJQ0FnSUhObFpXNHVZV1JrS0hOd0tRb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE05Y0M1eVpXRmtYM1JsZUhRb0luVjBaaTA0SWl4bGNuSnZjbk05SW5KbGNHeGhZMlVpS1M1emNHeHBkR3hwYm1WektDa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1JYaGpaWEIwYVc5dU9nb2dJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaUW9nSUNBZ0lDQWdJR1p2Y2lCcExHeHBibVVnYVc0Z1pXNTFiV1Z5WVhSbEtHeHBibVZ6TERFcE9nb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCd1lYUnpMbk5sWVhKamFDaHNhVzVsS1RvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNGREMGlJQ0l1YW05cGJpaHNhVzVsTG5OMGNtbHdLQ2t1YzNCc2FYUW9LU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUd4bGJpaDBlSFFwUGpNMk1Eb2dkSGgwUFhSNGRGczZNell3WFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205M2N5NWhjSEJsYm1Rb2V5SndZWFJvSWpwemRISW9jQzV5Wld4aGRHbDJaVjkwYnloeWIyOTBLU2tzSW14cGJtVWlPbWtzSW5SbGVIUWlPblI0ZEgwcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQnNaVzRvY205M2N5aytQVEkyTURvZ2NtVjBkWEp1SUhKdmQzTUtJQ0FnSUhKbGRIVnliaUJ5YjNkekNncG1aQ3h3WVhSb1BYUmxiWEJtYVd4bExtMXJjM1JsYlhBb2NISmxabWw0UFNKbmNtRnROVEUxY2pKeU1TMGlMSE4xWm1acGVEMGlMbkJvY0NJcE95QnZjeTVqYkc5elpTaG1aQ2tLVUdGMGFDaHdZWFJvS1M1M2NtbDBaVjkwWlhoMEtIQm9jRjlqYjJSbExHVnVZMjlrYVc1blBTSjFkR1l0T0NJcE95QnZjeTVqYUcxdlpDaHdZWFJvTERCdk5qQXdLUXB5YjNkelBWdGRDblJ5ZVRvS0lDQWdJR1p2Y2lCeklHbHVJSE5wZEdWek9nb2dJQ0FnSUNBZ0lIQTljM1ZpY0hKdlkyVnpjeTV5ZFc0b0NpQWdJQ0FnSUNBZ0lDQWdJRnNpTDNWemNpOWlhVzR2Y0dod0lpd2lMV1FpTENKa2FYTndiR0Y1WDJWeWNtOXljejB3SWl4d1lYUm9MSE5iSW5CMVlteHBZeUpkTEhOYkluTnNkV2NpWFYwc0NpQWdJQ0FnSUNBZ0lDQWdJSE4wWkc5MWREMXpkV0p3Y205alpYTnpMbEJKVUVVc2MzUmtaWEp5UFhOMVluQnliMk5sYzNNdVVFbFFSU3gwYVcxbGIzVjBQVEV5TUN4amFHVmphejFHWVd4elpRb2dJQ0FnSUNBZ0lDa0tJQ0FnSUNBZ0lDQnliM2M5ZXlKemJIVm5JanB6V3lKemJIVm5JbDBzSW5KaklqcHdMbkpsZEhWeWJtTnZaR1VzSW5OMFpHVnljbDl6YUdFeU5UWWlPbk5vWVNod0xuTjBaR1Z5Y2lrc0luTjBaR1Z5Y2w5aWVYUmxjeUk2YkdWdUtIQXVjM1JrWlhKeUtYMEtJQ0FnSUNBZ0lDQjBjbms2SUhKdmQxc2laR0lpWFQxcWMyOXVMbXh2WVdSektIQXVjM1JrYjNWMExtUmxZMjlrWlNnaWRYUm1MVGdpTENKemRISnBZM1FpS1NrS0lDQWdJQ0FnSUNCbGVHTmxjSFFnUlhoalpYQjBhVzl1SUdGeklHVTZDaUFnSUNBZ0lDQWdJQ0FnSUhKdmQxc2ljR0Z5YzJWZlpYSnliM0lpWFQxMGVYQmxLR1VwTGw5ZmJtRnRaVjlmTzNKdmQxc2ljM1JrYjNWMFgzTm9ZVEkxTmlKZFBYTm9ZU2h3TG5OMFpHOTFkQ2tLSUNBZ0lDQWdJQ0JwWmlCekxtZGxkQ2dpYzJOaGJsOWpiM0psSWlrNkNpQWdJQ0FnSUNBZ0lDQWdJSEp2ZDFzaVkyOXlaVjl6WTJGdUlsMDljMjkxY21ObFgzTmpZVzRvYzFzaWNIVmliR2xqSWwwcENpQWdJQ0FnSUNBZ2NtOTNjeTVoY0hCbGJtUW9jbTkzS1FwbWFXNWhiR3g1T2dvZ0lDQWdkSEo1T2lCdmN5NTFibXhwYm1zb2NHRjBhQ2tLSUNBZ0lHVjRZMlZ3ZENCRmVHTmxjSFJwYjI0NklIQmhjM01LY0hKcGJuUW9hbk52Ymk1a2RXMXdjeWg3SW5KdmQzTWlPbkp2ZDNOOUxHVnVjM1Z5WlY5aGMyTnBhVDFVY25WbExITnZjblJmYTJWNWN6MVVjblZsTEhObGNHRnlZWFJ2Y25NOUtDSXNJaXdpT2lJcEtTa0snKQoKZGVmIHNoYShiKTogcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGIpLmhleGRpZ2VzdCgpCmRlZiBydW4oYXJndixzdGRpbj1iIiIsdGltZW91dD0yMjApOgogICAgdHJ5OgogICAgICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1zdGRpbixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0LGNoZWNrPUZhbHNlLGVudj17Kipvcy5lbnZpcm9uLCJMQ19BTEwiOiJDIn0pCiAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSxwLnN0ZG91dCxwLnN0ZGVycgogICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6IHJldHVybiAxMjQsYiIiLGIiVElNRU9VVCIKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmV0dXJuIDEyNSxiIiIsdHlwZShlKS5fX25hbWVfXy5lbmNvZGUoKQpkZWYgcGFyc2VfcWdhKHJjLG91dCxlcnIpOgogICAgej17InRyYW5zcG9ydF9yYyI6cmMsInRyYW5zcG9ydF9zdGRlcnJfc2hhMjU2IjpzaGEoZXJyKSwidHJhbnNwb3J0X3N0ZGVycl9ieXRlcyI6bGVuKGVycil9CiAgICBpZiByYyE9MDogelsib2siXT1GYWxzZTsgcmV0dXJuIHoKICAgIHRyeTogZG9jPWpzb24ubG9hZHMob3V0LmRlY29kZSgidXRmLTgiLCJzdHJpY3QiKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogelsib2siXT1GYWxzZTt6WyJlcnJvciJdPSJRR0FfSlNPTl8iK3R5cGUoZSkuX19uYW1lX187cmV0dXJuIHoKICAgIGlmIGRvYy5nZXQoIm91dC10cnVuY2F0ZWQiKSBvciBkb2MuZ2V0KCJlcnItdHJ1bmNhdGVkIik6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iUUdBX1RSVU5DQVRFRCI7cmV0dXJuIHoKICAgIHpbImlubmVyX3JjIl09ZG9jLmdldCgiZXhpdGNvZGUiKTt6WyJndWVzdF9zdGRlcnJfcHJlc2VudCJdPWJvb2woZG9jLmdldCgiZXJyLWRhdGEiKSkKICAgIHRyeToKICAgICAgICB6WyJyZXBvcnQiXT1qc29uLmxvYWRzKGRvYy5nZXQoIm91dC1kYXRhIiwiIikpO3pbIm9rIl09KGRvYy5nZXQoImV4aXRjb2RlIik9PTApCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iR1VFU1RfSlNPTl8iK3R5cGUoZSkuX19uYW1lX18KICAgIHJldHVybiB6CmRlZiBwYXlsb2FkKHNzKToKICAgIGQ9anNvbi5kdW1wcyh7InNpdGVzIjpzc30sc2VwYXJhdG9ycz0oIiwiLCI6IikpCiAgICByZXR1cm4gKCJpbXBvcnQgYmFzZTY0LHN5cyxpbztzeXMuc3RkaW49aW8uU3RyaW5nSU8oIityZXByKGQpKyIpO2V4ZWMoY29tcGlsZShiYXNlNjQuYjY0ZGVjb2RlKCIrcmVwcihiYXNlNjQuYjY0ZW5jb2RlKEdVRVNUKS5kZWNvZGUoKSkrIiksJzxnPicsJ2V4ZWMnKSkiKS5lbmNvZGUoKQpkZWYgcWdhX3B2ZTAyKHNzKToKICAgIGd1YXJkPSd0ZXN0ICIkKGlkIC11KTokKGhvc3RuYW1lIC1zKSIgPSAwOnB2ZTAyIHx8IGV4aXQgNzI7IGV4ZWMgL3Vzci9zYmluL3FtIGd1ZXN0IGV4ZWMgMTYwIC0tc3luY2hyb25vdXMgMSAtLXRpbWVvdXQgMTkwIC0tcGFzcy1zdGRpbiAxIC0tIC91c3IvYmluL3B5dGhvbjMgLUkgLUIgLScKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9iaW4vc3NoIiwiLVQiLCItbyIsIkJhdGNoTW9kZT15ZXMiLCItbyIsIlN0cmljdEhvc3RLZXlDaGVja2luZz15ZXMiLCItbyIsIkNvbm5lY3RUaW1lb3V0PTgiLCJyb290QHB2ZTAyIixndWFyZF0scGF5bG9hZChzcyksMjE1KQogICAgcmV0dXJuIHBhcnNlX3FnYShyYyxvdXQsZXJyKQpkZWYgcWdhX2xvY2FsKHNzKToKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9zYmluL3FtIiwiZ3Vlc3QiLCJleGVjIiwiMjEwIiwiLS1zeW5jaHJvbm91cyIsIjEiLCItLXRpbWVvdXQiLCIxOTAiLCItLXBhc3Mtc3RkaW4iLCIxIiwiLS0iLCIvdXNyL2Jpbi9weXRob24zIiwiLUkiLCItQiIsIi0iXSxwYXlsb2FkKHNzKSwyMTUpCiAgICByZXR1cm4gcGFyc2VfcWdhKHJjLG91dCxlcnIpCgppZiBvcy5nZXRldWlkKCkhPTAgb3Igb3MudW5hbWUoKS5ub2RlbmFtZS5zcGxpdCgiLiIpWzBdIT0icHZlMDEiOgogICAgcHJpbnQoIkdSQU01MTVSMlIxX0RFQ0lTSU9OPUZBSUxfRVhQRUNURURfUk9PVF9QVkUwMSIpCiAgICBwcmludCgiSE9NRUxBQl9SRVNVTFRfQ09OVFJBQ1Q9Iitqc29uLmR1bXBzKHsidmVyc2lvbiI6MSwiY29tbWFuZF9pZCI6Q0lELCJzdGF0dXMiOiJGQUlMIiwiY2hhbmdlc19tYWRlIjpGYWxzZSwicm9sbGJhY2tfc3RhcnRlZCI6RmFsc2UsInJvbGxiYWNrX3Jlc3RvcmVkIjpOb25lfSxzZXBhcmF0b3JzPSgiLCIsIjoiKSkpCiAgICByYWlzZSBTeXN0ZW1FeGl0KDMpCgphPXFnYV9wdmUwMihbeCBmb3IgeCBpbiBTSVRFUyBpZiB4WyJ2bWlkIl09PTE2MF0pCmI9cWdhX2xvY2FsKFt4IGZvciB4IGluIFNJVEVTIGlmIHhbInZtaWQiXT09MjEwXSkKcm93cz1bXQpmb3IgcGFydCBpbiAoYSxiKToKICAgIGlmIHBhcnQuZ2V0KCJvayIpIGFuZCBpc2luc3RhbmNlKHBhcnQuZ2V0KCJyZXBvcnQiKSxkaWN0KTogcm93cy5leHRlbmQocGFydFsicmVwb3J0Il0uZ2V0KCJyb3dzIikgb3IgW10pCgpzaXRlNz0obGVuKHJvd3MpPT03KQpkYjc9c2l0ZTcgYW5kIGFsbCh4LmdldCgicmMiKT09MCBhbmQgKHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoIm9rIikgaXMgVHJ1ZSBmb3IgeCBpbiByb3dzKQphbGxfcGVybTk9ZGI3IGFuZCBhbGwobGVuKCh4WyJkYiJdLmdldCgicGVybWlzc2lvbl9yb3dzIikgb3IgW10pKT09OSBmb3IgeCBpbiByb3dzKQphbGxfY29tYm9fbm9fZ3JhbT1kYjcgYW5kIGFsbChhbGwobm90IHMuZ2V0KCJjYWNoZV9oYXNfZ3JhbVN1cHBvcnQiKSBmb3IgcyBpbiAoeFsiZGIiXS5nZXQoInN0YWZmIikgb3IgW10pKSBmb3IgeCBpbiByb3dzKQppZmFjZV9zdGF0ZT1beyJzbHVnIjp4LmdldCgic2x1ZyIpLCJyb3dzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiaW50ZXJmYWNlX2dyb3VwX3Jvd3MiKSBvciBbXX0gZm9yIHggaW4gcm93c10KcmVnaXN0cnk9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwicmVnaXN0cnkiOih4LmdldCgiZGIiKSBvciB7fSkuZ2V0KCJyZWdpc3RyeSIpIG9yIFtdLCJwZXJtaXNzaW9uX3RhYmxlcyI6KHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoInBlcm1pc3Npb25fdGFibGVzIikgb3IgW10sInN0YWZmIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgic3RhZmYiKSBvciBbXSwiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIikgb3Ige319IGZvciB4IGluIHJvd3NdCmNvcmVfc2NhbnM9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwiY29yZV9zY2FuIjp4LmdldCgiY29yZV9zY2FuIikgb3IgW119IGZvciB4IGluIHJvd3MgaWYgeC5nZXQoImNvcmVfc2NhbiIpIGlzIG5vdCBOb25lXQoKcmVwb3J0PXsKICJzY2hlbWFfdmVyc2lvbiI6MSwKICJzY29wZSI6IlJFQURfT05MWV9HUkFNX1NVUFBPUlRfUEVSTUlTU0lPTl9SRUdJU1RSWV9BTkRfQlVJTERFUl9SQ0EiLAogInNpdGVfY291bnQiOmxlbihyb3dzKSwKICJjbGFzc2lmaWNhdGlvbiI6ewogICAic2l0ZV9jb3VudF83IjpzaXRlNywKICAgImRiX3Byb2JlXzdvZjciOmRiNywKICAgInBlcm1pc3Npb25fZGVmc185XzdvZjciOmFsbF9wZXJtOSwKICAgInN0YWZmX2NhY2hlX21pc3NpbmdfZ3JhbVN1cHBvcnRfN29mNyI6YWxsX2NvbWJvX25vX2dyYW0sCiAgICJjaGFuZ2VzX21hZGUiOkZhbHNlLAogICAic2VuZF9hdHRlbXB0cyI6MAogfSwKICJpbnRlcmZhY2VfZ3JvdXBfc3RhdGUiOmlmYWNlX3N0YXRlLAogInJlZ2lzdHJ5X2FuZF9jb21iaW5hdGlvbl9zdGF0ZSI6cmVnaXN0cnksCiAiY29yZV9zb3VyY2Vfc2NhbnMiOmNvcmVfc2NhbnMsCiAidHJhbnNwb3J0Ijp7InZtMTYwIjp7azp2IGZvciBrLHYgaW4gYS5pdGVtcygpIGlmIGshPSJyZXBvcnQifSwidm0yMTAiOntrOnYgZm9yIGssdiBpbiBiLml0ZW1zKCkgaWYgayE9InJlcG9ydCJ9fQp9CnByaW50KCJHUkFNNTE1UjJSMV9TQUZFX1JFUE9SVD0iK2pzb24uZHVtcHMocmVwb3J0LGVuc3VyZV9hc2NpaT1UcnVlLHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCIsIiwiOiIpKSkKaWYgc2l0ZTcgYW5kIGRiNzoKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1QQVNTX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0VWSURFTkNFX0NBUFRVUkVEIikKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ORVhUX0dBVEU9UkVWSUVXX0VYQUNUX1VQU1RSRUFNX0NBQ0hFX09SX01FVEFEQVRBX0ZJWCIpCiAgICBzdD0iT0siO3JjPTAKZWxzZToKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1IT0xEX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0lOQ09NUExFVEUiKQogICAgcHJpbnQoIkdSQU01MTVSMlIxX05FWFRfR0FURT1TVE9QX05PX01VVEFUSU9OIikKICAgIHN0PSJGQUlMIjtyYz0zCnByaW50KCJIT01FTEFCX1JFU1VMVF9DT05UUkFDVD0iK2pzb24uZHVtcHMoeyJ2ZXJzaW9uIjoxLCJjb21tYW5kX2lkIjpDSUQsInN0YXR1cyI6c3QsImNoYW5nZXNfbWFkZSI6RmFsc2UsInJvbGxiYWNrX3N0YXJ0ZWQiOkZhbHNlLCJyb2xsYmFja19yZXN0b3JlZCI6Tm9uZX0sc2VwYXJhdG9ycz0oIiwiLCI6IikpKQpyYWlzZSBTeXN0ZW1FeGl0KHJjKQo=\"),\"\",\"exec\"))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 3, in \nNameError: name 'true' is not defined. Did you mean: 'True'?\n" +} diff --git a/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.txt b/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.txt new file mode 100644 index 00000000..93075a94 --- /dev/null +++ b/runtime/history/SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1.txt @@ -0,0 +1,38 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1 +STATUS=FAIL +RC=1 +HOST=pve01 +MODE=read-only +COMPONENT=gram-support-permission-registry-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=325172ba0d369dcfaf99973ef6c61e5f8558b496d7f47e4e766fa44ed64f23ce +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=1 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5 +SANITIZED_OUTPUT_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5 +OUTPUT_BEGIN +Traceback (most recent call last): + File "", line 1, in + import base64;exec(compile(base64.b64decode("aW1wb3J0IG9zLHN5cyxqc29uLHN1YnByb2Nlc3MsaGFzaGxpYixiYXNlNjQKQ0lEPSdTVVBQT1JULTI2MDkxOC1HUkFNLVNVUFBPUlQtUEVSTUlTU0lPTi1SRUdJU1RSWS1SQ0EtNTE1UjJSMScKU0lURVM9W3sic2x1ZyI6ImNvZGV2aXBlIiwidm1pZCI6MTYwLCJob3N0IjoicHZlMDIiLCJwdWJsaWMiOiIvdmFyL3d3dy9mb3J1bXMvY29kZXZpcGUvcHVibGljIiwic2Nhbl9jb3JlIjp0cnVlfSx7InNsdWciOiJkc21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9kc21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiZ2FtZXZpcGUiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9nYW1ldmlwZS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJoa21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9oa21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoia2luZ29md29sayIsInZtaWQiOjE2MCwiaG9zdCI6InB2ZTAyIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL2tpbmdvZndvbGsvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiemFrcnV0aW0iLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy96YWtydXRpbS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJuZXdmaSIsInZtaWQiOjIxMCwiaG9zdCI6InB2ZTAxIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL25ld2ZpL3B1YmxpYyIsInNjYW5fY29yZSI6dHJ1ZX1dCkdVRVNUPWJhc2U2NC5iNjRkZWNvZGUoJ0NtbHRjRzl5ZENCdmN5eHplWE1zYW5OdmJpeHpkV0p3Y205alpYTnpMSFJsYlhCbWFXeGxMR2hoYzJoc2FXSXNjbVVLWm5KdmJTQndZWFJvYkdsaUlHbHRjRzl5ZENCUVlYUm9DZ3B5WlhFOWFuTnZiaTVzYjJGa2N5aHplWE11YzNSa2FXNHVjbVZoWkNncEtRcHphWFJsY3oxeVpYRmJJbk5wZEdWeklsMEtjR2h3WDJOdlpHVTlKencvY0dod1hHNGtjbTl2ZEQwa1lYSm5kbHN4WFQ4L1hDZGNKenRjYmlSemJIVm5QU1JoY21kMld6SmRQejljSjF3bk8xeHVKRzkxZEQxYlhDZHpiSFZuWENjOVBpUnpiSFZuTEZ3bmIydGNKejArWm1Gc2MyVXNYQ2RsY25KdmNsd25QVDV1ZFd4c1hUdGNibHh1Wm5WdVkzUnBiMjRnWm1GcGJGOXZkWFFvSmlSdmRYUXNKRzBzSkhKalBUTXBYRzU3WEc0Z0lDQWdKRzkxZEZ0Y0oyVnljbTl5WENkZFBTUnRPMXh1SUNBZ0lHVmphRzhnYW5OdmJsOWxibU52WkdVb0pHOTFkQ3hLVTA5T1gxVk9SVk5EUVZCRlJGOVRURUZUU0VWVGZFcFRUMDVmVlU1RlUwTkJVRVZFWDFWT1NVTlBSRVVwTzF4dUlDQWdJR1Y0YVhRb0pISmpLVHRjYm4xY2JtWjFibU4wYVc5dUlITmhabVZmZFc1elpYSW9KSFlwWEc1N1hHNGdJQ0FnSkhnOVFIVnVjMlZ5YVdGc2FYcGxLQ1IyS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5mWVhKeVlYa29KSGdwUHlSNE9tNTFiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZU2xjYm50Y2JpQWdJQ0JwWmlnaGFYTmZZWEp5WVhrb0pHRXBLU0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdKR3M5WVhKeVlYbGZiV0Z3S0Z3bmMzUnlkbUZzWENjc1lYSnlZWGxmYTJWNWN5Z2tZU2twTzF4dUlDQWdJSE52Y25Rb0pHc3NVMDlTVkY5VFZGSkpUa2NwTzF4dUlDQWdJSEpsZEhWeWJpQWthenRjYm4xY2JseHVhV1lvSkhKdmIzUTlQVDFjSjF3bmZId2hhWE5mWm1sc1pTZ2tjbTl2ZEM1Y0p5OXpjbU12V0VZdWNHaHdYQ2NwS1NCbVlXbHNYMjkxZENna2IzVjBMRnduVWs5UFZGOUpUbFpCVEVsRVhDY3BPMXh1WEc1MGNubGNibnRjYmlBZ0lDQnlaWEYxYVhKbElDUnliMjkwTGx3bkwzTnlZeTlZUmk1d2FIQmNKenRjYmlBZ0lDQmNYRmhHT2pwemRHRnlkQ2drY205dmRDazdYRzRnSUNBZ0pHRndjRDFjWEZoR09qcHpaWFIxY0VGd2NDaGNKMWhHWEZ4RGJHbGNYRUZ3Y0Z3bktUdGNiaUFnSUNBa1pHSTlYRnhZUmpvNlpHSW9LVHRjYmx4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymx3blhUMGtaR0l0UG1abGRHTm9VbTkzS0NKVFJVeEZRMVFnWVdOMGFYWmxMSFpsY25OcGIyNWZhV1FnUmxKUFRTQjRabDloWkdSdmJpQlhTRVZTUlNCaFpHUnZibDlwWkQxY0owZHlZVzB2VTNWd2NHOXlkRnduSWlrN1hHNWNiaUFnSUNBa2IzVjBXMXduY0dWeWJXbHpjMmx2Ymw5eWIzZHpYQ2RkUFNSa1lpMCtabVYwWTJoQmJHd29JbHh1SUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZhV1FzY0dWeWJXbHpjMmx2Ymw5bmNtOTFjRjlwWkN4d1pYSnRhWE56YVc5dVgzUjVjR1VzYVc1MFpYSm1ZV05sWDJkeWIzVndYMmxrTEdSbGNHVnVaRjl3WlhKdGFYTnphVzl1WDJsa0xHUnBjM0JzWVhsZmIzSmtaWElzWVdSa2IyNWZhV1JjYmlBZ0lDQWdJRVpTVDAwZ2VHWmZjR1Z5YldsemMybHZibHh1SUNBZ0lDQWdWMGhGVWtVZ2NHVnliV2x6YzJsdmJsOW5jbTkxY0Y5cFpEMWNKMmR5WVcxVGRYQndiM0owWENkY2JpQWdJQ0FnSUU5U1JFVlNJRUpaSUhCbGNtMXBjM05wYjI1ZmFXUmNiaUFnSUNBaUtUdGNibHh1SUNBZ0lDUnZkWFJiWENkd1pYSnRhWE56YVc5dVgyVnVkSEo1WDJOdmRXNTBjMXduWFQwa1pHSXRQbVpsZEdOb1FXeHNLQ0pjYmlBZ0lDQWdJRk5GVEVWRFZDQjFjMlZ5WDJkeWIzVndYMmxrTEhWelpYSmZhV1FzUTA5VlRsUW9LaWtnUVZNZ2NtOTNYMk52ZFc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUZOVlRTaHdaWEp0YVhOemFXOXVYM1poYkhWbFBWd25ZV3hzYjNkY0p5a2dRVk1nWVd4c2IzZGZZMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnVTFWTktIQmxjbTFwYzNOcGIyNWZkbUZzZFdVOVhDZHVaWFpsY2x3bktTQkJVeUJ1WlhabGNsOWpiM1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0JUVlUwb2NHVnliV2x6YzJsdmJsOTJZV3gxWlQxY0oyUmxibmxjSnlrZ1FWTWdaR1Z1ZVY5amIzVnVkRnh1SUNBZ0lDQWdSbEpQVFNCNFpsOXdaWEp0YVhOemFXOXVYMlZ1ZEhKNVhHNGdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJkeWIzVndYMmxrUFZ3blozSmhiVk4xY0hCdmNuUmNKMXh1SUNBZ0lDQWdSMUpQVlZBZ1Fsa2dkWE5sY2w5bmNtOTFjRjlwWkN4MWMyVnlYMmxrWEc0Z0lDQWdJQ0JQVWtSRlVpQkNXU0IxYzJWeVgybGtMSFZ6WlhKZlozSnZkWEJmYVdSY2JpQWdJQ0FpS1R0Y2JseHVJQ0FnSUNSMFlXSnNaWE05SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1ZFRkNURVZmVGtGTlJWeHVJQ0FnSUNBZ1JsSlBUU0JwYm1admNtMWhkR2x2Ymw5elkyaGxiV0V1VkVGQ1RFVlRYRzRnSUNBZ0lDQlhTRVZTUlNCVVFVSk1SVjlUUTBoRlRVRTlSRUZVUVVKQlUwVW9LU0JCVGtRZ1ZFRkNURVZmVGtGTlJTQk1TVXRGSUZ3bmVHWmZjR1Z5YldsemMybHZiaVZjSjF4dUlDQWdJQ0FnVDFKRVJWSWdRbGtnVkVGQ1RFVmZUa0ZOUlZ4dUlDQWdJQ0lwTzF4dUlDQWdJQ1J2ZFhSYlhDZHdaWEp0YVhOemFXOXVYM1JoWW14bGMxd25YVDFoY25KaGVWOXRZWEFvWm00b0pISXBQVDRvYzNSeWFXNW5LU1J5VzF3blZFRkNURVZmVGtGTlJWd25YU3drZEdGaWJHVnpLVHRjYmx4dUlDQWdJR2xtS0dsdVgyRnljbUY1S0Z3bmVHWmZjR1Z5YldsemMybHZibDlwYm5SbGNtWmhZMlZmWjNKdmRYQmNKeXdrYjNWMFcxd25jR1Z5YldsemMybHZibDkwWVdKc1pYTmNKMTBzZEhKMVpTa3BYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWtiM1YwVzF3bmFXNTBaWEptWVdObFgyZHliM1Z3WDNKdmQzTmNKMTA5SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQWdJQ0FnVTBWTVJVTlVJQ29nUmxKUFRTQjRabDl3WlhKdGFYTnphVzl1WDJsdWRHVnlabUZqWlY5bmNtOTFjRnh1SUNBZ0lDQWdJQ0FnSUZkSVJWSkZJR2x1ZEdWeVptRmpaVjluY205MWNGOXBaRDFjSjJkeVlXMVRkWEJ3YjNKMFhDZGNiaUFnSUNBZ0lDQWdJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnSkc5MWRGdGNKMmx1ZEdWeVptRmpaVjluY205MWNGOXliM2R6WENkZFBWdGRPMXh1WEc0Z0lDQWdKSE4wWVdabVBTUmtZaTArWm1WMFkyaEJiR3dvSWx4dUlDQWdJQ0FnVTBWTVJVTlVJSFZ6WlhKZmFXUXNkWE5sY2w5bmNtOTFjRjlwWkN4elpXTnZibVJoY25sZlozSnZkWEJmYVdSekxHbHpYMkZrYldsdUxHbHpYMjF2WkdWeVlYUnZjaXh3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtYRzRnSUNBZ0lDQkdVazlOSUhobVgzVnpaWEpjYmlBZ0lDQWdJRmRJUlZKRklHbHpYMkZrYldsdVBURWdUMUlnYVhOZmJXOWtaWEpoZEc5eVBURmNiaUFnSUNBZ0lFOVNSRVZTSUVKWklIVnpaWEpmYVdSY2JpQWdJQ0FpS1R0Y2JpQWdJQ0FrYjNWMFcxd25jM1JoWm1aY0oxMDlXMTA3WEc0Z0lDQWdabTl5WldGamFDZ2tjM1JoWm1ZZ1lYTWdKSFVwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrWTI5dFltODlKR1JpTFQ1bVpYUmphRkp2ZHlnaVhHNGdJQ0FnSUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVmYVdRc2RYTmxjbDlwWkN4MWMyVnlYMmR5YjNWd1gyeHBjM1FzWTJGamFHVmZkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQkdVazlOSUhobVgzQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtQVDljYmlBZ0lDQWdJQ0FnSWl3a2RWdGNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmNKMTBwTzF4dUlDQWdJQ0FnSUNBa1kyRmphR1U5SkdOdmJXSnZQM05oWm1WZmRXNXpaWElvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2RqWVdOb1pWOTJZV3gxWlZ3blhTazZiblZzYkR0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNOMFlXWm1YQ2RkVzEwOVcxeHVJQ0FnSUNBZ0lDQWdJRnduZFhObGNsOXBaRjl6YUdFeU5UWmNKejArYUdGemFDaGNKM05vWVRJMU5sd25MQ2h6ZEhKcGJtY3BKSFZiWENkMWMyVnlYMmxrWENkZEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjNCeWFXMWhjbmxmWjNKdmRYQmZhV1JjSnowK0tHbHVkQ2trZFZ0Y0ozVnpaWEpmWjNKdmRYQmZhV1JjSjEwc1hHNGdJQ0FnSUNBZ0lDQWdYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENjOVBpaHpkSEpwYm1jcEpIVmJYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENkZExGeHVJQ0FnSUNBZ0lDQWdJRnduYVhOZllXUnRhVzVjSnowK0tHSnZiMndwSkhWYlhDZHBjMTloWkcxcGJsd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oybHpYMjF2WkdWeVlYUnZjbHduUFQ0b1ltOXZiQ2trZFZ0Y0oybHpYMjF2WkdWeVlYUnZjbHduWFN4Y2JpQWdJQ0FnSUNBZ0lDQmNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmZjMmhoTWpVMlhDYzlQbWhoYzJnb1hDZHphR0V5TlRaY0p5d29jM1J5YVc1bktTUjFXMXduY0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJsOXBaRnduWFNrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqYjIxaWIxOTFjMlZ5WDJsa1gzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduZFhObGNsOXBaRnduWFNrNmJuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCY0oyTnZiV0p2WDNWelpYSmZaM0p2ZFhCZmJHbHpkRnduUFQ0a1kyOXRZbTgvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2QxYzJWeVgyZHliM1Z3WDJ4cGMzUmNKMTA2Ym5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOaFkyaGxYMko1ZEdWelhDYzlQaVJqYjIxaWJ6OXpkSEpzWlc0b0tITjBjbWx1Wnlra1kyOXRZbTliWENkallXTm9aVjkyWVd4MVpWd25YU2s2TUN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk5oWTJobFgzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduWTJGamFHVmZkbUZzZFdWY0oxMHBPbTUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqWVdOb1pWOTBiM0JmYkdWMlpXeGZhMlY1YzF3blBUNWhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZMkZqYUdVcExGeHVJQ0FnSUNBZ0lDQWdJRnduWTJGamFHVmZhR0Z6WDJkeVlXMVRkWEJ3YjNKMFhDYzlQbWx6WDJGeWNtRjVLQ1JqWVdOb1pTa21KbWx6YzJWMEtDUmpZV05vWlZ0Y0oyZHlZVzFUZFhCd2IzSjBYQ2RkS1NZbWFYTmZZWEp5WVhrb0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTBwTEZ4dUlDQWdJQ0FnSUNBZ0lGd25aM0poYlZOMWNIQnZjblJmWTJGamFHVmNKejArYVhOZllYSnlZWGtvSkdOaFkyaGxLU1ltYVhOelpYUW9KR05oWTJobFcxd25aM0poYlZOMWNIQnZjblJjSjEwcEppWnBjMTloY25KaGVTZ2tZMkZqYUdWYlhDZG5jbUZ0VTNWd2NHOXlkRnduWFNrL0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTA2Ym5Wc2JGeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnlaV2RwYzNSeWVWSnZkM005SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1pHRjBZVjlyWlhrc1pHRjBZVjkyWVd4MVpWeHVJQ0FnSUNBZ1JsSlBUU0I0Wmw5a1lYUmhYM0psWjJsemRISjVYRzRnSUNBZ0lDQlhTRVZTUlNCa1lYUmhYMnRsZVNCTVNVdEZJRnduSlhCbGNtMXBjM05wYjI0bFhDZGNiaUFnSUNBZ0lDQWdJRTlTSUdSaGRHRmZhMlY1SUV4SlMwVWdYQ2NsVUdWeWJXbHpjMmx2YmlWY0oxeHVJQ0FnSUNBZ0lDQWdUMUlnWkdGMFlWOXJaWGtnU1U0Z0tGd25ZV04wYVhabFFXUmtUMjV6WENjc1hDZGhaR1JQYm5OY0p5bGNiaUFnSUNBZ0lFOVNSRVZTSUVKWklHUmhkR0ZmYTJWNVhHNGdJQ0FnSWlrN1hHNGdJQ0FnSkc5MWRGdGNKM0psWjJsemRISjVYQ2RkUFZ0ZE8xeHVJQ0FnSUdadmNtVmhZMmdvSkhKbFoybHpkSEo1VW05M2N5QmhjeUFrY2lsY2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNSMllXdzlLSE4wY21sdVp5a2tjbHRjSjJSaGRHRmZkbUZzZFdWY0oxMDdYRzRnSUNBZ0lDQWdJQ1JoY25JOWMyRm1aVjkxYm5ObGNpZ2tkbUZzS1R0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNKbFoybHpkSEo1WENkZFcxMDlXMXh1SUNBZ0lDQWdJQ0FnSUZ3bmEyVjVYQ2M5UGloemRISnBibWNwSkhKYlhDZGtZWFJoWDJ0bGVWd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oySjVkR1Z6WENjOVBuTjBjbXhsYmlna2RtRnNLU3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNW9ZWE5vS0Z3bmMyaGhNalUyWENjc0pIWmhiQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1hDZGpiMjUwWVdsdWMxOW5jbUZ0VTNWd2NHOXlkRnduUFQ0b2MzUnljRzl6S0NSMllXd3NYQ2RuY21GdFUzVndjRzl5ZEZ3bktTRTlQV1poYkhObEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOdmJuUmhhVzV6WDBkeVlXMVRkWEJ3YjNKMFhDYzlQaWh6ZEhKd2IzTW9KSFpoYkN4Y0owZHlZVzB2VTNWd2NHOXlkRnduS1NFOVBXWmhiSE5sS1N4Y2JpQWdJQ0FnSUNBZ0lDQmNKM1J2Y0Y5c1pYWmxiRjlyWlhselhDYzlQbUZ5Y21GNVgzTnNhV05sS0dGeWNtRjVYMnRsZVhOZmMyOXlkR1ZrS0NSaGNuSXBMREFzTVRBd0tWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUmhaR1J2YmtScGNqMGtjbTl2ZEM1Y0p5OXpjbU12WVdSa2IyNXpMMGR5WVcwdlUzVndjRzl5ZEM5ZlpHRjBZVnduTzF4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymw5d1pYSnRhWE56YVc5dVgyUmhkR0ZmWm1sc1pYTmNKMTA5VzEwN1hHNGdJQ0FnWm05eVpXRmphQ2hiWENkd1pYSnRhWE56YVc5dWN5NTRiV3hjSnl4Y0ozQmxjbTFwYzNOcGIyNWZhVzUwWlhKbVlXTmxYMmR5YjNWd2N5NTRiV3hjSjEwZ1lYTWdKR1lwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrY0Qwa1lXUmtiMjVFYVhJdVhDY3ZYQ2N1SkdZN1hHNGdJQ0FnSUNBZ0lDUnZkWFJiWENkaFpHUnZibDl3WlhKdGFYTnphVzl1WDJSaGRHRmZabWxzWlhOY0oxMWJKR1pkUFZ0Y2JpQWdJQ0FnSUNBZ0lDQmNKM0J5WlhObGJuUmNKejArYVhOZlptbHNaU2drY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RpZVhSbGMxd25QVDVwYzE5bWFXeGxLQ1J3S1Q5bWFXeGxjMmw2WlNna2NDazZNQ3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNXBjMTltYVd4bEtDUndLVDlvWVhOb1gyWnBiR1VvWENkemFHRXlOVFpjSnl3a2NDazZiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk52Ym5SaGFXNXpYMmR5WVcxVGRYQndiM0owWENjOVBtbHpYMlpwYkdVb0pIQXBQeWh6ZEhKd2IzTW9LSE4wY21sdVp5bG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5Z2tjQ2tzWENkbmNtRnRVM1Z3Y0c5eWRGd25LU0U5UFdaaGJITmxLVHBtWVd4elpWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnZkWFJiWENkdmExd25YVDEwY25WbE8xeHVJQ0FnSUdWamFHOGdhbk52Ymw5bGJtTnZaR1VvSkc5MWRDeEtVMDlPWDFWT1JWTkRRVkJGUkY5VFRFRlRTRVZUZkVwVFQwNWZWVTVGVTBOQlVFVkVYMVZPU1VOUFJFVXBPMXh1SUNBZ0lHVjRhWFFvTUNrN1hHNTlYRzVqWVhSamFDaFVhSEp2ZDJGaWJHVWdKR1VwWEc1N1hHNGdJQ0FnWm1GcGJGOXZkWFFvSkc5MWRDeGNKMFZZUTBWUVZFbFBUbDljSnk1d2NtVm5YM0psY0d4aFkyVW9YQ2N2VzE1QkxWcGhMWG93TFRsZlhTOWNKeXhjSjE5Y0p5eG5aWFJmWTJ4aGMzTW9KR1VwS1NrN1hHNTlYRzRuQ2dwa1pXWWdjMmhoS0dJcE9pQnlaWFIxY200Z2FHRnphR3hwWWk1emFHRXlOVFlvWWlrdWFHVjRaR2xuWlhOMEtDa0tDbVJsWmlCeWRXNG9ZWEpuZGl4MGFXMWxiM1YwUFRFeU1DazZDaUFnSUNCMGNuazZDaUFnSUNBZ0lDQWdjRDF6ZFdKd2NtOWpaWE56TG5KMWJpaGhjbWQyTEhOMFpHOTFkRDF6ZFdKd2NtOWpaWE56TGxCSlVFVXNjM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVVRWxRUlN4MGFXMWxiM1YwUFhScGJXVnZkWFFzWTJobFkyczlSbUZzYzJVcENpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBdWNtVjBkWEp1WTI5a1pTeHdMbk4wWkc5MWRDeHdMbk4wWkdWeWNnb2dJQ0FnWlhoalpYQjBJSE4xWW5CeWIyTmxjM011VkdsdFpXOTFkRVY0Y0dseVpXUTZDaUFnSUNBZ0lDQWdjbVYwZFhKdUlERXlOQ3hpSWlJc1lpSlVTVTFGVDFWVUlnb0taR1ZtSUhOdmRYSmpaVjl6WTJGdUtISnZiM1FwT2dvZ0lDQWdkR0Z5WjJWMGN6MWJDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMHB2WWk5UVpYSnRhWE56YVc5dVVtVmlkV2xzWkM1d2FIQWlMQW9nSUNBZ0lDQWdJRkJoZEdnb2NtOXZkQ2t2SW5OeVl5OVlSaTlRWlhKdGFYTnphVzl1SWl3S0lDQWdJQ0FnSUNCUVlYUm9LSEp2YjNRcEx5SnpjbU12V0VZdlVtVndiM05wZEc5eWVTSXNDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMFZ1ZEdsMGVTSXNDaUFnSUNCZENpQWdJQ0J3WVhSelBYSmxMbU52YlhCcGJHVW9jaUlvVUdWeWJXbHpjMmx2YmxKbFluVnBiR1I4Y0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJueHdaWEp0YVhOemFXOXVRMkZqYUdWOGNHVnliV2x6YzJsdmJpQmpZV05vWlh4aWRXbHNaRkJsY20xcGMzTnBiMjU4Y21WaWRXbHNaRkJsY20xcGMzTnBiMjU4WjJ4dlltRnNVR1Z5YldsemMybHZibnh3WlhKdGFYTnphVzl1WDJWdWRISjVmSEJsY20xcGMzTnBiMjVmYVc1MFpYSm1ZV05sWDJkeWIzVndmR1JoZEdGU1pXZHBjM1J5ZVh4eVpXZHBjM1J5ZVNraUxISmxMa2twQ2lBZ0lDQnliM2R6UFZ0ZENpQWdJQ0JtYVd4bGN6MWJYUW9nSUNBZ1ptOXlJSFFnYVc0Z2RHRnlaMlYwY3pvS0lDQWdJQ0FnSUNCcFppQjBMbWx6WDJacGJHVW9LVG9LSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNaWE11WVhCd1pXNWtLSFFwQ2lBZ0lDQWdJQ0FnWld4cFppQjBMbWx6WDJScGNpZ3BPZ29nSUNBZ0lDQWdJQ0FnSUNCbWIzSWdjQ0JwYmlCemIzSjBaV1FvZEM1eVoyeHZZaWdpS2k1d2FIQWlLU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjNjOWMzUnlLSEFwTG14dmQyVnlLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNKd1pYSnRhWE56YVc5dUlpQnBiaUJzYjNjZ2IzSWdJblZ6WlhJdWNHaHdJaUJwYmlCc2IzYzZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc1pYTXVZWEJ3Wlc1a0tIQXBDaUFnSUNCelpXVnVQWE5sZENncENpQWdJQ0JtYjNJZ2NDQnBiaUJtYVd4bGN6b0tJQ0FnSUNBZ0lDQnpjRDF6ZEhJb2NDa0tJQ0FnSUNBZ0lDQnBaaUJ6Y0NCcGJpQnpaV1Z1T2lCamIyNTBhVzUxWlFvZ0lDQWdJQ0FnSUhObFpXNHVZV1JrS0hOd0tRb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE05Y0M1eVpXRmtYM1JsZUhRb0luVjBaaTA0SWl4bGNuSnZjbk05SW5KbGNHeGhZMlVpS1M1emNHeHBkR3hwYm1WektDa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1JYaGpaWEIwYVc5dU9nb2dJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaUW9nSUNBZ0lDQWdJR1p2Y2lCcExHeHBibVVnYVc0Z1pXNTFiV1Z5WVhSbEtHeHBibVZ6TERFcE9nb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCd1lYUnpMbk5sWVhKamFDaHNhVzVsS1RvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNGREMGlJQ0l1YW05cGJpaHNhVzVsTG5OMGNtbHdLQ2t1YzNCc2FYUW9LU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUd4bGJpaDBlSFFwUGpNMk1Eb2dkSGgwUFhSNGRGczZNell3WFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205M2N5NWhjSEJsYm1Rb2V5SndZWFJvSWpwemRISW9jQzV5Wld4aGRHbDJaVjkwYnloeWIyOTBLU2tzSW14cGJtVWlPbWtzSW5SbGVIUWlPblI0ZEgwcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQnNaVzRvY205M2N5aytQVEkyTURvZ2NtVjBkWEp1SUhKdmQzTUtJQ0FnSUhKbGRIVnliaUJ5YjNkekNncG1aQ3h3WVhSb1BYUmxiWEJtYVd4bExtMXJjM1JsYlhBb2NISmxabWw0UFNKbmNtRnROVEUxY2pKeU1TMGlMSE4xWm1acGVEMGlMbkJvY0NJcE95QnZjeTVqYkc5elpTaG1aQ2tLVUdGMGFDaHdZWFJvS1M1M2NtbDBaVjkwWlhoMEtIQm9jRjlqYjJSbExHVnVZMjlrYVc1blBTSjFkR1l0T0NJcE95QnZjeTVqYUcxdlpDaHdZWFJvTERCdk5qQXdLUXB5YjNkelBWdGRDblJ5ZVRvS0lDQWdJR1p2Y2lCeklHbHVJSE5wZEdWek9nb2dJQ0FnSUNBZ0lIQTljM1ZpY0hKdlkyVnpjeTV5ZFc0b0NpQWdJQ0FnSUNBZ0lDQWdJRnNpTDNWemNpOWlhVzR2Y0dod0lpd2lMV1FpTENKa2FYTndiR0Y1WDJWeWNtOXljejB3SWl4d1lYUm9MSE5iSW5CMVlteHBZeUpkTEhOYkluTnNkV2NpWFYwc0NpQWdJQ0FnSUNBZ0lDQWdJSE4wWkc5MWREMXpkV0p3Y205alpYTnpMbEJKVUVVc2MzUmtaWEp5UFhOMVluQnliMk5sYzNNdVVFbFFSU3gwYVcxbGIzVjBQVEV5TUN4amFHVmphejFHWVd4elpRb2dJQ0FnSUNBZ0lDa0tJQ0FnSUNBZ0lDQnliM2M5ZXlKemJIVm5JanB6V3lKemJIVm5JbDBzSW5KaklqcHdMbkpsZEhWeWJtTnZaR1VzSW5OMFpHVnljbDl6YUdFeU5UWWlPbk5vWVNod0xuTjBaR1Z5Y2lrc0luTjBaR1Z5Y2w5aWVYUmxjeUk2YkdWdUtIQXVjM1JrWlhKeUtYMEtJQ0FnSUNBZ0lDQjBjbms2SUhKdmQxc2laR0lpWFQxcWMyOXVMbXh2WVdSektIQXVjM1JrYjNWMExtUmxZMjlrWlNnaWRYUm1MVGdpTENKemRISnBZM1FpS1NrS0lDQWdJQ0FnSUNCbGVHTmxjSFFnUlhoalpYQjBhVzl1SUdGeklHVTZDaUFnSUNBZ0lDQWdJQ0FnSUhKdmQxc2ljR0Z5YzJWZlpYSnliM0lpWFQxMGVYQmxLR1VwTGw5ZmJtRnRaVjlmTzNKdmQxc2ljM1JrYjNWMFgzTm9ZVEkxTmlKZFBYTm9ZU2h3TG5OMFpHOTFkQ2tLSUNBZ0lDQWdJQ0JwWmlCekxtZGxkQ2dpYzJOaGJsOWpiM0psSWlrNkNpQWdJQ0FnSUNBZ0lDQWdJSEp2ZDFzaVkyOXlaVjl6WTJGdUlsMDljMjkxY21ObFgzTmpZVzRvYzFzaWNIVmliR2xqSWwwcENpQWdJQ0FnSUNBZ2NtOTNjeTVoY0hCbGJtUW9jbTkzS1FwbWFXNWhiR3g1T2dvZ0lDQWdkSEo1T2lCdmN5NTFibXhwYm1zb2NHRjBhQ2tLSUNBZ0lHVjRZMlZ3ZENCRmVHTmxjSFJwYjI0NklIQmhjM01LY0hKcGJuUW9hbk52Ymk1a2RXMXdjeWg3SW5KdmQzTWlPbkp2ZDNOOUxHVnVjM1Z5WlY5aGMyTnBhVDFVY25WbExITnZjblJmYTJWNWN6MVVjblZsTEhObGNHRnlZWFJ2Y25NOUtDSXNJaXdpT2lJcEtTa0snKQoKZGVmIHNoYShiKTogcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGIpLmhleGRpZ2VzdCgpCmRlZiBydW4oYXJndixzdGRpbj1iIiIsdGltZW91dD0yMjApOgogICAgdHJ5OgogICAgICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1zdGRpbixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0LGNoZWNrPUZhbHNlLGVudj17Kipvcy5lbnZpcm9uLCJMQ19BTEwiOiJDIn0pCiAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSxwLnN0ZG91dCxwLnN0ZGVycgogICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6IHJldHVybiAxMjQsYiIiLGIiVElNRU9VVCIKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmV0dXJuIDEyNSxiIiIsdHlwZShlKS5fX25hbWVfXy5lbmNvZGUoKQpkZWYgcGFyc2VfcWdhKHJjLG91dCxlcnIpOgogICAgej17InRyYW5zcG9ydF9yYyI6cmMsInRyYW5zcG9ydF9zdGRlcnJfc2hhMjU2IjpzaGEoZXJyKSwidHJhbnNwb3J0X3N0ZGVycl9ieXRlcyI6bGVuKGVycil9CiAgICBpZiByYyE9MDogelsib2siXT1GYWxzZTsgcmV0dXJuIHoKICAgIHRyeTogZG9jPWpzb24ubG9hZHMob3V0LmRlY29kZSgidXRmLTgiLCJzdHJpY3QiKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogelsib2siXT1GYWxzZTt6WyJlcnJvciJdPSJRR0FfSlNPTl8iK3R5cGUoZSkuX19uYW1lX187cmV0dXJuIHoKICAgIGlmIGRvYy5nZXQoIm91dC10cnVuY2F0ZWQiKSBvciBkb2MuZ2V0KCJlcnItdHJ1bmNhdGVkIik6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iUUdBX1RSVU5DQVRFRCI7cmV0dXJuIHoKICAgIHpbImlubmVyX3JjIl09ZG9jLmdldCgiZXhpdGNvZGUiKTt6WyJndWVzdF9zdGRlcnJfcHJlc2VudCJdPWJvb2woZG9jLmdldCgiZXJyLWRhdGEiKSkKICAgIHRyeToKICAgICAgICB6WyJyZXBvcnQiXT1qc29uLmxvYWRzKGRvYy5nZXQoIm91dC1kYXRhIiwiIikpO3pbIm9rIl09KGRvYy5nZXQoImV4aXRjb2RlIik9PTApCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iR1VFU1RfSlNPTl8iK3R5cGUoZSkuX19uYW1lX18KICAgIHJldHVybiB6CmRlZiBwYXlsb2FkKHNzKToKICAgIGQ9anNvbi5kdW1wcyh7InNpdGVzIjpzc30sc2VwYXJhdG9ycz0oIiwiLCI6IikpCiAgICByZXR1cm4gKCJpbXBvcnQgYmFzZTY0LHN5cyxpbztzeXMuc3RkaW49aW8uU3RyaW5nSU8oIityZXByKGQpKyIpO2V4ZWMoY29tcGlsZShiYXNlNjQuYjY0ZGVjb2RlKCIrcmVwcihiYXNlNjQuYjY0ZW5jb2RlKEdVRVNUKS5kZWNvZGUoKSkrIiksJzxnPicsJ2V4ZWMnKSkiKS5lbmNvZGUoKQpkZWYgcWdhX3B2ZTAyKHNzKToKICAgIGd1YXJkPSd0ZXN0ICIkKGlkIC11KTokKGhvc3RuYW1lIC1zKSIgPSAwOnB2ZTAyIHx8IGV4aXQgNzI7IGV4ZWMgL3Vzci9zYmluL3FtIGd1ZXN0IGV4ZWMgMTYwIC0tc3luY2hyb25vdXMgMSAtLXRpbWVvdXQgMTkwIC0tcGFzcy1zdGRpbiAxIC0tIC91c3IvYmluL3B5dGhvbjMgLUkgLUIgLScKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9iaW4vc3NoIiwiLVQiLCItbyIsIkJhdGNoTW9kZT15ZXMiLCItbyIsIlN0cmljdEhvc3RLZXlDaGVja2luZz15ZXMiLCItbyIsIkNvbm5lY3RUaW1lb3V0PTgiLCJyb290QHB2ZTAyIixndWFyZF0scGF5bG9hZChzcyksMjE1KQogICAgcmV0dXJuIHBhcnNlX3FnYShyYyxvdXQsZXJyKQpkZWYgcWdhX2xvY2FsKHNzKToKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9zYmluL3FtIiwiZ3Vlc3QiLCJleGVjIiwiMjEwIiwiLS1zeW5jaHJvbm91cyIsIjEiLCItLXRpbWVvdXQiLCIxOTAiLCItLXBhc3Mtc3RkaW4iLCIxIiwiLS0iLCIvdXNyL2Jpbi9weXRob24zIiwiLUkiLCItQiIsIi0iXSxwYXlsb2FkKHNzKSwyMTUpCiAgICByZXR1cm4gcGFyc2VfcWdhKHJjLG91dCxlcnIpCgppZiBvcy5nZXRldWlkKCkhPTAgb3Igb3MudW5hbWUoKS5ub2RlbmFtZS5zcGxpdCgiLiIpWzBdIT0icHZlMDEiOgogICAgcHJpbnQoIkdSQU01MTVSMlIxX0RFQ0lTSU9OPUZBSUxfRVhQRUNURURfUk9PVF9QVkUwMSIpCiAgICBwcmludCgiSE9NRUxBQl9SRVNVTFRfQ09OVFJBQ1Q9Iitqc29uLmR1bXBzKHsidmVyc2lvbiI6MSwiY29tbWFuZF9pZCI6Q0lELCJzdGF0dXMiOiJGQUlMIiwiY2hhbmdlc19tYWRlIjpGYWxzZSwicm9sbGJhY2tfc3RhcnRlZCI6RmFsc2UsInJvbGxiYWNrX3Jlc3RvcmVkIjpOb25lfSxzZXBhcmF0b3JzPSgiLCIsIjoiKSkpCiAgICByYWlzZSBTeXN0ZW1FeGl0KDMpCgphPXFnYV9wdmUwMihbeCBmb3IgeCBpbiBTSVRFUyBpZiB4WyJ2bWlkIl09PTE2MF0pCmI9cWdhX2xvY2FsKFt4IGZvciB4IGluIFNJVEVTIGlmIHhbInZtaWQiXT09MjEwXSkKcm93cz1bXQpmb3IgcGFydCBpbiAoYSxiKToKICAgIGlmIHBhcnQuZ2V0KCJvayIpIGFuZCBpc2luc3RhbmNlKHBhcnQuZ2V0KCJyZXBvcnQiKSxkaWN0KTogcm93cy5leHRlbmQocGFydFsicmVwb3J0Il0uZ2V0KCJyb3dzIikgb3IgW10pCgpzaXRlNz0obGVuKHJvd3MpPT03KQpkYjc9c2l0ZTcgYW5kIGFsbCh4LmdldCgicmMiKT09MCBhbmQgKHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoIm9rIikgaXMgVHJ1ZSBmb3IgeCBpbiByb3dzKQphbGxfcGVybTk9ZGI3IGFuZCBhbGwobGVuKCh4WyJkYiJdLmdldCgicGVybWlzc2lvbl9yb3dzIikgb3IgW10pKT09OSBmb3IgeCBpbiByb3dzKQphbGxfY29tYm9fbm9fZ3JhbT1kYjcgYW5kIGFsbChhbGwobm90IHMuZ2V0KCJjYWNoZV9oYXNfZ3JhbVN1cHBvcnQiKSBmb3IgcyBpbiAoeFsiZGIiXS5nZXQoInN0YWZmIikgb3IgW10pKSBmb3IgeCBpbiByb3dzKQppZmFjZV9zdGF0ZT1beyJzbHVnIjp4LmdldCgic2x1ZyIpLCJyb3dzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiaW50ZXJmYWNlX2dyb3VwX3Jvd3MiKSBvciBbXX0gZm9yIHggaW4gcm93c10KcmVnaXN0cnk9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwicmVnaXN0cnkiOih4LmdldCgiZGIiKSBvciB7fSkuZ2V0KCJyZWdpc3RyeSIpIG9yIFtdLCJwZXJtaXNzaW9uX3RhYmxlcyI6KHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoInBlcm1pc3Npb25fdGFibGVzIikgb3IgW10sInN0YWZmIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgic3RhZmYiKSBvciBbXSwiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIikgb3Ige319IGZvciB4IGluIHJvd3NdCmNvcmVfc2NhbnM9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwiY29yZV9zY2FuIjp4LmdldCgiY29yZV9zY2FuIikgb3IgW119IGZvciB4IGluIHJvd3MgaWYgeC5nZXQoImNvcmVfc2NhbiIpIGlzIG5vdCBOb25lXQoKcmVwb3J0PXsKICJzY2hlbWFfdmVyc2lvbiI6MSwKICJzY29wZSI6IlJFQURfT05MWV9HUkFNX1NVUFBPUlRfUEVSTUlTU0lPTl9SRUdJU1RSWV9BTkRfQlVJTERFUl9SQ0EiLAogInNpdGVfY291bnQiOmxlbihyb3dzKSwKICJjbGFzc2lmaWNhdGlvbiI6ewogICAic2l0ZV9jb3VudF83IjpzaXRlNywKICAgImRiX3Byb2JlXzdvZjciOmRiNywKICAgInBlcm1pc3Npb25fZGVmc185XzdvZjciOmFsbF9wZXJtOSwKICAgInN0YWZmX2NhY2hlX21pc3NpbmdfZ3JhbVN1cHBvcnRfN29mNyI6YWxsX2NvbWJvX25vX2dyYW0sCiAgICJjaGFuZ2VzX21hZGUiOkZhbHNlLAogICAic2VuZF9hdHRlbXB0cyI6MAogfSwKICJpbnRlcmZhY2VfZ3JvdXBfc3RhdGUiOmlmYWNlX3N0YXRlLAogInJlZ2lzdHJ5X2FuZF9jb21iaW5hdGlvbl9zdGF0ZSI6cmVnaXN0cnksCiAiY29yZV9zb3VyY2Vfc2NhbnMiOmNvcmVfc2NhbnMsCiAidHJhbnNwb3J0Ijp7InZtMTYwIjp7azp2IGZvciBrLHYgaW4gYS5pdGVtcygpIGlmIGshPSJyZXBvcnQifSwidm0yMTAiOntrOnYgZm9yIGssdiBpbiBiLml0ZW1zKCkgaWYgayE9InJlcG9ydCJ9fQp9CnByaW50KCJHUkFNNTE1UjJSMV9TQUZFX1JFUE9SVD0iK2pzb24uZHVtcHMocmVwb3J0LGVuc3VyZV9hc2NpaT1UcnVlLHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCIsIiwiOiIpKSkKaWYgc2l0ZTcgYW5kIGRiNzoKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1QQVNTX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0VWSURFTkNFX0NBUFRVUkVEIikKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ORVhUX0dBVEU9UkVWSUVXX0VYQUNUX1VQU1RSRUFNX0NBQ0hFX09SX01FVEFEQVRBX0ZJWCIpCiAgICBzdD0iT0siO3JjPTAKZWxzZToKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1IT0xEX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0lOQ09NUExFVEUiKQogICAgcHJpbnQoIkdSQU01MTVSMlIxX05FWFRfR0FURT1TVE9QX05PX01VVEFUSU9OIikKICAgIHN0PSJGQUlMIjtyYz0zCnByaW50KCJIT01FTEFCX1JFU1VMVF9DT05UUkFDVD0iK2pzb24uZHVtcHMoeyJ2ZXJzaW9uIjoxLCJjb21tYW5kX2lkIjpDSUQsInN0YXR1cyI6c3QsImNoYW5nZXNfbWFkZSI6RmFsc2UsInJvbGxiYWNrX3N0YXJ0ZWQiOkZhbHNlLCJyb2xsYmFja19yZXN0b3JlZCI6Tm9uZX0sc2VwYXJhdG9ycz0oIiwiLCI6IikpKQpyYWlzZSBTeXN0ZW1FeGl0KHJjKQo="),"","exec")) + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 3, in +NameError: name 'true' is not defined. Did you mean: 'True'? + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index d5418f32..433aef57 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1 +1,38 @@ -{"schema_version":1,"channel":"homelab-runtime","command_id":"CONTEXT-AUTO-20260918T041701Z","status":"OK","rc":0,"host":"pve01","mode":"read-only","component":"cluster-context","started_at_utc":"2026-09-18T04:17:01Z","finished_at_utc":"2026-09-18T04:17:02Z","reference_register_checked":true,"reference_sha256":"5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66","error_register_checked":true,"error_register_sha256":"3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0","changes_made":false,"sanitized":true,"secrets_included":false,"private_addresses_included":false,"output":"AUTOMATIC_CLUSTER_CONTEXT_REFRESH=OK"} +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1", + "status": "FAIL", + "rc": 1, + "host": "pve01", + "mode": "read-only", + "component": "gram-support-permission-registry-rca", + "started_at_utc": "2026-09-18T04:24:44Z", + "finished_at_utc": "2026-09-18T04:24:44Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "325172ba0d369dcfaf99973ef6c61e5f8558b496d7f47e4e766fa44ed64f23ce", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 1, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5", + "sanitized_output_sha256": "5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "Traceback (most recent call last):\n File \"\", line 1, in \n import base64;exec(compile(base64.b64decode(\"aW1wb3J0IG9zLHN5cyxqc29uLHN1YnByb2Nlc3MsaGFzaGxpYixiYXNlNjQKQ0lEPSdTVVBQT1JULTI2MDkxOC1HUkFNLVNVUFBPUlQtUEVSTUlTU0lPTi1SRUdJU1RSWS1SQ0EtNTE1UjJSMScKU0lURVM9W3sic2x1ZyI6ImNvZGV2aXBlIiwidm1pZCI6MTYwLCJob3N0IjoicHZlMDIiLCJwdWJsaWMiOiIvdmFyL3d3dy9mb3J1bXMvY29kZXZpcGUvcHVibGljIiwic2Nhbl9jb3JlIjp0cnVlfSx7InNsdWciOiJkc21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9kc21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiZ2FtZXZpcGUiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9nYW1ldmlwZS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJoa21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9oa21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoia2luZ29md29sayIsInZtaWQiOjE2MCwiaG9zdCI6InB2ZTAyIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL2tpbmdvZndvbGsvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiemFrcnV0aW0iLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy96YWtydXRpbS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJuZXdmaSIsInZtaWQiOjIxMCwiaG9zdCI6InB2ZTAxIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL25ld2ZpL3B1YmxpYyIsInNjYW5fY29yZSI6dHJ1ZX1dCkdVRVNUPWJhc2U2NC5iNjRkZWNvZGUoJ0NtbHRjRzl5ZENCdmN5eHplWE1zYW5OdmJpeHpkV0p3Y205alpYTnpMSFJsYlhCbWFXeGxMR2hoYzJoc2FXSXNjbVVLWm5KdmJTQndZWFJvYkdsaUlHbHRjRzl5ZENCUVlYUm9DZ3B5WlhFOWFuTnZiaTVzYjJGa2N5aHplWE11YzNSa2FXNHVjbVZoWkNncEtRcHphWFJsY3oxeVpYRmJJbk5wZEdWeklsMEtjR2h3WDJOdlpHVTlKencvY0dod1hHNGtjbTl2ZEQwa1lYSm5kbHN4WFQ4L1hDZGNKenRjYmlSemJIVm5QU1JoY21kMld6SmRQejljSjF3bk8xeHVKRzkxZEQxYlhDZHpiSFZuWENjOVBpUnpiSFZuTEZ3bmIydGNKejArWm1Gc2MyVXNYQ2RsY25KdmNsd25QVDV1ZFd4c1hUdGNibHh1Wm5WdVkzUnBiMjRnWm1GcGJGOXZkWFFvSmlSdmRYUXNKRzBzSkhKalBUTXBYRzU3WEc0Z0lDQWdKRzkxZEZ0Y0oyVnljbTl5WENkZFBTUnRPMXh1SUNBZ0lHVmphRzhnYW5OdmJsOWxibU52WkdVb0pHOTFkQ3hLVTA5T1gxVk9SVk5EUVZCRlJGOVRURUZUU0VWVGZFcFRUMDVmVlU1RlUwTkJVRVZFWDFWT1NVTlBSRVVwTzF4dUlDQWdJR1Y0YVhRb0pISmpLVHRjYm4xY2JtWjFibU4wYVc5dUlITmhabVZmZFc1elpYSW9KSFlwWEc1N1hHNGdJQ0FnSkhnOVFIVnVjMlZ5YVdGc2FYcGxLQ1IyS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5mWVhKeVlYa29KSGdwUHlSNE9tNTFiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZU2xjYm50Y2JpQWdJQ0JwWmlnaGFYTmZZWEp5WVhrb0pHRXBLU0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdKR3M5WVhKeVlYbGZiV0Z3S0Z3bmMzUnlkbUZzWENjc1lYSnlZWGxmYTJWNWN5Z2tZU2twTzF4dUlDQWdJSE52Y25Rb0pHc3NVMDlTVkY5VFZGSkpUa2NwTzF4dUlDQWdJSEpsZEhWeWJpQWthenRjYm4xY2JseHVhV1lvSkhKdmIzUTlQVDFjSjF3bmZId2hhWE5mWm1sc1pTZ2tjbTl2ZEM1Y0p5OXpjbU12V0VZdWNHaHdYQ2NwS1NCbVlXbHNYMjkxZENna2IzVjBMRnduVWs5UFZGOUpUbFpCVEVsRVhDY3BPMXh1WEc1MGNubGNibnRjYmlBZ0lDQnlaWEYxYVhKbElDUnliMjkwTGx3bkwzTnlZeTlZUmk1d2FIQmNKenRjYmlBZ0lDQmNYRmhHT2pwemRHRnlkQ2drY205dmRDazdYRzRnSUNBZ0pHRndjRDFjWEZoR09qcHpaWFIxY0VGd2NDaGNKMWhHWEZ4RGJHbGNYRUZ3Y0Z3bktUdGNiaUFnSUNBa1pHSTlYRnhZUmpvNlpHSW9LVHRjYmx4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymx3blhUMGtaR0l0UG1abGRHTm9VbTkzS0NKVFJVeEZRMVFnWVdOMGFYWmxMSFpsY25OcGIyNWZhV1FnUmxKUFRTQjRabDloWkdSdmJpQlhTRVZTUlNCaFpHUnZibDlwWkQxY0owZHlZVzB2VTNWd2NHOXlkRnduSWlrN1hHNWNiaUFnSUNBa2IzVjBXMXduY0dWeWJXbHpjMmx2Ymw5eWIzZHpYQ2RkUFNSa1lpMCtabVYwWTJoQmJHd29JbHh1SUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZhV1FzY0dWeWJXbHpjMmx2Ymw5bmNtOTFjRjlwWkN4d1pYSnRhWE56YVc5dVgzUjVjR1VzYVc1MFpYSm1ZV05sWDJkeWIzVndYMmxrTEdSbGNHVnVaRjl3WlhKdGFYTnphVzl1WDJsa0xHUnBjM0JzWVhsZmIzSmtaWElzWVdSa2IyNWZhV1JjYmlBZ0lDQWdJRVpTVDAwZ2VHWmZjR1Z5YldsemMybHZibHh1SUNBZ0lDQWdWMGhGVWtVZ2NHVnliV2x6YzJsdmJsOW5jbTkxY0Y5cFpEMWNKMmR5WVcxVGRYQndiM0owWENkY2JpQWdJQ0FnSUU5U1JFVlNJRUpaSUhCbGNtMXBjM05wYjI1ZmFXUmNiaUFnSUNBaUtUdGNibHh1SUNBZ0lDUnZkWFJiWENkd1pYSnRhWE56YVc5dVgyVnVkSEo1WDJOdmRXNTBjMXduWFQwa1pHSXRQbVpsZEdOb1FXeHNLQ0pjYmlBZ0lDQWdJRk5GVEVWRFZDQjFjMlZ5WDJkeWIzVndYMmxrTEhWelpYSmZhV1FzUTA5VlRsUW9LaWtnUVZNZ2NtOTNYMk52ZFc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUZOVlRTaHdaWEp0YVhOemFXOXVYM1poYkhWbFBWd25ZV3hzYjNkY0p5a2dRVk1nWVd4c2IzZGZZMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnVTFWTktIQmxjbTFwYzNOcGIyNWZkbUZzZFdVOVhDZHVaWFpsY2x3bktTQkJVeUJ1WlhabGNsOWpiM1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0JUVlUwb2NHVnliV2x6YzJsdmJsOTJZV3gxWlQxY0oyUmxibmxjSnlrZ1FWTWdaR1Z1ZVY5amIzVnVkRnh1SUNBZ0lDQWdSbEpQVFNCNFpsOXdaWEp0YVhOemFXOXVYMlZ1ZEhKNVhHNGdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJkeWIzVndYMmxrUFZ3blozSmhiVk4xY0hCdmNuUmNKMXh1SUNBZ0lDQWdSMUpQVlZBZ1Fsa2dkWE5sY2w5bmNtOTFjRjlwWkN4MWMyVnlYMmxrWEc0Z0lDQWdJQ0JQVWtSRlVpQkNXU0IxYzJWeVgybGtMSFZ6WlhKZlozSnZkWEJmYVdSY2JpQWdJQ0FpS1R0Y2JseHVJQ0FnSUNSMFlXSnNaWE05SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1ZFRkNURVZmVGtGTlJWeHVJQ0FnSUNBZ1JsSlBUU0JwYm1admNtMWhkR2x2Ymw5elkyaGxiV0V1VkVGQ1RFVlRYRzRnSUNBZ0lDQlhTRVZTUlNCVVFVSk1SVjlUUTBoRlRVRTlSRUZVUVVKQlUwVW9LU0JCVGtRZ1ZFRkNURVZmVGtGTlJTQk1TVXRGSUZ3bmVHWmZjR1Z5YldsemMybHZiaVZjSjF4dUlDQWdJQ0FnVDFKRVJWSWdRbGtnVkVGQ1RFVmZUa0ZOUlZ4dUlDQWdJQ0lwTzF4dUlDQWdJQ1J2ZFhSYlhDZHdaWEp0YVhOemFXOXVYM1JoWW14bGMxd25YVDFoY25KaGVWOXRZWEFvWm00b0pISXBQVDRvYzNSeWFXNW5LU1J5VzF3blZFRkNURVZmVGtGTlJWd25YU3drZEdGaWJHVnpLVHRjYmx4dUlDQWdJR2xtS0dsdVgyRnljbUY1S0Z3bmVHWmZjR1Z5YldsemMybHZibDlwYm5SbGNtWmhZMlZmWjNKdmRYQmNKeXdrYjNWMFcxd25jR1Z5YldsemMybHZibDkwWVdKc1pYTmNKMTBzZEhKMVpTa3BYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWtiM1YwVzF3bmFXNTBaWEptWVdObFgyZHliM1Z3WDNKdmQzTmNKMTA5SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQWdJQ0FnVTBWTVJVTlVJQ29nUmxKUFRTQjRabDl3WlhKdGFYTnphVzl1WDJsdWRHVnlabUZqWlY5bmNtOTFjRnh1SUNBZ0lDQWdJQ0FnSUZkSVJWSkZJR2x1ZEdWeVptRmpaVjluY205MWNGOXBaRDFjSjJkeVlXMVRkWEJ3YjNKMFhDZGNiaUFnSUNBZ0lDQWdJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnSkc5MWRGdGNKMmx1ZEdWeVptRmpaVjluY205MWNGOXliM2R6WENkZFBWdGRPMXh1WEc0Z0lDQWdKSE4wWVdabVBTUmtZaTArWm1WMFkyaEJiR3dvSWx4dUlDQWdJQ0FnVTBWTVJVTlVJSFZ6WlhKZmFXUXNkWE5sY2w5bmNtOTFjRjlwWkN4elpXTnZibVJoY25sZlozSnZkWEJmYVdSekxHbHpYMkZrYldsdUxHbHpYMjF2WkdWeVlYUnZjaXh3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtYRzRnSUNBZ0lDQkdVazlOSUhobVgzVnpaWEpjYmlBZ0lDQWdJRmRJUlZKRklHbHpYMkZrYldsdVBURWdUMUlnYVhOZmJXOWtaWEpoZEc5eVBURmNiaUFnSUNBZ0lFOVNSRVZTSUVKWklIVnpaWEpmYVdSY2JpQWdJQ0FpS1R0Y2JpQWdJQ0FrYjNWMFcxd25jM1JoWm1aY0oxMDlXMTA3WEc0Z0lDQWdabTl5WldGamFDZ2tjM1JoWm1ZZ1lYTWdKSFVwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrWTI5dFltODlKR1JpTFQ1bVpYUmphRkp2ZHlnaVhHNGdJQ0FnSUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVmYVdRc2RYTmxjbDlwWkN4MWMyVnlYMmR5YjNWd1gyeHBjM1FzWTJGamFHVmZkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQkdVazlOSUhobVgzQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtQVDljYmlBZ0lDQWdJQ0FnSWl3a2RWdGNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmNKMTBwTzF4dUlDQWdJQ0FnSUNBa1kyRmphR1U5SkdOdmJXSnZQM05oWm1WZmRXNXpaWElvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2RqWVdOb1pWOTJZV3gxWlZ3blhTazZiblZzYkR0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNOMFlXWm1YQ2RkVzEwOVcxeHVJQ0FnSUNBZ0lDQWdJRnduZFhObGNsOXBaRjl6YUdFeU5UWmNKejArYUdGemFDaGNKM05vWVRJMU5sd25MQ2h6ZEhKcGJtY3BKSFZiWENkMWMyVnlYMmxrWENkZEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjNCeWFXMWhjbmxmWjNKdmRYQmZhV1JjSnowK0tHbHVkQ2trZFZ0Y0ozVnpaWEpmWjNKdmRYQmZhV1JjSjEwc1hHNGdJQ0FnSUNBZ0lDQWdYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENjOVBpaHpkSEpwYm1jcEpIVmJYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENkZExGeHVJQ0FnSUNBZ0lDQWdJRnduYVhOZllXUnRhVzVjSnowK0tHSnZiMndwSkhWYlhDZHBjMTloWkcxcGJsd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oybHpYMjF2WkdWeVlYUnZjbHduUFQ0b1ltOXZiQ2trZFZ0Y0oybHpYMjF2WkdWeVlYUnZjbHduWFN4Y2JpQWdJQ0FnSUNBZ0lDQmNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmZjMmhoTWpVMlhDYzlQbWhoYzJnb1hDZHphR0V5TlRaY0p5d29jM1J5YVc1bktTUjFXMXduY0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJsOXBaRnduWFNrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqYjIxaWIxOTFjMlZ5WDJsa1gzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduZFhObGNsOXBaRnduWFNrNmJuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCY0oyTnZiV0p2WDNWelpYSmZaM0p2ZFhCZmJHbHpkRnduUFQ0a1kyOXRZbTgvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2QxYzJWeVgyZHliM1Z3WDJ4cGMzUmNKMTA2Ym5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOaFkyaGxYMko1ZEdWelhDYzlQaVJqYjIxaWJ6OXpkSEpzWlc0b0tITjBjbWx1Wnlra1kyOXRZbTliWENkallXTm9aVjkyWVd4MVpWd25YU2s2TUN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk5oWTJobFgzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduWTJGamFHVmZkbUZzZFdWY0oxMHBPbTUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqWVdOb1pWOTBiM0JmYkdWMlpXeGZhMlY1YzF3blBUNWhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZMkZqYUdVcExGeHVJQ0FnSUNBZ0lDQWdJRnduWTJGamFHVmZhR0Z6WDJkeVlXMVRkWEJ3YjNKMFhDYzlQbWx6WDJGeWNtRjVLQ1JqWVdOb1pTa21KbWx6YzJWMEtDUmpZV05vWlZ0Y0oyZHlZVzFUZFhCd2IzSjBYQ2RkS1NZbWFYTmZZWEp5WVhrb0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTBwTEZ4dUlDQWdJQ0FnSUNBZ0lGd25aM0poYlZOMWNIQnZjblJmWTJGamFHVmNKejArYVhOZllYSnlZWGtvSkdOaFkyaGxLU1ltYVhOelpYUW9KR05oWTJobFcxd25aM0poYlZOMWNIQnZjblJjSjEwcEppWnBjMTloY25KaGVTZ2tZMkZqYUdWYlhDZG5jbUZ0VTNWd2NHOXlkRnduWFNrL0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTA2Ym5Wc2JGeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnlaV2RwYzNSeWVWSnZkM005SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1pHRjBZVjlyWlhrc1pHRjBZVjkyWVd4MVpWeHVJQ0FnSUNBZ1JsSlBUU0I0Wmw5a1lYUmhYM0psWjJsemRISjVYRzRnSUNBZ0lDQlhTRVZTUlNCa1lYUmhYMnRsZVNCTVNVdEZJRnduSlhCbGNtMXBjM05wYjI0bFhDZGNiaUFnSUNBZ0lDQWdJRTlTSUdSaGRHRmZhMlY1SUV4SlMwVWdYQ2NsVUdWeWJXbHpjMmx2YmlWY0oxeHVJQ0FnSUNBZ0lDQWdUMUlnWkdGMFlWOXJaWGtnU1U0Z0tGd25ZV04wYVhabFFXUmtUMjV6WENjc1hDZGhaR1JQYm5OY0p5bGNiaUFnSUNBZ0lFOVNSRVZTSUVKWklHUmhkR0ZmYTJWNVhHNGdJQ0FnSWlrN1hHNGdJQ0FnSkc5MWRGdGNKM0psWjJsemRISjVYQ2RkUFZ0ZE8xeHVJQ0FnSUdadmNtVmhZMmdvSkhKbFoybHpkSEo1VW05M2N5QmhjeUFrY2lsY2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNSMllXdzlLSE4wY21sdVp5a2tjbHRjSjJSaGRHRmZkbUZzZFdWY0oxMDdYRzRnSUNBZ0lDQWdJQ1JoY25JOWMyRm1aVjkxYm5ObGNpZ2tkbUZzS1R0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNKbFoybHpkSEo1WENkZFcxMDlXMXh1SUNBZ0lDQWdJQ0FnSUZ3bmEyVjVYQ2M5UGloemRISnBibWNwSkhKYlhDZGtZWFJoWDJ0bGVWd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oySjVkR1Z6WENjOVBuTjBjbXhsYmlna2RtRnNLU3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNW9ZWE5vS0Z3bmMyaGhNalUyWENjc0pIWmhiQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1hDZGpiMjUwWVdsdWMxOW5jbUZ0VTNWd2NHOXlkRnduUFQ0b2MzUnljRzl6S0NSMllXd3NYQ2RuY21GdFUzVndjRzl5ZEZ3bktTRTlQV1poYkhObEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOdmJuUmhhVzV6WDBkeVlXMVRkWEJ3YjNKMFhDYzlQaWh6ZEhKd2IzTW9KSFpoYkN4Y0owZHlZVzB2VTNWd2NHOXlkRnduS1NFOVBXWmhiSE5sS1N4Y2JpQWdJQ0FnSUNBZ0lDQmNKM1J2Y0Y5c1pYWmxiRjlyWlhselhDYzlQbUZ5Y21GNVgzTnNhV05sS0dGeWNtRjVYMnRsZVhOZmMyOXlkR1ZrS0NSaGNuSXBMREFzTVRBd0tWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUmhaR1J2YmtScGNqMGtjbTl2ZEM1Y0p5OXpjbU12WVdSa2IyNXpMMGR5WVcwdlUzVndjRzl5ZEM5ZlpHRjBZVnduTzF4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymw5d1pYSnRhWE56YVc5dVgyUmhkR0ZmWm1sc1pYTmNKMTA5VzEwN1hHNGdJQ0FnWm05eVpXRmphQ2hiWENkd1pYSnRhWE56YVc5dWN5NTRiV3hjSnl4Y0ozQmxjbTFwYzNOcGIyNWZhVzUwWlhKbVlXTmxYMmR5YjNWd2N5NTRiV3hjSjEwZ1lYTWdKR1lwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrY0Qwa1lXUmtiMjVFYVhJdVhDY3ZYQ2N1SkdZN1hHNGdJQ0FnSUNBZ0lDUnZkWFJiWENkaFpHUnZibDl3WlhKdGFYTnphVzl1WDJSaGRHRmZabWxzWlhOY0oxMWJKR1pkUFZ0Y2JpQWdJQ0FnSUNBZ0lDQmNKM0J5WlhObGJuUmNKejArYVhOZlptbHNaU2drY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RpZVhSbGMxd25QVDVwYzE5bWFXeGxLQ1J3S1Q5bWFXeGxjMmw2WlNna2NDazZNQ3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNXBjMTltYVd4bEtDUndLVDlvWVhOb1gyWnBiR1VvWENkemFHRXlOVFpjSnl3a2NDazZiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk52Ym5SaGFXNXpYMmR5WVcxVGRYQndiM0owWENjOVBtbHpYMlpwYkdVb0pIQXBQeWh6ZEhKd2IzTW9LSE4wY21sdVp5bG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5Z2tjQ2tzWENkbmNtRnRVM1Z3Y0c5eWRGd25LU0U5UFdaaGJITmxLVHBtWVd4elpWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnZkWFJiWENkdmExd25YVDEwY25WbE8xeHVJQ0FnSUdWamFHOGdhbk52Ymw5bGJtTnZaR1VvSkc5MWRDeEtVMDlPWDFWT1JWTkRRVkJGUkY5VFRFRlRTRVZUZkVwVFQwNWZWVTVGVTBOQlVFVkVYMVZPU1VOUFJFVXBPMXh1SUNBZ0lHVjRhWFFvTUNrN1hHNTlYRzVqWVhSamFDaFVhSEp2ZDJGaWJHVWdKR1VwWEc1N1hHNGdJQ0FnWm1GcGJGOXZkWFFvSkc5MWRDeGNKMFZZUTBWUVZFbFBUbDljSnk1d2NtVm5YM0psY0d4aFkyVW9YQ2N2VzE1QkxWcGhMWG93TFRsZlhTOWNKeXhjSjE5Y0p5eG5aWFJmWTJ4aGMzTW9KR1VwS1NrN1hHNTlYRzRuQ2dwa1pXWWdjMmhoS0dJcE9pQnlaWFIxY200Z2FHRnphR3hwWWk1emFHRXlOVFlvWWlrdWFHVjRaR2xuWlhOMEtDa0tDbVJsWmlCeWRXNG9ZWEpuZGl4MGFXMWxiM1YwUFRFeU1DazZDaUFnSUNCMGNuazZDaUFnSUNBZ0lDQWdjRDF6ZFdKd2NtOWpaWE56TG5KMWJpaGhjbWQyTEhOMFpHOTFkRDF6ZFdKd2NtOWpaWE56TGxCSlVFVXNjM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVVRWxRUlN4MGFXMWxiM1YwUFhScGJXVnZkWFFzWTJobFkyczlSbUZzYzJVcENpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBdWNtVjBkWEp1WTI5a1pTeHdMbk4wWkc5MWRDeHdMbk4wWkdWeWNnb2dJQ0FnWlhoalpYQjBJSE4xWW5CeWIyTmxjM011VkdsdFpXOTFkRVY0Y0dseVpXUTZDaUFnSUNBZ0lDQWdjbVYwZFhKdUlERXlOQ3hpSWlJc1lpSlVTVTFGVDFWVUlnb0taR1ZtSUhOdmRYSmpaVjl6WTJGdUtISnZiM1FwT2dvZ0lDQWdkR0Z5WjJWMGN6MWJDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMHB2WWk5UVpYSnRhWE56YVc5dVVtVmlkV2xzWkM1d2FIQWlMQW9nSUNBZ0lDQWdJRkJoZEdnb2NtOXZkQ2t2SW5OeVl5OVlSaTlRWlhKdGFYTnphVzl1SWl3S0lDQWdJQ0FnSUNCUVlYUm9LSEp2YjNRcEx5SnpjbU12V0VZdlVtVndiM05wZEc5eWVTSXNDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMFZ1ZEdsMGVTSXNDaUFnSUNCZENpQWdJQ0J3WVhSelBYSmxMbU52YlhCcGJHVW9jaUlvVUdWeWJXbHpjMmx2YmxKbFluVnBiR1I4Y0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJueHdaWEp0YVhOemFXOXVRMkZqYUdWOGNHVnliV2x6YzJsdmJpQmpZV05vWlh4aWRXbHNaRkJsY20xcGMzTnBiMjU4Y21WaWRXbHNaRkJsY20xcGMzTnBiMjU4WjJ4dlltRnNVR1Z5YldsemMybHZibnh3WlhKdGFYTnphVzl1WDJWdWRISjVmSEJsY20xcGMzTnBiMjVmYVc1MFpYSm1ZV05sWDJkeWIzVndmR1JoZEdGU1pXZHBjM1J5ZVh4eVpXZHBjM1J5ZVNraUxISmxMa2twQ2lBZ0lDQnliM2R6UFZ0ZENpQWdJQ0JtYVd4bGN6MWJYUW9nSUNBZ1ptOXlJSFFnYVc0Z2RHRnlaMlYwY3pvS0lDQWdJQ0FnSUNCcFppQjBMbWx6WDJacGJHVW9LVG9LSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNaWE11WVhCd1pXNWtLSFFwQ2lBZ0lDQWdJQ0FnWld4cFppQjBMbWx6WDJScGNpZ3BPZ29nSUNBZ0lDQWdJQ0FnSUNCbWIzSWdjQ0JwYmlCemIzSjBaV1FvZEM1eVoyeHZZaWdpS2k1d2FIQWlLU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjNjOWMzUnlLSEFwTG14dmQyVnlLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNKd1pYSnRhWE56YVc5dUlpQnBiaUJzYjNjZ2IzSWdJblZ6WlhJdWNHaHdJaUJwYmlCc2IzYzZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc1pYTXVZWEJ3Wlc1a0tIQXBDaUFnSUNCelpXVnVQWE5sZENncENpQWdJQ0JtYjNJZ2NDQnBiaUJtYVd4bGN6b0tJQ0FnSUNBZ0lDQnpjRDF6ZEhJb2NDa0tJQ0FnSUNBZ0lDQnBaaUJ6Y0NCcGJpQnpaV1Z1T2lCamIyNTBhVzUxWlFvZ0lDQWdJQ0FnSUhObFpXNHVZV1JrS0hOd0tRb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE05Y0M1eVpXRmtYM1JsZUhRb0luVjBaaTA0SWl4bGNuSnZjbk05SW5KbGNHeGhZMlVpS1M1emNHeHBkR3hwYm1WektDa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1JYaGpaWEIwYVc5dU9nb2dJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaUW9nSUNBZ0lDQWdJR1p2Y2lCcExHeHBibVVnYVc0Z1pXNTFiV1Z5WVhSbEtHeHBibVZ6TERFcE9nb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCd1lYUnpMbk5sWVhKamFDaHNhVzVsS1RvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNGREMGlJQ0l1YW05cGJpaHNhVzVsTG5OMGNtbHdLQ2t1YzNCc2FYUW9LU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUd4bGJpaDBlSFFwUGpNMk1Eb2dkSGgwUFhSNGRGczZNell3WFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205M2N5NWhjSEJsYm1Rb2V5SndZWFJvSWpwemRISW9jQzV5Wld4aGRHbDJaVjkwYnloeWIyOTBLU2tzSW14cGJtVWlPbWtzSW5SbGVIUWlPblI0ZEgwcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQnNaVzRvY205M2N5aytQVEkyTURvZ2NtVjBkWEp1SUhKdmQzTUtJQ0FnSUhKbGRIVnliaUJ5YjNkekNncG1aQ3h3WVhSb1BYUmxiWEJtYVd4bExtMXJjM1JsYlhBb2NISmxabWw0UFNKbmNtRnROVEUxY2pKeU1TMGlMSE4xWm1acGVEMGlMbkJvY0NJcE95QnZjeTVqYkc5elpTaG1aQ2tLVUdGMGFDaHdZWFJvS1M1M2NtbDBaVjkwWlhoMEtIQm9jRjlqYjJSbExHVnVZMjlrYVc1blBTSjFkR1l0T0NJcE95QnZjeTVqYUcxdlpDaHdZWFJvTERCdk5qQXdLUXB5YjNkelBWdGRDblJ5ZVRvS0lDQWdJR1p2Y2lCeklHbHVJSE5wZEdWek9nb2dJQ0FnSUNBZ0lIQTljM1ZpY0hKdlkyVnpjeTV5ZFc0b0NpQWdJQ0FnSUNBZ0lDQWdJRnNpTDNWemNpOWlhVzR2Y0dod0lpd2lMV1FpTENKa2FYTndiR0Y1WDJWeWNtOXljejB3SWl4d1lYUm9MSE5iSW5CMVlteHBZeUpkTEhOYkluTnNkV2NpWFYwc0NpQWdJQ0FnSUNBZ0lDQWdJSE4wWkc5MWREMXpkV0p3Y205alpYTnpMbEJKVUVVc2MzUmtaWEp5UFhOMVluQnliMk5sYzNNdVVFbFFSU3gwYVcxbGIzVjBQVEV5TUN4amFHVmphejFHWVd4elpRb2dJQ0FnSUNBZ0lDa0tJQ0FnSUNBZ0lDQnliM2M5ZXlKemJIVm5JanB6V3lKemJIVm5JbDBzSW5KaklqcHdMbkpsZEhWeWJtTnZaR1VzSW5OMFpHVnljbDl6YUdFeU5UWWlPbk5vWVNod0xuTjBaR1Z5Y2lrc0luTjBaR1Z5Y2w5aWVYUmxjeUk2YkdWdUtIQXVjM1JrWlhKeUtYMEtJQ0FnSUNBZ0lDQjBjbms2SUhKdmQxc2laR0lpWFQxcWMyOXVMbXh2WVdSektIQXVjM1JrYjNWMExtUmxZMjlrWlNnaWRYUm1MVGdpTENKemRISnBZM1FpS1NrS0lDQWdJQ0FnSUNCbGVHTmxjSFFnUlhoalpYQjBhVzl1SUdGeklHVTZDaUFnSUNBZ0lDQWdJQ0FnSUhKdmQxc2ljR0Z5YzJWZlpYSnliM0lpWFQxMGVYQmxLR1VwTGw5ZmJtRnRaVjlmTzNKdmQxc2ljM1JrYjNWMFgzTm9ZVEkxTmlKZFBYTm9ZU2h3TG5OMFpHOTFkQ2tLSUNBZ0lDQWdJQ0JwWmlCekxtZGxkQ2dpYzJOaGJsOWpiM0psSWlrNkNpQWdJQ0FnSUNBZ0lDQWdJSEp2ZDFzaVkyOXlaVjl6WTJGdUlsMDljMjkxY21ObFgzTmpZVzRvYzFzaWNIVmliR2xqSWwwcENpQWdJQ0FnSUNBZ2NtOTNjeTVoY0hCbGJtUW9jbTkzS1FwbWFXNWhiR3g1T2dvZ0lDQWdkSEo1T2lCdmN5NTFibXhwYm1zb2NHRjBhQ2tLSUNBZ0lHVjRZMlZ3ZENCRmVHTmxjSFJwYjI0NklIQmhjM01LY0hKcGJuUW9hbk52Ymk1a2RXMXdjeWg3SW5KdmQzTWlPbkp2ZDNOOUxHVnVjM1Z5WlY5aGMyTnBhVDFVY25WbExITnZjblJmYTJWNWN6MVVjblZsTEhObGNHRnlZWFJ2Y25NOUtDSXNJaXdpT2lJcEtTa0snKQoKZGVmIHNoYShiKTogcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGIpLmhleGRpZ2VzdCgpCmRlZiBydW4oYXJndixzdGRpbj1iIiIsdGltZW91dD0yMjApOgogICAgdHJ5OgogICAgICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1zdGRpbixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0LGNoZWNrPUZhbHNlLGVudj17Kipvcy5lbnZpcm9uLCJMQ19BTEwiOiJDIn0pCiAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSxwLnN0ZG91dCxwLnN0ZGVycgogICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6IHJldHVybiAxMjQsYiIiLGIiVElNRU9VVCIKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmV0dXJuIDEyNSxiIiIsdHlwZShlKS5fX25hbWVfXy5lbmNvZGUoKQpkZWYgcGFyc2VfcWdhKHJjLG91dCxlcnIpOgogICAgej17InRyYW5zcG9ydF9yYyI6cmMsInRyYW5zcG9ydF9zdGRlcnJfc2hhMjU2IjpzaGEoZXJyKSwidHJhbnNwb3J0X3N0ZGVycl9ieXRlcyI6bGVuKGVycil9CiAgICBpZiByYyE9MDogelsib2siXT1GYWxzZTsgcmV0dXJuIHoKICAgIHRyeTogZG9jPWpzb24ubG9hZHMob3V0LmRlY29kZSgidXRmLTgiLCJzdHJpY3QiKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogelsib2siXT1GYWxzZTt6WyJlcnJvciJdPSJRR0FfSlNPTl8iK3R5cGUoZSkuX19uYW1lX187cmV0dXJuIHoKICAgIGlmIGRvYy5nZXQoIm91dC10cnVuY2F0ZWQiKSBvciBkb2MuZ2V0KCJlcnItdHJ1bmNhdGVkIik6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iUUdBX1RSVU5DQVRFRCI7cmV0dXJuIHoKICAgIHpbImlubmVyX3JjIl09ZG9jLmdldCgiZXhpdGNvZGUiKTt6WyJndWVzdF9zdGRlcnJfcHJlc2VudCJdPWJvb2woZG9jLmdldCgiZXJyLWRhdGEiKSkKICAgIHRyeToKICAgICAgICB6WyJyZXBvcnQiXT1qc29uLmxvYWRzKGRvYy5nZXQoIm91dC1kYXRhIiwiIikpO3pbIm9rIl09KGRvYy5nZXQoImV4aXRjb2RlIik9PTApCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iR1VFU1RfSlNPTl8iK3R5cGUoZSkuX19uYW1lX18KICAgIHJldHVybiB6CmRlZiBwYXlsb2FkKHNzKToKICAgIGQ9anNvbi5kdW1wcyh7InNpdGVzIjpzc30sc2VwYXJhdG9ycz0oIiwiLCI6IikpCiAgICByZXR1cm4gKCJpbXBvcnQgYmFzZTY0LHN5cyxpbztzeXMuc3RkaW49aW8uU3RyaW5nSU8oIityZXByKGQpKyIpO2V4ZWMoY29tcGlsZShiYXNlNjQuYjY0ZGVjb2RlKCIrcmVwcihiYXNlNjQuYjY0ZW5jb2RlKEdVRVNUKS5kZWNvZGUoKSkrIiksJzxnPicsJ2V4ZWMnKSkiKS5lbmNvZGUoKQpkZWYgcWdhX3B2ZTAyKHNzKToKICAgIGd1YXJkPSd0ZXN0ICIkKGlkIC11KTokKGhvc3RuYW1lIC1zKSIgPSAwOnB2ZTAyIHx8IGV4aXQgNzI7IGV4ZWMgL3Vzci9zYmluL3FtIGd1ZXN0IGV4ZWMgMTYwIC0tc3luY2hyb25vdXMgMSAtLXRpbWVvdXQgMTkwIC0tcGFzcy1zdGRpbiAxIC0tIC91c3IvYmluL3B5dGhvbjMgLUkgLUIgLScKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9iaW4vc3NoIiwiLVQiLCItbyIsIkJhdGNoTW9kZT15ZXMiLCItbyIsIlN0cmljdEhvc3RLZXlDaGVja2luZz15ZXMiLCItbyIsIkNvbm5lY3RUaW1lb3V0PTgiLCJyb290QHB2ZTAyIixndWFyZF0scGF5bG9hZChzcyksMjE1KQogICAgcmV0dXJuIHBhcnNlX3FnYShyYyxvdXQsZXJyKQpkZWYgcWdhX2xvY2FsKHNzKToKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9zYmluL3FtIiwiZ3Vlc3QiLCJleGVjIiwiMjEwIiwiLS1zeW5jaHJvbm91cyIsIjEiLCItLXRpbWVvdXQiLCIxOTAiLCItLXBhc3Mtc3RkaW4iLCIxIiwiLS0iLCIvdXNyL2Jpbi9weXRob24zIiwiLUkiLCItQiIsIi0iXSxwYXlsb2FkKHNzKSwyMTUpCiAgICByZXR1cm4gcGFyc2VfcWdhKHJjLG91dCxlcnIpCgppZiBvcy5nZXRldWlkKCkhPTAgb3Igb3MudW5hbWUoKS5ub2RlbmFtZS5zcGxpdCgiLiIpWzBdIT0icHZlMDEiOgogICAgcHJpbnQoIkdSQU01MTVSMlIxX0RFQ0lTSU9OPUZBSUxfRVhQRUNURURfUk9PVF9QVkUwMSIpCiAgICBwcmludCgiSE9NRUxBQl9SRVNVTFRfQ09OVFJBQ1Q9Iitqc29uLmR1bXBzKHsidmVyc2lvbiI6MSwiY29tbWFuZF9pZCI6Q0lELCJzdGF0dXMiOiJGQUlMIiwiY2hhbmdlc19tYWRlIjpGYWxzZSwicm9sbGJhY2tfc3RhcnRlZCI6RmFsc2UsInJvbGxiYWNrX3Jlc3RvcmVkIjpOb25lfSxzZXBhcmF0b3JzPSgiLCIsIjoiKSkpCiAgICByYWlzZSBTeXN0ZW1FeGl0KDMpCgphPXFnYV9wdmUwMihbeCBmb3IgeCBpbiBTSVRFUyBpZiB4WyJ2bWlkIl09PTE2MF0pCmI9cWdhX2xvY2FsKFt4IGZvciB4IGluIFNJVEVTIGlmIHhbInZtaWQiXT09MjEwXSkKcm93cz1bXQpmb3IgcGFydCBpbiAoYSxiKToKICAgIGlmIHBhcnQuZ2V0KCJvayIpIGFuZCBpc2luc3RhbmNlKHBhcnQuZ2V0KCJyZXBvcnQiKSxkaWN0KTogcm93cy5leHRlbmQocGFydFsicmVwb3J0Il0uZ2V0KCJyb3dzIikgb3IgW10pCgpzaXRlNz0obGVuKHJvd3MpPT03KQpkYjc9c2l0ZTcgYW5kIGFsbCh4LmdldCgicmMiKT09MCBhbmQgKHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoIm9rIikgaXMgVHJ1ZSBmb3IgeCBpbiByb3dzKQphbGxfcGVybTk9ZGI3IGFuZCBhbGwobGVuKCh4WyJkYiJdLmdldCgicGVybWlzc2lvbl9yb3dzIikgb3IgW10pKT09OSBmb3IgeCBpbiByb3dzKQphbGxfY29tYm9fbm9fZ3JhbT1kYjcgYW5kIGFsbChhbGwobm90IHMuZ2V0KCJjYWNoZV9oYXNfZ3JhbVN1cHBvcnQiKSBmb3IgcyBpbiAoeFsiZGIiXS5nZXQoInN0YWZmIikgb3IgW10pKSBmb3IgeCBpbiByb3dzKQppZmFjZV9zdGF0ZT1beyJzbHVnIjp4LmdldCgic2x1ZyIpLCJyb3dzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiaW50ZXJmYWNlX2dyb3VwX3Jvd3MiKSBvciBbXX0gZm9yIHggaW4gcm93c10KcmVnaXN0cnk9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwicmVnaXN0cnkiOih4LmdldCgiZGIiKSBvciB7fSkuZ2V0KCJyZWdpc3RyeSIpIG9yIFtdLCJwZXJtaXNzaW9uX3RhYmxlcyI6KHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoInBlcm1pc3Npb25fdGFibGVzIikgb3IgW10sInN0YWZmIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgic3RhZmYiKSBvciBbXSwiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIikgb3Ige319IGZvciB4IGluIHJvd3NdCmNvcmVfc2NhbnM9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwiY29yZV9zY2FuIjp4LmdldCgiY29yZV9zY2FuIikgb3IgW119IGZvciB4IGluIHJvd3MgaWYgeC5nZXQoImNvcmVfc2NhbiIpIGlzIG5vdCBOb25lXQoKcmVwb3J0PXsKICJzY2hlbWFfdmVyc2lvbiI6MSwKICJzY29wZSI6IlJFQURfT05MWV9HUkFNX1NVUFBPUlRfUEVSTUlTU0lPTl9SRUdJU1RSWV9BTkRfQlVJTERFUl9SQ0EiLAogInNpdGVfY291bnQiOmxlbihyb3dzKSwKICJjbGFzc2lmaWNhdGlvbiI6ewogICAic2l0ZV9jb3VudF83IjpzaXRlNywKICAgImRiX3Byb2JlXzdvZjciOmRiNywKICAgInBlcm1pc3Npb25fZGVmc185XzdvZjciOmFsbF9wZXJtOSwKICAgInN0YWZmX2NhY2hlX21pc3NpbmdfZ3JhbVN1cHBvcnRfN29mNyI6YWxsX2NvbWJvX25vX2dyYW0sCiAgICJjaGFuZ2VzX21hZGUiOkZhbHNlLAogICAic2VuZF9hdHRlbXB0cyI6MAogfSwKICJpbnRlcmZhY2VfZ3JvdXBfc3RhdGUiOmlmYWNlX3N0YXRlLAogInJlZ2lzdHJ5X2FuZF9jb21iaW5hdGlvbl9zdGF0ZSI6cmVnaXN0cnksCiAiY29yZV9zb3VyY2Vfc2NhbnMiOmNvcmVfc2NhbnMsCiAidHJhbnNwb3J0Ijp7InZtMTYwIjp7azp2IGZvciBrLHYgaW4gYS5pdGVtcygpIGlmIGshPSJyZXBvcnQifSwidm0yMTAiOntrOnYgZm9yIGssdiBpbiBiLml0ZW1zKCkgaWYgayE9InJlcG9ydCJ9fQp9CnByaW50KCJHUkFNNTE1UjJSMV9TQUZFX1JFUE9SVD0iK2pzb24uZHVtcHMocmVwb3J0LGVuc3VyZV9hc2NpaT1UcnVlLHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCIsIiwiOiIpKSkKaWYgc2l0ZTcgYW5kIGRiNzoKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1QQVNTX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0VWSURFTkNFX0NBUFRVUkVEIikKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ORVhUX0dBVEU9UkVWSUVXX0VYQUNUX1VQU1RSRUFNX0NBQ0hFX09SX01FVEFEQVRBX0ZJWCIpCiAgICBzdD0iT0siO3JjPTAKZWxzZToKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1IT0xEX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0lOQ09NUExFVEUiKQogICAgcHJpbnQoIkdSQU01MTVSMlIxX05FWFRfR0FURT1TVE9QX05PX01VVEFUSU9OIikKICAgIHN0PSJGQUlMIjtyYz0zCnByaW50KCJIT01FTEFCX1JFU1VMVF9DT05UUkFDVD0iK2pzb24uZHVtcHMoeyJ2ZXJzaW9uIjoxLCJjb21tYW5kX2lkIjpDSUQsInN0YXR1cyI6c3QsImNoYW5nZXNfbWFkZSI6RmFsc2UsInJvbGxiYWNrX3N0YXJ0ZWQiOkZhbHNlLCJyb2xsYmFja19yZXN0b3JlZCI6Tm9uZX0sc2VwYXJhdG9ycz0oIiwiLCI6IikpKQpyYWlzZSBTeXN0ZW1FeGl0KHJjKQo=\"),\"\",\"exec\"))\n ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\", line 3, in \nNameError: name 'true' is not defined. Did you mean: 'True'?\n" +} diff --git a/runtime/latest.txt b/runtime/latest.txt index e0d04c24..93075a94 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,162 +1,38 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=CONTEXT-AUTO-[PRIVATE_IP]701Z -STATUS=OK -RC=0 +COMMAND_ID=SUPPORT-260918-GRAM-SUPPORT-PERMISSION-REGISTRY-RCA-515R2R1 +STATUS=FAIL +RC=1 HOST=pve01 -COMPONENT=cluster-context -REFERENCE_SHA[PRIVATE_IP]e5154c41cb[PRIVATE_IP]aca68090be[PRIVATE_IP]bf[PRIVATE_IP]df[PRIVATE_IP] -ERROR_REGISTER_SHA[PRIVATE_IP]ec0f527ed3afeed[PRIVATE_IP]ee[PRIVATE_IP]bbfb[PRIVATE_IP]af4ba7ba0 +MODE=read-only +COMPONENT=gram-support-permission-registry-rca +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=325172ba0d369dcfaf99973ef6c61e5f8558b496d7f47e4e766fa44ed64f23ce +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=1 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5 +SANITIZED_OUTPUT_SHA256=5b5ba6c89c2b4c6be181ed7bde5c7ff8cbad27cdf16f43bc479ed3e4cd373ee5 OUTPUT_BEGIN -GENERATED_AT_UTC=[PRIVATE_IP]T04:17:01Z -Cluster information -------------------- -Name: homelab -Config Version: 3 -Transport: knet -Secure auth: on +Traceback (most recent call last): + File "", line 1, in + import base64;exec(compile(base64.b64decode("aW1wb3J0IG9zLHN5cyxqc29uLHN1YnByb2Nlc3MsaGFzaGxpYixiYXNlNjQKQ0lEPSdTVVBQT1JULTI2MDkxOC1HUkFNLVNVUFBPUlQtUEVSTUlTU0lPTi1SRUdJU1RSWS1SQ0EtNTE1UjJSMScKU0lURVM9W3sic2x1ZyI6ImNvZGV2aXBlIiwidm1pZCI6MTYwLCJob3N0IjoicHZlMDIiLCJwdWJsaWMiOiIvdmFyL3d3dy9mb3J1bXMvY29kZXZpcGUvcHVibGljIiwic2Nhbl9jb3JlIjp0cnVlfSx7InNsdWciOiJkc21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9kc21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiZ2FtZXZpcGUiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9nYW1ldmlwZS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJoa21vZHMiLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy9oa21vZHMvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoia2luZ29md29sayIsInZtaWQiOjE2MCwiaG9zdCI6InB2ZTAyIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL2tpbmdvZndvbGsvcHVibGljIiwic2Nhbl9jb3JlIjpmYWxzZX0seyJzbHVnIjoiemFrcnV0aW0iLCJ2bWlkIjoxNjAsImhvc3QiOiJwdmUwMiIsInB1YmxpYyI6Ii92YXIvd3d3L2ZvcnVtcy96YWtydXRpbS9wdWJsaWMiLCJzY2FuX2NvcmUiOmZhbHNlfSx7InNsdWciOiJuZXdmaSIsInZtaWQiOjIxMCwiaG9zdCI6InB2ZTAxIiwicHVibGljIjoiL3Zhci93d3cvZm9ydW1zL25ld2ZpL3B1YmxpYyIsInNjYW5fY29yZSI6dHJ1ZX1dCkdVRVNUPWJhc2U2NC5iNjRkZWNvZGUoJ0NtbHRjRzl5ZENCdmN5eHplWE1zYW5OdmJpeHpkV0p3Y205alpYTnpMSFJsYlhCbWFXeGxMR2hoYzJoc2FXSXNjbVVLWm5KdmJTQndZWFJvYkdsaUlHbHRjRzl5ZENCUVlYUm9DZ3B5WlhFOWFuTnZiaTVzYjJGa2N5aHplWE11YzNSa2FXNHVjbVZoWkNncEtRcHphWFJsY3oxeVpYRmJJbk5wZEdWeklsMEtjR2h3WDJOdlpHVTlKencvY0dod1hHNGtjbTl2ZEQwa1lYSm5kbHN4WFQ4L1hDZGNKenRjYmlSemJIVm5QU1JoY21kMld6SmRQejljSjF3bk8xeHVKRzkxZEQxYlhDZHpiSFZuWENjOVBpUnpiSFZuTEZ3bmIydGNKejArWm1Gc2MyVXNYQ2RsY25KdmNsd25QVDV1ZFd4c1hUdGNibHh1Wm5WdVkzUnBiMjRnWm1GcGJGOXZkWFFvSmlSdmRYUXNKRzBzSkhKalBUTXBYRzU3WEc0Z0lDQWdKRzkxZEZ0Y0oyVnljbTl5WENkZFBTUnRPMXh1SUNBZ0lHVmphRzhnYW5OdmJsOWxibU52WkdVb0pHOTFkQ3hLVTA5T1gxVk9SVk5EUVZCRlJGOVRURUZUU0VWVGZFcFRUMDVmVlU1RlUwTkJVRVZFWDFWT1NVTlBSRVVwTzF4dUlDQWdJR1Y0YVhRb0pISmpLVHRjYm4xY2JtWjFibU4wYVc5dUlITmhabVZmZFc1elpYSW9KSFlwWEc1N1hHNGdJQ0FnSkhnOVFIVnVjMlZ5YVdGc2FYcGxLQ1IyS1R0Y2JpQWdJQ0J5WlhSMWNtNGdhWE5mWVhKeVlYa29KSGdwUHlSNE9tNTFiR3c3WEc1OVhHNW1kVzVqZEdsdmJpQmhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZU2xjYm50Y2JpQWdJQ0JwWmlnaGFYTmZZWEp5WVhrb0pHRXBLU0J5WlhSMWNtNGdXMTA3WEc0Z0lDQWdKR3M5WVhKeVlYbGZiV0Z3S0Z3bmMzUnlkbUZzWENjc1lYSnlZWGxmYTJWNWN5Z2tZU2twTzF4dUlDQWdJSE52Y25Rb0pHc3NVMDlTVkY5VFZGSkpUa2NwTzF4dUlDQWdJSEpsZEhWeWJpQWthenRjYm4xY2JseHVhV1lvSkhKdmIzUTlQVDFjSjF3bmZId2hhWE5mWm1sc1pTZ2tjbTl2ZEM1Y0p5OXpjbU12V0VZdWNHaHdYQ2NwS1NCbVlXbHNYMjkxZENna2IzVjBMRnduVWs5UFZGOUpUbFpCVEVsRVhDY3BPMXh1WEc1MGNubGNibnRjYmlBZ0lDQnlaWEYxYVhKbElDUnliMjkwTGx3bkwzTnlZeTlZUmk1d2FIQmNKenRjYmlBZ0lDQmNYRmhHT2pwemRHRnlkQ2drY205dmRDazdYRzRnSUNBZ0pHRndjRDFjWEZoR09qcHpaWFIxY0VGd2NDaGNKMWhHWEZ4RGJHbGNYRUZ3Y0Z3bktUdGNiaUFnSUNBa1pHSTlYRnhZUmpvNlpHSW9LVHRjYmx4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymx3blhUMGtaR0l0UG1abGRHTm9VbTkzS0NKVFJVeEZRMVFnWVdOMGFYWmxMSFpsY25OcGIyNWZhV1FnUmxKUFRTQjRabDloWkdSdmJpQlhTRVZTUlNCaFpHUnZibDlwWkQxY0owZHlZVzB2VTNWd2NHOXlkRnduSWlrN1hHNWNiaUFnSUNBa2IzVjBXMXduY0dWeWJXbHpjMmx2Ymw5eWIzZHpYQ2RkUFNSa1lpMCtabVYwWTJoQmJHd29JbHh1SUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZhV1FzY0dWeWJXbHpjMmx2Ymw5bmNtOTFjRjlwWkN4d1pYSnRhWE56YVc5dVgzUjVjR1VzYVc1MFpYSm1ZV05sWDJkeWIzVndYMmxrTEdSbGNHVnVaRjl3WlhKdGFYTnphVzl1WDJsa0xHUnBjM0JzWVhsZmIzSmtaWElzWVdSa2IyNWZhV1JjYmlBZ0lDQWdJRVpTVDAwZ2VHWmZjR1Z5YldsemMybHZibHh1SUNBZ0lDQWdWMGhGVWtVZ2NHVnliV2x6YzJsdmJsOW5jbTkxY0Y5cFpEMWNKMmR5WVcxVGRYQndiM0owWENkY2JpQWdJQ0FnSUU5U1JFVlNJRUpaSUhCbGNtMXBjM05wYjI1ZmFXUmNiaUFnSUNBaUtUdGNibHh1SUNBZ0lDUnZkWFJiWENkd1pYSnRhWE56YVc5dVgyVnVkSEo1WDJOdmRXNTBjMXduWFQwa1pHSXRQbVpsZEdOb1FXeHNLQ0pjYmlBZ0lDQWdJRk5GVEVWRFZDQjFjMlZ5WDJkeWIzVndYMmxrTEhWelpYSmZhV1FzUTA5VlRsUW9LaWtnUVZNZ2NtOTNYMk52ZFc1MExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUZOVlRTaHdaWEp0YVhOemFXOXVYM1poYkhWbFBWd25ZV3hzYjNkY0p5a2dRVk1nWVd4c2IzZGZZMjkxYm5Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnVTFWTktIQmxjbTFwYzNOcGIyNWZkbUZzZFdVOVhDZHVaWFpsY2x3bktTQkJVeUJ1WlhabGNsOWpiM1Z1ZEN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0JUVlUwb2NHVnliV2x6YzJsdmJsOTJZV3gxWlQxY0oyUmxibmxjSnlrZ1FWTWdaR1Z1ZVY5amIzVnVkRnh1SUNBZ0lDQWdSbEpQVFNCNFpsOXdaWEp0YVhOemFXOXVYMlZ1ZEhKNVhHNGdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJkeWIzVndYMmxrUFZ3blozSmhiVk4xY0hCdmNuUmNKMXh1SUNBZ0lDQWdSMUpQVlZBZ1Fsa2dkWE5sY2w5bmNtOTFjRjlwWkN4MWMyVnlYMmxrWEc0Z0lDQWdJQ0JQVWtSRlVpQkNXU0IxYzJWeVgybGtMSFZ6WlhKZlozSnZkWEJmYVdSY2JpQWdJQ0FpS1R0Y2JseHVJQ0FnSUNSMFlXSnNaWE05SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1ZFRkNURVZmVGtGTlJWeHVJQ0FnSUNBZ1JsSlBUU0JwYm1admNtMWhkR2x2Ymw5elkyaGxiV0V1VkVGQ1RFVlRYRzRnSUNBZ0lDQlhTRVZTUlNCVVFVSk1SVjlUUTBoRlRVRTlSRUZVUVVKQlUwVW9LU0JCVGtRZ1ZFRkNURVZmVGtGTlJTQk1TVXRGSUZ3bmVHWmZjR1Z5YldsemMybHZiaVZjSjF4dUlDQWdJQ0FnVDFKRVJWSWdRbGtnVkVGQ1RFVmZUa0ZOUlZ4dUlDQWdJQ0lwTzF4dUlDQWdJQ1J2ZFhSYlhDZHdaWEp0YVhOemFXOXVYM1JoWW14bGMxd25YVDFoY25KaGVWOXRZWEFvWm00b0pISXBQVDRvYzNSeWFXNW5LU1J5VzF3blZFRkNURVZmVGtGTlJWd25YU3drZEdGaWJHVnpLVHRjYmx4dUlDQWdJR2xtS0dsdVgyRnljbUY1S0Z3bmVHWmZjR1Z5YldsemMybHZibDlwYm5SbGNtWmhZMlZmWjNKdmRYQmNKeXdrYjNWMFcxd25jR1Z5YldsemMybHZibDkwWVdKc1pYTmNKMTBzZEhKMVpTa3BYRzRnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWtiM1YwVzF3bmFXNTBaWEptWVdObFgyZHliM1Z3WDNKdmQzTmNKMTA5SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQWdJQ0FnVTBWTVJVTlVJQ29nUmxKUFRTQjRabDl3WlhKdGFYTnphVzl1WDJsdWRHVnlabUZqWlY5bmNtOTFjRnh1SUNBZ0lDQWdJQ0FnSUZkSVJWSkZJR2x1ZEdWeVptRmpaVjluY205MWNGOXBaRDFjSjJkeVlXMVRkWEJ3YjNKMFhDZGNiaUFnSUNBZ0lDQWdJaWs3WEc0Z0lDQWdmVnh1SUNBZ0lHVnNjMlVnSkc5MWRGdGNKMmx1ZEdWeVptRmpaVjluY205MWNGOXliM2R6WENkZFBWdGRPMXh1WEc0Z0lDQWdKSE4wWVdabVBTUmtZaTArWm1WMFkyaEJiR3dvSWx4dUlDQWdJQ0FnVTBWTVJVTlVJSFZ6WlhKZmFXUXNkWE5sY2w5bmNtOTFjRjlwWkN4elpXTnZibVJoY25sZlozSnZkWEJmYVdSekxHbHpYMkZrYldsdUxHbHpYMjF2WkdWeVlYUnZjaXh3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtYRzRnSUNBZ0lDQkdVazlOSUhobVgzVnpaWEpjYmlBZ0lDQWdJRmRJUlZKRklHbHpYMkZrYldsdVBURWdUMUlnYVhOZmJXOWtaWEpoZEc5eVBURmNiaUFnSUNBZ0lFOVNSRVZTSUVKWklIVnpaWEpmYVdSY2JpQWdJQ0FpS1R0Y2JpQWdJQ0FrYjNWMFcxd25jM1JoWm1aY0oxMDlXMTA3WEc0Z0lDQWdabTl5WldGamFDZ2tjM1JoWm1ZZ1lYTWdKSFVwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrWTI5dFltODlKR1JpTFQ1bVpYUmphRkp2ZHlnaVhHNGdJQ0FnSUNBZ0lDQWdVMFZNUlVOVUlIQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVmYVdRc2RYTmxjbDlwWkN4MWMyVnlYMmR5YjNWd1gyeHBjM1FzWTJGamFHVmZkbUZzZFdWY2JpQWdJQ0FnSUNBZ0lDQkdVazlOSUhobVgzQmxjbTFwYzNOcGIyNWZZMjl0WW1sdVlYUnBiMjVjYmlBZ0lDQWdJQ0FnSUNCWFNFVlNSU0J3WlhKdGFYTnphVzl1WDJOdmJXSnBibUYwYVc5dVgybGtQVDljYmlBZ0lDQWdJQ0FnSWl3a2RWdGNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmNKMTBwTzF4dUlDQWdJQ0FnSUNBa1kyRmphR1U5SkdOdmJXSnZQM05oWm1WZmRXNXpaWElvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2RqWVdOb1pWOTJZV3gxWlZ3blhTazZiblZzYkR0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNOMFlXWm1YQ2RkVzEwOVcxeHVJQ0FnSUNBZ0lDQWdJRnduZFhObGNsOXBaRjl6YUdFeU5UWmNKejArYUdGemFDaGNKM05vWVRJMU5sd25MQ2h6ZEhKcGJtY3BKSFZiWENkMWMyVnlYMmxrWENkZEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjNCeWFXMWhjbmxmWjNKdmRYQmZhV1JjSnowK0tHbHVkQ2trZFZ0Y0ozVnpaWEpmWjNKdmRYQmZhV1JjSjEwc1hHNGdJQ0FnSUNBZ0lDQWdYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENjOVBpaHpkSEpwYm1jcEpIVmJYQ2R6WldOdmJtUmhjbmxmWjNKdmRYQmZhV1J6WENkZExGeHVJQ0FnSUNBZ0lDQWdJRnduYVhOZllXUnRhVzVjSnowK0tHSnZiMndwSkhWYlhDZHBjMTloWkcxcGJsd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oybHpYMjF2WkdWeVlYUnZjbHduUFQ0b1ltOXZiQ2trZFZ0Y0oybHpYMjF2WkdWeVlYUnZjbHduWFN4Y2JpQWdJQ0FnSUNBZ0lDQmNKM0JsY20xcGMzTnBiMjVmWTI5dFltbHVZWFJwYjI1ZmFXUmZjMmhoTWpVMlhDYzlQbWhoYzJnb1hDZHphR0V5TlRaY0p5d29jM1J5YVc1bktTUjFXMXduY0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJsOXBaRnduWFNrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqYjIxaWIxOTFjMlZ5WDJsa1gzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduZFhObGNsOXBaRnduWFNrNmJuVnNiQ3hjYmlBZ0lDQWdJQ0FnSUNCY0oyTnZiV0p2WDNWelpYSmZaM0p2ZFhCZmJHbHpkRnduUFQ0a1kyOXRZbTgvS0hOMGNtbHVaeWtrWTI5dFltOWJYQ2QxYzJWeVgyZHliM1Z3WDJ4cGMzUmNKMTA2Ym5Wc2JDeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOaFkyaGxYMko1ZEdWelhDYzlQaVJqYjIxaWJ6OXpkSEpzWlc0b0tITjBjbWx1Wnlra1kyOXRZbTliWENkallXTm9aVjkyWVd4MVpWd25YU2s2TUN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk5oWTJobFgzTm9ZVEkxTmx3blBUNGtZMjl0WW04L2FHRnphQ2hjSjNOb1lUSTFObHduTENoemRISnBibWNwSkdOdmJXSnZXMXduWTJGamFHVmZkbUZzZFdWY0oxMHBPbTUxYkd3c1hHNGdJQ0FnSUNBZ0lDQWdYQ2RqWVdOb1pWOTBiM0JmYkdWMlpXeGZhMlY1YzF3blBUNWhjbkpoZVY5clpYbHpYM052Y25SbFpDZ2tZMkZqYUdVcExGeHVJQ0FnSUNBZ0lDQWdJRnduWTJGamFHVmZhR0Z6WDJkeVlXMVRkWEJ3YjNKMFhDYzlQbWx6WDJGeWNtRjVLQ1JqWVdOb1pTa21KbWx6YzJWMEtDUmpZV05vWlZ0Y0oyZHlZVzFUZFhCd2IzSjBYQ2RkS1NZbWFYTmZZWEp5WVhrb0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTBwTEZ4dUlDQWdJQ0FnSUNBZ0lGd25aM0poYlZOMWNIQnZjblJmWTJGamFHVmNKejArYVhOZllYSnlZWGtvSkdOaFkyaGxLU1ltYVhOelpYUW9KR05oWTJobFcxd25aM0poYlZOMWNIQnZjblJjSjEwcEppWnBjMTloY25KaGVTZ2tZMkZqYUdWYlhDZG5jbUZ0VTNWd2NHOXlkRnduWFNrL0pHTmhZMmhsVzF3blozSmhiVk4xY0hCdmNuUmNKMTA2Ym5Wc2JGeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnlaV2RwYzNSeWVWSnZkM005SkdSaUxUNW1aWFJqYUVGc2JDZ2lYRzRnSUNBZ0lDQlRSVXhGUTFRZ1pHRjBZVjlyWlhrc1pHRjBZVjkyWVd4MVpWeHVJQ0FnSUNBZ1JsSlBUU0I0Wmw5a1lYUmhYM0psWjJsemRISjVYRzRnSUNBZ0lDQlhTRVZTUlNCa1lYUmhYMnRsZVNCTVNVdEZJRnduSlhCbGNtMXBjM05wYjI0bFhDZGNiaUFnSUNBZ0lDQWdJRTlTSUdSaGRHRmZhMlY1SUV4SlMwVWdYQ2NsVUdWeWJXbHpjMmx2YmlWY0oxeHVJQ0FnSUNBZ0lDQWdUMUlnWkdGMFlWOXJaWGtnU1U0Z0tGd25ZV04wYVhabFFXUmtUMjV6WENjc1hDZGhaR1JQYm5OY0p5bGNiaUFnSUNBZ0lFOVNSRVZTSUVKWklHUmhkR0ZmYTJWNVhHNGdJQ0FnSWlrN1hHNGdJQ0FnSkc5MWRGdGNKM0psWjJsemRISjVYQ2RkUFZ0ZE8xeHVJQ0FnSUdadmNtVmhZMmdvSkhKbFoybHpkSEo1VW05M2N5QmhjeUFrY2lsY2JpQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNSMllXdzlLSE4wY21sdVp5a2tjbHRjSjJSaGRHRmZkbUZzZFdWY0oxMDdYRzRnSUNBZ0lDQWdJQ1JoY25JOWMyRm1aVjkxYm5ObGNpZ2tkbUZzS1R0Y2JpQWdJQ0FnSUNBZ0pHOTFkRnRjSjNKbFoybHpkSEo1WENkZFcxMDlXMXh1SUNBZ0lDQWdJQ0FnSUZ3bmEyVjVYQ2M5UGloemRISnBibWNwSkhKYlhDZGtZWFJoWDJ0bGVWd25YU3hjYmlBZ0lDQWdJQ0FnSUNCY0oySjVkR1Z6WENjOVBuTjBjbXhsYmlna2RtRnNLU3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNW9ZWE5vS0Z3bmMyaGhNalUyWENjc0pIWmhiQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1hDZGpiMjUwWVdsdWMxOW5jbUZ0VTNWd2NHOXlkRnduUFQ0b2MzUnljRzl6S0NSMllXd3NYQ2RuY21GdFUzVndjRzl5ZEZ3bktTRTlQV1poYkhObEtTeGNiaUFnSUNBZ0lDQWdJQ0JjSjJOdmJuUmhhVzV6WDBkeVlXMVRkWEJ3YjNKMFhDYzlQaWh6ZEhKd2IzTW9KSFpoYkN4Y0owZHlZVzB2VTNWd2NHOXlkRnduS1NFOVBXWmhiSE5sS1N4Y2JpQWdJQ0FnSUNBZ0lDQmNKM1J2Y0Y5c1pYWmxiRjlyWlhselhDYzlQbUZ5Y21GNVgzTnNhV05sS0dGeWNtRjVYMnRsZVhOZmMyOXlkR1ZrS0NSaGNuSXBMREFzTVRBd0tWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUmhaR1J2YmtScGNqMGtjbTl2ZEM1Y0p5OXpjbU12WVdSa2IyNXpMMGR5WVcwdlUzVndjRzl5ZEM5ZlpHRjBZVnduTzF4dUlDQWdJQ1J2ZFhSYlhDZGhaR1J2Ymw5d1pYSnRhWE56YVc5dVgyUmhkR0ZmWm1sc1pYTmNKMTA5VzEwN1hHNGdJQ0FnWm05eVpXRmphQ2hiWENkd1pYSnRhWE56YVc5dWN5NTRiV3hjSnl4Y0ozQmxjbTFwYzNOcGIyNWZhVzUwWlhKbVlXTmxYMmR5YjNWd2N5NTRiV3hjSjEwZ1lYTWdKR1lwWEc0Z0lDQWdlMXh1SUNBZ0lDQWdJQ0FrY0Qwa1lXUmtiMjVFYVhJdVhDY3ZYQ2N1SkdZN1hHNGdJQ0FnSUNBZ0lDUnZkWFJiWENkaFpHUnZibDl3WlhKdGFYTnphVzl1WDJSaGRHRmZabWxzWlhOY0oxMWJKR1pkUFZ0Y2JpQWdJQ0FnSUNBZ0lDQmNKM0J5WlhObGJuUmNKejArYVhOZlptbHNaU2drY0Nrc1hHNGdJQ0FnSUNBZ0lDQWdYQ2RpZVhSbGMxd25QVDVwYzE5bWFXeGxLQ1J3S1Q5bWFXeGxjMmw2WlNna2NDazZNQ3hjYmlBZ0lDQWdJQ0FnSUNCY0ozTm9ZVEkxTmx3blBUNXBjMTltYVd4bEtDUndLVDlvWVhOb1gyWnBiR1VvWENkemFHRXlOVFpjSnl3a2NDazZiblZzYkN4Y2JpQWdJQ0FnSUNBZ0lDQmNKMk52Ym5SaGFXNXpYMmR5WVcxVGRYQndiM0owWENjOVBtbHpYMlpwYkdVb0pIQXBQeWh6ZEhKd2IzTW9LSE4wY21sdVp5bG1hV3hsWDJkbGRGOWpiMjUwWlc1MGN5Z2tjQ2tzWENkbmNtRnRVM1Z3Y0c5eWRGd25LU0U5UFdaaGJITmxLVHBtWVd4elpWeHVJQ0FnSUNBZ0lDQmRPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDUnZkWFJiWENkdmExd25YVDEwY25WbE8xeHVJQ0FnSUdWamFHOGdhbk52Ymw5bGJtTnZaR1VvSkc5MWRDeEtVMDlPWDFWT1JWTkRRVkJGUkY5VFRFRlRTRVZUZkVwVFQwNWZWVTVGVTBOQlVFVkVYMVZPU1VOUFJFVXBPMXh1SUNBZ0lHVjRhWFFvTUNrN1hHNTlYRzVqWVhSamFDaFVhSEp2ZDJGaWJHVWdKR1VwWEc1N1hHNGdJQ0FnWm1GcGJGOXZkWFFvSkc5MWRDeGNKMFZZUTBWUVZFbFBUbDljSnk1d2NtVm5YM0psY0d4aFkyVW9YQ2N2VzE1QkxWcGhMWG93TFRsZlhTOWNKeXhjSjE5Y0p5eG5aWFJmWTJ4aGMzTW9KR1VwS1NrN1hHNTlYRzRuQ2dwa1pXWWdjMmhoS0dJcE9pQnlaWFIxY200Z2FHRnphR3hwWWk1emFHRXlOVFlvWWlrdWFHVjRaR2xuWlhOMEtDa0tDbVJsWmlCeWRXNG9ZWEpuZGl4MGFXMWxiM1YwUFRFeU1DazZDaUFnSUNCMGNuazZDaUFnSUNBZ0lDQWdjRDF6ZFdKd2NtOWpaWE56TG5KMWJpaGhjbWQyTEhOMFpHOTFkRDF6ZFdKd2NtOWpaWE56TGxCSlVFVXNjM1JrWlhKeVBYTjFZbkJ5YjJObGMzTXVVRWxRUlN4MGFXMWxiM1YwUFhScGJXVnZkWFFzWTJobFkyczlSbUZzYzJVcENpQWdJQ0FnSUNBZ2NtVjBkWEp1SUhBdWNtVjBkWEp1WTI5a1pTeHdMbk4wWkc5MWRDeHdMbk4wWkdWeWNnb2dJQ0FnWlhoalpYQjBJSE4xWW5CeWIyTmxjM011VkdsdFpXOTFkRVY0Y0dseVpXUTZDaUFnSUNBZ0lDQWdjbVYwZFhKdUlERXlOQ3hpSWlJc1lpSlVTVTFGVDFWVUlnb0taR1ZtSUhOdmRYSmpaVjl6WTJGdUtISnZiM1FwT2dvZ0lDQWdkR0Z5WjJWMGN6MWJDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMHB2WWk5UVpYSnRhWE56YVc5dVVtVmlkV2xzWkM1d2FIQWlMQW9nSUNBZ0lDQWdJRkJoZEdnb2NtOXZkQ2t2SW5OeVl5OVlSaTlRWlhKdGFYTnphVzl1SWl3S0lDQWdJQ0FnSUNCUVlYUm9LSEp2YjNRcEx5SnpjbU12V0VZdlVtVndiM05wZEc5eWVTSXNDaUFnSUNBZ0lDQWdVR0YwYUNoeWIyOTBLUzhpYzNKakwxaEdMMFZ1ZEdsMGVTSXNDaUFnSUNCZENpQWdJQ0J3WVhSelBYSmxMbU52YlhCcGJHVW9jaUlvVUdWeWJXbHpjMmx2YmxKbFluVnBiR1I4Y0dWeWJXbHpjMmx2Ymw5amIyMWlhVzVoZEdsdmJueHdaWEp0YVhOemFXOXVRMkZqYUdWOGNHVnliV2x6YzJsdmJpQmpZV05vWlh4aWRXbHNaRkJsY20xcGMzTnBiMjU4Y21WaWRXbHNaRkJsY20xcGMzTnBiMjU4WjJ4dlltRnNVR1Z5YldsemMybHZibnh3WlhKdGFYTnphVzl1WDJWdWRISjVmSEJsY20xcGMzTnBiMjVmYVc1MFpYSm1ZV05sWDJkeWIzVndmR1JoZEdGU1pXZHBjM1J5ZVh4eVpXZHBjM1J5ZVNraUxISmxMa2twQ2lBZ0lDQnliM2R6UFZ0ZENpQWdJQ0JtYVd4bGN6MWJYUW9nSUNBZ1ptOXlJSFFnYVc0Z2RHRnlaMlYwY3pvS0lDQWdJQ0FnSUNCcFppQjBMbWx6WDJacGJHVW9LVG9LSUNBZ0lDQWdJQ0FnSUNBZ1ptbHNaWE11WVhCd1pXNWtLSFFwQ2lBZ0lDQWdJQ0FnWld4cFppQjBMbWx6WDJScGNpZ3BPZ29nSUNBZ0lDQWdJQ0FnSUNCbWIzSWdjQ0JwYmlCemIzSjBaV1FvZEM1eVoyeHZZaWdpS2k1d2FIQWlLU2s2Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JzYjNjOWMzUnlLSEFwTG14dmQyVnlLQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNKd1pYSnRhWE56YVc5dUlpQnBiaUJzYjNjZ2IzSWdJblZ6WlhJdWNHaHdJaUJwYmlCc2IzYzZDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWm1sc1pYTXVZWEJ3Wlc1a0tIQXBDaUFnSUNCelpXVnVQWE5sZENncENpQWdJQ0JtYjNJZ2NDQnBiaUJtYVd4bGN6b0tJQ0FnSUNBZ0lDQnpjRDF6ZEhJb2NDa0tJQ0FnSUNBZ0lDQnBaaUJ6Y0NCcGJpQnpaV1Z1T2lCamIyNTBhVzUxWlFvZ0lDQWdJQ0FnSUhObFpXNHVZV1JrS0hOd0tRb2dJQ0FnSUNBZ0lIUnllVG9LSUNBZ0lDQWdJQ0FnSUNBZ2JHbHVaWE05Y0M1eVpXRmtYM1JsZUhRb0luVjBaaTA0SWl4bGNuSnZjbk05SW5KbGNHeGhZMlVpS1M1emNHeHBkR3hwYm1WektDa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1JYaGpaWEIwYVc5dU9nb2dJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaUW9nSUNBZ0lDQWdJR1p2Y2lCcExHeHBibVVnYVc0Z1pXNTFiV1Z5WVhSbEtHeHBibVZ6TERFcE9nb2dJQ0FnSUNBZ0lDQWdJQ0JwWmlCd1lYUnpMbk5sWVhKamFDaHNhVzVsS1RvS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNGREMGlJQ0l1YW05cGJpaHNhVzVsTG5OMGNtbHdLQ2t1YzNCc2FYUW9LU2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUd4bGJpaDBlSFFwUGpNMk1Eb2dkSGgwUFhSNGRGczZNell3WFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnY205M2N5NWhjSEJsYm1Rb2V5SndZWFJvSWpwemRISW9jQzV5Wld4aGRHbDJaVjkwYnloeWIyOTBLU2tzSW14cGJtVWlPbWtzSW5SbGVIUWlPblI0ZEgwcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQnNaVzRvY205M2N5aytQVEkyTURvZ2NtVjBkWEp1SUhKdmQzTUtJQ0FnSUhKbGRIVnliaUJ5YjNkekNncG1aQ3h3WVhSb1BYUmxiWEJtYVd4bExtMXJjM1JsYlhBb2NISmxabWw0UFNKbmNtRnROVEUxY2pKeU1TMGlMSE4xWm1acGVEMGlMbkJvY0NJcE95QnZjeTVqYkc5elpTaG1aQ2tLVUdGMGFDaHdZWFJvS1M1M2NtbDBaVjkwWlhoMEtIQm9jRjlqYjJSbExHVnVZMjlrYVc1blBTSjFkR1l0T0NJcE95QnZjeTVqYUcxdlpDaHdZWFJvTERCdk5qQXdLUXB5YjNkelBWdGRDblJ5ZVRvS0lDQWdJR1p2Y2lCeklHbHVJSE5wZEdWek9nb2dJQ0FnSUNBZ0lIQTljM1ZpY0hKdlkyVnpjeTV5ZFc0b0NpQWdJQ0FnSUNBZ0lDQWdJRnNpTDNWemNpOWlhVzR2Y0dod0lpd2lMV1FpTENKa2FYTndiR0Y1WDJWeWNtOXljejB3SWl4d1lYUm9MSE5iSW5CMVlteHBZeUpkTEhOYkluTnNkV2NpWFYwc0NpQWdJQ0FnSUNBZ0lDQWdJSE4wWkc5MWREMXpkV0p3Y205alpYTnpMbEJKVUVVc2MzUmtaWEp5UFhOMVluQnliMk5sYzNNdVVFbFFSU3gwYVcxbGIzVjBQVEV5TUN4amFHVmphejFHWVd4elpRb2dJQ0FnSUNBZ0lDa0tJQ0FnSUNBZ0lDQnliM2M5ZXlKemJIVm5JanB6V3lKemJIVm5JbDBzSW5KaklqcHdMbkpsZEhWeWJtTnZaR1VzSW5OMFpHVnljbDl6YUdFeU5UWWlPbk5vWVNod0xuTjBaR1Z5Y2lrc0luTjBaR1Z5Y2w5aWVYUmxjeUk2YkdWdUtIQXVjM1JrWlhKeUtYMEtJQ0FnSUNBZ0lDQjBjbms2SUhKdmQxc2laR0lpWFQxcWMyOXVMbXh2WVdSektIQXVjM1JrYjNWMExtUmxZMjlrWlNnaWRYUm1MVGdpTENKemRISnBZM1FpS1NrS0lDQWdJQ0FnSUNCbGVHTmxjSFFnUlhoalpYQjBhVzl1SUdGeklHVTZDaUFnSUNBZ0lDQWdJQ0FnSUhKdmQxc2ljR0Z5YzJWZlpYSnliM0lpWFQxMGVYQmxLR1VwTGw5ZmJtRnRaVjlmTzNKdmQxc2ljM1JrYjNWMFgzTm9ZVEkxTmlKZFBYTm9ZU2h3TG5OMFpHOTFkQ2tLSUNBZ0lDQWdJQ0JwWmlCekxtZGxkQ2dpYzJOaGJsOWpiM0psSWlrNkNpQWdJQ0FnSUNBZ0lDQWdJSEp2ZDFzaVkyOXlaVjl6WTJGdUlsMDljMjkxY21ObFgzTmpZVzRvYzFzaWNIVmliR2xqSWwwcENpQWdJQ0FnSUNBZ2NtOTNjeTVoY0hCbGJtUW9jbTkzS1FwbWFXNWhiR3g1T2dvZ0lDQWdkSEo1T2lCdmN5NTFibXhwYm1zb2NHRjBhQ2tLSUNBZ0lHVjRZMlZ3ZENCRmVHTmxjSFJwYjI0NklIQmhjM01LY0hKcGJuUW9hbk52Ymk1a2RXMXdjeWg3SW5KdmQzTWlPbkp2ZDNOOUxHVnVjM1Z5WlY5aGMyTnBhVDFVY25WbExITnZjblJmYTJWNWN6MVVjblZsTEhObGNHRnlZWFJ2Y25NOUtDSXNJaXdpT2lJcEtTa0snKQoKZGVmIHNoYShiKTogcmV0dXJuIGhhc2hsaWIuc2hhMjU2KGIpLmhleGRpZ2VzdCgpCmRlZiBydW4oYXJndixzdGRpbj1iIiIsdGltZW91dD0yMjApOgogICAgdHJ5OgogICAgICAgIHA9c3VicHJvY2Vzcy5ydW4oYXJndixpbnB1dD1zdGRpbixzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsdGltZW91dD10aW1lb3V0LGNoZWNrPUZhbHNlLGVudj17Kipvcy5lbnZpcm9uLCJMQ19BTEwiOiJDIn0pCiAgICAgICAgcmV0dXJuIHAucmV0dXJuY29kZSxwLnN0ZG91dCxwLnN0ZGVycgogICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6IHJldHVybiAxMjQsYiIiLGIiVElNRU9VVCIKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogcmV0dXJuIDEyNSxiIiIsdHlwZShlKS5fX25hbWVfXy5lbmNvZGUoKQpkZWYgcGFyc2VfcWdhKHJjLG91dCxlcnIpOgogICAgej17InRyYW5zcG9ydF9yYyI6cmMsInRyYW5zcG9ydF9zdGRlcnJfc2hhMjU2IjpzaGEoZXJyKSwidHJhbnNwb3J0X3N0ZGVycl9ieXRlcyI6bGVuKGVycil9CiAgICBpZiByYyE9MDogelsib2siXT1GYWxzZTsgcmV0dXJuIHoKICAgIHRyeTogZG9jPWpzb24ubG9hZHMob3V0LmRlY29kZSgidXRmLTgiLCJzdHJpY3QiKSkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZTogelsib2siXT1GYWxzZTt6WyJlcnJvciJdPSJRR0FfSlNPTl8iK3R5cGUoZSkuX19uYW1lX187cmV0dXJuIHoKICAgIGlmIGRvYy5nZXQoIm91dC10cnVuY2F0ZWQiKSBvciBkb2MuZ2V0KCJlcnItdHJ1bmNhdGVkIik6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iUUdBX1RSVU5DQVRFRCI7cmV0dXJuIHoKICAgIHpbImlubmVyX3JjIl09ZG9jLmdldCgiZXhpdGNvZGUiKTt6WyJndWVzdF9zdGRlcnJfcHJlc2VudCJdPWJvb2woZG9jLmdldCgiZXJyLWRhdGEiKSkKICAgIHRyeToKICAgICAgICB6WyJyZXBvcnQiXT1qc29uLmxvYWRzKGRvYy5nZXQoIm91dC1kYXRhIiwiIikpO3pbIm9rIl09KGRvYy5nZXQoImV4aXRjb2RlIik9PTApCiAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6IHpbIm9rIl09RmFsc2U7elsiZXJyb3IiXT0iR1VFU1RfSlNPTl8iK3R5cGUoZSkuX19uYW1lX18KICAgIHJldHVybiB6CmRlZiBwYXlsb2FkKHNzKToKICAgIGQ9anNvbi5kdW1wcyh7InNpdGVzIjpzc30sc2VwYXJhdG9ycz0oIiwiLCI6IikpCiAgICByZXR1cm4gKCJpbXBvcnQgYmFzZTY0LHN5cyxpbztzeXMuc3RkaW49aW8uU3RyaW5nSU8oIityZXByKGQpKyIpO2V4ZWMoY29tcGlsZShiYXNlNjQuYjY0ZGVjb2RlKCIrcmVwcihiYXNlNjQuYjY0ZW5jb2RlKEdVRVNUKS5kZWNvZGUoKSkrIiksJzxnPicsJ2V4ZWMnKSkiKS5lbmNvZGUoKQpkZWYgcWdhX3B2ZTAyKHNzKToKICAgIGd1YXJkPSd0ZXN0ICIkKGlkIC11KTokKGhvc3RuYW1lIC1zKSIgPSAwOnB2ZTAyIHx8IGV4aXQgNzI7IGV4ZWMgL3Vzci9zYmluL3FtIGd1ZXN0IGV4ZWMgMTYwIC0tc3luY2hyb25vdXMgMSAtLXRpbWVvdXQgMTkwIC0tcGFzcy1zdGRpbiAxIC0tIC91c3IvYmluL3B5dGhvbjMgLUkgLUIgLScKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9iaW4vc3NoIiwiLVQiLCItbyIsIkJhdGNoTW9kZT15ZXMiLCItbyIsIlN0cmljdEhvc3RLZXlDaGVja2luZz15ZXMiLCItbyIsIkNvbm5lY3RUaW1lb3V0PTgiLCJyb290QHB2ZTAyIixndWFyZF0scGF5bG9hZChzcyksMjE1KQogICAgcmV0dXJuIHBhcnNlX3FnYShyYyxvdXQsZXJyKQpkZWYgcWdhX2xvY2FsKHNzKToKICAgIHJjLG91dCxlcnI9cnVuKFsiL3Vzci9zYmluL3FtIiwiZ3Vlc3QiLCJleGVjIiwiMjEwIiwiLS1zeW5jaHJvbm91cyIsIjEiLCItLXRpbWVvdXQiLCIxOTAiLCItLXBhc3Mtc3RkaW4iLCIxIiwiLS0iLCIvdXNyL2Jpbi9weXRob24zIiwiLUkiLCItQiIsIi0iXSxwYXlsb2FkKHNzKSwyMTUpCiAgICByZXR1cm4gcGFyc2VfcWdhKHJjLG91dCxlcnIpCgppZiBvcy5nZXRldWlkKCkhPTAgb3Igb3MudW5hbWUoKS5ub2RlbmFtZS5zcGxpdCgiLiIpWzBdIT0icHZlMDEiOgogICAgcHJpbnQoIkdSQU01MTVSMlIxX0RFQ0lTSU9OPUZBSUxfRVhQRUNURURfUk9PVF9QVkUwMSIpCiAgICBwcmludCgiSE9NRUxBQl9SRVNVTFRfQ09OVFJBQ1Q9Iitqc29uLmR1bXBzKHsidmVyc2lvbiI6MSwiY29tbWFuZF9pZCI6Q0lELCJzdGF0dXMiOiJGQUlMIiwiY2hhbmdlc19tYWRlIjpGYWxzZSwicm9sbGJhY2tfc3RhcnRlZCI6RmFsc2UsInJvbGxiYWNrX3Jlc3RvcmVkIjpOb25lfSxzZXBhcmF0b3JzPSgiLCIsIjoiKSkpCiAgICByYWlzZSBTeXN0ZW1FeGl0KDMpCgphPXFnYV9wdmUwMihbeCBmb3IgeCBpbiBTSVRFUyBpZiB4WyJ2bWlkIl09PTE2MF0pCmI9cWdhX2xvY2FsKFt4IGZvciB4IGluIFNJVEVTIGlmIHhbInZtaWQiXT09MjEwXSkKcm93cz1bXQpmb3IgcGFydCBpbiAoYSxiKToKICAgIGlmIHBhcnQuZ2V0KCJvayIpIGFuZCBpc2luc3RhbmNlKHBhcnQuZ2V0KCJyZXBvcnQiKSxkaWN0KTogcm93cy5leHRlbmQocGFydFsicmVwb3J0Il0uZ2V0KCJyb3dzIikgb3IgW10pCgpzaXRlNz0obGVuKHJvd3MpPT03KQpkYjc9c2l0ZTcgYW5kIGFsbCh4LmdldCgicmMiKT09MCBhbmQgKHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoIm9rIikgaXMgVHJ1ZSBmb3IgeCBpbiByb3dzKQphbGxfcGVybTk9ZGI3IGFuZCBhbGwobGVuKCh4WyJkYiJdLmdldCgicGVybWlzc2lvbl9yb3dzIikgb3IgW10pKT09OSBmb3IgeCBpbiByb3dzKQphbGxfY29tYm9fbm9fZ3JhbT1kYjcgYW5kIGFsbChhbGwobm90IHMuZ2V0KCJjYWNoZV9oYXNfZ3JhbVN1cHBvcnQiKSBmb3IgcyBpbiAoeFsiZGIiXS5nZXQoInN0YWZmIikgb3IgW10pKSBmb3IgeCBpbiByb3dzKQppZmFjZV9zdGF0ZT1beyJzbHVnIjp4LmdldCgic2x1ZyIpLCJyb3dzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiaW50ZXJmYWNlX2dyb3VwX3Jvd3MiKSBvciBbXX0gZm9yIHggaW4gcm93c10KcmVnaXN0cnk9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwicmVnaXN0cnkiOih4LmdldCgiZGIiKSBvciB7fSkuZ2V0KCJyZWdpc3RyeSIpIG9yIFtdLCJwZXJtaXNzaW9uX3RhYmxlcyI6KHguZ2V0KCJkYiIpIG9yIHt9KS5nZXQoInBlcm1pc3Npb25fdGFibGVzIikgb3IgW10sInN0YWZmIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgic3RhZmYiKSBvciBbXSwiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIjooeC5nZXQoImRiIikgb3Ige30pLmdldCgiYWRkb25fcGVybWlzc2lvbl9kYXRhX2ZpbGVzIikgb3Ige319IGZvciB4IGluIHJvd3NdCmNvcmVfc2NhbnM9W3sic2x1ZyI6eC5nZXQoInNsdWciKSwiY29yZV9zY2FuIjp4LmdldCgiY29yZV9zY2FuIikgb3IgW119IGZvciB4IGluIHJvd3MgaWYgeC5nZXQoImNvcmVfc2NhbiIpIGlzIG5vdCBOb25lXQoKcmVwb3J0PXsKICJzY2hlbWFfdmVyc2lvbiI6MSwKICJzY29wZSI6IlJFQURfT05MWV9HUkFNX1NVUFBPUlRfUEVSTUlTU0lPTl9SRUdJU1RSWV9BTkRfQlVJTERFUl9SQ0EiLAogInNpdGVfY291bnQiOmxlbihyb3dzKSwKICJjbGFzc2lmaWNhdGlvbiI6ewogICAic2l0ZV9jb3VudF83IjpzaXRlNywKICAgImRiX3Byb2JlXzdvZjciOmRiNywKICAgInBlcm1pc3Npb25fZGVmc185XzdvZjciOmFsbF9wZXJtOSwKICAgInN0YWZmX2NhY2hlX21pc3NpbmdfZ3JhbVN1cHBvcnRfN29mNyI6YWxsX2NvbWJvX25vX2dyYW0sCiAgICJjaGFuZ2VzX21hZGUiOkZhbHNlLAogICAic2VuZF9hdHRlbXB0cyI6MAogfSwKICJpbnRlcmZhY2VfZ3JvdXBfc3RhdGUiOmlmYWNlX3N0YXRlLAogInJlZ2lzdHJ5X2FuZF9jb21iaW5hdGlvbl9zdGF0ZSI6cmVnaXN0cnksCiAiY29yZV9zb3VyY2Vfc2NhbnMiOmNvcmVfc2NhbnMsCiAidHJhbnNwb3J0Ijp7InZtMTYwIjp7azp2IGZvciBrLHYgaW4gYS5pdGVtcygpIGlmIGshPSJyZXBvcnQifSwidm0yMTAiOntrOnYgZm9yIGssdiBpbiBiLml0ZW1zKCkgaWYgayE9InJlcG9ydCJ9fQp9CnByaW50KCJHUkFNNTE1UjJSMV9TQUZFX1JFUE9SVD0iK2pzb24uZHVtcHMocmVwb3J0LGVuc3VyZV9hc2NpaT1UcnVlLHNvcnRfa2V5cz1UcnVlLHNlcGFyYXRvcnM9KCIsIiwiOiIpKSkKaWYgc2l0ZTcgYW5kIGRiNzoKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1QQVNTX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0VWSURFTkNFX0NBUFRVUkVEIikKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ORVhUX0dBVEU9UkVWSUVXX0VYQUNUX1VQU1RSRUFNX0NBQ0hFX09SX01FVEFEQVRBX0ZJWCIpCiAgICBzdD0iT0siO3JjPTAKZWxzZToKICAgIHByaW50KCJHUkFNNTE1UjJSMV9ERUNJU0lPTj1IT0xEX1BFUk1JU1NJT05fUkVHSVNUUllfUkNBX0lOQ09NUExFVEUiKQogICAgcHJpbnQoIkdSQU01MTVSMlIxX05FWFRfR0FURT1TVE9QX05PX01VVEFUSU9OIikKICAgIHN0PSJGQUlMIjtyYz0zCnByaW50KCJIT01FTEFCX1JFU1VMVF9DT05UUkFDVD0iK2pzb24uZHVtcHMoeyJ2ZXJzaW9uIjoxLCJjb21tYW5kX2lkIjpDSUQsInN0YXR1cyI6c3QsImNoYW5nZXNfbWFkZSI6RmFsc2UsInJvbGxiYWNrX3N0YXJ0ZWQiOkZhbHNlLCJyb2xsYmFja19yZXN0b3JlZCI6Tm9uZX0sc2VwYXJhdG9ycz0oIiwiLCI6IikpKQpyYWlzZSBTeXN0ZW1FeGl0KHJjKQo="),"","exec")) + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 3, in +NameError: name 'true' is not defined. Did you mean: 'True'? -Quorum information ------------------- -Date: Fri Sep [PRIVATE_IP] 2026 -Quorum provider: corosync_votequorum -Nodes: 3 -Node ID: [PRIVATE_IP] -Ring ID: 1.130 -Quorate: Yes - -Votequorum information ----------------------- -Expected votes: 3 -Highest expected: 3 -Total votes: 3 -Quorum: 2 -Flags: Quorate - -Membership information ----------------------- - Nodeid Votes Name -[PRIVATE_IP] [PRIVATE_IP].11 (local) -[PRIVATE_IP] [PRIVATE_IP].13 -[PRIVATE_IP] [PRIVATE_IP].12 - -Membership information ----------------------- - Nodeid Votes Name - 1 1 pve01 (local) - 2 1 pve03 - 3 1 pve02 -[{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/110","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":110},{"cpu":[PRIVATE_IP][PRIVATE_IP],"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/111","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"dns2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":111},{"cpu":[PRIVATE_IP]879e-05,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/112","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound1","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":112},{"cpu":0,"disk":[PRIVATE_IP],"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"lxc/113","maxcpu":1,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":0,"name":"unbound2","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"lxc","uptime":[PRIVATE_IP],"vmid":113},{"cpu":[PRIVATE_IP]14405,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"edge-vm","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":130},{"cpu":[PRIVATE_IP]731562,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/150","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"snikket","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":150},{"cpu":[PRIVATE_IP]640784,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/160","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"forum-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve02","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":160},{"cpu":[PRIVATE_IP]12518,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/170","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"core-apps","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":170},{"cpu":[PRIVATE_IP]76604,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/171","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"monitoring","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":171},{"cpu":[PRIVATE_IP]513348,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/190","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"homelab-ops-worker","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":190},{"cpu":[PRIVATE_IP]731562,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/210","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"newfi-prod","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve01","status":"running","template":0,"type":"qemu","uptime":969560,"vmid":210},{"cpu":[PRIVATE_IP]026697,"disk":0,"diskread":[PRIVATE_IP],"diskwrite":[PRIVATE_IP],"id":"qemu/211","maxcpu":2,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"memhost":[PRIVATE_IP],"name":"newfi-staging","netin":[PRIVATE_IP],"netout":[PRIVATE_IP],"node":"pve03","status":"running","template":0,"type":"qemu","uptime":[PRIVATE_IP],"vmid":211},{"cpu":0,"disk":0,"diskread":0,"diskwrite":0,"id":"qemu/9130","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":0,"memhost":0,"name":"edge-cold-standby","netin":0,"netout":0,"node":"pve02","status":"stopped","template":0,"type":"qemu","uptime":0,"vmid":9130},{"cgroup-mode":2,"cpu":[PRIVATE_IP]79132,"disk":[PRIVATE_IP],"id":"node/pve03","level":"","maxcpu":8,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve03","status":"online","type":"node","uptime":[PRIVATE_IP]},{"cgroup-mode":2,"cpu":[PRIVATE_IP]79447,"disk":[PRIVATE_IP],"id":"node/pve02","level":"","maxcpu":4,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve02","status":"online","type":"node","uptime":[PRIVATE_IP]},{"cgroup-mode":2,"cpu":[PRIVATE_IP]40847,"disk":[PRIVATE_IP],"id":"node/pve01","level":"","maxcpu":24,"maxdisk":[PRIVATE_IP],"maxmem":[PRIVATE_IP],"mem":[PRIVATE_IP],"node":"pve01","status":"online","type":"node","uptime":[PRIVATE_IP]},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve03/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve02/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"rootdir,images","disk":[PRIVATE_IP],"id":"storage/pve01/local-lvm","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"lvmthin","shared":0,"status":"available","storage":"local-lvm","type":"storage"},{"content":"vztmpl,backup,import,iso","disk":[PRIVATE_IP],"id":"storage/pve03/local","maxdisk":[PRIVATE_IP],"node":"pve03","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,backup,import,iso","disk":[PRIVATE_IP],"id":"storage/pve02/local","maxdisk":[PRIVATE_IP],"node":"pve02","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"content":"vztmpl,backup,import,iso","disk":[PRIVATE_IP],"id":"storage/pve01/local","maxdisk":[PRIVATE_IP],"node":"pve01","plugintype":"dir","shared":0,"status":"available","storage":"local","type":"storage"},{"id":"network/pve03/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve03","status":"ok","type":"network"},{"id":"network/pve02/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve02","status":"ok","type":"network"},{"id":"network/pve01/zone/localnetwork","network":"localnetwork","network-type":"zone","node":"pve01","status":"ok","type":"network"}] -Name Type Status Total (KiB) Used (KiB) Available (KiB) % -local dir active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 21.18% -local-lvm lvmthin active [PRIVATE_IP] [PRIVATE_IP] [PRIVATE_IP] 13.00% - UNIT LOAD ACTIVE SUB DESCRIPTION -● homelab-app-cloud-quorum-queue.service loaded failed failed Homelab canonical application cloud quorum backup queue -● homelab-backup-retention-gc.service loaded failed failed Homelab owner-aware cloud retention GC -● homelab-vm-cloud-quorum-queue.service loaded failed failed Homelab canonical VM/CT cloud quorum backup queue - -Legend: LOAD → Reflects whether the unit definition was properly loaded. - ACTIVE → The high-level unit activation state, i.e. generalization of SUB. - SUB → The low-level unit activation state, values depend on unit type. - -3 loaded units listed. -NEXT LEFT LAST PASSED UNIT ACTIVATES -Fri [PRIVATE_IP] 07:17:12 MSK 9s Fri [PRIVATE_IP] 07:16:12 MSK 50s ago homelab-private-vpn-hosts-health.timer homelab-private-vpn-hosts-health.service -Fri [PRIVATE_IP] 07:17:37 MSK 34s Fri [PRIVATE_IP] 07:16:32 MSK 30s ago homelab-router-watchdog.timer homelab-router-watchdog.service -Fri [PRIVATE_IP] 07:17:57 MSK 55s Fri [PRIVATE_IP] 07:02:57 MSK 14min ago homelab-disk-space-health.timer homelab-disk-space-health.service -Fri [PRIVATE_IP] 07:17:57 MSK 55s Fri [PRIVATE_IP] 07:02:57 MSK 14min ago prometheus-node-exporter-nvme.timer prometheus-node-exporter-nvme.service -Fri [PRIVATE_IP] 07:17:58 MSK 55s Thu [PRIVATE_IP] 07:14:42 MSK 24h ago homelab-drift-check.timer homelab-drift-check.service -Fri [PRIVATE_IP] 07:19:51 MSK 2min 49s Fri [PRIVATE_IP] 07:14:32 MSK 2min 30s ago homelab-health-metrics.timer homelab-health-metrics.service -Fri [PRIVATE_IP] 07:19:57 MSK 2min 55s Fri [PRIVATE_IP] 07:14:57 MSK 2min 4s ago homelab-smartctl-textfile.timer homelab-smartctl-textfile.service -Fri [PRIVATE_IP] 07:19:57 MSK 2min 55s Fri [PRIVATE_IP] 07:14:57 MSK 2min 4s ago netbird-peers-health.timer netbird-peers-health.service -Fri [PRIVATE_IP] 07:22:42 MSK 5min Fri [PRIVATE_IP] 07:07:42 MSK 9min ago homelab-pve03-staging-capacity-health.timer homelab-pve03-staging-capacity-health.service -Fri [PRIVATE_IP] 07:22:57 MSK 5min Fri [PRIVATE_IP] 07:12:57 MSK 4min 4s ago skladchik-reports-monitor-supervisor.timer skladchik-reports-monitor-supervisor.service -Fri [PRIVATE_IP] 07:26:38 MSK 9min Fri [PRIVATE_IP] 06:55:00 MSK 22min ago homelab-reference-refresh.timer homelab-reference-refresh.service -Fri [PRIVATE_IP] 07:29:57 MSK 12min Fri [PRIVATE_IP] 07:14:57 MSK 2min 4s ago prometheus-node-exporter-apt.timer prometheus-node-exporter-apt.service -Fri [PRIVATE_IP] 07:30:00 MSK 12min Fri [PRIVATE_IP] 07:15:00 MSK 2min 2s ago homelab-incident-journal.timer homelab-incident-journal.service -Fri [PRIVATE_IP] 07:30:12 MSK 13min Fri [PRIVATE_IP] 07:15:53 MSK 1min 9s ago homelab-duty-admin-v2.timer homelab-duty-admin-v2.service -Fri [PRIVATE_IP] 07:30:21 MSK 13min Fri [PRIVATE_IP] 07:15:16 MSK 1min 46s ago homelab-external-probe-vps-health.timer homelab-external-probe-vps-health.service -Fri [PRIVATE_IP] 07:31:24 MSK 14min Fri [PRIVATE_IP] 07:15:12 MSK 1min 50s ago homelab-forum-snuffleupagus-health.timer homelab-forum-snuffleupagus-health.service -Fri [PRIVATE_IP] 07:33:09 MSK 16min Fri [PRIVATE_IP] 07:00:12 MSK 16min ago homelab-mkdocs-auto-refresh.timer homelab-mkdocs-auto-refresh.service -Fri [PRIVATE_IP] 07:36:46 MSK 19min Fri [PRIVATE_IP] 07:05:32 MSK 11min ago homelab-backup-audit.timer homelab-backup-audit.service -Fri [PRIVATE_IP] 07:39:21 MSK 22min Thu [PRIVATE_IP] 07:31:16 MSK 23h ago homelab-service-registry-check.timer homelab-service-registry-check.service -Fri [PRIVATE_IP] 07:43:29 MSK 26min Fri [PRIVATE_IP] 07:10:32 MSK 6min ago homelab-backup-v2.timer homelab-backup-v2.service -Fri [PRIVATE_IP] 07:45:11 MSK 28min Thu [PRIVATE_IP] 07:46:41 MSK 23h ago homelab-dependency-map-check.timer homelab-dependency-map-check.service -Fri [PRIVATE_IP] 07:48:49 MSK 31min Thu [PRIVATE_IP] 07:39:57 MSK 23h ago homelab-alerting-health.timer homelab-alerting-health.service -Fri [PRIVATE_IP] 07:57:58 MSK 40min Thu [PRIVATE_IP] 07:54:11 MSK 23h ago homelab-runbook-generate.timer homelab-runbook-generate.service -Fri [PRIVATE_IP] 07:59:21 MSK 42min Thu [PRIVATE_IP] 07:58:41 MSK 23h ago homelab-duty-admin-report.timer homelab-duty-admin-report.service -Fri [PRIVATE_IP] 08:00:39 MSK 43min Thu [PRIVATE_IP] 07:48:16 MSK 23h ago homelab-desired-state-sync.timer homelab-desired-state-sync.service -Fri [PRIVATE_IP] 08:07:02 MSK 49min Thu [PRIVATE_IP] 08:23:57 MSK 22h ago homelab-kuma-monitor-policy.timer homelab-kuma-monitor-policy.service -Fri [PRIVATE_IP] 08:15:37 MSK 58min Thu [PRIVATE_IP] 08:08:57 MSK 23h ago homelab-overall-health.timer homelab-overall-health.service -Fri [PRIVATE_IP] 08:25:47 MSK 1h 8min Thu [PRIVATE_IP] 08:38:57 MSK 22h ago homelab-capacity-risk.timer homelab-capacity-risk.service -Fri [PRIVATE_IP] 08:29:52 MSK 1h 12min Thu [PRIVATE_IP] 08:16:41 MSK 23h ago homelab-final-readiness-gate.timer homelab-final-readiness-gate.service -Fri [PRIVATE_IP] 08:37:56 MSK 1h 20min Thu [PRIVATE_IP] 08:35:00 MSK 22h ago homelab-secret-exposure-guard.timer homelab-secret-exposure-guard.service -Fri [PRIVATE_IP] 08:48:19 MSK 1h 31min Thu [PRIVATE_IP] 08:44:42 MSK 22h ago homelab-cluster-passport.timer homelab-cluster-passport.service -Fri [PRIVATE_IP] 09:00:09 MSK 1h 43min Thu [PRIVATE_IP] 08:46:15 MSK 22h ago homelab-golden-state-index.timer homelab-golden-state-index.service -Fri [PRIVATE_IP] 09:35:16 MSK 2h 18min Thu [PRIVATE_IP] 05:52:43 MSK 1 day 1h ago man-db.timer man-db.service -Fri [PRIVATE_IP] 09:42:47 MSK 2h 25min Fri [PRIVATE_IP] 03:11:45 MSK 4h 5min ago apt-daily.timer apt-daily.service -Fri [PRIVATE_IP] 10:15:00 MSK 2h 57min Thu [PRIVATE_IP] 10:15:11 MSK 21h ago skladchik-reports-monitor-monthly-selftest-watch.timer skladchik-reports-monitor-monthly-selftest-watch.service -Fri [PRIVATE_IP] 10:35:57 MSK 3h 18min Fri [PRIVATE_IP] 04:35:57 MSK 2h 41min ago homelab-vps-identity-audit.timer homelab-vps-identity-audit.service -Fri [PRIVATE_IP] 11:20:14 MSK 4h 3min Fri [PRIVATE_IP] 05:11:32 MSK 2h 5min ago homelab-evidence-root.timer homelab-evidence-root.service -Fri [PRIVATE_IP] 12:35:31 MSK 5h 18min Fri [PRIVATE_IP] 06:32:16 MSK 44min ago homelab-mailru-trash-gc.timer homelab-mailru-trash-gc.service -Fri [PRIVATE_IP] 16:47:57 MSK 9h Thu [PRIVATE_IP] 16:47:57 MSK 14h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service -Sat [PRIVATE_IP] 00:00:00 MSK 16h Fri [PRIVATE_IP] 00:00:00 MSK 7h ago dpkg-db-backup.timer dpkg-db-backup.service -Sat [PRIVATE_IP] 00:01:48 MSK 16h Fri [PRIVATE_IP] 00:07:16 MSK 7h ago homelab-evidence-catalog.timer homelab-evidence-catalog.service -Sat [PRIVATE_IP] 00:02:46 MSK 16h Fri [PRIVATE_IP] 00:10:53 MSK 7h ago homelab-quality-gate.timer homelab-quality-gate.service -Sat [PRIVATE_IP] 00:13:58 MSK 16h Fri [PRIVATE_IP] 00:12:32 MSK 7h ago homelab-docker-health.timer homelab-docker-health.service -Sat [PRIVATE_IP] 00:18:29 MSK 17h Fri [PRIVATE_IP] 00:15:12 MSK 7h ago homelab-storage-capacity.timer homelab-storage-capacity.service -Sat [PRIVATE_IP] 00:34:18 MSK 17h Fri [PRIVATE_IP] 00:35:52 MSK 6h ago logrotate.timer logrotate.service -Sat [PRIVATE_IP] 02:12:34 MSK 18h Fri [PRIVATE_IP] 04:11:16 MSK 3h 5min ago pve-daily-update.timer pve-daily-update.service -Sat [PRIVATE_IP] 03:23:30 MSK 20h Fri [PRIVATE_IP] 03:22:16 MSK 3h 54min ago homelab-backup-retention-gc.timer homelab-backup-retention-gc.service -Sat [PRIVATE_IP] 06:15:09 MSK 22h Fri [PRIVATE_IP] 06:03:32 MSK 1h 13min ago apt-daily-upgrade.timer apt-daily-upgrade.service -Sun [PRIVATE_IP] 03:10:03 MSK 1 day 19h Sun [PRIVATE_IP] 03:10:22 MSK 5 days ago e2scrub_all.timer e2scrub_all.service -Sun [PRIVATE_IP] 03:10:58 MSK 1 day 19h Sun [PRIVATE_IP] 03:10:39 MSK 5 days ago xfs_scrub_all.timer xfs_scrub_all.service -Sun [PRIVATE_IP] 07:40:18 MSK 2 days Sun [PRIVATE_IP] 07:35:56 MSK 4 days ago homelab-rotating-boot-drill.timer homelab-rotating-boot-drill.service -Mon [PRIVATE_IP] 00:04:42 MSK 2 days Mon [PRIVATE_IP] 00:10:39 MSK 4 days ago homelab-secret-sanity.timer homelab-secret-sanity.service -Mon [PRIVATE_IP] 00:09:14 MSK 2 days Mon [PRIVATE_IP] 00:30:56 MSK 4 days ago fstrim.timer fstrim.service -- - - - prometheus-node-exporter-ipmitool-sensor.timer prometheus-node-exporter-ipmitool-sensor.service -- - - - prometheus-node-exporter-mellanox-hca-temp.timer prometheus-node-exporter-mellanox-hca-temp.service -- - - - prometheus-node-exporter-smartmon.timer prometheus-node-exporter-smartmon.service - -56 timers listed. -RUNTIME_MANIFEST_ID=df[PRIVATE_IP]ac9b5abd[PRIVATE_IP]b[PRIVATE_IP]d89496fb2bde[PRIVATE_IP] -EXPERIMENT_ID=5462ee[PRIVATE_IP]ebe[PRIVATE_IP]feb2ad[PRIVATE_IP]1ad87bbac0b8108 -COLLECTION_START_AT=[PRIVATE_IP]T[PRIVATE_IP]:00 -FIRST_COMPLETE_D1_CLOSE=[PRIVATE_IP]T[PRIVATE_IP]:00 -PRODUCTION_LAUNCH_ALLOWED=False -EXECUTION_AUTHORITY=False -RISK_AUTHORITY=False -STAGE_A_HEALTH=AWAITING_PRIMARY_FINALITY -FORENSIC_PREVIOUS_EPOCH_PRESERVED=YES - -## NEWFI_TASK6_AUTH_CHECKPOINT_V[PRIVATE_IP] -- Scope: historical accepted AUTH test, not a current SMTP connection test. -- Newfi approved SMTP account/sender: aleisaev@yandex.ru. -- Endpoint used by accepted test: smtp.yandex.ru:465 with certificate verification; single PLAIN initial response accepted with code 235. -- Evidence: incident ledger ### NEWFI_TASK6_YANDEX_AUTH_V2_OBSERVATION and ### NEWFI_TASK6_AUTH_PROOF_CLOSE_V1. -- No password file written, no application configuration changed, no mail sent by the accepted AUTH test. -- Persistent transport installation and application delivery are not proven by this checkpoint. Task6 is not complete. -- AUTH challenge and missing-file incidents closed; launch/session incident remains OPEN with original cause unproven. -- This update does not change VM211, VM160, routing, board state or Git. -- Other incidents and infrastructure health were not assessed. - - -## NEWFI_PRIVATE_STRUCTURE92_WRONG_MARKER_SCOPE_[PRIVATE_IP] CLOSURE -- Status: CLOSED -- RCA: NEWFI92 inspected the pve01 NEWFI90 attempt marker, which had not been finalized because the outer shell exited immediately after the guest returned RC3 following its successful rollback. The guest marker contained the true final rollback state. -- Correction: NEWFI93 required both the guest FINISHED/ROLLED_BACK record and a fresh exact demo-state readback before reconciling the outer NEWFI90 marker. NEWFI92 itself never reserved an attempt or mutated state. - - -## NEWFI_PRIVATE_NEWFI95_NESTED_TRIPLE_QUOTE_PARSE_[PRIVATE_IP] -- Status: OPEN -- Command: NEWFI95 -- Symptom: after the content-structure precheck passed, the pve03 Python wrapper failed to parse at the PHP line beginning with $root. No Portal discovery or application mutation was reached. -- RCA: an outer raw triple-single-quoted guest Python payload contained an inner raw triple-single-quoted PHP payload. The inner delimiter terminated the outer Python string, causing PHP source to be parsed as Python. -- Safety: NEWFI95 was read-only, created no attempt marker, and did not reach the intended nested guest execution. Do not replay NEWFI95. - - -## NEWFI_PRIVATE_NEWFI95_NESTED_TRIPLE_QUOTE_PARSE_[PRIVATE_IP] CLOSURE -- Status: CLOSED -- RCA: an inner triple-single-quoted PHP literal terminated the outer triple-single-quoted Python guest payload in NEWFI95. The wrapper therefore failed parsing before the intended Portal discovery executed. -- Correction: NEWFI96 removed the nested Python payload layer entirely and passed one Python program directly to VM211 through qm guest exec stdin. The read-only Portal contract completed with QGA exit 0 and the implementation worktree remained unchanged. OUTPUT_END CHAT_OUTPUT_END