{
  "current": "mobile-548107c9",
  "manifest": {
    "release": "mobile-548107c9",
    "dataHash": "548107c94168fa07a1a1c11c4ab02c6715d64b85c288eae69b292535094790e8",
    "files": {
      "WebPreview.data": {
        "bytes": 380150694,
        "sha256": "548107c94168fa07a1a1c11c4ab02c6715d64b85c288eae69b292535094790e8"
      },
      "WebPreview.framework.js": {
        "bytes": 509175,
        "sha256": "9102e362dc5125afb7224532d8672bfe6f93752d5de3396a60cd2bbaeabacb1c"
      },
      "WebPreview.loader.js": {
        "bytes": 26982,
        "sha256": "821e6e41615d2189e580466b3d2f266a003ad8c1008da2945474e47786150a97"
      },
      "WebPreview.wasm": {
        "bytes": 25771865,
        "sha256": "9dde3360b51bec1b3daefc0f630815b712874dea9d81cd2a264a2fbb7d87c1ae"
      },
      "Tahoma.ttf": {
        "bytes": 919260,
        "sha256": "9af03d4ad44a3b413d92f7de48b94aa7cc8a1471a75d498406eae837f62ee1d1"
      }
    },
    "previousIndexHash": "e0f8e8e41f94818b3705ab19afa047339d21039413e0d2bfb4223f057df29c4b",
    "previousConfigHash": "d61ff7866771febb352699bbd4a062e117c3d79ec43f2bf64c9840cdaa1870b9",
    "archiveHash": "3a91f65b95ce77eff7fc19d2eb00ec512ae75a2465d45d889dcfd60684c7dad4",
    "indexHash": "21f48415378dd74f332b7403444b3fa8550e1801245e00fddffa0289f79d6999",
    "chunkHash": "3597a3c86b60d7803b0b6ed13c86eb46b4a5e6defc3497155c9011bcb147ed11",
    "configHash": "999b792a48065502c7d9c6fd19fd4e54f40e218e5472d4adfd2defa0ce98d2a5",
    "compact": {
      "previousDataHash": "201a3a5919aa6146b0629b2d7727a0863cbd2e2277ffa6e30e3df1c15313d6ea",
      "parts": [
        {
          "name": "WebPreview.data.548107c9.part000.gz",
          "rawHash": "e69c84922442ad494f6009dd107bf9f7a054f174ef6e1964dbe368e0cc37685f",
          "rawBytes": 4194304,
          "encodedHash": "70722433b302651dbc9652a70e5117cfba630cb7bd55256f2ac2368530b06c4f",
          "encodedBytes": 3917883
        },
        {
          "name": "WebPreview.data.548107c9.part001.gz",
          "rawHash": "88658672e965eb464debf627e0323bd16bb1108504ace81ea01ce3bcaa594b6c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part001.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part002.gz",
          "rawHash": "43f16d395f718ac10eb82a9af8c9245bca4d3970fe8c46188fa9f8fc864c83aa",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part002.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part003.gz",
          "rawHash": "df8b44c83b5832b0ad5966f530818f9aeddd2af849a82de164a57b3bf50852ce",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part003.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part004.gz",
          "rawHash": "601bc60fbf07ebe3badb9164d2689cc5d0486c40a42580b7a30ba88ca312ed81",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part004.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part005.gz",
          "rawHash": "5b0119fb001d0199a578dde77da50612637d3f35b734b3bafedd2fa2b26541d8",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part005.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part006.gz",
          "rawHash": "037de6e38c7a2c4fd49ba173fcd788457ae718ab6b427343199b7c0c92848a2c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part006.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part007.gz",
          "rawHash": "4c714f62bb9f0a8ea0bc19ef374ed90daec30747eb5007ad1d95147b509a22b7",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part007.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part008.gz",
          "rawHash": "1fc1543766b5dffc8fc4731441a892a4a31b02a0fbd4545414d1489870a6f4b2",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part008.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part009.gz",
          "rawHash": "9dd7b118770f76cba907d2a134c386a257df960e96221f81b869b678ae977f60",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part009.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part010.gz",
          "rawHash": "dd9c1398544ce9f2f17c7127c8f1d682558b703c9a69951fdc1f775878a334c0",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part010.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part011.gz",
          "rawHash": "c3b8d908fb9a4936be19e5a02a4208c68d5c84fd8708a99e1c5d777c0beb5bff",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part011.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part012.gz",
          "rawHash": "d8be9a5b90bfcdf187328debb87c404c72c2c8a3645d4888f580e916b6b30512",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part012.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part013.gz",
          "rawHash": "152232acf9c6ba138931fb94d15c5ad424e1e67608f898a05b9891330308feec",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part013.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part014.gz",
          "rawHash": "826ef8364b5a42aa56fa770028929589363f123f4c3c8dcffa6d52c7bafe33c9",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part014.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part015.gz",
          "rawHash": "dfe170a0a16a09da8bcc2043fad341a354f1413f406ab69c4386a7341751039f",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part015.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part016.gz",
          "rawHash": "412b1c5b5c149904fb58e0f9deac1d86b0cedef255ef709e39f8a5619c9f1fb2",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part016.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part017.gz",
          "rawHash": "9b753ad82954d240634d355a9e784b9648694500aeca88ea50f3a7dc41a056aa",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part017.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part018.gz",
          "rawHash": "f140948909648994efd5aa62e001ec60935aedeb10e27b2632a0deaa5235e806",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part018.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part019.gz",
          "rawHash": "ef2cd347bdc28320f18620ecc10b24b5f2d4b4cdaa0d02bad49c23660d732e7d",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part019.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part020.gz",
          "rawHash": "8ecff0eae651c6379d37de66f5c6ff21d3b0e6beead1bd18bd1085bc778fe15e",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part020.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part021.gz",
          "rawHash": "169e44959d776cd27b20118fa678b90b0c08b5810af36138323bfab646c7c3b2",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part021.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part022.gz",
          "rawHash": "35e297da18445f3e43f4a32a88c429b532b37c157b027ae21c6140384950b51a",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part022.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part023.gz",
          "rawHash": "3f1b2a3e5956c46dbea9a60a396fb4e71ccf4a5890abc2c828963ce57be4b957",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part023.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part024.gz",
          "rawHash": "a91e50550c70517b64b5f036875d5756a4af62c56e35a0156fa2294c68417615",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part024.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part025.gz",
          "rawHash": "1dc8ea9bd3a6801b8552f493ef2a6efea6133d9bce931ff327633ee5a23214e8",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part025.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part026.gz",
          "rawHash": "88b8ad5481ad96089924072e18a80334d0d55e7164a78f7f77380a4c958f8be9",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part026.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part027.gz",
          "rawHash": "c0d7e68bd0bd27807a0aee015bba6e946bd59521b8e1a526debae94d2f555e9c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part027.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part028.gz",
          "rawHash": "82ab37e00d84f9c30deeb7d79cb869c8a51447129ef17b6c24d2c52341bd7d37",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part028.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part029.gz",
          "rawHash": "9c44549e8d565571d1cfd97af224f816a30bddb030884bb7dcaef39329f9a3c2",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part029.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part030.gz",
          "rawHash": "429678f74895c6470e59fd5d8b0994fb39755093f739f194b25adc9611e5cfda",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part030.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part031.gz",
          "rawHash": "9b5a5c2d8ca114a8f39a360c59a5296a4519a1900120dc9ce16c26d479ce103c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part031.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part032.gz",
          "rawHash": "eb663e6278815c3751ff5ecfb474088521736bd35a04e92dab823a2b9a1101ee",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part032.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part033.gz",
          "rawHash": "e77fd10df16b3464ca3163401dd1744e1d3acd01720e7794e3fa8295544b0b64",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part033.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part034.gz",
          "rawHash": "ea35c953a8f3728c803cbc21785f3fe50e904e02d96b3ac903a8b3fe9fa80d40",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part034.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part035.gz",
          "rawHash": "fd5bc97201b7a72ba5af058ada219d0dd79a783aea9f9aad4246f1fea81443f4",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part035.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part036.gz",
          "rawHash": "3812bfaedf7bcba09e64e1d32627966bf56b67b50d7fad36093fc247d7351f9d",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part036.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part037.gz",
          "rawHash": "8462fa7a9e30a0dd9583000687791bfedb20535766ae8d212dd44ab765a1936d",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part037.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part038.gz",
          "rawHash": "4b6bf03594f7bb8ac00ef855bac7ae00a2d822e09e4990994d1f3d8af3ee891c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part038.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part039.gz",
          "rawHash": "b2b5d0e6525d285a52eca4762539e7b73d0db183e0107b2da22cd7f91447c50b",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part039.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part040.gz",
          "rawHash": "ba0b8c607496345c1ca5c62e4d197ebc67d6883dc6bb43bd5709825c1b944a72",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part040.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part041.gz",
          "rawHash": "ab8fa74535077ec6e1618f901308785d6720166c40021d414ff4a9789ac0c311",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part041.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part042.gz",
          "rawHash": "72028b0eb2f127c0a2d5026ededc12cc9328db3d92d4b275bfea4b65a1174e08",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part042.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part043.gz",
          "rawHash": "b82d4e0f508816627deff421d35a9019eaa983639f102926b8ca53edd2a86540",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part043.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part044.gz",
          "rawHash": "801bc25dad8ae324c039df00f092543eacbe112ab4517a0332f19fcfb8477e40",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part044.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part045.gz",
          "rawHash": "6f0fae6c7b6423a8cfe0b4fd2027911834c6b78d87356a63e59a05fb88f033d1",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part045.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part046.gz",
          "rawHash": "c35834162cb8573dc5621e3cfd763d3912408571c06f98b472a27dce04483445",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part046.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part047.gz",
          "rawHash": "618085255b0024a2b52a9b3125d38b96f20479cedf69d215e71c8472565b82a1",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part047.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part048.gz",
          "rawHash": "24f32f090cbb4cf934ae7eb59f444cc38d954c51fd77fd27ebbabe8ab7fe85c5",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part048.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part049.gz",
          "rawHash": "9c3a1881f0aea4a00ef2f7db5895b48a78f3f0ad08af933b4e3187cf0f7c701c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part049.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part050.gz",
          "rawHash": "4d709009fdf8a897784cf9e8232dd97f7184d7a78638653f1e394b8f92034fdf",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part050.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part051.gz",
          "rawHash": "e78f266e341a79e48f8bc0597d1918dec08ac93f45e8eb48af74a9b84c553994",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part051.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part052.gz",
          "rawHash": "6b2f877bab864a01e5c3c4099b0a8acc99c1adf31263e80476f6a936d0e98f69",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part052.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part053.gz",
          "rawHash": "34172e33245fe5fa7a6492ef23242056f9ca69efa09182e4c1c0e665f8bc3ab6",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part053.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part054.gz",
          "rawHash": "98733fc7f83f289605aa9f3c1590f6720f78649c16fe984d1cf5ac97567ca039",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part054.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part055.gz",
          "rawHash": "5c6539e2518a88e837dc706b202a9c18e0f2f6f0dcc3292ce2505c06b1b4fe1d",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part055.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part056.gz",
          "rawHash": "7cc617b2f82ab59de51776972da2f9620888387ad5e10f488ea48f84234af862",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part056.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part057.gz",
          "rawHash": "a05f77e714197e526f5e38f6f0df0e8fb65ab9f07591013122ce6deada271cdb",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part057.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part058.gz",
          "rawHash": "ac8841a1d57db7eb3334c68c8468f1617d3741ec7f3020dc206d2798ca7be9d2",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part058.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part059.gz",
          "rawHash": "874bcc4bb89ee4a527462e963cd3f8c0735c9e70fb843606ed70e3911e51f32e",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part059.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part060.gz",
          "rawHash": "e1f7708cf3b4ea8a0372d2ecdd325eb47e0489aa6d1d1931bf0ad123eb1ed13c",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part060.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part061.gz",
          "rawHash": "121f5bbfcff99926078f3eb23c2c1bdadcb530012f0b1962ea2e01951744f300",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part061.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part062.gz",
          "rawHash": "f81dbc2d2c8d9b04038a40838593e5a98c23d57b794d2eb0c5abd02c9ec62a16",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part062.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part063.gz",
          "rawHash": "ee9473dc002519c948b2ea7a7f3ecf1ecd6d3c86802a4b3c1c54053a97f47957",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part063.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part064.gz",
          "rawHash": "e9551a4c622814fa4ad7b94b46b67b2cbc041a410b865b4291cd420ec4b605e5",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part064.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part065.gz",
          "rawHash": "bf1a974acac46c61dbcef613543ea9cda83bfe3a703b8171a8f3ff997542f841",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part065.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part066.gz",
          "rawHash": "d62d7c7fae4c3eb7b934c047b547fc4f46173a5173e3c160cf1c8bb6e491ed9b",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part066.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part067.gz",
          "rawHash": "0b5b10e62cce38d8baf995f38881465611f21978d90ead1c99c71ab4d8160440",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part067.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part068.gz",
          "rawHash": "833dd68b230e80ceff8534ccc5c37ac7dcc535adb0da73c9f7ec240cd9ee1c30",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part068.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part069.gz",
          "rawHash": "2ecd4661d189141423294106c6f9f3e7eb6e3a509246d0334441a345eb0cb6c8",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part069.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part070.gz",
          "rawHash": "ff6c0ac3ab3bee084b39b36e76ce5398c54f070d9b0baa11f375381bf6cdf274",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part070.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part071.gz",
          "rawHash": "37278886a64fed0bfa434f3ae482b0dc99d3ee013789c4d2f83a0cf89e24bccb",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part071.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part072.gz",
          "rawHash": "72995bad9cad426043d3e047ad11a06435e820ba5f6844232fd8e2ec0e2f71b6",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part072.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part073.gz",
          "rawHash": "cc8fba48298d9c84f3c2d135453376e4443ba69c1cb77ba5bfcf5ccfb7983c75",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part073.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part074.gz",
          "rawHash": "4148549064b4935de6e3209362d64df2a59fa990431bd6bd191a0966e76e7a2f",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part074.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part075.gz",
          "rawHash": "2ae12ac28d98d62052cc9e76641d7fd506f0847dca90c9eba19f7613988676e7",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part075.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part076.gz",
          "rawHash": "4c79a326be7fb158d40b843d8bd422d43ec8c1bbdcc27fbae1f19f879021fe8f",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part076.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part077.gz",
          "rawHash": "a863ddec3789c19e64a24e49f2f421cba236ae537915dcf4b6db5010a49fba8e",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part077.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part078.gz",
          "rawHash": "1643d292ab4b8b5b38fa7d77f1d558b3c0f8e40714fdaca2719344de325c945a",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part078.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part079.gz",
          "rawHash": "55fcc4bdbd3f9d3c226f669b907e9b93bc8ba85fe93a3e009548d58088d40951",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part079.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part080.gz",
          "rawHash": "4326402f535ab59b6aa4d3b3651c912d3cafc63e42b8feee272116494a174f00",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part080.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part081.gz",
          "rawHash": "2f1548fc03317e848821cb9de907abfae8bdd1251cbaa177626f2b5f4e9d6435",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part081.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part082.gz",
          "rawHash": "fdda7e3322b578bb3585b10723b8e366bab0b67c87351a02f936b9403914afd4",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part082.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part083.gz",
          "rawHash": "8ba70c22e25c4a108ffeb99c3c771e446565de0ff931065aae3bbb3c0edd9979",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part083.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part084.gz",
          "rawHash": "54624e7bc7bcd89017170055ad70d6f4f6f73e6a7d793e6743bfb8cde0e59ef6",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part084.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part085.gz",
          "rawHash": "22d8aa48195acc6203d2cda494a069584cee62e5c07981bb7417678645f82495",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part085.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part086.gz",
          "rawHash": "7f03a332c14988c2da7f58852b7e650897b848f24d7cd33df8a92f68a1cb5ba8",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part086.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part087.gz",
          "rawHash": "213822eb6bec8ac9d6781fd877ca07b243d76e4dc50f55fbee74bff06b04abf5",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part087.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part088.gz",
          "rawHash": "d697525ba085489cb298289a1ae682cfad751cd7519028c448cd23d270585fac",
          "rawBytes": 4194304,
          "reuse": "WebPreview.data.201a3a59.part088.gz"
        },
        {
          "name": "WebPreview.data.548107c9.part089.gz",
          "rawHash": "2f49ae00a1bef3cac7a4f1bf0b52aba153d9e4887567b13cd5dd51338dc4f495",
          "rawBytes": 4194304,
          "encodedHash": "ee7e0d153bae18532f45cb5ad793b79ee6eee6d3fe2b12ab93aa7f99db9095ca",
          "encodedBytes": 2427060
        },
        {
          "name": "WebPreview.data.548107c9.part090.gz",
          "rawHash": "f36e2ec0ff373aa6183cd15f0bc8fc9824e31dbad0d7cff7a068e2ca69bf4eea",
          "rawBytes": 2663334,
          "encodedHash": "ac64b8d73ece3e3904c1b63a3d5f9c24253259d2bae0dbf0f2f2e875ace1f17e",
          "encodedBytes": 478577
        }
      ],
      "brotliHash": "0d4f7a3fe362108036fb2ca38db3dc9cf7b6abe83d4c9fea33512730a71eb0de",
      "brotliBytes": 325730110
    },
    "chunkCount": 91,
    "chunkCompressedBytes": 327243286,
    "brotliBytes": 325730110,
    "brotliHash": "0d4f7a3fe362108036fb2ca38db3dc9cf7b6abe83d4c9fea33512730a71eb0de",
    "publishedAtUtc": "2026-10-01T05:24:03.614103+07:00",
    "verification": {
      "httpsIndexBothUrls": true,
      "httpsCodeHashes": true,
      "gzipFirstLastDecoded": true,
      "brotliHeaders": true,
      "root404": true,
      "ownerBrowser401": true
    }
  },
  "live": {
    "mobile": {
      "sha256": "21f48415378dd74f332b7403444b3fa8550e1801245e00fddffa0289f79d6999",
      "base64": "PCFkb2N0eXBlIGh0bWw+DQ0KPGh0bWwgbGFuZz0idGgiPg0NCjxoZWFkPg0NCiAgPG1ldGEgY2hhcnNldD0idXRmLTgiPg0NCiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEsdmlld3BvcnQtZml0PWNvdmVyIj4NDQogIDxtZXRhIG5hbWU9InRoZW1lLWNvbG9yIiBjb250ZW50PSIjMTQyNjNkIj4NDQogIDxtZXRhIG5hbWU9ImFwcGxlLW1vYmlsZS13ZWItYXBwLWNhcGFibGUiIGNvbnRlbnQ9InllcyI+DQ0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+DQ0KICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iUm8tVGhhaWxhbmQiPg0NCiAgPG1ldGEgbmFtZT0ibW9iaWxlLXdlYi1hcHAtY2FwYWJsZSIgY29udGVudD0ieWVzIj4NDQogIDx0aXRsZT5Sby1UaGFpbGFuZCBNb2JpbGU8L3RpdGxlPg0NCiAgPGxpbmsgcmVsPSJtYW5pZmVzdCIgaHJlZj0iL01vYmlsZS9tYW5pZmVzdC53ZWJtYW5pZmVzdCI+DQ0KICA8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3BuZyIgc2l6ZXM9IjE5MngxOTIiIGhyZWY9Ii9Nb2JpbGUvaWNvbi0xOTIucG5nIj4NDQogIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iL01vYmlsZS9pY29uLTE5Mi5wbmciPg0NCiAgPHN0eWxlPg0NCiAgICA6cm9vdCB7IGNvbG9yLXNjaGVtZTogZGFyazsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWY7IH0NDQogICAgKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0NDQogICAgW2hpZGRlbl0geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0NDQogICAgaHRtbCwgYm9keSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IG1hcmdpbjogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZDogIzBiMTQyMjsgfQ0NCiAgICBidXR0b24geyBmb250OiBpbmhlcml0OyB9DQ0KICAgICNpbnN0YWxsLWdhdGUgeyBoZWlnaHQ6IDEwMGR2aDsgcGFkZGluZzogbWF4KDI4cHgsIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKSkgMjBweCBtYXgoMjhweCwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDUwJSAwJSwgIzMxNWI3NiAwLCAjMTQyNjNkIDQ4JSwgIzBiMTQyMiAxMDAlKTsgY29sb3I6ICNmN2YyZTc7IG92ZXJmbG93LXk6IGF1dG87IH0NDQogICAgLmNhcmQgeyBmbGV4LXNocmluazogMDsgd2lkdGg6IG1pbigxMDAlLCA0NDBweCk7IG1hcmdpbi1ibG9jazogYXV0bzsgcGFkZGluZzogMzBweCAyNXB4OyBib3JkZXI6IDFweCBzb2xpZCAjZDViODdhODA7IGJvcmRlci1yYWRpdXM6IDI0cHg7IGJhY2tncm91bmQ6ICMwZDFhMmFjYzsgYm94LXNoYWRvdzogMCAyNHB4IDcwcHggIzAwMDc7IHRleHQtYWxpZ246IGNlbnRlcjsgfQ0NCiAgICAuYXBwLWljb24geyB3aWR0aDogOTRweDsgaGVpZ2h0OiA5NHB4OyBib3JkZXItcmFkaXVzOiAyM3B4OyBib3gtc2hhZG93OiAwIDEwcHggMjhweCAjMDAwODsgfQ0NCiAgICBoMSB7IG1hcmdpbjogMThweCAwIDhweDsgZm9udC1zaXplOiBjbGFtcCgyNXB4LCA3dncsIDM0cHgpOyBsaW5lLWhlaWdodDogMS40NTsgfQ0NCiAgICAubGVhZCB7IG1hcmdpbjogMCAwIDIycHg7IGNvbG9yOiAjZDllNWVkOyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAxLjc7IH0NDQogICAgLmluc3RhbGwtYnV0dG9uIHsgd2lkdGg6IDEwMCU7IG1pbi1oZWlnaHQ6IDU0cHg7IHBhZGRpbmc6IDEwcHggMThweDsgYm9yZGVyOiAwOyBib3JkZXItcmFkaXVzOiAxNHB4OyBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2Y3ZGM5YSwgI2Q4YTU0ZCk7IGNvbG9yOiAjMWQyYTM3OyBmb250LXdlaWdodDogNzAwOyBmb250LXNpemU6IDE4cHg7IGN1cnNvcjogcG9pbnRlcjsgfQ0NCiAgICAuaW5zdGFsbC1idXR0b246Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDNweCBzb2xpZCAjZmZmOyBvdXRsaW5lLW9mZnNldDogNHB4OyB9DQ0KICAgIC5jb25maXJtLWJ1dHRvbiB7IHdpZHRoOiAxMDAlOyBtaW4taGVpZ2h0OiA0NnB4OyBtYXJnaW4tdG9wOiAxMnB4OyBwYWRkaW5nOiA5cHggMTRweDsgYm9yZGVyOiAxcHggc29saWQgI2U4Y2E4NjsgYm9yZGVyLXJhZGl1czogMTRweDsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGNvbG9yOiAjZjdlN2JkOyBmb250LXNpemU6IDE1cHg7IGN1cnNvcjogcG9pbnRlcjsgfQ0NCiAgICAuY29uZmlybS1idXR0b246Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDNweCBzb2xpZCAjZmZmOyBvdXRsaW5lLW9mZnNldDogNHB4OyB9DQ0KICAgIC5zdGVwcyB7IG1hcmdpbjogMjJweCAwIDA7IHBhZGRpbmc6IDE2cHg7IGJvcmRlci1yYWRpdXM6IDE0cHg7IGJhY2tncm91bmQ6ICNmZmYxOyBjb2xvcjogI2Q5ZTVlZDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuNzU7IGZvbnQtc2l6ZTogMTRweDsgfQ0NCiAgICAuc3RlcHMgcCB7IG1hcmdpbjogMCAwIDhweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6ICNmZmY7IH0NDQogICAgLnN0ZXBzIG9sIHsgbWFyZ2luOiAwOyBwYWRkaW5nLWxlZnQ6IDIzcHg7IH0NDQogICAgLm5vdGUgeyBtaW4taGVpZ2h0OiAzZW07IG1hcmdpbjogMThweCAwIDA7IGNvbG9yOiAjZjRkODlkOyBmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IH0NDQogICAgI2dhbWUgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwdmg7IGhlaWdodDogMTAwZHZoOyBiYWNrZ3JvdW5kOiAjMGIxNDIyOyB9DQ0KICAgICN1bml0eS1jYW52YXMgeyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgdG91Y2gtYWN0aW9uOiBub25lOyB9DQ0KICAgICNsb2FkaW5nIHsgcG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAxMCU7IHJpZ2h0OiAxMCU7IHRvcDogNTAlOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IGNvbG9yOiAjZmZmOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTVweDsgbGluZS1oZWlnaHQ6IDEuNjsgfQ0NCiAgICAjcHJvZ3Jlc3MtdHJhY2sgeyBoZWlnaHQ6IDEycHg7IG1hcmdpbi10b3A6IDEycHg7IG92ZXJmbG93OiBoaWRkZW47IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBiYWNrZ3JvdW5kOiAjZmZmZmZmMzM7IH0NDQogICAgI3Byb2dyZXNzIHsgZGlzcGxheTogYmxvY2s7IGhlaWdodDogMTAwJTsgd2lkdGg6IDAlOyBib3JkZXItcmFkaXVzOiBpbmhlcml0OyBiYWNrZ3JvdW5kOiAjZTViNjVmOyB9DQ0KICAgICNnYW1lLWVycm9yIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogYXV0byAxNnB4IG1heCgxNnB4LCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpOyBwYWRkaW5nOiAxNHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBiYWNrZ3JvdW5kOiAjNzEzMDJiOyBjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyB9DQ0KICAgICNyZXRyeS1idXR0b24geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTBweDsgcGFkZGluZzogOXB4IDE4cHg7IGJvcmRlcjogMXB4IHNvbGlkICNmZmY7IGJvcmRlci1yYWRpdXM6IDlweDsgYmFja2dyb3VuZDogI2ZmZjsgY29sb3I6ICMzMDIzMWU7IGZvbnQtd2VpZ2h0OiA3MDA7IGN1cnNvcjogcG9pbnRlcjsgfQ0NCiAgICAjcm90YXRlLWdhdGUgeyBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDIwOyBpbnNldDogMDsgbWluLWhlaWdodDogMTAwZHZoOyBwYWRkaW5nOiBtYXgoMjhweCwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKSAyNHB4IG1heCgyOHB4LCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYmFja2dyb3VuZDogIzBiMTQyMjsgY29sb3I6ICNmZmY7IHRleHQtYWxpZ246IGNlbnRlcjsgfQ0NCiAgICAucm90YXRlLWNhcmQgeyBtYXgtd2lkdGg6IDQwMHB4OyB9DQ0KICAgIC5yb3RhdGUtc3ltYm9sIHsgZm9udC1zaXplOiA1OHB4OyBsaW5lLWhlaWdodDogMTsgY29sb3I6ICNlOGNhODY7IH0NDQogICAgLnJvdGF0ZS1jYXJkIGgyIHsgbWFyZ2luOiAxOHB4IDAgMTBweDsgZm9udC1zaXplOiAyNXB4OyBsaW5lLWhlaWdodDogMS41OyB9DQ0KICAgIC5yb3RhdGUtY2FyZCBwIHsgY29sb3I6ICNkOWU1ZWQ7IGxpbmUtaGVpZ2h0OiAxLjc7IH0NDQogICAgLyogS2VlcCBVbml0eSdzIG5hdGl2ZS1rZXlib2FyZCBpbnB1dCBmb2N1c2FibGUsIGJ1dCBzaG93IHRleHQgb25seSBpbiB0aGUgZ2FtZS4NDQogICAgICAgVW5pdHkgYXBwZW5kcyB0aGUgaW5wdXQgYW5kIE9LIGJ1dHRvbiBiZWZvcmUgZm9jdXNpbmcgdGhlIGlucHV0LiAqLw0NCiAgICBib2R5ID4gZGl2Omhhcyg+IGlucHV0KTpoYXMoPiBidXR0b24pLA0NCiAgICBib2R5ID4gZGl2Omhhcyg+IHRleHRhcmVhKTpoYXMoPiBidXR0b24pIHsgdG9wOiAwICFpbXBvcnRhbnQ7IGJvdHRvbTogYXV0byAhaW1wb3J0YW50OyBsZWZ0OiAwICFpbXBvcnRhbnQ7IHdpZHRoOiAxcHggIWltcG9ydGFudDsgaGVpZ2h0OiAxcHggIWltcG9ydGFudDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyBib3JkZXI6IDAgIWltcG9ydGFudDsgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7IHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7IH0NDQogICAgYm9keSA+IGRpdjpoYXMoPiBpbnB1dCk6aGFzKD4gYnV0dG9uKSA+IGlucHV0LA0NCiAgICBib2R5ID4gZGl2Omhhcyg+IHRleHRhcmVhKTpoYXMoPiBidXR0b24pID4gdGV4dGFyZWEgeyB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7IGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDAgIWltcG9ydGFudDsgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IG9wYWNpdHk6IDAgIWltcG9ydGFudDsgY2FyZXQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OyB9DQ0KICAgIGJvZHkgPiBkaXY6aGFzKD4gaW5wdXQpOmhhcyg+IGJ1dHRvbikgPiBidXR0b24sDQ0KICAgIGJvZHkgPiBkaXY6aGFzKD4gdGV4dGFyZWEpOmhhcyg+IGJ1dHRvbikgPiBidXR0b24geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0NDQogIDwvc3R5bGU+DQ0KPC9oZWFkPg0NCjxib2R5Pg0NCiAgPG1haW4gaWQ9Imluc3RhbGwtZ2F0ZSI+DQ0KICAgIDxzZWN0aW9uIGNsYXNzPSJjYXJkIiBhcmlhLWxhYmVsbGVkYnk9ImFwcC10aXRsZSI+DQ0KICAgICAgPGltZyBjbGFzcz0iYXBwLWljb24iIHNyYz0iL01vYmlsZS9pY29uLTE5Mi5wbmciIGFsdD0iIj4NDQogICAgICA8aDEgaWQ9ImFwcC10aXRsZSI+Um8tVGhhaWxhbmQgTW9iaWxlPC9oMT4NDQogICAgICA8cCBjbGFzcz0ibGVhZCI+4LmA4Lie4Li04LmI4Lih4LmA4LiB4Lih4Lil4LiH4Lia4LiZ4Lir4LiZ4LmJ4Liy4LiI4Lit4Lir4Lil4Lix4LiBIOC5geC4peC5ieC4p+C5gOC4m+C4tOC4lOC4iOC4suC4geC5hOC4reC4hOC4reC4meC5gOC4nuC4t+C5iOC4reC5gOC4peC5iOC4mTwvcD4NDQogICAgICA8YnV0dG9uIGNsYXNzPSJpbnN0YWxsLWJ1dHRvbiIgaWQ9Imluc3RhbGwtYnV0dG9uIiB0eXBlPSJidXR0b24iPuC5gOC4nuC4tOC5iOC4oeC4peC4h+C4muC4meC4q+C4meC5ieC4suC4iOC4reC4q+C4peC4seC4gTwvYnV0dG9uPg0NCiAgICAgIDxidXR0b24gY2xhc3M9ImNvbmZpcm0tYnV0dG9uIiBpZD0iaG9tZS1jb25maXJtIiB0eXBlPSJidXR0b24iPuC5gOC4m+C4tOC4lOC4iOC4suC4geC5hOC4reC4hOC4reC4meC5geC4peC5ieC4pyDigJQg4LmA4LiC4LmJ4Liy4LmA4LiB4LihPC9idXR0b24+DQ0KICAgICAgPGRpdiBjbGFzcz0ic3RlcHMiPg0NCiAgICAgICAgPHA+4Lin4Li04LiY4Li14LiV4Li04LiU4LiV4Lix4LmJ4LiHPC9wPg0NCiAgICAgICAgPG9sIGlkPSJhbmRyb2lkLXN0ZXBzIj4NDQogICAgICAgICAgPGxpPuC5gOC4m+C4tOC4lOC4q+C4meC5ieC4suC4meC4teC5ieC4lOC5ieC4p+C4oiBDaHJvbWUg4Lir4Lij4Li34Lit4LmA4Lia4Lij4Liy4Lin4LmM4LmA4LiL4Lit4Lij4LmM4LiX4Li14LmI4Lij4Lit4LiH4Lij4Lix4Lia4Lia4LiZIEFuZHJvaWQ8L2xpPg0NCiAgICAgICAgICA8bGk+4LmB4LiV4Liw4Lib4Li44LmI4Lih4LiU4LmJ4Liy4LiZ4Lia4LiZIOC4q+C4o+C4t+C4reC5gOC4oeC4meC4uSDii64g4LmB4Lil4LmJ4Lin4LmA4Lil4Li34Lit4LiBIOKAnOC4leC4tOC4lOC4leC4seC5ieC4h+C5geC4reC4m+KAnSDguKvguKPguLfguK0g4oCc4LmA4Lie4Li04LmI4Lih4Lil4LiH4LmD4LiZ4Lir4LiZ4LmJ4Liy4LiI4Lit4Lir4Lil4Lix4LiB4oCdPC9saT4NDQogICAgICAgICAgPGxpPuC4geC4peC4seC4muC5hOC4m+C4q+C4meC5ieC4suC4iOC4reC4q+C4peC4seC4gSDguYHguKXguYnguKfguYHguJXguLDguYTguK3guITguK3guJkgUm8tVGhhaWxhbmQg4LmA4Lie4Li34LmI4Lit4LmA4LiC4LmJ4Liy4LmA4LiB4LihPC9saT4NDQogICAgICAgIDwvb2w+DQ0KICAgICAgICA8b2wgaWQ9Imlvcy1zdGVwcyIgaGlkZGVuPg0NCiAgICAgICAgICA8bGk+4LmA4Lib4Li04LiU4Lir4LiZ4LmJ4Liy4LiZ4Li14LmJ4LmD4LiZIFNhZmFyaSDguJrguJkgaVBob25lIOC4q+C4o+C4t+C4rSBpUGFkPC9saT4NDQogICAgICAgICAgPGxpPuC5geC4leC4sOC4m+C4uOC5iOC4oeC5geC4iuC4o+C5jCDguYHguKXguYnguKfguYDguKXguLfguK3guIEg4oCc4LmA4Lie4Li04LmI4Lih4LmE4Lib4Lii4Lix4LiH4Lir4LiZ4LmJ4Liy4LiI4Lit4LmC4Liu4Lih4oCdPC9saT4NDQogICAgICAgICAgPGxpPuC4geC4peC4seC4muC5hOC4m+C4q+C4meC5ieC4suC4iOC4reC5guC4ruC4oSDguYHguKXguYnguKfguYHguJXguLDguYTguK3guITguK3guJkgUm8tVGhhaWxhbmQg4LmA4Lie4Li34LmI4Lit4LmA4LiC4LmJ4Liy4LmA4LiB4LihPC9saT4NDQogICAgICAgIDwvb2w+DQ0KICAgICAgPC9kaXY+DQ0KICAgICAgPHAgY2xhc3M9Im5vdGUiIGlkPSJpbnN0YWxsLW5vdGUiIHJvbGU9InN0YXR1cyI+4LmA4LiB4Lih4LiV4LmJ4Lit4LiH4LmD4LiK4LmJ4Lit4Li04LiZ4LmA4LiX4Lit4Lij4LmM4LmA4LiZ4LmH4LiVIOC5geC4peC4sOC4geC4suC4o+C5gOC4m+C4tOC4lOC4hOC4o+C4seC5ieC4h+C5geC4o+C4geC4reC4suC4iOC5g+C4iuC5ieC5gOC4p+C4peC4suC4quC4seC4geC4hOC4o+C4ueC5iDwvcD4NDQogICAgPC9zZWN0aW9uPg0NCiAgPC9tYWluPg0NCiAgPGRpdiBpZD0iZ2FtZSIgaGlkZGVuPg0NCiAgICA8Y2FudmFzIGlkPSJ1bml0eS1jYW52YXMiIHRhYmluZGV4PSItMSI+PC9jYW52YXM+DQ0KICAgIDxkaXYgaWQ9ImxvYWRpbmciIHJvbGU9InN0YXR1cyI+PHNwYW4gaWQ9ImxvYWRpbmctbGFiZWwiPuC4geC4s+C4peC4seC4h+C5guC4q+C4peC4lCBSby1UaGFpbGFuZOKApjwvc3Bhbj48ZGl2IGlkPSJwcm9ncmVzcy10cmFjayI+PHNwYW4gaWQ9InByb2dyZXNzIj48L3NwYW4+PC9kaXY+PC9kaXY+DQ0KICAgIDxkaXYgaWQ9ImdhbWUtZXJyb3IiIGhpZGRlbiByb2xlPSJhbGVydCI+PHNwYW4gaWQ9ImdhbWUtZXJyb3ItbWVzc2FnZSI+PC9zcGFuPjxidXR0b24gaWQ9InJldHJ5LWJ1dHRvbiIgdHlwZT0iYnV0dG9uIj7guKXguK3guIfguYLguKvguKXguJTguYPguKvguKHguYg8L2J1dHRvbj48L2Rpdj4NDQogIDwvZGl2Pg0NCiAgPGRpdiBpZD0icm90YXRlLWdhdGUiIGhpZGRlbj4NDQogICAgPHNlY3Rpb24gY2xhc3M9InJvdGF0ZS1jYXJkIiBhcmlhLWxhYmVsbGVkYnk9InJvdGF0ZS10aXRsZSI+DQ0KICAgICAgPGRpdiBjbGFzcz0icm90YXRlLXN5bWJvbCIgYXJpYS1oaWRkZW49InRydWUiPuKGuzwvZGl2Pg0NCiAgICAgIDxoMiBpZD0icm90YXRlLXRpdGxlIj7guIHguKPguLjguJPguLLguKvguKHguLjguJnguKHguLfguK3guJbguLfguK3guYDguJvguYfguJnguYHguJnguKfguJnguK3guJk8L2gyPg0NCiAgICAgIDxwPuC5gOC4geC4oeC4iOC4sOC5gOC4o+C4tOC5iOC4oeC5gOC4oeC4t+C5iOC4reC4q+C4meC5ieC4suC4iOC4reC5gOC4m+C5h+C4meC5geC4meC4p+C4meC4reC4mSDguKvguLLguIHguIjguK3guYTguKHguYjguKvguKHguLjguJkg4LmD4Lir4LmJ4LmA4Lib4Li04LiU4LiB4Liy4Lij4Lir4Lih4Li44LiZ4Lir4LiZ4LmJ4Liy4LiI4Lit4Lit4Lix4LiV4LmC4LiZ4Lih4Lix4LiV4Li04LmD4LiZ4LmA4LiE4Lij4Li34LmI4Lit4LiHPC9wPg0NCiAgICAgIDxidXR0b24gY2xhc3M9Imluc3RhbGwtYnV0dG9uIiBpZD0icm90YXRlLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIj7guKXguK3guIfguKvguKHguLjguJnguIjguK3guK3guLHguJXguYLguJnguKHguLHguJXguLQ8L2J1dHRvbj4NDQogICAgPC9zZWN0aW9uPg0NCiAgPC9kaXY+DQ0KICA8c2NyaXB0IHNyYz0iL01vYmlsZS9tYXAtcmVmcmVzaC5qcz92PXBheW9uLXByZXZpZXctMjAyNjA5MjgiPjwvc2NyaXB0Pg0NCiAgPHNjcmlwdD4NDQogICAgKCgpID0+IHsNDQogICAgICBjb25zdCBnYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luc3RhbGwtZ2F0ZScpOw0NCiAgICAgIGNvbnN0IGdhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2FtZScpOw0NCiAgICAgIGNvbnN0IG5vdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5zdGFsbC1ub3RlJyk7DQ0KICAgICAgY29uc3QgaW5zdGFsbEJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxsLWJ1dHRvbicpOw0NCiAgICAgIGNvbnN0IGhvbWVDb25maXJtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvbWUtY29uZmlybScpOw0NCiAgICAgIGNvbnN0IHJvdGF0ZUdhdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlLWdhdGUnKTsNDQogICAgICBjb25zdCByb3RhdGVCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm90YXRlLWJ1dHRvbicpOw0NCiAgICAgIGNvbnN0IGVycm9yQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhbWUtZXJyb3InKTsNDQogICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2FtZS1lcnJvci1tZXNzYWdlJyk7DQ0KICAgICAgY29uc3QgaXNBcHBsZU1vYmlsZSA9IC9pUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpIHx8DQ0KICAgICAgICAoL01hY2ludG9zaC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSAmJiBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHMgPiAxKTsNDQogICAgICBjb25zdCBpc0FuZHJvaWRNb2JpbGUgPSAvQW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7DQ0KICAgICAgbGV0IGZ1bGxzY3JlZW5BdHRlbXB0ZWQgPSBmYWxzZTsNDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5kcm9pZC1zdGVwcycpLmhpZGRlbiA9IGlzQXBwbGVNb2JpbGU7DQ0KICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lvcy1zdGVwcycpLmhpZGRlbiA9ICFpc0FwcGxlTW9iaWxlOw0NCiAgICAgIGxldCBpbnN0YWxsUHJvbXB0ID0gbnVsbDsNDQogICAgICBsZXQgZ2FtZVN0YXJ0ZWQgPSBmYWxzZTsNDQogICAgICBsZXQgZW50cnlBbGxvd2VkID0gZmFsc2U7DQ0KICAgICAgbGV0IGxhc3RQcm9ncmVzcyA9IDA7DQ0KICAgICAgbGV0IGxhc3RQcm9ncmVzc0F0ID0gRGF0ZS5ub3coKTsNDQogICAgICBsZXQga2V5Ym9hcmRPcGVuID0gZmFsc2U7DQ0KICAgICAgbGV0IGtleWJvYXJkV2FzVmlzaWJsZSA9IGZhbHNlOw0NCiAgICAgIGxldCBzdGFibGVXaWR0aCA9IDA7DQ0KICAgICAgbGV0IHN0YWJsZUhlaWdodCA9IDA7DQ0KICAgICAgbGV0IGdhbWVTaGlmdCA9IDA7DQ0KICAgICAgY29uc3Qgdmlld3BvcnQgPSB0eXBlb2YgdmlzdWFsVmlld3BvcnQgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IHZpc3VhbFZpZXdwb3J0Ow0NCg0NCiAgICAgIGZ1bmN0aW9uIGlzVW5pdHlLZXlib2FyZElucHV0KHRhcmdldCkgew0NCiAgICAgICAgcmV0dXJuIHRhcmdldCAmJiAvXihJTlBVVHxURVhUQVJFQSkkLy50ZXN0KHRhcmdldC50YWdOYW1lKSAmJg0NCiAgICAgICAgICB0YXJnZXQucGFyZW50RWxlbWVudCAmJiB0YXJnZXQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5Ow0NCiAgICAgIH0NDQoNDQogICAgICBmdW5jdGlvbiByZW1lbWJlckdhbWVTaXplKCkgew0NCiAgICAgICAgaWYgKGtleWJvYXJkT3BlbiB8fCAhaXNMYW5kc2NhcGUoKSkgcmV0dXJuOw0NCiAgICAgICAgLy8gTGV0IENTUyBmb2xsb3cgdGhlIGNoYW5naW5nIGxhdW5jaC9mdWxsc2NyZWVuIHZpZXdwb3J0LiBBIHBpeGVsIHNpemUNDQogICAgICAgIC8vIGNhcHR1cmVkIGJlZm9yZSBpT1MgZmluaXNoZXMgb3BlbmluZyB0aGUgYXBwIGNhbiBsZWF2ZSBhIGJvdHRvbSBnYXAuDQ0KICAgICAgICBpZiAoZ2FtZS5zdHlsZS53aWR0aCkgZ2FtZS5zdHlsZS53aWR0aCA9ICcnOw0NCiAgICAgICAgaWYgKGdhbWUuc3R5bGUuaGVpZ2h0KSBnYW1lLnN0eWxlLmhlaWdodCA9ICcnOw0NCiAgICAgICAgY29uc3QgYm91bmRzID0gZ2FtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsNDQogICAgICAgIGlmIChib3VuZHMud2lkdGggPiAwICYmIGJvdW5kcy5oZWlnaHQgPiAwKSB7DQ0KICAgICAgICAgIHN0YWJsZVdpZHRoID0gYm91bmRzLndpZHRoOw0NCiAgICAgICAgICBzdGFibGVIZWlnaHQgPSBib3VuZHMuaGVpZ2h0Ow0NCiAgICAgICAgfQ0NCiAgICAgIH0NDQoNDQogICAgICBmdW5jdGlvbiBrZXlib2FyZFN0aWxsVmlzaWJsZSgpIHsNDQogICAgICAgIGNvbnN0IHZpc2libGVIZWlnaHQgPSBNYXRoLm1pbihpbm5lckhlaWdodCwgdmlld3BvcnQgPyB2aWV3cG9ydC5oZWlnaHQgOiBpbm5lckhlaWdodCk7DQ0KICAgICAgICByZXR1cm4gc3RhYmxlSGVpZ2h0ID4gMCAmJiBNYXRoLmFicyhpbm5lcldpZHRoIC0gc3RhYmxlV2lkdGgpIDwgODAgJiYNDQogICAgICAgICAgdmlzaWJsZUhlaWdodCA8IHN0YWJsZUhlaWdodCAqIC44Ow0NCiAgICAgIH0NDQogICAgICB3aW5kb3cuUmFnbmFyb2tLZXlib2FyZFZpc2libGUgPSBrZXlib2FyZFN0aWxsVmlzaWJsZTsNDQoNDQogICAgICBmdW5jdGlvbiBhbGlnbkdhbWVXaGlsZVR5cGluZygpIHsNDQogICAgICAgIGlmICgha2V5Ym9hcmRPcGVuIHx8IGdhbWUuaGlkZGVuIHx8ICFrZXlib2FyZFN0aWxsVmlzaWJsZSgpKSByZXR1cm47DQ0KICAgICAgICBjb25zdCB2aXNpYmxlSGVpZ2h0ID0gTWF0aC5taW4oc3RhYmxlSGVpZ2h0LCBpbm5lckhlaWdodCwNDQogICAgICAgICAgdmlld3BvcnQgPyB2aWV3cG9ydC5oZWlnaHQgOiBpbm5lckhlaWdodCk7DQ0KICAgICAgICBjb25zdCB2aXNpYmxlVG9wID0gKHZpZXdwb3J0ID8gdmlld3BvcnQub2Zmc2V0VG9wIDogMCkgKyAxMjsNDQogICAgICAgIGNvbnN0IHRhcmdldCA9IHdpbmRvdy5SYWduYXJva0tleWJvYXJkVGFyZ2V0Ow0NCiAgICAgICAgY29uc3QgZnJlc2ggPSB0YXJnZXQgJiYgRGF0ZS5ub3coKSAtIHRhcmdldC5hdCA8IDEwMDA7DQ0KICAgICAgICBjb25zdCByYXRpbyA9IGZyZXNoID8gc3RhYmxlSGVpZ2h0IC8gTWF0aC5tYXgoMSwgdGFyZ2V0LmNhbnZhc0hlaWdodCkgOiAxOw0NCiAgICAgICAgY29uc3QgaGVpZ2h0ID0gZnJlc2ggPyB0YXJnZXQuaGVpZ2h0ICogcmF0aW8gOiAzNjsNDQogICAgICAgIGNvbnN0IGFjdGl2ZSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7DQ0KICAgICAgICBjb25zdCBuYXRpdmVDaGF0ID0gYWN0aXZlICYmIGFjdGl2ZS5wYXJlbnRFbGVtZW50ICYmIGFjdGl2ZS5wYXJlbnRFbGVtZW50LmlkID09PSAncm8tY2hhdC1lbnRyeSc7DQ0KICAgICAgICAvLyBLZWVwIGEgc2Vjb25kIGVudHJ5LXJvdyBvZiBjbGVhcmFuY2UgZm9yIHRoZSBuYXRpdmUgaW5wdXQgYWNjZXNzb3J5DQ0KICAgICAgICAvLyBjb250cm9scy4gVGhpcyBzY2FsZXMgd2l0aCB0aGUgcGFpbnRlZCBmaWVsZCwgbm90IGEgcGhvbmUgbW9kZWwuDQ0KICAgICAgICBjb25zdCBib3R0b21HYXAgPSAxMiArIChuYXRpdmVDaGF0ID8gaGVpZ2h0ICogMiA6IDApOw0NCiAgICAgICAgY29uc3QgdmlzaWJsZUJvdHRvbSA9IE1hdGgubWF4KHZpc2libGVUb3AgKyBoZWlnaHQsIHZpc2libGVUb3AgKyB2aXNpYmxlSGVpZ2h0IC0gMTIgLSBib3R0b21HYXApOw0NCiAgICAgICAgY29uc3QgeSA9IGZyZXNoID8gdGFyZ2V0LnkgKiByYXRpbyA6IChzdGFibGVIZWlnaHQgLSBoZWlnaHQpIC8gMjsNDQogICAgICAgIGNvbnN0IHRvcCA9IGdhbWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wICsgeTsNDQogICAgICAgIGNvbnN0IGJvdHRvbSA9IHRvcCArIGhlaWdodDsNDQogICAgICAgIC8vIFRoZSBhY3RpdmUgZmllbGQvcG9wdXAgY2hvb3NlcyB0aGUgbW92ZW1lbnQ7IG5vIGZpeGVkIHVwd2FyZCBzaG92ZS4NDQogICAgICAgIGxldCBzaGlmdCA9IGJvdHRvbSA+IHZpc2libGVCb3R0b20gPyB2aXNpYmxlQm90dG9tIC0gYm90dG9tIDogMDsNDQogICAgICAgIGlmICh0b3AgKyBzaGlmdCA8IHZpc2libGVUb3ApIHNoaWZ0ID0gdmlzaWJsZVRvcCAtIHRvcDsNDQogICAgICAgIGlmIChNYXRoLmFicyhzaGlmdCkgPCAxKSByZXR1cm47DQ0KICAgICAgICBjb25zdCBsaW1pdCA9IE1hdGgubWF4KDAsIHN0YWJsZUhlaWdodCAtIDI0KTsNDQogICAgICAgIGdhbWVTaGlmdCA9IE1hdGgubWF4KC1saW1pdCwgTWF0aC5taW4obGltaXQsIGdhbWVTaGlmdCArIHNoaWZ0KSk7DQ0KICAgICAgICBnYW1lLnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKCcgKyBnYW1lU2hpZnQgKyAncHgpJzsNDQogICAgICB9DQ0KICAgICAgd2luZG93LlJhZ25hcm9rQWxpZ25LZXlib2FyZCA9IGFsaWduR2FtZVdoaWxlVHlwaW5nOw0NCg0NCiAgICAgIGZ1bmN0aW9uIGZpbmlzaEtleWJvYXJkSWZDbG9zZWQoKSB7DQ0KICAgICAgICBpZiAoIWtleWJvYXJkT3BlbikgcmV0dXJuOw0NCiAgICAgICAgaWYgKGtleWJvYXJkU3RpbGxWaXNpYmxlKCkpIHsNDQogICAgICAgICAga2V5Ym9hcmRXYXNWaXNpYmxlID0gdHJ1ZTsNDQogICAgICAgICAgYWxpZ25HYW1lV2hpbGVUeXBpbmcoKTsNDQogICAgICAgICAgcmV0dXJuOw0NCiAgICAgICAgfQ0NCiAgICAgICAgLy8gaU9TIGNhbiBsZWF2ZSB0aGUgaGlkZGVuIGlucHV0IGZvY3VzZWQgYWZ0ZXIgZGlzbWlzc2luZyBpdHMga2V5Ym9hcmQuDQ0KICAgICAgICAvLyBPbmx5IHdhaXQgZm9yIGZvY3VzIHdoaWxlIHRoZSBrZXlib2FyZCBoYXMgbm90IGFwcGVhcmVkIHlldC4NDQogICAgICAgIGlmICgha2V5Ym9hcmRXYXNWaXNpYmxlICYmIGlzVW5pdHlLZXlib2FyZElucHV0KGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSByZXR1cm47DQ0KICAgICAgICBrZXlib2FyZE9wZW4gPSBmYWxzZTsNDQogICAgICAgIGtleWJvYXJkV2FzVmlzaWJsZSA9IGZhbHNlOw0NCiAgICAgICAgd2luZG93LlJhZ25hcm9rS2V5Ym9hcmRUYXJnZXQgPSBudWxsOw0NCiAgICAgICAgZ2FtZVNoaWZ0ID0gMDsNDQogICAgICAgIGdhbWUuc3R5bGUudHJhbnNmb3JtID0gJyc7DQ0KICAgICAgICB1cGRhdGVPcmllbnRhdGlvbigpOw0NCiAgICAgIH0NDQoNDQogICAgICBmdW5jdGlvbiBzaG93SXNzdWUobWVzc2FnZSkgew0NCiAgICAgICAgZXJyb3JNZXNzYWdlLnRleHRDb250ZW50ID0gbWVzc2FnZTsNDQogICAgICAgIGVycm9yQm94LmhpZGRlbiA9IGZhbHNlOw0NCiAgICAgIH0NDQoNDQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmV0cnktYnV0dG9uJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBsb2NhdGlvbi5yZWxvYWQoKSk7DQ0KDQ0KICAgICAgZnVuY3Rpb24gaXNJbnN0YWxsZWRXaW5kb3coKSB7DQ0KICAgICAgICByZXR1cm4gbWF0Y2hNZWRpYSgnKGRpc3BsYXktbW9kZTogc3RhbmRhbG9uZSknKS5tYXRjaGVzIHx8DQ0KICAgICAgICAgIG1hdGNoTWVkaWEoJyhkaXNwbGF5LW1vZGU6IGZ1bGxzY3JlZW4pJykubWF0Y2hlcyB8fCBuYXZpZ2F0b3Iuc3RhbmRhbG9uZSA9PT0gdHJ1ZTsNDQogICAgICB9DQ0KDQ0KICAgICAgZnVuY3Rpb24gaXNMYW5kc2NhcGUoKSB7DQ0KICAgICAgICByZXR1cm4gaW5uZXJXaWR0aCA+PSBpbm5lckhlaWdodDsNDQogICAgICB9DQ0KDQ0KICAgICAgZnVuY3Rpb24gYm9vdEdhbWUoKSB7DQ0KICAgICAgICBpZiAoZ2FtZVN0YXJ0ZWQpIHJldHVybjsNDQogICAgICAgIGdhbWVTdGFydGVkID0gdHJ1ZTsNDQogICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bml0eS1jYW52YXMnKTsNDQogICAgICAgIGNvbnN0IGJ1aWxkVXJsID0gJy9Nb2JpbGUvQnVpbGQvbW9iaWxlLTU0ODEwN2M5JzsNDQogICAgICAgIHdpbmRvdy5SYWduYXJva0NoYXRGb250ID0gYnVpbGRVcmwgKyAnL1RhaG9tYS50dGYnOw0NCiAgICAgICAgY29uc3QgY29uZmlnID0gew0NCiAgICAgICAgICBkYXRhVXJsOiAnL01vYmlsZS9CdWlsZC9XZWJQcmV2aWV3LmRhdGEuNTQ4MTA3YzkuYnInLA0NCiAgICAgICAgICBmcmFtZXdvcmtVcmw6IGJ1aWxkVXJsICsgJy9XZWJQcmV2aWV3LmZyYW1ld29yay5qcycsDQ0KICAgICAgICAgIGNvZGVVcmw6IGJ1aWxkVXJsICsgJy9XZWJQcmV2aWV3Lndhc20nLA0NCiAgICAgICAgICBzdHJlYW1pbmdBc3NldHNVcmw6ICcvTW9iaWxlL1N0cmVhbWluZ0Fzc2V0cycsDQ0KICAgICAgICAgIGNvbXBhbnlOYW1lOiAnUm8tVGhhaWxhbmQnLA0NCiAgICAgICAgICBwcm9kdWN0TmFtZTogJ1JhZ25hcm9rIE1vYmlsZSBXZWInLA0NCiAgICAgICAgICBwcm9kdWN0VmVyc2lvbjogJzEuMCcsDQ0KICAgICAgICAgIC8vIEtlZXAgdGV4dCBzaGFycCBvbiBkZW5zZSBkaXNwbGF5cyB3aXRob3V0IHRoZSA5eCBmcmFtZWJ1ZmZlciBjb3N0IG9mIERQUiAzLg0NCiAgICAgICAgICAvLyBUaGUgQ1NTIHZpZXdwb3J0IGFuZCBpbnB1dCBjb29yZGluYXRlcyBrZWVwIHRoZWlyIGV4aXN0aW5nIHNpemUuDQ0KICAgICAgICAgIGRldmljZVBpeGVsUmF0aW86IGlzQXBwbGVNb2JpbGUgfHwgaXNBbmRyb2lkTW9iaWxlID8gTWF0aC5taW4oMiwgTWF0aC5tYXgoMSwgd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMSkpIDogdW5kZWZpbmVkLA0NCiAgICAgICAgICBjYWNoZUNvbnRyb2w6ICgpID0+IGlzQXBwbGVNb2JpbGUgPyAnbm8tc3RvcmUnIDogJ211c3QtcmV2YWxpZGF0ZScsDQ0KICAgICAgICAgIHNob3dCYW5uZXI6IChtZXNzYWdlLCB0eXBlKSA9PiB7DQ0KICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdlcnJvcicpIHNob3dJc3N1ZSgn4LmA4LiB4Lih4LmB4LiI4LmJ4LiH4LiC4LmJ4Lit4Lic4Li04LiU4Lie4Lil4Liy4LiUOiAnICsgU3RyaW5nKG1lc3NhZ2UpKTsNDQogICAgICAgICAgfQ0NCiAgICAgICAgfTsNDQogICAgICAgIGNvbnN0IHN0YWxsVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7DQ0KICAgICAgICAgIGlmICghZ2FtZVN0YXJ0ZWQpIHJldHVybjsNDQogICAgICAgICAgaWYgKERhdGUubm93KCkgLSBsYXN0UHJvZ3Jlc3NBdCA+IDE4MDAwMCAmJiBlcnJvckJveC5oaWRkZW4pIHsNDQogICAgICAgICAgICBzaG93SXNzdWUoJ+C5gOC4geC4oeC4q+C4ouC4uOC4lOC5guC4q+C4peC4lOC4meC4suC4meC5gOC4geC4tOC4mSAzIOC4meC4suC4l+C4tSDguK3guLLguIjguYDguIHguLTguJTguIjguLLguIHguYTguJ/guKXguYzguYDguIHguKHguILguJnguLLguJTguYPguKvguI3guYjguKvguKPguLfguK3guKvguJnguYjguKfguKLguITguKfguLLguKHguIjguLPguILguK3guIfguYDguITguKPguLfguYjguK3guIcg4LiB4Lij4Li44LiT4Liy4Lil4Lit4LiH4Lit4Li14LiB4LiE4Lij4Lix4LmJ4LiH4Lic4LmI4Liy4LiZIFdpLUZpJyk7DQ0KICAgICAgICAgIH0NDQogICAgICAgIH0sIDEwMDAwKTsNDQogICAgICAgIGNvbnN0IGxvYWRVbml0eSA9ICgpID0+IHsNDQogICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQ0KICAgICAgICAgIHNjcmlwdC5zcmMgPSBidWlsZFVybCArICcvV2ViUHJldmlldy5sb2FkZXIuanMnOw0NCiAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4gew0NCiAgICAgICAgICAgIGNyZWF0ZVVuaXR5SW5zdGFuY2UoY2FudmFzLCBjb25maWcsIHByb2dyZXNzID0+IHsNDQogICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzcycpLnN0eWxlLndpZHRoID0gKHByb2dyZXNzICogMTAwKSArICclJzsNDQogICAgICAgICAgICAgIGlmIChwcm9ncmVzcyA+IGxhc3RQcm9ncmVzcykgew0NCiAgICAgICAgICAgICAgICBsYXN0UHJvZ3Jlc3MgPSBwcm9ncmVzczsNDQogICAgICAgICAgICAgICAgbGFzdFByb2dyZXNzQXQgPSBEYXRlLm5vdygpOw0NCiAgICAgICAgICAgICAgfQ0NCiAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4gew0NCiAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChzdGFsbFRpbWVyKTsNDQogICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkaW5nJykuaGlkZGVuID0gdHJ1ZTsNDQogICAgICAgICAgICAgIGVycm9yQm94LmhpZGRlbiA9IHRydWU7DQ0KICAgICAgICAgICAgICB1cGRhdGVPcmllbnRhdGlvbigpOw0NCiAgICAgICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHsNDQogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc3RhbGxUaW1lcik7DQ0KICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9hZGluZycpLmhpZGRlbiA9IHRydWU7DQ0KICAgICAgICAgICAgICBzaG93SXNzdWUoJ+C5gOC4m+C4tOC4lOC5gOC4geC4oeC5hOC4oeC5iOC4quC4s+C5gOC4o+C5h+C4iDogJyArIFN0cmluZyhlcnJvcikpOw0NCiAgICAgICAgICAgIH0pOw0NCiAgICAgICAgICB9Ow0NCiAgICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHsNDQogICAgICAgICAgICBjbGVhckludGVydmFsKHN0YWxsVGltZXIpOw0NCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2FkaW5nJykuaGlkZGVuID0gdHJ1ZTsNDQogICAgICAgICAgICBzaG93SXNzdWUoJ+C5guC4q+C4peC4lOC5hOC4n+C4peC5jOC5gOC4geC4oeC5hOC4oeC5iOC4quC4s+C5gOC4o+C5h+C4iCDguIHguKPguLjguJPguLLguJXguKPguKfguIjguK3guLTguJnguYDguJfguK3guKPguYzguYDguJnguYfguJXguYHguKXguYnguKfguKXguK3guIfguYPguKvguKHguYgnKTsNDQogICAgICAgICAgfTsNDQogICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpOw0NCiAgICAgICAgfTsNDQogICAgICAgIC8vIEV4aXN0aW5nIGlQaG9uZS9pUGFkIGhvbWUtc2NyZWVuIGljb25zIHVzZSB0aGUgc2FtZSBzbWFsbC1waWVjZSBjYWNoZQ0NCiAgICAgICAgLy8gYXMgdGhlIHZhbGlkYXRlZCB0cmlhbCwgd2l0aG91dCBjaGFuZ2luZyB0aGVpciBzYXZlZCBsYXVuY2ggVVJMLg0NCiAgICAgICAgaWYgKGlzQXBwbGVNb2JpbGUgfHwgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldCgnY2h1bmtUcmlhbCcpID09PSAnMScpIHsNDQogICAgICAgICAgY29uc3QgdHJpYWxTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsNDQogICAgICAgICAgdHJpYWxTY3JpcHQuc3JjID0gYnVpbGRVcmwgKyAnL2NodW5rLWxvYWRlci5qcyc7DQ0KICAgICAgICAgIHRyaWFsU2NyaXB0Lm9ubG9hZCA9ICgpID0+IHsNDQogICAgICAgICAgICB0cnkgew0NCiAgICAgICAgICAgICAgY29uZmlnLmRhdGFVcmwgPSB3aW5kb3cuUm9UaGFpbGFuZENodW5rVHJpYWwuaW5zdGFsbCgpOw0NCiAgICAgICAgICAgICAgbG9hZFVuaXR5KCk7DQ0KICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsNDQogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoc3RhbGxUaW1lcik7DQ0KICAgICAgICAgICAgICBzaG93SXNzdWUoJ+C5gOC4o+C4tOC5iOC4oeC5guC4q+C4oeC4lOC4l+C4lOC4peC4reC4h+C5hOC4oeC5iOC4quC4s+C5gOC4o+C5h+C4iDogJyArIFN0cmluZyhlcnJvcikpOw0NCiAgICAgICAgICAgIH0NDQogICAgICAgICAgfTsNDQogICAgICAgICAgdHJpYWxTY3JpcHQub25lcnJvciA9ICgpID0+IHsNDQogICAgICAgICAgICBjbGVhckludGVydmFsKHN0YWxsVGltZXIpOw0NCiAgICAgICAgICAgIHNob3dJc3N1ZSgn4LmC4Lir4Lil4LiU4LmC4Lir4Lih4LiU4LiX4LiU4Lil4Lit4LiH4LmE4Lih4LmI4Liq4Liz4LmA4Lij4LmH4LiIJyk7DQ0KICAgICAgICAgIH07DQ0KICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodHJpYWxTY3JpcHQpOw0NCiAgICAgICAgfSBlbHNlIGxvYWRVbml0eSgpOw0NCiAgICAgIH0NDQoNDQogICAgICBmdW5jdGlvbiB1cGRhdGVPcmllbnRhdGlvbigpIHsNDQogICAgICAgIGlmICghZW50cnlBbGxvd2VkKSByZXR1cm47DQ0KICAgICAgICBjb25zdCBsYW5kc2NhcGUgPSBpc0xhbmRzY2FwZSgpOw0NCiAgICAgICAgcm90YXRlR2F0ZS5oaWRkZW4gPSBsYW5kc2NhcGU7DQ0KICAgICAgICBnYW1lLmhpZGRlbiA9ICFsYW5kc2NhcGU7DQ0KICAgICAgICBpZiAobGFuZHNjYXBlKSB7DQ0KICAgICAgICAgIHJlbWVtYmVyR2FtZVNpemUoKTsNDQogICAgICAgICAgYm9vdEdhbWUoKTsNDQogICAgICAgIH0NDQogICAgICB9DQ0KDQ0KICAgICAgYXN5bmMgZnVuY3Rpb24gcmVxdWVzdExhbmRzY2FwZShmcm9tR2VzdHVyZSkgew0NCiAgICAgICAgaWYgKGZyb21HZXN0dXJlICYmICFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVxdWVzdEZ1bGxzY3JlZW4pIHsNDQogICAgICAgICAgZnVsbHNjcmVlbkF0dGVtcHRlZCA9IHRydWU7DQ0KICAgICAgICAgIHRyeSB7DQ0KICAgICAgICAgICAgYXdhaXQgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnJlcXVlc3RGdWxsc2NyZWVuKGlzQW5kcm9pZE1vYmlsZSA/IHsgbmF2aWdhdGlvblVJOiAnaGlkZScgfSA6IHVuZGVmaW5lZCk7DQ0KICAgICAgICAgIH0gY2F0Y2ggKF8pIHsgLyoga2VlcCBmaXR0aW5nIHRoZSB1c2FibGUgdmlld3BvcnQgd2hlbiBmdWxsc2NyZWVuIGlzIHVuYXZhaWxhYmxlICovIH0NDQogICAgICAgIH0NDQogICAgICAgIGlmIChzY3JlZW4ub3JpZW50YXRpb24gJiYgc2NyZWVuLm9yaWVudGF0aW9uLmxvY2spIHsNDQogICAgICAgICAgdHJ5IHsgYXdhaXQgc2NyZWVuLm9yaWVudGF0aW9uLmxvY2soJ2xhbmRzY2FwZScpOyB9IGNhdGNoIChfKSB7IC8qIGJyb3dzZXIgb3IgT1MgZG9lcyBub3QgYWxsb3cgbG9ja2luZyAqLyB9DQ0KICAgICAgICB9DQ0KICAgICAgICB1cGRhdGVPcmllbnRhdGlvbigpOw0NCiAgICAgIH0NDQoNDQogICAgICAvLyBIb21lLXNjcmVlbiBsYXVuY2hlcyBoYXZlIG5vIHVzZXIgYWN0aXZhdGlvbi4gUmVxdWVzdCB0aGUgZXh0cmEgZGlzcGxheQ0NCiAgICAgIC8vIHNwYWNlIG9uIHRoZSBmaXJzdCBjb21wbGV0ZWQgY2FudmFzIHRvdWNoLCBvbmNlIHBlciBwYWdlIChyZXNwZWN0IEJhY2spLg0NCiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1bml0eS1jYW52YXMnKS5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBldmVudCA9PiB7DQ0KICAgICAgICBpZiAoaXNBbmRyb2lkTW9iaWxlICYmIGV2ZW50LmlzVHJ1c3RlZCAmJiBldmVudC5wb2ludGVyVHlwZSA9PT0gJ3RvdWNoJyAmJg0NCiAgICAgICAgICAgIGVudHJ5QWxsb3dlZCAmJiAhZ2FtZS5oaWRkZW4gJiYgIWtleWJvYXJkT3BlbiAmJiAhZnVsbHNjcmVlbkF0dGVtcHRlZCAmJiAhZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQgJiYNDQogICAgICAgICAgICAhaXNVbml0eUtleWJvYXJkSW5wdXQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHJlcXVlc3RMYW5kc2NhcGUodHJ1ZSk7DQ0KICAgICAgfSk7DQ0KICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZnVsbHNjcmVlbmNoYW5nZScsICgpID0+IHsNDQogICAgICAgIGZpbmlzaEtleWJvYXJkSWZDbG9zZWQoKTsNDQogICAgICAgIHVwZGF0ZU9yaWVudGF0aW9uKCk7DQ0KICAgICAgfSk7DQ0KDQ0KICAgICAgZnVuY3Rpb24gZW50ZXJHYW1lKGZyb21HZXN0dXJlKSB7DQ0KICAgICAgICBlbnRyeUFsbG93ZWQgPSB0cnVlOw0NCiAgICAgICAgZ2F0ZS5oaWRkZW4gPSB0cnVlOw0NCiAgICAgICAgdXBkYXRlT3JpZW50YXRpb24oKTsNDQogICAgICAgIHJlcXVlc3RMYW5kc2NhcGUoZnJvbUdlc3R1cmUpOw0NCiAgICAgIH0NDQoNDQogICAgICBhZGRFdmVudExpc3RlbmVyKCdiZWZvcmVpbnN0YWxscHJvbXB0JywgZXZlbnQgPT4gew0NCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsNDQogICAgICAgIGluc3RhbGxQcm9tcHQgPSBldmVudDsNDQogICAgICAgIGluc3RhbGxCdXR0b24udGV4dENvbnRlbnQgPSAn4LiV4Li04LiU4LiV4Lix4LmJ4LiHIFJvLVRoYWlsYW5kJzsNDQogICAgICB9KTsNDQogICAgICBpbnN0YWxsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4gew0NCiAgICAgICAgaWYgKGluc3RhbGxQcm9tcHQpIHsNDQogICAgICAgICAgY29uc3QgcHJvbXB0ID0gaW5zdGFsbFByb21wdDsNDQogICAgICAgICAgaW5zdGFsbFByb21wdCA9IG51bGw7DQ0KICAgICAgICAgIGF3YWl0IHByb21wdC5wcm9tcHQoKTsNDQogICAgICAgICAgbm90ZS50ZXh0Q29udGVudCA9ICfguKvguKXguLHguIfguJXguLTguJTguJXguLHguYnguIcg4LmD4Lir4LmJ4LmA4Lib4Li04LiU4LmA4LiB4Lih4LiI4Liy4LiB4LmE4Lit4LiE4Lit4LiZ4Lia4LiZ4Lir4LiZ4LmJ4Liy4LiI4Lit4Lir4Lil4Lix4LiBJzsNDQogICAgICAgIH0gZWxzZSB7DQ0KICAgICAgICAgIG5vdGUudGV4dENvbnRlbnQgPSBpc0FwcGxlTW9iaWxlDQ0KICAgICAgICAgICAgPyAn4LmB4LiV4Liw4Lib4Li44LmI4Lih4LmB4LiK4Lij4LmM4LiC4Lit4LiHIFNhZmFyaSDguYHguKXguYnguKfguYDguKXguLfguK3guIEg4oCc4LmA4Lie4Li04LmI4Lih4LmE4Lib4Lii4Lix4LiH4Lir4LiZ4LmJ4Liy4LiI4Lit4LmC4Liu4Lih4oCdJw0NCiAgICAgICAgICAgIDogJ+C5gOC4m+C4tOC4lOC5gOC4oeC4meC4uSDii64g4LiC4Lit4LiH4LmA4Lia4Lij4Liy4Lin4LmM4LmA4LiL4Lit4Lij4LmMIOC5geC4peC5ieC4p+C5gOC4peC4t+C4reC4gSDigJzguJXguLTguJTguJXguLHguYnguIfguYHguK3guJvigJ0g4Lir4Lij4Li34LitIOKAnOC5gOC4nuC4tOC5iOC4oeC4peC4h+C5g+C4meC4q+C4meC5ieC4suC4iOC4reC4q+C4peC4seC4geKAnSc7DQ0KICAgICAgICB9DQ0KICAgICAgfSk7DQ0KICAgICAgaG9tZUNvbmZpcm0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7DQ0KICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncm8tbW9iaWxlLWhvbWUtY29uZmlybWVkJywgJzEnKTsgfSBjYXRjaCAoXykgeyAvKiBwcml2YXRlIG1vZGUgKi8gfQ0NCiAgICAgICAgZW50ZXJHYW1lKHRydWUpOw0NCiAgICAgIH0pOw0NCiAgICAgIHJvdGF0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHJlcXVlc3RMYW5kc2NhcGUodHJ1ZSkpOw0NCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCBldmVudCA9PiB7DQ0KICAgICAgICBpZiAoIWlzVW5pdHlLZXlib2FyZElucHV0KGV2ZW50LnRhcmdldCkpIHJldHVybjsNDQogICAgICAgIGlmICgha2V5Ym9hcmRPcGVuKSB7DQ0KICAgICAgICAgIGtleWJvYXJkV2FzVmlzaWJsZSA9IGZhbHNlOw0NCiAgICAgICAgICAvLyBGcmVlemUgb25seSBkdXJpbmcgdHlwaW5nOyB0aGUgbm9ybWFsIGdhbWUga2VlcHMgaXRzIGR5bmFtaWMgc2l6ZS4NDQogICAgICAgICAgaWYgKHN0YWJsZVdpZHRoID4gMCAmJiBzdGFibGVIZWlnaHQgPiAwKSB7DQ0KICAgICAgICAgICAgZ2FtZS5zdHlsZS53aWR0aCA9IHN0YWJsZVdpZHRoICsgJ3B4JzsNDQogICAgICAgICAgICBnYW1lLnN0eWxlLmhlaWdodCA9IHN0YWJsZUhlaWdodCArICdweCc7DQ0KICAgICAgICAgIH0NDQogICAgICAgIH0NDQogICAgICAgIGtleWJvYXJkT3BlbiA9IHRydWU7DQ0KICAgICAgICBzZXRUaW1lb3V0KGFsaWduR2FtZVdoaWxlVHlwaW5nLCAzNTApOw0NCiAgICAgICAgc2V0VGltZW91dChhbGlnbkdhbWVXaGlsZVR5cGluZywgODAwKTsNDQogICAgICB9KTsNDQogICAgICBhZGRFdmVudExpc3RlbmVyKCdmb2N1c291dCcsIGV2ZW50ID0+IHsNDQogICAgICAgIGlmIChpc1VuaXR5S2V5Ym9hcmRJbnB1dChldmVudC50YXJnZXQpKSBzZXRUaW1lb3V0KGZpbmlzaEtleWJvYXJkSWZDbG9zZWQsIDM1MCk7DQ0KICAgICAgfSk7DQ0KICAgICAgaWYgKHZpZXdwb3J0KSB7DQ0KICAgICAgICB2aWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7DQ0KICAgICAgICAgIGZpbmlzaEtleWJvYXJkSWZDbG9zZWQoKTsNDQogICAgICAgICAgdXBkYXRlT3JpZW50YXRpb24oKTsNDQogICAgICAgIH0pOw0NCiAgICAgICAgdmlld3BvcnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgZmluaXNoS2V5Ym9hcmRJZkNsb3NlZCk7DQ0KICAgICAgfQ0NCiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSB7DQ0KICAgICAgICAvLyBDU1Mgdmlld3BvcnQgY2hhbmdlcyBuZWVkIG5vdCBhcnJpdmUgYXMgd2luZG93LnJlc2l6ZSBvbiBpT1MgbGF1bmNoLg0NCiAgICAgICAgbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHsNDQogICAgICAgICAgaWYgKGVudHJ5QWxsb3dlZCAmJiAhZ2FtZS5oaWRkZW4pIHJlbWVtYmVyR2FtZVNpemUoKTsNDQogICAgICAgIH0pLm9ic2VydmUoZ2FtZSk7DQ0KICAgICAgfQ0NCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZXZlbnQgPT4gew0NCiAgICAgICAgaWYgKGdhbWVTdGFydGVkICYmIGV2ZW50Lm1lc3NhZ2UpIHNob3dJc3N1ZSgn4LmA4LiB4Lih4LmA4LiB4Li04LiU4LiC4LmJ4Lit4Lic4Li04LiU4Lie4Lil4Liy4LiUOiAnICsgZXZlbnQubWVzc2FnZSk7DQ0KICAgICAgfSk7DQ0KICAgICAgYWRkRXZlbnRMaXN0ZW5lcigndW5oYW5kbGVkcmVqZWN0aW9uJywgZXZlbnQgPT4gew0NCiAgICAgICAgaWYgKGdhbWVTdGFydGVkKSBzaG93SXNzdWUoJ+C5gOC4geC4oeC5gOC4geC4tOC4lOC4guC5ieC4reC4nOC4tOC4lOC4nuC4peC4suC4lDogJyArIFN0cmluZyhldmVudC5yZWFzb24pKTsNDQogICAgICB9KTsNDQogICAgICBhZGRFdmVudExpc3RlbmVyKCdhcHBpbnN0YWxsZWQnLCAoKSA9PiB7DQ0KICAgICAgICB0cnkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncm8tbW9iaWxlLWhvbWUtY29uZmlybWVkJywgJzEnKTsgfSBjYXRjaCAoXykgeyAvKiBwcml2YXRlIG1vZGUgKi8gfQ0NCiAgICAgICAgbm90ZS50ZXh0Q29udGVudCA9ICfguJXguLTguJTguJXguLHguYnguIfguYHguKXguYnguKcg4LiB4Lij4Li44LiT4Liy4LmA4Lib4Li04LiU4LmA4LiB4Lih4LiI4Liy4LiB4LmE4Lit4LiE4Lit4LiZ4Lia4LiZ4Lir4LiZ4LmJ4Liy4LiI4Lit4Lir4Lil4Lix4LiBJzsNDQogICAgICB9KTsNDQogICAgICBhZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCAoKSA9PiB7DQ0KICAgICAgICBmaW5pc2hLZXlib2FyZElmQ2xvc2VkKCk7DQ0KICAgICAgICB1cGRhdGVPcmllbnRhdGlvbigpOw0NCiAgICAgIH0pOw0NCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgdXBkYXRlT3JpZW50YXRpb24pOw0NCiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCAoKSA9PiB7DQ0KICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAndmlzaWJsZScpIHsNDQogICAgICAgICAgZmluaXNoS2V5Ym9hcmRJZkNsb3NlZCgpOw0NCiAgICAgICAgICB1cGRhdGVPcmllbnRhdGlvbigpOw0NCiAgICAgICAgfQ0NCiAgICAgIH0pOw0NCiAgICAgIGFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgKCkgPT4gew0NCiAgICAgICAgaWYgKCFlbnRyeUFsbG93ZWQgJiYgaXNJbnN0YWxsZWRXaW5kb3coKSkgZW50ZXJHYW1lKGZhbHNlKTsNDQogICAgICAgIGVsc2UgdXBkYXRlT3JpZW50YXRpb24oKTsNDQogICAgICB9KTsNDQogICAgICBtYXRjaE1lZGlhKCcoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKScpLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gew0NCiAgICAgICAgaWYgKCFlbnRyeUFsbG93ZWQgJiYgaXNJbnN0YWxsZWRXaW5kb3coKSkgZW50ZXJHYW1lKGZhbHNlKTsNDQogICAgICB9KTsNDQogICAgICBpZiAoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikgew0NCiAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9Nb2JpbGUvc3cuanMnLCB7IHNjb3BlOiAnL01vYmlsZS8nIH0pLmNhdGNoKCgpID0+IHt9KTsNDQogICAgICB9DQ0KICAgICAgbGV0IHByZXZpb3VzbHlDb25maXJtZWQgPSBmYWxzZTsNDQogICAgICB0cnkgeyBwcmV2aW91c2x5Q29uZmlybWVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvLW1vYmlsZS1ob21lLWNvbmZpcm1lZCcpID09PSAnMSc7IH0gY2F0Y2ggKF8pIHsgLyogcHJpdmF0ZSBtb2RlICovIH0NDQogICAgICBjb25zdCBpY29uTGF1bmNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpLmdldCgnaW5zdGFsbGVkJykgPT09ICcxJzsNDQogICAgICBpZiAoaXNJbnN0YWxsZWRXaW5kb3coKSB8fCBpY29uTGF1bmNoIHx8IHByZXZpb3VzbHlDb25maXJtZWQpIGVudGVyR2FtZShmYWxzZSk7DQ0KICAgIH0pKCk7DQ0KICA8L3NjcmlwdD4NDQo8L2JvZHk+DQ0KPC9odG1sPg0NCg=="
    },
    "owner": {
      "sha256": "92e13fad0a71faedb636c7d7d999f72353f7abb49cd1433d637bf465a7d0a46d",
      "base64": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuLXVzIj4KICA8aGVhZD4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICAgIDx0aXRsZT5Vbml0eSBXZWIgUGxheWVyIHwgUmFnbmFyb2sgTW9iaWxlIFdlYjwvdGl0bGU+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9IlRlbXBsYXRlRGF0YS9mYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlRlbXBsYXRlRGF0YS9zdHlsZS5jc3MiPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxkaXYgaWQ9InVuaXR5LWNvbnRhaW5lciIgY2xhc3M9InVuaXR5LWRlc2t0b3AiPgogICAgICA8Y2FudmFzIGlkPSJ1bml0eS1jYW52YXMiIHdpZHRoPTk2MCBoZWlnaHQ9NjAwIHRhYmluZGV4PSItMSI+PC9jYW52YXM+CiAgICAgIDxkaXYgaWQ9InVuaXR5LWxvYWRpbmctYmFyIj4KICAgICAgICA8ZGl2IGlkPSJ1bml0eS1sb2dvIj48L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJ1bml0eS1wcm9ncmVzcy1iYXItZW1wdHkiPgogICAgICAgICAgPGRpdiBpZD0idW5pdHktcHJvZ3Jlc3MtYmFyLWZ1bGwiPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBpZD0idW5pdHktd2FybmluZyI+IDwvZGl2PgogICAgICA8ZGl2IGlkPSJ1bml0eS1mb290ZXIiPgogICAgICAgIDxkaXYgaWQ9InVuaXR5LWxvZ28tdGl0bGUtZm9vdGVyIj48L2Rpdj4KICAgICAgICA8ZGl2IGlkPSJ1bml0eS1mdWxsc2NyZWVuLWJ1dHRvbiI+PC9kaXY+CiAgICAgICAgPGRpdiBpZD0idW5pdHktYnVpbGQtdGl0bGUiPlJhZ25hcm9rIE1vYmlsZSBXZWI8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQ+CiAgICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdW5pdHktY2FudmFzIik7CgogICAgICAvLyBTaG93cyBhIHRlbXBvcmFyeSBtZXNzYWdlIGJhbm5lci9yaWJib24gZm9yIGEgZmV3IHNlY29uZHMsIG9yCiAgICAgIC8vIGEgcGVybWFuZW50IGVycm9yIG1lc3NhZ2Ugb24gdG9wIG9mIHRoZSBjYW52YXMgaWYgdHlwZT09J2Vycm9yJy4KICAgICAgLy8gSWYgdHlwZT09J3dhcm5pbmcnLCBhIHllbGxvdyBoaWdobGlnaHQgY29sb3IgaXMgdXNlZC4KICAgICAgLy8gTW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSB0aGUgdmlzdWFsbHkgcHJlc2VudGVkCiAgICAgIC8vIHdheSB0aGF0IG5vbi1jcml0aWNhbCB3YXJuaW5ncyBhbmQgZXJyb3IgbWVzc2FnZXMgYXJlIHByZXNlbnRlZCB0byB0aGUKICAgICAgLy8gdXNlci4KICAgICAgZnVuY3Rpb24gdW5pdHlTaG93QmFubmVyKG1zZywgdHlwZSkgewogICAgICAgIHZhciB3YXJuaW5nQmFubmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3VuaXR5LXdhcm5pbmciKTsKICAgICAgICBmdW5jdGlvbiB1cGRhdGVCYW5uZXJWaXNpYmlsaXR5KCkgewogICAgICAgICAgd2FybmluZ0Jhbm5lci5zdHlsZS5kaXNwbGF5ID0gd2FybmluZ0Jhbm5lci5jaGlsZHJlbi5sZW5ndGggPyAnYmxvY2snIDogJ25vbmUnOwogICAgICAgIH0KICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgZGl2LmlubmVySFRNTCA9IG1zZzsKICAgICAgICB3YXJuaW5nQmFubmVyLmFwcGVuZENoaWxkKGRpdik7CiAgICAgICAgaWYgKHR5cGUgPT0gJ2Vycm9yJykgZGl2LnN0eWxlID0gJ2JhY2tncm91bmQ6IHJlZDsgcGFkZGluZzogMTBweDsnOwogICAgICAgIGVsc2UgewogICAgICAgICAgaWYgKHR5cGUgPT0gJ3dhcm5pbmcnKSBkaXYuc3R5bGUgPSAnYmFja2dyb3VuZDogeWVsbG93OyBwYWRkaW5nOiAxMHB4Oyc7CiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICB3YXJuaW5nQmFubmVyLnJlbW92ZUNoaWxkKGRpdik7CiAgICAgICAgICAgIHVwZGF0ZUJhbm5lclZpc2liaWxpdHkoKTsKICAgICAgICAgIH0sIDUwMDApOwogICAgICAgIH0KICAgICAgICB1cGRhdGVCYW5uZXJWaXNpYmlsaXR5KCk7CiAgICAgIH0KCiAgICAgIHZhciBidWlsZFVybCA9ICIvTW9iaWxlL0J1aWxkL21vYmlsZS01NDgxMDdjOSI7CiAgICAgIHZhciBsb2FkZXJVcmwgPSBidWlsZFVybCArICIvV2ViUHJldmlldy5sb2FkZXIuanMiOwogICAgICB2YXIgY29uZmlnID0gewogICAgICAgIGFyZ3VtZW50czogW10sCiAgICAgICAgZGF0YVVybDogIi9Nb2JpbGUvQnVpbGQvV2ViUHJldmlldy5kYXRhLjU0ODEwN2M5LmJyIiwKICAgICAgICBmcmFtZXdvcmtVcmw6IGJ1aWxkVXJsICsgIi9XZWJQcmV2aWV3LmZyYW1ld29yay5qcyIsCiAgICAgICAgY29kZVVybDogYnVpbGRVcmwgKyAiL1dlYlByZXZpZXcud2FzbSIsCiAgICAgICAgc3RyZWFtaW5nQXNzZXRzVXJsOiAiU3RyZWFtaW5nQXNzZXRzIiwKICAgICAgICBjb21wYW55TmFtZTogIkRlZmF1bHRDb21wYW55IiwKICAgICAgICBwcm9kdWN0TmFtZTogIlJhZ25hcm9rIE1vYmlsZSBXZWIiLAogICAgICAgIHByb2R1Y3RWZXJzaW9uOiAiMS4wIiwKICAgICAgICBzaG93QmFubmVyOiB1bml0eVNob3dCYW5uZXIsCiAgICAgICAgLy8gZXJyb3JIYW5kbGVyOiBmdW5jdGlvbihlcnIsIHVybCwgbGluZSkgewogICAgICAgIC8vICAgIGFsZXJ0KCJlcnJvciAiICsgZXJyICsgIiBvY2N1cnJlZCBhdCBsaW5lICIgKyBsaW5lKTsKICAgICAgICAvLyAgICAvLyBSZXR1cm4gJ3RydWUnIGlmIHlvdSBoYW5kbGVkIHRoaXMgZXJyb3IgYW5kIGRvbid0IHdhbnQgVW5pdHkKICAgICAgICAvLyAgICAvLyB0byBwcm9jZXNzIGl0IGZ1cnRoZXIsICdmYWxzZScgb3RoZXJ3aXNlLgogICAgICAgIC8vICAgIHJldHVybiB0cnVlOwogICAgICAgIC8vIH0sCiAgICAgIH07CgogICAgICAvLyBCeSBkZWZhdWx0LCBVbml0eSBrZWVwcyBXZWJHTCBjYW52YXMgcmVuZGVyIHRhcmdldCBzaXplIG1hdGNoZWQgd2l0aAogICAgICAvLyB0aGUgRE9NIHNpemUgb2YgdGhlIGNhbnZhcyBlbGVtZW50IChzY2FsZWQgYnkgd2luZG93LmRldmljZVBpeGVsUmF0aW8pCiAgICAgIC8vIFNldCB0aGlzIHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIGRlY291cGxlIHRoaXMgc3luY2hyb25pemF0aW9uIGZyb20KICAgICAgLy8gaGFwcGVuaW5nIGluc2lkZSB0aGUgZW5naW5lLCBhbmQgeW91IHdvdWxkIGluc3RlYWQgbGlrZSB0byBzaXplIHVwCiAgICAgIC8vIHRoZSBjYW52YXMgRE9NIHNpemUgYW5kIFdlYkdMIHJlbmRlciB0YXJnZXQgc2l6ZXMgeW91cnNlbGYuCiAgICAgIC8vIGNvbmZpZy5tYXRjaFdlYkdMVG9DYW52YXNTaXplID0gZmFsc2U7CgogICAgICAvLyBJZiB5b3Ugd291bGQgbGlrZSBhbGwgZmlsZSB3cml0ZXMgaW5zaWRlIFVuaXR5IEFwcGxpY2F0aW9uLnBlcnNpc3RlbnREYXRhUGF0aAogICAgICAvLyBkaXJlY3RvcnkgdG8gYXV0b21hdGljYWxseSBwZXJzaXN0IHNvIHRoYXQgdGhlIGNvbnRlbnRzIGFyZSByZW1lbWJlcmVkIHdoZW4KICAgICAgLy8gdGhlIHVzZXIgcmV2aXNpdHMgdGhlIHNpdGUgdGhlIG5leHQgdGltZSwgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZToKICAgICAgLy8gY29uZmlnLmF1dG9TeW5jUGVyc2lzdGVudERhdGFQYXRoID0gdHJ1ZTsKICAgICAgLy8gVGhpcyBhdXRvc3luY2luZyBpcyBjdXJyZW50bHkgbm90IHRoZSBkZWZhdWx0IGJlaGF2aW9yIHRvIGF2b2lkIHJlZ3Jlc3NpbmcKICAgICAgLy8gZXhpc3RpbmcgdXNlciBwcm9qZWN0cyB0aGF0IG1pZ2h0IHJlbHkgb24gdGhlIGVhcmxpZXIgbWFudWFsCiAgICAgIC8vIEpTX0ZpbGVTeXN0ZW1fU3luYygpIGJlaGF2aW9yLCBidXQgaW4gZnV0dXJlIFVuaXR5IHZlcnNpb24sIHRoaXMgd2lsbCBiZQogICAgICAvLyBleHBlY3RlZCB0byBjaGFuZ2UuCgogICAgICBpZiAoL2lQaG9uZXxpUGFkfGlQb2R8QW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKICAgICAgICAvLyBNb2JpbGUgZGV2aWNlIHN0eWxlOiBmaWxsIHRoZSB3aG9sZSBicm93c2VyIGNsaWVudCBhcmVhIHdpdGggdGhlIGdhbWUgY2FudmFzOgoKICAgICAgICB2YXIgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTsKICAgICAgICBtZXRhLm5hbWUgPSAndmlld3BvcnQnOwogICAgICAgIG1ldGEuY29udGVudCA9ICd3aWR0aD1kZXZpY2Utd2lkdGgsIGhlaWdodD1kZXZpY2UtaGVpZ2h0LCBpbml0aWFsLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubywgc2hyaW5rLXRvLWZpdD15ZXMnOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQobWV0YSk7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3VuaXR5LWNvbnRhaW5lciIpLmNsYXNzTmFtZSA9ICJ1bml0eS1tb2JpbGUiOwogICAgICAgIGNhbnZhcy5jbGFzc05hbWUgPSAidW5pdHktbW9iaWxlIjsKCiAgICAgICAgLy8gVG8gbG93ZXIgY2FudmFzIHJlc29sdXRpb24gb24gbW9iaWxlIGRldmljZXMgdG8gZ2FpbiBzb21lCiAgICAgICAgLy8gcGVyZm9ybWFuY2UsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmU6CiAgICAgICAgLy8gY29uZmlnLmRldmljZVBpeGVsUmF0aW8gPSAxOwoKCiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gRGVza3RvcCBzdHlsZTogUmVuZGVyIHRoZSBnYW1lIGNhbnZhcyBpbiBhIHdpbmRvdyB0aGF0IGNhbiBiZSBtYXhpbWl6ZWQgdG8gZnVsbHNjcmVlbjoKICAgICAgICBjYW52YXMuc3R5bGUud2lkdGggPSAiOTYwcHgiOwogICAgICAgIGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAiNjAwcHgiOwogICAgICB9CgogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdW5pdHktbG9hZGluZy1iYXIiKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCiAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgc2NyaXB0LnNyYyA9IGxvYWRlclVybDsKICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHsKICAgICAgICBjcmVhdGVVbml0eUluc3RhbmNlKGNhbnZhcywgY29uZmlnLCAocHJvZ3Jlc3MpID0+IHsKICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN1bml0eS1wcm9ncmVzcy1iYXItZnVsbCIpLnN0eWxlLndpZHRoID0gMTAwICogcHJvZ3Jlc3MgKyAiJSI7CiAgICAgICAgICAgICAgfSkudGhlbigodW5pdHlJbnN0YW5jZSkgPT4gewogICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3VuaXR5LWxvYWRpbmctYmFyIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiN1bml0eS1mdWxsc2NyZWVuLWJ1dHRvbiIpLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgICAgICAgICAgICAgIHVuaXR5SW5zdGFuY2UuU2V0RnVsbHNjcmVlbigxKTsKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgIH0pLmNhdGNoKChtZXNzYWdlKSA9PiB7CiAgICAgICAgICAgICAgICBhbGVydChtZXNzYWdlKTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfTsKCiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKCiAgICA8L3NjcmlwdD4KICA8L2JvZHk+CjwvaHRtbD4K"
    },
    "config": {
      "sha256": "999b792a48065502c7d9c6fd19fd4e54f40e218e5472d4adfd2defa0ce98d2a5",
      "base64": "PFZpcnR1YWxIb3N0ICo6NDQzPg0KICAgIFNlcnZlck5hbWUgcm8tdGgub25saW5lDQogICAgRG9jdW1lbnRSb290IC92YXIvd3d3L2h0bWwvcm8tdGgtb25saW5lL21haW4NCiAgICBTU0xFbmdpbmUgb24NCiAgICBTU0xDZXJ0aWZpY2F0ZUZpbGUgL2V0Yy9sZXRzZW5jcnlwdC9saXZlL3JvLXRoLm9ubGluZS9mdWxsY2hhaW4ucGVtDQogICAgU1NMQ2VydGlmaWNhdGVLZXlGaWxlIC9ldGMvbGV0c2VuY3J5cHQvbGl2ZS9yby10aC5vbmxpbmUvcHJpdmtleS5wZW0NCiAgICBTU0xQcm90b2NvbCBhbGwgLVNTTHYzIC1UTFN2MSAtVExTdjEuMQ0KDQogICAgQWxpYXMgL3Rlc3QtYXBrLyAvdmFyL3d3dy9odG1sL3Rlc3QtYXBrLw0KICAgIDxEaXJlY3RvcnkgL3Zhci93d3cvaHRtbC90ZXN0LWFwaz4NCiAgICAgICAgT3B0aW9ucyAtSW5kZXhlcyArRm9sbG93U3ltTGlua3MNCiAgICAgICAgQWxsb3dPdmVycmlkZSBOb25lDQogICAgICAgIFJlcXVpcmUgYWxsIGdyYW50ZWQNCiAgICAgICAgQWRkVHlwZSBhcHBsaWNhdGlvbi92bmQuYW5kcm9pZC5wYWNrYWdlLWFyY2hpdmUgLmFwaw0KICAgICAgICA8RmlsZXNNYXRjaCAiXihSYWduYXJva01vYmlsZVByZXZpZXdcLmFwayhcLnNoYTI1Nik/fGxhdGVzdFwuanNvbihcLmd6KT8pJCI+DQogICAgICAgICAgICBIZWFkZXIgc2V0IENhY2hlLUNvbnRyb2wgIm5vLWNhY2hlIg0KICAgICAgICA8L0ZpbGVzTWF0Y2g+DQogICAgPC9EaXJlY3Rvcnk+DQoNCiAgICBSZWRpcmVjdE1hdGNoIDMwMiBeL2Jyb3dzZXIkIC9icm93c2VyLw0KICAgIFJlZGlyZWN0TWF0Y2ggMzAyIF4vTW9iaWxlJCAvTW9iaWxlLw0KICAgIEFsaWFzIC9icm93c2VyLyAvdmFyL3d3dy9odG1sL3JvLXRoLW9ubGluZS9wdWJsaWMvDQogICAgQWxpYXMgL01vYmlsZS9CdWlsZC8gL3Zhci93d3cvaHRtbC9yby10aC1vbmxpbmUvcHVibGljL0J1aWxkLw0KICAgIEFsaWFzIC9Nb2JpbGUvVGVtcGxhdGVEYXRhLyAvdmFyL3d3dy9odG1sL3JvLXRoLW9ubGluZS9wdWJsaWMvVGVtcGxhdGVEYXRhLw0KICAgIEFsaWFzIC9Nb2JpbGUvIC92YXIvd3d3L2h0bWwvcm8tdGgtb25saW5lL21vYmlsZS8NCiAgICA8TG9jYXRpb25NYXRjaCAiXi9icm93c2VyKD86L3wkKSI+DQogICAgICAgIEF1dGhUeXBlIEJhc2ljDQogICAgICAgIEF1dGhOYW1lICJSby1UaGFpbGFuZCBicm93c2VyIG93bmVyIg0KICAgICAgICBBdXRoQmFzaWNQcm92aWRlciBmaWxlDQogICAgICAgIEF1dGhVc2VyRmlsZSAvZXRjL2FwYWNoZTIvcm8tdGgtb25saW5lLWJyb3dzZXIuaHRwYXNzd2QNCiAgICAgICAgUmVxdWlyZSB2YWxpZC11c2VyDQogICAgPC9Mb2NhdGlvbk1hdGNoPg0KDQogICAgIyBXZWJSVEMgc2lnbmFsaW5nIG9ubHk7IHZvaWNlIGF1ZGlvIHVzZXMgRFRMUy9TQ1RQL1VEUCA3MDEyLg0KICAgIFByb3h5UGFzcyAvYnJpZGdlL3ZvaWNlLXJ0YyB3czovLzEyNy4wLjAuMTo4MDkwL2JyaWRnZS92b2ljZS1ydGMgcmV0cnk9MA0KICAgIFByb3h5UGFzc1JldmVyc2UgL2JyaWRnZS92b2ljZS1ydGMgd3M6Ly8xMjcuMC4wLjE6ODA5MC9icmlkZ2Uvdm9pY2UtcnRjDQogICAgUHJveHlQYXNzIC9icmlkZ2UvIHdzOi8vMTI3LjAuMC4xOjgwODgvYnJpZGdlLyByZXRyeT0wDQogICAgUHJveHlQYXNzUmV2ZXJzZSAvYnJpZGdlLyB3czovLzEyNy4wLjAuMTo4MDg4L2JyaWRnZS8NCiAgICAjIFByZXZpZXctbWF0Y2hlZCBQYXlvbiBpbnRlcmlvcnM7IHRoZXNlIGV4YWN0IG9iamVjdHMgYWxzbyBiYWNrIHRoZSBBUEsgY2F0YWxvZy4NCiAgICBQcm94eVBhc3NNYXRjaCAiXi9jb250ZW50L21hcHMvcGF5b25faW4wWzEyM10vbWFwWy5dYnl0ZXMkIiAiISINCiAgICBBbGlhc01hdGNoICJeL2NvbnRlbnQvbWFwcy9wYXlvbl9pbjAxL21hcFsuXWJ5dGVzJCIgIi92YXIvd3d3L2h0bWwvdGVzdC1hcGsvcGF0Y2hlcy9NYXBzL29iamVjdHMvZjY2YzViNTdjY2IzY2FlYzQxMjAzOTAxMzY1Njc5YTQ3MjAzZDMwZTA1ZGRlZmQyNzExNDQyMDMyZTM2Mzg2YSINCiAgICBBbGlhc01hdGNoICJeL2NvbnRlbnQvbWFwcy9wYXlvbl9pbjAyL21hcFsuXWJ5dGVzJCIgIi92YXIvd3d3L2h0bWwvdGVzdC1hcGsvcGF0Y2hlcy9NYXBzL29iamVjdHMvZGRlYTg4NGJhN2JiNTkzZDIwMGVlMGE0YTcyOWI4YmNkOWY4MThjZmNmMGI1NTRhMjFhMjUzYzA5ODZkOGY1YSINCiAgICBBbGlhc01hdGNoICJeL2NvbnRlbnQvbWFwcy9wYXlvbl9pbjAzL21hcFsuXWJ5dGVzJCIgIi92YXIvd3d3L2h0bWwvdGVzdC1hcGsvcGF0Y2hlcy9NYXBzL29iamVjdHMvNDM0ZWJmZjJiZmYwNGZjNDcyOGM1N2U5MzRkNWY1ZWQ4ZjQxNzY4ZWU3MjlmMjExZTc2ZjM2OWI3ZjI1M2IyYiINCiAgICA8TG9jYXRpb25NYXRjaCAiXi9jb250ZW50L21hcHMvcGF5b25faW4wWzEyM10vbWFwWy5dYnl0ZXMkIj4NCiAgICAgICAgRm9yY2VUeXBlIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQ0KICAgICAgICBIZWFkZXIgc2V0IENhY2hlLUNvbnRyb2wgIm5vLXN0b3JlIg0KICAgIDwvTG9jYXRpb25NYXRjaD4NCiAgICBQcm94eVBhc3MgL2NvbnRlbnQvIGh0dHA6Ly8xMjcuMC4wLjE6ODA4OC9jb250ZW50LyByZXRyeT0wDQogICAgUHJveHlQYXNzUmV2ZXJzZSAvY29udGVudC8gaHR0cDovLzEyNy4wLjAuMTo4MDg4L2NvbnRlbnQvDQogICAgUmV3cml0ZUVuZ2luZSBPbg0KICAgIFJld3JpdGVSdWxlIF4vJCAtIFtSPTQwNCxMXQ0KICAgIFJld3JpdGVSdWxlIF4vYXBpL3YxLyhsb2dpbnxyZWdpc3RlcnxhdmFpbGFiaWxpdHkpJCAvcm8tdGhhaWxhbmQtYXBwLWFwaS9pbmRleC5waHAvdjEvJDEgW1BULExdDQogICAgQWxpYXMgL3JvLXRoYWlsYW5kLWFwcC1hcGkvIC92YXIvd3d3L2h0dHBzLXN0b3JlZnJvbnQtcm9vdC9yby10aGFpbGFuZC1hcHAtYXBpLw0KICAgIDxEaXJlY3RvcnkgL3Zhci93d3cvaHR0cHMtc3RvcmVmcm9udC1yb290L3JvLXRoYWlsYW5kLWFwcC1hcGk+DQogICAgICAgIE9wdGlvbnMgLUluZGV4ZXMgK0ZvbGxvd1N5bUxpbmtzDQogICAgICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KICAgICAgICBBY2NlcHRQYXRoSW5mbyBPbg0KICAgICAgICBSZXF1aXJlIGFsbCBncmFudGVkDQogICAgPC9EaXJlY3Rvcnk+DQoNCiAgICA8RGlyZWN0b3J5IC92YXIvd3d3L2h0bWwvcm8tdGgtb25saW5lL21haW4+DQogICAgICAgIE9wdGlvbnMgLUluZGV4ZXMgLUZvbGxvd1N5bUxpbmtzDQogICAgICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KICAgICAgICBSZXF1aXJlIGFsbCBncmFudGVkDQogICAgPC9EaXJlY3Rvcnk+DQogICAgPERpcmVjdG9yeSAvdmFyL3d3dy9odG1sL3JvLXRoLW9ubGluZS9tb2JpbGU+DQogICAgICAgIE9wdGlvbnMgLUluZGV4ZXMgLUZvbGxvd1N5bUxpbmtzDQogICAgICAgIEFsbG93T3ZlcnJpZGUgTm9uZQ0KICAgICAgICBSZXF1aXJlIGFsbCBncmFudGVkDQogICAgICAgIERpcmVjdG9yeUluZGV4IGluZGV4Lmh0bWwNCiAgICAgICAgQWRkVHlwZSBhcHBsaWNhdGlvbi9tYW5pZmVzdCtqc29uIC53ZWJtYW5pZmVzdA0KICAgICAgICBIZWFkZXIgc2V0IENhY2hlLUNvbnRyb2wgIm5vLWNhY2hlIg0KICAgIDwvRGlyZWN0b3J5Pg0KICAgIDxEaXJlY3RvcnkgL3Zhci93d3cvaHRtbC9yby10aC1vbmxpbmUvcHVibGljPg0KICAgICAgICBPcHRpb25zIC1JbmRleGVzIC1Gb2xsb3dTeW1MaW5rcw0KICAgICAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICAgICAgUmVxdWlyZSBhbGwgZ3JhbnRlZA0KICAgICAgICBEaXJlY3RvcnlJbmRleCBpbmRleC5odG1sDQogICAgICAgIEFkZFR5cGUgYXBwbGljYXRpb24vd2FzbSAud2FzbQ0KICAgICAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSAuZGF0YQ0KICAgICAgICBIZWFkZXIgc2V0IENhY2hlLUNvbnRyb2wgIm5vLWNhY2hlIg0KICAgICAgICA8RmlsZXNNYXRjaCAiXldlYlByZXZpZXdcLmRhdGFcLigzNTA2OWUxMHwzZjQ1MzM3ZHxkYTk1YzMyOHwwM2EwOTE3YnxhYTY2YTlhMnxhMmMyYTllYnw5YmE1YmI4Ynw4MjZjYmZkZXw5NWMyNTY4NHw4MTFlOGY1Y3w5ZDU0Mjc1N3w2ZWU1YmIzMXwyZWMzNmI2MXxmMGM1ZWQxYnxlNWI2ODlhYnw4NDU1MzFiMXxlY2IxNmZjNXwyZTk4MGE0OXw2NTllNjI2NnwxNDUxNWFmNXw4OTc3MzUwMHxmMzk4ZTM3N3w3ODQyMzI4MnxjZjkyYmI0MXwzMjc2ZWQ4NnwwMTVmOTIwZnxmNjViN2JiY3wwMDYwN2NkMHwyMDFhM2E1OXw1NDgxMDdjOSlcLmJyJCI+DQogICAgICAgICAgICBTZXRFbnYgbm8tZ3ppcCAxDQogICAgICAgICAgICBIZWFkZXIgc2V0IENvbnRlbnQtRW5jb2RpbmcgImJyIg0KICAgICAgICAgICAgSGVhZGVyIHNldCBDb250ZW50LVR5cGUgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSINCiAgICAgICAgICAgIEhlYWRlciBzZXQgQ2FjaGUtQ29udHJvbCAicHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUiDQogICAgICAgIDwvRmlsZXNNYXRjaD4NCiAgICAgICAgPEZpbGVzTWF0Y2ggIl5XZWJQcmV2aWV3XC5kYXRhXC4oM2Y0NTMzN2R8ZGE5NWMzMjh8MDNhMDkxN2J8YWE2NmE5YTJ8YTJjMmE5ZWJ8OWJhNWJiOGJ8ODI2Y2JmZGV8OTVjMjU2ODR8ODExZThmNWN8OWQ1NDI3NTd8NmVlNWJiMzF8MmVjMzZiNjF8ZjBjNWVkMWJ8ZTViNjg5YWJ8ODQ1NTMxYjF8ZWNiMTZmYzV8MmU5ODBhNDl8NjU5ZTYyNjZ8MTQ1MTVhZjV8ODk3NzM1MDB8ZjM5OGUzNzd8Nzg0MjMyODJ8Y2Y5MmJiNDF8MzI3NmVkODZ8MDE1ZjkyMGZ8ZjY1YjdiYmN8MDA2MDdjZDB8MjAxYTNhNTl8NTQ4MTA3YzkpXC5wYXJ0WzAtOV17M31cLmd6JCI+DQogICAgICAgICAgICBTZXRFbnYgbm8tZ3ppcCAxDQogICAgICAgICAgICBIZWFkZXIgc2V0IENvbnRlbnQtRW5jb2RpbmcgImd6aXAiDQogICAgICAgICAgICBIZWFkZXIgc2V0IENvbnRlbnQtVHlwZSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIg0KICAgICAgICAgICAgSGVhZGVyIHNldCBDYWNoZS1Db250cm9sICJwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSINCiAgICAgICAgPC9GaWxlc01hdGNoPg0KICAgIDwvRGlyZWN0b3J5Pg0KICAgIEVycm9yTG9nICR7QVBBQ0hFX0xPR19ESVJ9L3JvLXRoLWRvd25sb2FkLWVycm9yLmxvZw0KICAgIEN1c3RvbUxvZyAke0FQQUNIRV9MT0dfRElSfS9yby10aC1kb3dubG9hZC1hY2Nlc3MubG9nIGNvbWJpbmVkDQo8L1ZpcnR1YWxIb3N0Pg0K"
    },
    "chunk": {
      "sha256": "3597a3c86b60d7803b0b6ed13c86eb46b4a5e6defc3497155c9011bcb147ed11",
      "base64": "Ly8gaVBob25lL2lQYWQgc3RhcnR1cDogcmVxdWVzdCBVbml0eSBkYXRhIGFzIHNtYWxsLCBpbmRpdmlkdWFsbHkgY2FjaGVkIHJlc3BvbnNlcy4NDQovLyBEZXBsb3kgYmVzaWRlIHRoZSBtYXRjaGluZyB2ZXJzaW9uZWQgV2ViR0wgY29kZTsgcmV0YWluIHByZXZpb3VzIHJlbGVhc2UgZmlsZXMuDQ0KKGZ1bmN0aW9uIChyb290KSB7DQ0KICAndXNlIHN0cmljdCc7DQ0KDQ0KICBjb25zdCBtYW5pZmVzdCA9IE9iamVjdC5mcmVlemUoew0NCiAgICB1cmw6ICcvTW9iaWxlL0J1aWxkL1dlYlByZXZpZXcuZGF0YS41NDgxMDdjOS5jaHVuay10cmlhbCcsDQ0KICAgIHBhcnRQcmVmaXg6ICcvTW9iaWxlL0J1aWxkL1dlYlByZXZpZXcuZGF0YS41NDgxMDdjOS5wYXJ0JywNDQogICAgdG90YWxCeXRlczogMzgwMTUwNjk0LA0NCiAgICBwYXJ0U2l6ZTogNDE5NDMwNCwNDQogICAgY2FjaGVOYW1lOiAnUm9UaGFpbGFuZERhdGFfNTQ4MTA3YzlfcGFydHMnLA0NCiAgfSk7DQ0KDQ0KICBmdW5jdGlvbiBjcmVhdGVDaHVua2VkRmV0Y2gobmF0aXZlRmV0Y2gsIHNvdXJjZSwgY2FjaGVTdG9yZSkgew0NCiAgICBjb25zdCBjb3VudCA9IE1hdGguY2VpbChzb3VyY2UudG90YWxCeXRlcyAvIHNvdXJjZS5wYXJ0U2l6ZSk7DQ0KICAgIHJldHVybiBmdW5jdGlvbiAoaW5wdXQsIGluaXQpIHsNDQogICAgICBjb25zdCB0YXJnZXQgPSB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnID8gaW5wdXQgOiBpbnB1dCAmJiBpbnB1dC51cmw7DQ0KICAgICAgaWYgKHRhcmdldCAhPT0gc291cmNlLnVybCAmJiAhdGFyZ2V0Py5lbmRzV2l0aChzb3VyY2UudXJsKSkgcmV0dXJuIG5hdGl2ZUZldGNoKGlucHV0LCBpbml0KTsNDQoNDQogICAgICBsZXQgbmV4dCA9IDA7DQ0KICAgICAgbGV0IGNhY2hlOw0NCiAgICAgIGxldCBzdG9yYWdlVW5hdmFpbGFibGUgPSAhY2FjaGVTdG9yZTsNDQogICAgICBsZXQgd3JpdGVVbmF2YWlsYWJsZSA9ICFjYWNoZVN0b3JlOw0NCiAgICAgIGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlKCkgew0NCiAgICAgICAgaWYgKHN0b3JhZ2VVbmF2YWlsYWJsZSkgcmV0dXJuIG51bGw7DQ0KICAgICAgICBpZiAoY2FjaGUpIHJldHVybiBjYWNoZTsNDQogICAgICAgIHRyeSB7DQ0KICAgICAgICAgIGNhY2hlID0gYXdhaXQgY2FjaGVTdG9yZS5vcGVuKHNvdXJjZS5jYWNoZU5hbWUpOw0NCiAgICAgICAgICByZXR1cm4gY2FjaGU7DQ0KICAgICAgICB9IGNhdGNoIChfKSB7DQ0KICAgICAgICAgIHN0b3JhZ2VVbmF2YWlsYWJsZSA9IHRydWU7DQ0KICAgICAgICAgIHdyaXRlVW5hdmFpbGFibGUgPSB0cnVlOw0NCiAgICAgICAgICByZXR1cm4gbnVsbDsNDQogICAgICAgIH0NDQogICAgICB9DQ0KICAgICAgY29uc3QgYm9keSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7DQ0KICAgICAgICBhc3luYyBwdWxsKGNvbnRyb2xsZXIpIHsNDQogICAgICAgICAgaWYgKG5leHQgPj0gY291bnQpIHsNDQogICAgICAgICAgICBjb250cm9sbGVyLmNsb3NlKCk7DQ0KICAgICAgICAgICAgcmV0dXJuOw0NCiAgICAgICAgICB9DQ0KICAgICAgICAgIGNvbnN0IHBhdGggPSBzb3VyY2UucGFydFByZWZpeCArIFN0cmluZyhuZXh0KS5wYWRTdGFydCgzLCAnMCcpICsgJy5neic7DQ0KICAgICAgICAgIGNvbnN0IGV4cGVjdGVkID0gTWF0aC5taW4oc291cmNlLnBhcnRTaXplLCBzb3VyY2UudG90YWxCeXRlcyAtIG5leHQgKiBzb3VyY2UucGFydFNpemUpOw0NCiAgICAgICAgICB0cnkgew0NCiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUNhY2hlID0gYXdhaXQgZ2V0Q2FjaGUoKTsNDQogICAgICAgICAgICBsZXQgcmVzcG9uc2U7DQ0KICAgICAgICAgICAgaWYgKGFjdGl2ZUNhY2hlKSB7DQ0KICAgICAgICAgICAgICB0cnkgeyByZXNwb25zZSA9IGF3YWl0IGFjdGl2ZUNhY2hlLm1hdGNoKHBhdGgpOyB9DQ0KICAgICAgICAgICAgICBjYXRjaCAoXykgeyBzdG9yYWdlVW5hdmFpbGFibGUgPSB0cnVlOyB3cml0ZVVuYXZhaWxhYmxlID0gdHJ1ZTsgfQ0NCiAgICAgICAgICAgIH0NDQogICAgICAgICAgICBjb25zdCBjYWNoZUhpdCA9ICEhcmVzcG9uc2U7DQ0KICAgICAgICAgICAgbGV0IG5lZWRzU3RvcmUgPSAhY2FjaGVIaXQ7DQ0KICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkgcmVzcG9uc2UgPSBhd2FpdCBuYXRpdmVGZXRjaChwYXRoLCB7IGNhY2hlOiAnZm9yY2UtY2FjaGUnIH0pOw0NCiAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcigncGFydCAnICsgbmV4dCArICc6IEhUVFAgJyArIHJlc3BvbnNlLnN0YXR1cyk7DQ0KICAgICAgICAgICAgbGV0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7DQ0KICAgICAgICAgICAgaWYgKGJ5dGVzLmJ5dGVMZW5ndGggIT09IGV4cGVjdGVkKSB7DQ0KICAgICAgICAgICAgICBuZWVkc1N0b3JlID0gdHJ1ZTsNDQogICAgICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgbmF0aXZlRmV0Y2gocGF0aCwgeyBjYWNoZTogJ3JlbG9hZCcgfSk7DQ0KICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ3BhcnQgJyArIG5leHQgKyAnOiBIVFRQICcgKyByZXNwb25zZS5zdGF0dXMpOw0NCiAgICAgICAgICAgICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTsNDQogICAgICAgICAgICAgIGlmIChieXRlcy5ieXRlTGVuZ3RoICE9PSBleHBlY3RlZCkgdGhyb3cgbmV3IEVycm9yKCdwYXJ0ICcgKyBuZXh0ICsgJzogaW52YWxpZCBsZW5ndGgnKTsNDQogICAgICAgICAgICB9DQ0KICAgICAgICAgICAgaWYgKGFjdGl2ZUNhY2hlICYmICF3cml0ZVVuYXZhaWxhYmxlICYmIG5lZWRzU3RvcmUpIHsNDQogICAgICAgICAgICAgIHRyeSB7IGF3YWl0IGFjdGl2ZUNhY2hlLnB1dChwYXRoLCBuZXcgUmVzcG9uc2UoYnl0ZXMpKTsgfQ0NCiAgICAgICAgICAgICAgY2F0Y2ggKF8pIHsgd3JpdGVVbmF2YWlsYWJsZSA9IHRydWU7IH0NDQogICAgICAgICAgICB9DQ0KICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGJ5dGVzKTsNDQogICAgICAgICAgICBuZXh0ICs9IDE7DQ0KICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQ0KICAgICAgICAgICAgY29udHJvbGxlci5lcnJvcihlcnJvcik7DQ0KICAgICAgICAgIH0NDQogICAgICAgIH0sDQ0KICAgICAgfSk7DQ0KICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgUmVzcG9uc2UoYm9keSwgew0NCiAgICAgICAgc3RhdHVzOiAyMDAsDQ0KICAgICAgICBoZWFkZXJzOiB7DQ0KICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywNDQogICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogU3RyaW5nKHNvdXJjZS50b3RhbEJ5dGVzKSwNDQogICAgICAgIH0sDQ0KICAgICAgfSkpOw0NCiAgICB9Ow0NCiAgfQ0NCg0NCiAgaWYgKHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnICYmIG1vZHVsZS5leHBvcnRzKSBtb2R1bGUuZXhwb3J0cyA9IHsgY3JlYXRlQ2h1bmtlZEZldGNoLCBtYW5pZmVzdCB9Ow0NCiAgaWYgKHJvb3QgJiYgdHlwZW9mIHJvb3QuZmV0Y2ggPT09ICdmdW5jdGlvbicpIHsNDQogICAgcm9vdC5Sb1RoYWlsYW5kQ2h1bmtUcmlhbCA9IHsNDQogICAgICBpbnN0YWxsKCkgew0NCiAgICAgICAgcm9vdC5mZXRjaCA9IGNyZWF0ZUNodW5rZWRGZXRjaChyb290LmZldGNoLmJpbmQocm9vdCksIG1hbmlmZXN0LCByb290LmNhY2hlcyk7DQ0KICAgICAgICByZXR1cm4gbWFuaWZlc3QudXJsOw0NCiAgICAgIH0sDQ0KICAgIH07DQ0KICB9DQ0KfSkodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogd2luZG93KTsNDQo="
    }
  },
  "apk": {
    "url": "https://43.228.86.71/test-apk/apks/43-c9ce144eb8ab63e9e5910ba61ca8c28d8425bd684b1ad5dfeb54d2f5d2e69829.apk",
    "size": 86685027,
    "versionCode": 43,
    "versionName": "1.3.31",
    "schema": 1,
    "packageName": "com.ragnarokmobile.preview",
    "sha256": "c9ce144eb8ab63e9e5910ba61ca8c28d8425bd684b1ad5dfeb54d2f5d2e69829"
  },
  "freeBytes": 8447352832,
  "retained": [
    "mobile-00607cd0",
    "mobile-201a3a59",
    "mobile-548107c9"
  ],
  "gameServicePids": {
    "map-server": [
      "2282544",
      "3854942"
    ],
    "voice-server": [
      "1144970",
      "1302189"
    ],
    "login-server": [
      "1442316",
      "3854903"
    ],
    "char-server": [
      "1302169",
      "3854048"
    ]
  },
  "shellHash": "6acb16ab0746dd27c33e48cbaf38cf0f344d8599d026f576d96b4c279ac4fe69"
}
