{
  "title": "Blacklight Inspection",
  "page_title": "Accueil - Loir-et-Cher — CIDFF",
  "uri_ins": "http://loiretcher.cidff.info/",
  "uri_dest": "https://loiretcher.cidff.info/",
  "uri_redirects": [
    "http://loiretcher.cidff.info/"
  ],
  "secure_connection": {},
  "host": "loiretcher.cidff.info",
  "config": {
    "emulateDevice": {
      "name": "iPhone 15 Pro",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",
      "viewport": {
        "width": 393,
        "height": 659,
        "deviceScaleFactor": 3,
        "isMobile": true,
        "hasTouch": true,
        "isLandscape": false
      }
    },
    "cleareCache": true,
    "captureHar": true,
    "captureLinks": false,
    "enableAdBlock": false,
    "saveBrowserProfile": false,
    "numPages": 2,
    "defaultTimeout": 35000,
    "defaultWaitUntil": "networkidle2",
    "headless": true,
    "headers": {},
    "extraChromiumArgs": [
      "--disable-features=TrackingProtection3pcd",
      "--website-analysis-scan=e4e3d0c0-e54d-4664-97d3-f65ba8ad739f"
    ],
    "extraPuppeteerOptions": {}
  },
  "browser": {
    "name": "Chromium",
    "version": "Chrome/127.0.6533.88",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36",
    "platform": {
      "name": "Linux",
      "version": "4.4.302+"
    }
  },
  "script": {
    "host": "c3d5f29a713d",
    "version": {
      "npm": "3.11.0",
      "commit": "dev"
    },
    "node_version": "v24.19.0"
  },
  "start_time": "2026-08-21T17:38:47.421Z",
  "end_time": "2026-08-21T17:39:04.687Z",
  "browsing_history": [
    "https://loiretcher.cidff.info/",
    "https://loiretcher.cidff.info/",
    "https://loiretcher.cidff.info/changement-de-bureau-au-cidff41/"
  ],
  "hosts": {
    "requests": {
      "first_party": [
        "loiretcher.cidff.info"
      ],
      "third_party": [
        "unpkg.com",
        "cdnjs.cloudflare.com",
        "b.basemaps.cartocdn.com",
        "c.basemaps.cartocdn.com",
        "a.basemaps.cartocdn.com"
      ]
    }
  },
  "reports": {
    "behaviour_event_listeners": {
      "MOUSE": {
        "https://loiretcher.cidff.info/wp-content/cache/autoptimize/autoptimize_single_fa03f187c5d2fdfce7632be6f0a06478.php?ver=1.9.4": [
          "scroll"
        ]
      },
      "KEYBOARD": {
        "data:text/javascript;base64,CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXBJZCA9ICJjaWRmZi1tYXAiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwUmVmID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobWFwSWQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwRGV0YWlsc1JlZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjaWRmZi1zaXRlLWRldGFpbHMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGRyZXNzUG9pbnRzID0gWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1vZGVsIDogWyBsYXQsIGxvbiwgdG9vbHRpcCwgc2l0ZURhdGEgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuNDI0NjQyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMDUzMjg0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBTQUxCUklTYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzk2IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJTQUxCUklTIiwibm9tX3NsdWciOiJzYWxicmlzIiwiYWRyZXNzZSI6IjUwIGJvdWxldmFyZCBkZSBsYSBSXHUwMGU5cHVibGlxdWUiLCJjcCI6IjQxMzAwIiwidmlsbGUiOiJTYWxicmlzIiwidmlsbGVfc2x1ZyI6InNhbGJyaXMiLCJjaXR5X2lkIjoiMTYzMjAiLCJlbWFpbCI6ImZyYW5jZXNlcnZpY2VzQHNhbGJyaXMuZnIiLCJ0ZWxlcGhvbmUiOiIwMjU0OTQxMDU1IiwicXB2IjoiMCIsInpyciI6IjEiLCJhY2N1ZWlsIjoiTWFpc29uIGRlcyBTZXJ2aWNlcyBhdSBQdWJsaWNzIiwiYWNjdWVpbF9wcmVjaXNpb24iOiIiLCJob3JhaXJlcyI6IjE0aCAxNmggbGVzIHNlY29uZCBldCBxdWF0cmlcdTAwZThtZSBtZXJjcmVkaSIsInZvbF9ocl9oZWJkbyI6IjJoIHVuZSBmb2lzIHRvdXRlcyBsZXMgZGV1eCBzZW1haW5lcyIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjAiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjpudWxsLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6IkZyYW5jZSBTZXJ2aWNlIiwiZGVwYXJ0ZW1lbnQiOiJMb2lyLWV0LUNoZXIiLCJyZWdpb24iOiJDZW50cmUtVmFsIGRlIExvaXJlIiwiY29vcmRzIjp7ImxhdCI6NDcuNDI0NjQyLCJsb24iOjIuMDUzMjg0LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ3LjQyNDY0MiwyLjA1MzI4NCwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2xvaXJldGNoZXIuY2lkZmYuaW5mbyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ny41ODk1OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4zMDc1MjMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYEJMT0lTIE1BSVNPTiBERSBMQSBKVVNUSUNFIEVUIERVIERST0lUYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzk3IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJCTE9JUyBNQUlTT04gREUgTEEgSlVTVElDRSBFVCBEVSBEUk9JVCIsIm5vbV9zbHVnIjoiYmxvaXMtbWFpc29uLWRlLWxhLWp1c3RpY2UtZXQtZHUtZHJvaXQiLCJhZHJlc3NlIjoiMywgcGxhY2UgQmVybmFyZCBMb3Jqb3UiLCJjcCI6IjQxMDAwIiwidmlsbGUiOiJCbG9pcyIsInZpbGxlX3NsdWciOiJibG9pcyIsImNpdHlfaWQiOiIxNjExMiIsImVtYWlsIjoibWpkLWJsb2lzQGp1c3RpY2UuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA1NCA0NSAxNiAxNiIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6Ik1haXNvbiBkZSBsYSBKdXN0aWNlIGV0IGR1IERyb2l0IiwiYWNjdWVpbF9wcmVjaXNpb24iOiIiLCJob3JhaXJlcyI6Ik1hcmRpIGRlIDE0aDAwIFx1MDBlMCAxN2gwMCAiLCJ2b2xfaHJfaGViZG8iOiIzaCIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjAiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pci1ldC1DaGVyIiwicmVnaW9uIjoiQ2VudHJlLVZhbCBkZSBMb2lyZSIsImNvb3JkcyI6eyJsYXQiOjQ3LjU4OTU5NiwibG9uIjoxLjMwNzUyMywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny41ODk1OTYsMS4zMDc1MjMsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9sb2lyZXRjaGVyLmNpZGZmLmluZm8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuMzU0ODYyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuNzUxODMzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBST01PUkFOVElOYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzk4IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJST01PUkFOVElOIiwibm9tX3NsdWciOiJyb21vcmFudGluIiwiYWRyZXNzZSI6IkNlbnRyZSBzb2NpYWwgU2FpbnQtRXh1cFx1MDBlOXJ5IChDQUYpIC0gNiBhdmVudWUgU2FpbnQtRXh1cFx1MDBlOXJ5IiwiY3AiOiI0MTIwMCIsInZpbGxlIjoiUm9tb3JhbnRpbi1MYW50aGVuYXkiLCJ2aWxsZV9zbHVnIjoicm9tb3JhbnRpbmxhbnRoZW5heSIsImNpdHlfaWQiOiIxNjI4MyIsImVtYWlsIjoiY29udGFjdDQxQGNpZGZmY2VudHJldmFsZGVsb2lyZS5mciIsInRlbGVwaG9uZSI6IjAyIDU0IDQyIDE3IDM5IiwicXB2IjoiMCIsInpyciI6IjAiLCJhY2N1ZWlsIjoiQ2VudHJlIFNhaW50LUV4dXBcdTAwZTlyeSIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiJsZXMgcHJlbWllcnMgZXQgdHJvaXNpXHUwMGU4bWUgbWVyY3JlZGkgZGUgY2hhcXVlIG1vaXMgZGUgMTRoIFx1MDBlMCAxN2giLCJ2b2xfaHJfaGViZG8iOiIzaCB1bmUgZm9pcyB0b3V0ZXMgbGVzIGRldXggc2VtYWluZXMiLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMCIsInYiOiIwIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjpudWxsLCJjYWRyZTMiOiJMJ2FjY29tcGFnbmVtZW50IHZpb2xlbmNlIiwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pci1ldC1DaGVyIiwicmVnaW9uIjoiQ2VudHJlLVZhbCBkZSBMb2lyZSIsImNvb3JkcyI6eyJsYXQiOjQ3LjM1NDg2MiwibG9uIjoxLjc1MTgzMywidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny4zNTQ4NjIsMS43NTE4MzMsMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9sb2lyZXRjaGVyLmNpZGZmLmluZm8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuODA5MjE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMDY1NTc4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBWRU5ET01FYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMzk5IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJWRU5ET01FIiwibm9tX3NsdWciOiJ2ZW5kb21lIiwiYWRyZXNzZSI6IjM3IGF2ZW51ZSBHZW9yZ2VzIENsXHUwMGU5bWVuY2VhdSIsImNwIjoiNDExMDAiLCJ2aWxsZSI6IlZlbmRcdTAwZjRtZSIsInZpbGxlX3NsdWciOiJ2ZW5kb21lIiwiY2l0eV9pZCI6IjE2MzU3IiwiZW1haWwiOiJjb250YWN0NDFAY2lkZmZjZW50cmV2YWxkZWxvaXJlLmZyIiwidGVsZXBob25lIjoiMDIgNTQgNDIgMTcgMzkiLCJxcHYiOiIxIiwienJyIjoiMCIsImFjY3VlaWwiOiJQb2ludCBkJ0FjY1x1MDBlOHMgYXUgRHJvaXQiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IiIsImhvcmFpcmVzIjoibGVzIHByZW1pZXJzIGV0IHRyb2lzaVx1MDBlOG1lIGx1bmRpIGRlIGNoYXF1ZSBtb2lzIGRlIDE0aCBcdTAwZTAgMTdoIiwidm9sX2hyX2hlYmRvIjoiM2ggdW5lIGZvaXMgdG91dGVzIGxlcyBkZXV4IHNlbWFpbmVzIiwiaWkiOiIxIiwiaWMiOiIxIiwiZSI6IjAiLCJ2IjoiMCIsInByZWNpc2lvbiI6IiIsImNhcnRvZ3JhcGhpZSI6IjEiLCJkZWxldGVkIjoiMCIsImNhZHJlMSI6IkwnYWNjXHUwMGU4cyBhdXggZHJvaXRzIHRvdXRlcyB0aFx1MDBlOW1hdGlxdWVzIGNvbmZvbmR1ZXMgKERcdTAwZTljcmV0IDIwMTUtMTc0NSBkdSAyMyBkXHUwMGU5Y2VtYnJlIDIwMTUgcmVsYXRpZiBcdTAwZTAgbCdhZ3JcdTAwZTltZW50KSIsImNhZHJlMiI6bnVsbCwiY2FkcmUzIjpudWxsLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOm51bGwsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkxvaXItZXQtQ2hlciIsInJlZ2lvbiI6IkNlbnRyZS1WYWwgZGUgTG9pcmUiLCJjb29yZHMiOnsibGF0Ijo0Ny44MDkyMTUsImxvbiI6MS4wNjU1NzgsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDcuODA5MjE1LDEuMDY1NTc4LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvbG9pcmV0Y2hlci5jaWRmZi5pbmZvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LjM1NzkxNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjc0MjIwOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgUE9JTlQgRFwnQUNDRVMgQVUgRFJPSVQgREUgUk9NT1JBTlRJTmAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjQwMiIsImNlbnRyZV9pZCI6IjI3Iiwibm9tIjoiUE9JTlQgRCdBQ0NFUyBBVSBEUk9JVCBERSBST01PUkFOVElOIiwibm9tX3NsdWciOiJwb2ludC1kYWNjZXMtYXUtZHJvaXQtZGUtcm9tb3JhbnRpbiIsImFkcmVzc2UiOiIyIGJpcyBwbGFjZSBkdSBDaFx1MDBlMnRlYXUiLCJjcCI6IjQxMjAwIiwidmlsbGUiOiJSb21vcmFudGluLUxhbnRoZW5heSIsInZpbGxlX3NsdWciOiJyb21vcmFudGlubGFudGhlbmF5IiwiY2l0eV9pZCI6IjE2MjgzIiwiZW1haWwiOiJwYWQucm9tb0BvcmFuZ2UuZnIiLCJ0ZWxlcGhvbmUiOiIwMiA1NCA5NiA5NyA4NSIsInFwdiI6IjAiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6Ik1haXNvbiBkZSBsYSBKdXN0aWNlIGV0IGR1IERyb2l0IiwiYWNjdWVpbF9wcmVjaXNpb24iOiIiLCJob3JhaXJlcyI6IjloIDEyaCBsZSBtZXJjcmVkaSIsInZvbF9ocl9oZWJkbyI6IjNoICIsImlpIjoiMSIsImljIjoiMSIsImUiOiIwIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjoiTWVudGFsXC9Qc3ljaGlxdWUiLCJhY2Nlc3NpYmlsaXRlMyI6Ik1vdGV1ciIsImFjY2Vzc2liaWxpdGU0IjoiVmlzdWVsIiwiYWNjZXNzaWJpbGl0ZTUiOm51bGwsInR5cGUxIjoiUGh5c2lxdWUiLCJ0eXBlMiI6bnVsbCwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pci1ldC1DaGVyIiwicmVnaW9uIjoiQ2VudHJlLVZhbCBkZSBMb2lyZSIsImNvb3JkcyI6eyJsYXQiOjQ3LjM1NzkxNiwibG9uIjoxLjc0MjIwOSwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny4zNTc5MTYsMS43NDIyMDksMTV6In0sInNpdGVfaW50ZXJuZXQiOiJodHRwOlwvXC9sb2lyZXRjaGVyLmNpZGZmLmluZm8ifSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDcuNTkyNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjMyNzM4MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQkxPSVMgU0lFR0UgU09DSUFMYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMTcyNSIsImNlbnRyZV9pZCI6IjI3Iiwibm9tIjoiQkxPSVMgU0lFR0UgU09DSUFMIiwibm9tX3NsdWciOiJibG9pcy1zaWVnZS1zb2NpYWwiLCJhZHJlc3NlIjoiMjgsIHJ1ZSBkZXMgXHUwMGU5Y29sZXMiLCJjcCI6IjQxMDAwIiwidmlsbGUiOiJCbG9pcyIsInZpbGxlX3NsdWciOiJibG9pcyIsImNpdHlfaWQiOiIxNjExMiIsImVtYWlsIjoiY29udGFjdDQxQGNpZGZmY2VudHJldmFsZGVsb2lyZS5mciIsInRlbGVwaG9uZSI6IjAyNTQ0MjE3MzkiLCJxcHYiOiIxIiwienJyIjoiMCIsImFjY3VlaWwiOiJDSURGRiIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiI5aCAxMmggMTNoIDE3aCIsInZvbF9ocl9oZWJkbyI6IjM1aCIsImlpIjoiMSIsImljIjoiMSIsImUiOiIxIiwidiI6IjEiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOiJMJ2FjY29tcGFnbmVtZW50IGVtcGxvaSIsImNhZHJlMyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJjYWRyZTQiOm51bGwsImNhZHJlNSI6bnVsbCwiYWNjZXNzaWJpbGl0ZTEiOiJBdWRpdGlmIiwiYWNjZXNzaWJpbGl0ZTIiOiJNZW50YWxcL1BzeWNoaXF1ZSIsImFjY2Vzc2liaWxpdGUzIjoiTW90ZXVyIiwiYWNjZXNzaWJpbGl0ZTQiOiJWaXN1ZWwiLCJhY2Nlc3NpYmlsaXRlNSI6bnVsbCwidHlwZTEiOiJQaHlzaXF1ZSIsInR5cGUyIjpudWxsLCJ0eXBlMyI6bnVsbCwidHlwZTQiOm51bGwsIm1mcyI6bnVsbCwiZGVwYXJ0ZW1lbnQiOiJMb2lyLWV0LUNoZXIiLCJyZWdpb24iOiJDZW50cmUtVmFsIGRlIExvaXJlIiwiY29vcmRzIjp7ImxhdCI6NDcuNTkyNiwibG9uIjoxLjMyNzM4MiwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny41OTI2LDEuMzI3MzgyLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvbG9pcmV0Y2hlci5jaWRmZi5pbmZvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LjU5NDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzE3Njk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBCTE9JUyBFUENgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIyMDY5IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJCTE9JUyBFUEMiLCJub21fc2x1ZyI6ImJsb2lzLWVwYyIsImFkcmVzc2UiOiIxMSBwbGFjZSBSZW5cdTAwZTkgQ290eSIsImNwIjoiNDEwMDAiLCJ2aWxsZSI6IkJsb2lzIiwidmlsbGVfc2x1ZyI6ImJsb2lzIiwiY2l0eV9pZCI6IjE2MTEyIiwiZW1haWwiOiJjb250YWN0NDFAY2lkZmZjZW50cmV2YWxkZWxvaXJlLmZyIiwidGVsZXBob25lIjoiMDI1NDQyMTczOSIsInFwdiI6IjEiLCJ6cnIiOiIwIiwiYWNjdWVpbCI6IkNJREZGIDQxIiwiYWNjdWVpbF9wcmVjaXNpb24iOiIiLCJob3JhaXJlcyI6IjEzaCAxN2ggdW4gdmVuZHJlZGkgc3VyIGRldXgiLCJ2b2xfaHJfaGViZG8iOiI0aCB1biB2ZW5kcmVkaSBzdXIgZGV1eCIsImlpIjoiMSIsImljIjoiMCIsImUiOiIwIiwidiI6IjAiLCJwcmVjaXNpb24iOiIiLCJjYXJ0b2dyYXBoaWUiOiIxIiwiZGVsZXRlZCI6IjAiLCJjYWRyZTEiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJjYWRyZTIiOm51bGwsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjoiQXVkaXRpZiIsImFjY2Vzc2liaWxpdGUyIjpudWxsLCJhY2Nlc3NpYmlsaXRlMyI6bnVsbCwiYWNjZXNzaWJpbGl0ZTQiOm51bGwsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOiJUXHUwMGU5bFx1MDBlOXBob25pcXVlIiwidHlwZTMiOm51bGwsInR5cGU0IjpudWxsLCJtZnMiOm51bGwsImRlcGFydGVtZW50IjoiTG9pci1ldC1DaGVyIiwicmVnaW9uIjoiQ2VudHJlLVZhbCBkZSBMb2lyZSIsImNvb3JkcyI6eyJsYXQiOjQ3LjU5NDE5LCJsb24iOjEuMzE3Njk5LCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ3LjU5NDE5LDEuMzE3Njk5LDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvbG9pcmV0Y2hlci5jaWRmZi5pbmZvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LjgwOTUxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA2NTM2MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQ0VOVFJFIFNPQ0lPLUNVTFRVUkVMIFZFTkRPTUVgLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiaWQiOiIyMTM0IiwiY2VudHJlX2lkIjoiMjciLCJub20iOiJDRU5UUkUgU09DSU8tQ1VMVFVSRUwgVkVORE9NRSIsIm5vbV9zbHVnIjoiY2VudHJlLXNvY2lvY3VsdHVyZWwtdmVuZG9tZSIsImFkcmVzc2UiOiIyNCBhdmVudWUgR2VvcmdlcyBDbFx1MDBlOW1lbmNlYXUiLCJjcCI6IjQxMTAwIiwidmlsbGUiOiJWZW5kXHUwMGY0bWUiLCJ2aWxsZV9zbHVnIjoidmVuZG9tZSIsImNpdHlfaWQiOiIxNjM1NyIsImVtYWlsIjoiY29udGFjdDQxQGNpZGZmY2VudHJldmFsZGVsb2lyZS5mciIsInRlbGVwaG9uZSI6IjAyNTQ0MjE3MzkiLCJxcHYiOiIxIiwienJyIjoiMCIsImFjY3VlaWwiOiJDZW50cmUgc29jaWFsIGRlIFZlbmRcdTAwZjRtZSIsImFjY3VlaWxfcHJlY2lzaW9uIjoiIiwiaG9yYWlyZXMiOiIxNGgtMTdoIGxlIG1hcmRpIiwidm9sX2hyX2hlYmRvIjoiM2giLCJpaSI6IjEiLCJpYyI6IjEiLCJlIjoiMSIsInYiOiIwIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjoiTCdhY2NcdTAwZThzIGF1eCBkcm9pdHMgdG91dGVzIHRoXHUwMGU5bWF0aXF1ZXMgY29uZm9uZHVlcyAoRFx1MDBlOWNyZXQgMjAxNS0xNzQ1IGR1IDIzIGRcdTAwZTljZW1icmUgMjAxNSByZWxhdGlmIFx1MDBlMCBsJ2Fnclx1MDBlOW1lbnQpIiwiY2FkcmUyIjoiTCdhY2NvbXBhZ25lbWVudCBlbXBsb2kiLCJjYWRyZTMiOm51bGwsImNhZHJlNCI6bnVsbCwiY2FkcmU1IjpudWxsLCJhY2Nlc3NpYmlsaXRlMSI6IkF1ZGl0aWYiLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkxvaXItZXQtQ2hlciIsInJlZ2lvbiI6IkNlbnRyZS1WYWwgZGUgTG9pcmUiLCJjb29yZHMiOnsibGF0Ijo0Ny44MDk1MTQsImxvbiI6MS4wNjUzNjIsInVybCI6Imh0dHBzOlwvXC93d3cuZ29vZ2xlLmZyXC9tYXBzXC9ANDcuODA5NTE0LDEuMDY1MzYyLDE1eiJ9LCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvbG9pcmV0Y2hlci5jaWRmZi5pbmZvIn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ3LjU5NDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzA5NjQ4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBQSU1NU2AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJpZCI6IjIyMTciLCJjZW50cmVfaWQiOiIyNyIsIm5vbSI6IlBJTU1TIiwibm9tX3NsdWciOiJwaW1tcyIsImFkcmVzc2UiOiIxMzMgcnVlIE1pY2hlbCBCXHUwMGU5Z29uIiwiY3AiOiI0MTAwMCIsInZpbGxlIjoiQmxvaXMiLCJ2aWxsZV9zbHVnIjoiYmxvaXMiLCJjaXR5X2lkIjoiMTYxMTIiLCJlbWFpbCI6InBpbW1zNDFAcXVhcnRpZXJzcHJveGltaXRlLmNvbSIsInRlbGVwaG9uZSI6IjAyIDU0IDQ1IDM0IDU0IiwicXB2IjoiMSIsInpyciI6IjAiLCJhY2N1ZWlsIjoiUElNTVMiLCJhY2N1ZWlsX3ByZWNpc2lvbiI6IlBvaW50cyBkXHUyMDE5SW5mb3JtYXRpb24gTVx1MDBlOWRpYXRpb24gTXVsdGlzZXJ2aWNlcyIsImhvcmFpcmVzIjoiRW1wbG9pIDogTWFyZGkgZGUgMTRoIFx1MDBlMCAxN2hcbkFjY1x1MDBlOHMgYXUgZHJvaXQgOiBKZXVkaSBkZSAxNGggXHUwMGUwIDE3aCIsInZvbF9ocl9oZWJkbyI6IjMiLCJpaSI6IjEiLCJpYyI6IjAiLCJlIjoiMSIsInYiOiIwIiwicHJlY2lzaW9uIjoiIiwiY2FydG9ncmFwaGllIjoiMSIsImRlbGV0ZWQiOiIwIiwiY2FkcmUxIjpudWxsLCJjYWRyZTIiOiJMJ2FjY29tcGFnbmVtZW50IGVtcGxvaSIsImNhZHJlMyI6bnVsbCwiY2FkcmU0IjpudWxsLCJjYWRyZTUiOm51bGwsImFjY2Vzc2liaWxpdGUxIjpudWxsLCJhY2Nlc3NpYmlsaXRlMiI6Ik1lbnRhbFwvUHN5Y2hpcXVlIiwiYWNjZXNzaWJpbGl0ZTMiOiJNb3RldXIiLCJhY2Nlc3NpYmlsaXRlNCI6IlZpc3VlbCIsImFjY2Vzc2liaWxpdGU1IjpudWxsLCJ0eXBlMSI6IlBoeXNpcXVlIiwidHlwZTIiOm51bGwsInR5cGUzIjpudWxsLCJ0eXBlNCI6bnVsbCwibWZzIjpudWxsLCJkZXBhcnRlbWVudCI6IkxvaXItZXQtQ2hlciIsInJlZ2lvbiI6IkNlbnRyZS1WYWwgZGUgTG9pcmUiLCJjb29yZHMiOnsibGF0Ijo0Ny41OTQxMSwibG9uIjoxLjMwOTY0OCwidXJsIjoiaHR0cHM6XC9cL3d3dy5nb29nbGUuZnJcL21hcHNcL0A0Ny41OTQxMSwxLjMwOTY0OCwxNXoifSwic2l0ZV9pbnRlcm5ldCI6Imh0dHA6XC9cL2xvaXJldGNoZXIuY2lkZmYuaW5mbyJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ny41OTI2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMzI3MzgyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBMb2lyLWV0LUNoZXIsIEJsb2lzYCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ImlkIjoiMjciLCJub20iOiJMb2lyLWV0LUNoZXIsIEJsb2lzIiwiYWRyZXNzZSI6IjI4IHJ1ZSBkZXMgXHUwMGU5Y29sZXMiLCJjcCI6IjQxMDAwIiwidmlsbGUiOiJCbG9pcyIsInRlbGVwaG9uZSI6IjAyIDU0IDQyIDE3IDM5IiwibWFpbCI6ImNvbnRhY3Q0MUBjaWRmZmNlbnRyZXZhbGRlbG9pcmUuZnIiLCJzaXRlX2ludGVybmV0IjoiaHR0cDpcL1wvbG9pcmV0Y2hlci5jaWRmZi5pbmZvIiwiYWNjZXNfZHJvaXQiOiJMJ2FjY1x1MDBlOHMgYXV4IGRyb2l0cyB0b3V0ZXMgdGhcdTAwZTltYXRpcXVlcyBjb25mb25kdWVzIChEXHUwMGU5Y3JldCAyMDE1LTE3NDUgZHUgMjMgZFx1MDBlOWNlbWJyZSAyMDE1IHJlbGF0aWYgXHUwMGUwIGwnYWdyXHUwMGU5bWVudCkiLCJlbXBsb2kiOiJMJ2FjY29tcGFnbmVtZW50IGVtcGxvaSIsInZpb2xlbmNlcyI6IkwnYWNjb21wYWduZW1lbnQgdmlvbGVuY2UiLCJwYXJlbnRhbGl0ZSI6bnVsbCwiYXV0cmUiOm51bGwsInNpZWdlIjp0cnVlLCJjb29yZHMiOnsibGF0Ijo0Ny41OTI2LCJsb24iOjEuMzI3MzgyLCJ1cmwiOiJodHRwczpcL1wvd3d3Lmdvb2dsZS5mclwvbWFwc1wvQDQ3LjU5MjYsMS4zMjczODIsMTV6In0sInJlZ2lvbiI6IkNlbnRyZS1WYWwgZGUgTG9pcmUiLCJkZXBhcnRlbWVudCI6IkxvaXItZXQtQ2hlciJ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZhdWx0Wm9vbSA9IDc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVmYXVsdFpvb21Nb2JpbGUgPSA2OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1pblpvb20gPSA2OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1heFpvb20gPSAyMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hcCA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5pdE1hcChzZWxlY3RlZENhdGVnb3JpZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAgPSBuZXcgTC5tYXAobWFwSWQsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgem9vbUNvbnRyb2w6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBMLmNvbnRyb2wuem9vbSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYm90dG9tcmlnaHQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWRkVG8obWFwKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEwudGlsZUxheWVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cHM6Ly97c30uYmFzZW1hcHMuY2FydG9jZG4uY29tL2xpZ2h0X2FsbC97en0ve3h9L3t5fXtyfS5wbmcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5ab29tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Wm9vbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5hZGRUbyhtYXApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllckNhdGVnb3J5MSA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnkyID0gW107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJDYXRlZ29yeTMgPSBbXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllckNhdGVnb3J5NCA9IFtdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyQ2F0ZWdvcnk1ID0gW107CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmtlcnMgPSBuZXcgTC5tYXJrZXJDbHVzdGVyR3JvdXAoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGlkZXJMZWdQb2x5bGluZU9wdGlvbnM6IHsgd2VpZ2h0OiA2MDAsIGNvbG9yOiAnIzIyMicsIG9wYWNpdHk6IDAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Q2x1c3RlclJhZGl1czogNDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFpbk1hcmtlcnMgPSBuZXcgTC5sYXllckdyb3VwKCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc1BvaW50cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gYWRkcmVzc1BvaW50c1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGl0bGUgPSBhWzJdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYVszXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29vcmRzID0gbmV3IEwuTGF0TG5nKGFbMF0sIGFbMV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmtlciA9IHsgZGF0YTogbmV3IEwubWFya2VyKGNvb3JkcywgeyB0aXRsZSB9KSwgc2llZ2U6IGRhdGEuc2llZ2UgfTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZGF0YVsnY2FkcmUxJ10gfHwgZGF0YVsnYWNjZXNfZHJvaXQnXSApIGxheWVyQ2F0ZWdvcnkxLnB1c2gobWFya2VyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkYXRhWydjYWRyZTInXSB8fCBkYXRhWyd2aW9sZW5jZXMnXSApIGxheWVyQ2F0ZWdvcnkyLnB1c2gobWFya2VyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkYXRhWydjYWRyZTMnXSB8fCBkYXRhWydlbXBsb2knXSApIGxheWVyQ2F0ZWdvcnkzLnB1c2gobWFya2VyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBkYXRhWydjYWRyZTQnXSB8fCBkYXRhWydwYXJlbnRhbGl0ZSddICkgbGF5ZXJDYXRlZ29yeTQucHVzaChtYXJrZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGRhdGFbJ2NhZHJlNSddIHx8IGRhdGFbJ2F1dHJlJ10gKSBsYXllckNhdGVnb3J5NS5wdXNoKG1hcmtlcik7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXIuZGF0YS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAucGFuVG8oY29vcmRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFJlZi5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnb24tbWFya2VyLWludGVyYWN0JywgeyBkZXRhaWw6IGRhdGEgfSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZExheWVyKG1haW5NYXJrZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuYWRkTGF5ZXIobWFya2Vycyk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyc1RvRGlzcGxheSA9IFtdOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRDYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc2VsZWN0ZWRDYXRlZ29yaWVzLmluY2x1ZGVzKDEpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoMikgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5MikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGVjdGVkQ2F0ZWdvcmllcy5pbmNsdWRlcygzKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnkzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggc2VsZWN0ZWRDYXRlZ29yaWVzLmluY2x1ZGVzKDQpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzVG9EaXNwbGF5LnB1c2goLi4ubGF5ZXJDYXRlZ29yeTQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxlY3RlZENhdGVnb3JpZXMuaW5jbHVkZXMoNSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnNUb0Rpc3BsYXkucHVzaCguLi5sYXllckNhdGVnb3J5NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyc1RvRGlzcGxheS5wdXNoKC4uLmxheWVyQ2F0ZWdvcnkxLCAuLi5sYXllckNhdGVnb3J5MiwgLi4ubGF5ZXJDYXRlZ29yeTMsIC4uLmxheWVyQ2F0ZWdvcnk0LCAuLi5sYXllckNhdGVnb3J5NSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmtlcnNUb1Nob3cgPSBbLi4ubmV3IFNldChsYXllcnNUb0Rpc3BsYXkpXTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXJrZXJzVG9TaG93Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBtYXJrZXJzVG9TaG93W2ldOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG0uc2llZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZGF0YS5hZGRUbyhtYWluTWFya2Vycyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtLmRhdGEuc2V0WkluZGV4T2Zmc2V0KDEwMDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbS5kYXRhLnNldEljb24oY3JlYXRlTWFpbk1hcmtlcigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZGF0YS5hZGRUbyhtYXJrZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0uZGF0YS5zZXRJY29uKGNyZWF0ZU1hcmtlcigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBtYXJrZXJzLmdldExheWVycygpLmxlbmd0aCA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuZml0Qm91bmRzKG1hcmtlcnMuZ2V0Qm91bmRzKCksIHsgcGFkZGluZzogWyAxMCwgMTAgXSB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtYWluTWFya2Vycy5nZXRMYXllcnMoKVswXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnNldFZpZXcobWFpbk1hcmtlcnMuZ2V0TGF5ZXJzKClbMF0uZ2V0TGF0TG5nKCksIDUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2V0VmlldyhbNDYuNSwgMi4zNDU0OTIzXSwgMykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEludGVyYWN0aW9uIHJ1bGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnNjcm9sbFdoZWVsWm9vbS5kaXNhYmxlKCk7IC8vIERpc2FibGUgc2Nyb2xsIGludGVyYWN0aW9uIGF0IGZpcnN0CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCAoZSkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2Nyb2xsV2hlZWxab29tLmVuYWJsZSgpOyAvLyBSZWVuYWJsZSBzY3JvbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAuc2Nyb2xsV2hlZWxab29tLmRpc2FibGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwUmVmLmFkZEV2ZW50TGlzdGVuZXIoJ29uLW1hcmtlci1pbnRlcmFjdCcsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNpdGVEZXRhaWxzKGUuZGV0YWlsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkZURldGFpbHNFdmVudHMgPSBbJ2NsaWNrJywgJ21vdmVzdGFydCddCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZURldGFpbHNFdmVudHMuZm9yRWFjaChlID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZEV2ZW50TGlzdGVuZXIoZSwgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmtleSA9PT0gIkVzY2FwZSIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVTaXRlRGV0YWlscygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRNYXAoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVNYXJrZXIoY2xhc3NOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMLmljb24oewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uVXJsOiAnaHR0cHM6Ly9sb2lyZXRjaGVyLmNpZGZmLmluZm8vd3AtY29udGVudC90aGVtZXMvY2lkZmYtd3AvYXNzZXRzL2ltYWdlcy93ZWJwL2ljb24tcGlucy1zZWNvbmRhcnktZmlsbGVkLndlYnAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzE4LCAyM10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd1VybDogJ2h0dHBzOi8vbG9pcmV0Y2hlci5jaWRmZi5pbmZvL3dwLWNvbnRlbnQvdGhlbWVzL2NpZGZmLXdwL2Fzc2V0cy9pbWFnZXMvd2VicC9pY29uLXBpbnMtZmlsbGVkLXNoYWRvdy53ZWJwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93U2l6ZTogWzI1LCAyNV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYWRvd0FuY2hvcjogWzQsIDE1XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZU1haW5NYXJrZXIoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBMLmljb24oewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uVXJsOiAnaHR0cHM6Ly9sb2lyZXRjaGVyLmNpZGZmLmluZm8vd3AtY29udGVudC90aGVtZXMvY2lkZmYtd3AvYXNzZXRzL2ltYWdlcy93ZWJwL2ljb24tcGlucy1maWxsZWQud2VicCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TaXplOiBbMjgsIDMzXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93VXJsOiAnaHR0cHM6Ly9sb2lyZXRjaGVyLmNpZGZmLmluZm8vd3AtY29udGVudC90aGVtZXMvY2lkZmYtd3AvYXNzZXRzL2ltYWdlcy93ZWJwL2ljb24tcGlucy1maWxsZWQtc2hhZG93LndlYnAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFkb3dTaXplOiBbMzAsIDMwXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhZG93QW5jaG9yOiBbNCwgMTZdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0U2l0ZURldGFpbHMoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dTaXRlRGV0YWlscygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VlTW9yZUtleSA9IGRhdGEuc2llZ2UgPyBgJHtuZXcgU3RyaW5nKGRhdGEubm9tKS5yZXBsYWNlKC9cXHxcLHxccy9naSwgJy0nKS50b0xvd2VyQ2FzZSgpfS0ke2RhdGEuaWR9YCA6IGAke2RhdGEubm9tX3NsdWd9LSR7ZGF0YS5pZH1gCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRpdGxlJ10iKS5pbm5lckhUTUwgPSBkYXRhLm5vbTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtc2VlLW1vcmUnXSIpLmhyZWYgPSBgaHR0cHM6Ly9sb2lyZXRjaGVyLmNpZGZmLmluZm8vbGlzdGUtZGVzLXBlcm1hbmVuY2VzLz9kZXBhcnRlbWVudD0ke2RhdGEuZGVwYXJ0ZW1lbnR9JmNlbnRyZS1pZD0ke3NlZU1vcmVLZXl9YDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuaG9yYWlyZXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWhvdXJzLXdyYXBwZXInXSIpLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1ob3VycyddIikuaW5uZXJIVE1MID0gZGF0YS5ob3JhaXJlczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtaG91cnMtd3JhcHBlciddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1sb2NhdGlvbiddIikuaW5uZXJIVE1MID0gYCR7ZGF0YS5hZHJlc3NlfSwgJHtkYXRhLmNwfSAke2RhdGEudmlsbGV9YDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudGVsZXBob25lKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS10ZWwtd3JhcHBlciddIikuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRlbCddIikuaW5uZXJIVE1MID0gZGF0YS50ZWxlcGhvbmU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLXRlbC13cmFwcGVyJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FkcmUxIHx8IGRhdGEuYWNjZXNfZHJvaXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTEnXSIpLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0xJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuY2FkcmUyIHx8IGRhdGEuZW1wbG9pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYucXVlcnlTZWxlY3RvcigiW3JlZj0nc2l0ZS1jYWRyZS0yJ10iKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMiddIikuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmNhZHJlMyB8fCBkYXRhLnZpb2xlbmNlcykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtMyddIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTMnXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5jYWRyZTQgfHwgZGF0YS5wYXJlbnRhbGl0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLnF1ZXJ5U2VsZWN0b3IoIltyZWY9J3NpdGUtY2FkcmUtNCddIikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwRGV0YWlsc1JlZi5xdWVyeVNlbGVjdG9yKCJbcmVmPSdzaXRlLWNhZHJlLTQnXSIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVTaXRlRGV0YWlscygpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBEZXRhaWxzUmVmLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2hvd1NpdGVEZXRhaWxzKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcERldGFpbHNSZWYuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiByZXNldE1hcExheW91dCgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlU2l0ZURldGFpbHMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXAub2ZmKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbi1tYXAtcmVmcmVzaCIsIChlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXRNYXBMYXlvdXQoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3RDYXRlZ29yaWVzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhc3QtZmlsdGVyLWNhdGVnb3JpZXMnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RDYXRlZ29yaWVzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RDYXRlZ29yaWVzID0gSlNPTi5wYXJzZShsYXN0Q2F0ZWdvcmllcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdE1hcChsYXN0Q2F0ZWdvcmllcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRNYXAoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbi1jYXRlZ29yeS1maWx0ZXItY2hhbmdlIiwgKGUpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZENhdGVnb3JpZXMgPSBlLmRldGFpbDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVNpdGVEZXRhaWxzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLm9mZigpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5yZW1vdmUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0TWFwKHNlbGVjdGVkQ2F0ZWdvcmllcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAg": [
          "keydown"
        ]
      }
    },
    "canvas_fingerprinters": {
      "data_url": {},
      "fingerprinters": [],
      "styles": {},
      "texts": {}
    },
    "canvas_font_fingerprinters": {
      "canvas_font": {},
      "text_measure": {}
    },
    "cookies": [],
    "fb_pixel_events": [],
    "tiktok_pixel_events": [],
    "twitter_pixel_events": [],
    "google_analytics_events": [],
    "key_logging": {},
    "session_recorders": {},
    "third_party_trackers": []
  }
}