<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>109347</bug_id>
          
          <creation_ts>2013-02-08 21:51:01 -0800</creation_ts>
          <short_desc>REGRESSION: Some layers can move without updating hit testing information</short_desc>
          <delta_ts>2013-02-08 21:55:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>104276</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828944</commentid>
    <comment_count>0</comment_count>
      <attachid>187410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-08 21:51:01 -0800</bug_when>
    <thetext>Created attachment 187410
Document

Reproduction steps.
1. Open the attached Web archive in the nightly builds of WebKit (don&apos;t make the window too big)
2. Change the right most cq: to c+ or c- (observe that the entire bar moves upwards a little)
3. Click &quot;Publish&quot;

Expected result:
You can click &quot;Publish&quot;

Actual result:
You can&apos;t click it. It appears that you can click slightly above instead.

It appears that the hit testing info. is not getting updated when the popup menu shows up and the &quot;review&quot; bar moves vertically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828945</commentid>
    <comment_count>1</comment_count>
      <attachid>187411</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-08 21:51:33 -0800</bug_when>
    <thetext>Created attachment 187411
Screenshot of the bar when it moves vertically</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828950</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-08 21:55:12 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 104276 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187410</attachid>
            <date>2013-02-08 21:51:01 -0800</date>
            <delta_ts>2013-02-08 21:51:01 -0800</delta_ts>
            <desc>Document</desc>
            <filename>bug109342.webarchive</filename>
            <type>application/x-webarchive</type>
            <size>218117</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">YnBsaXN0MDDTAQIDBBUcXxAPV2ViU3VicmVzb3VyY2VzXxAPV2ViTWFpblJlc291cmNlXxATV2Vi
U3ViZnJhbWVBcmNoaXZlc6IFENUGBwgJCgsMDQ4PXxAPV2ViUmVzb3VyY2VEYXRhXxATV2ViUmVz
b3VyY2VNSU1FVHlwZV8QG1dlYlJlc291cmNlVGV4dEVuY29kaW5nTmFtZV5XZWJSZXNvdXJjZVVS
TF8QE1dlYlJlc291cmNlUmVzcG9uc2VPEgABGe4vKiEKICogalF1ZXJ5IEphdmFTY3JpcHQgTGli
cmFyeSB2MS40LjIKICogaHR0cDovL2pxdWVyeS5jb20vCiAqCiAqIENvcHlyaWdodCAyMDEwLCBK
b2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBvciBHUEwgVmVyc2lvbiAy
IGxpY2Vuc2VzLgogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlCiAqCiAqIEluY2x1ZGVzIFNp
enpsZS5qcwogKiBodHRwOi8vc2l6emxlanMuY29tLwogKiBDb3B5cmlnaHQgMjAxMCwgVGhlIERv
am8gRm91bmRhdGlvbgogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGlj
ZW5zZXMuCiAqCiAqIERhdGU6IFNhdCBGZWIgMTMgMjI6MzM6NDggMjAxMCAtMDUwMAogKi8KKGZ1
bmN0aW9uKEEsdyl7ZnVuY3Rpb24gbWEoKXtpZighYy5pc1JlYWR5KXt0cnl7cy5kb2N1bWVudEVs
ZW1lbnQuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChhKXtzZXRUaW1lb3V0KG1hLDEpO3JldHVybn1j
LnJlYWR5KCl9fWZ1bmN0aW9uIFFhKGEsYil7Yi5zcmM/Yy5hamF4KHt1cmw6Yi5zcmMsYXN5bmM6
ZmFsc2UsZGF0YVR5cGU6InNjcmlwdCJ9KTpjLmdsb2JhbEV2YWwoYi50ZXh0fHxiLnRleHRDb250
ZW50fHxiLmlubmVySFRNTHx8IiIpO2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGIpfWZ1bmN0aW9uIFgoYSxiLGQsZixlLGope3ZhciBpPWEubGVuZ3RoO2lmKHR5cGVvZiBi
PT09Im9iamVjdCIpe2Zvcih2YXIgbyBpbiBiKVgoYSxvLGJbb10sZixlLGQpO3JldHVybiBhfWlm
KGQhPT13KXtmPSFqJiZmJiZjLmlzRnVuY3Rpb24oZCk7Zm9yKG89MDtvPGk7bysrKWUoYVtvXSxi
LGY/ZC5jYWxsKGFbb10sbyxlKGFbb10sYikpOmQsaik7cmV0dXJuIGF9cmV0dXJuIGk/CmUoYVsw
XSxiKTp3fWZ1bmN0aW9uIEooKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX1mdW5jdGlvbiBZ
KCl7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIFooKXtyZXR1cm4gdHJ1ZX1mdW5jdGlvbiBuYShhLGIs
ZCl7ZFswXS50eXBlPWE7cmV0dXJuIGMuZXZlbnQuaGFuZGxlLmFwcGx5KGIsZCl9ZnVuY3Rpb24g
b2EoYSl7dmFyIGIsZD1bXSxmPVtdLGU9YXJndW1lbnRzLGosaSxvLGssbixyO2k9Yy5kYXRhKHRo
aXMsImV2ZW50cyIpO2lmKCEoYS5saXZlRmlyZWQ9PT10aGlzfHwhaXx8IWkubGl2ZXx8YS5idXR0
b24mJmEudHlwZT09PSJjbGljayIpKXthLmxpdmVGaXJlZD10aGlzO3ZhciB1PWkubGl2ZS5zbGlj
ZSgwKTtmb3Ioaz0wO2s8dS5sZW5ndGg7aysrKXtpPXVba107aS5vcmlnVHlwZS5yZXBsYWNlKE8s
IiIpPT09YS50eXBlP2YucHVzaChpLnNlbGVjdG9yKTp1LnNwbGljZShrLS0sMSl9aj1jKGEudGFy
Z2V0KS5jbG9zZXN0KGYsYS5jdXJyZW50VGFyZ2V0KTtuPTA7Zm9yKHI9CmoubGVuZ3RoO248cjtu
KyspZm9yKGs9MDtrPHUubGVuZ3RoO2srKyl7aT11W2tdO2lmKGpbbl0uc2VsZWN0b3I9PT1pLnNl
bGVjdG9yKXtvPWpbbl0uZWxlbTtmPW51bGw7aWYoaS5wcmVUeXBlPT09Im1vdXNlZW50ZXIifHxp
LnByZVR5cGU9PT0ibW91c2VsZWF2ZSIpZj1jKGEucmVsYXRlZFRhcmdldCkuY2xvc2VzdChpLnNl
bGVjdG9yKVswXTtpZighZnx8ZiE9PW8pZC5wdXNoKHtlbGVtOm8saGFuZGxlT2JqOml9KX19bj0w
O2ZvcihyPWQubGVuZ3RoO248cjtuKyspe2o9ZFtuXTthLmN1cnJlbnRUYXJnZXQ9ai5lbGVtO2Eu
ZGF0YT1qLmhhbmRsZU9iai5kYXRhO2EuaGFuZGxlT2JqPWouaGFuZGxlT2JqO2lmKGouaGFuZGxl
T2JqLm9yaWdIYW5kbGVyLmFwcGx5KGouZWxlbSxlKT09PWZhbHNlKXtiPWZhbHNlO2JyZWFrfX1y
ZXR1cm4gYn19ZnVuY3Rpb24gcGEoYSxiKXtyZXR1cm4ibGl2ZS4iKyhhJiZhIT09IioiP2ErIi4i
OiIiKStiLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csCiImIil9ZnVuY3Rpb24gcWEo
YSl7cmV0dXJuIWF8fCFhLnBhcmVudE5vZGV8fGEucGFyZW50Tm9kZS5ub2RlVHlwZT09PTExfWZ1
bmN0aW9uIHJhKGEsYil7dmFyIGQ9MDtiLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVOYW1l
PT09KGFbZF0mJmFbZF0ubm9kZU5hbWUpKXt2YXIgZj1jLmRhdGEoYVtkKytdKSxlPWMuZGF0YSh0
aGlzLGYpO2lmKGY9ZiYmZi5ldmVudHMpe2RlbGV0ZSBlLmhhbmRsZTtlLmV2ZW50cz17fTtmb3Io
dmFyIGogaW4gZilmb3IodmFyIGkgaW4gZltqXSljLmV2ZW50LmFkZCh0aGlzLGosZltqXVtpXSxm
W2pdW2ldLmRhdGEpfX19KX1mdW5jdGlvbiBzYShhLGIsZCl7dmFyIGYsZSxqO2I9YiYmYlswXT9i
WzBdLm93bmVyRG9jdW1lbnR8fGJbMF06cztpZihhLmxlbmd0aD09PTEmJnR5cGVvZiBhWzBdPT09
InN0cmluZyImJmFbMF0ubGVuZ3RoPDUxMiYmYj09PXMmJiF0YS50ZXN0KGFbMF0pJiYoYy5zdXBw
b3J0LmNoZWNrQ2xvbmV8fCF1YS50ZXN0KGFbMF0pKSl7ZT0KdHJ1ZTtpZihqPWMuZnJhZ21lbnRz
W2FbMF1dKWlmKGohPT0xKWY9an1pZighZil7Zj1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtj
LmNsZWFuKGEsYixmLGQpfWlmKGUpYy5mcmFnbWVudHNbYVswXV09aj9mOjE7cmV0dXJue2ZyYWdt
ZW50OmYsY2FjaGVhYmxlOmV9fWZ1bmN0aW9uIEsoYSxiKXt2YXIgZD17fTtjLmVhY2godmEuY29u
Y2F0LmFwcGx5KFtdLHZhLnNsaWNlKDAsYikpLGZ1bmN0aW9uKCl7ZFt0aGlzXT1hfSk7cmV0dXJu
IGR9ZnVuY3Rpb24gd2EoYSl7cmV0dXJuInNjcm9sbFRvImluIGEmJmEuZG9jdW1lbnQ/YTphLm5v
ZGVUeXBlPT09OT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzpmYWxzZX12YXIgYz1mdW5j
dGlvbihhLGIpe3JldHVybiBuZXcgYy5mbi5pbml0KGEsYil9LFJhPUEualF1ZXJ5LFNhPUEuJCxz
PUEuZG9jdW1lbnQsVCxUYT0vXltePF0qKDxbXHdcV10rPilbXj5dKiR8XiMoW1x3LV0rKSQvLFVh
PS9eLlteOiNcW1wuLF0qJC8sVmE9L1xTLywKV2E9L14oXHN8XHUwMEEwKSt8KFxzfFx1MDBBMCkr
JC9nLFhhPS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sUD1uYXZpZ2F0b3IudXNlckFnZW50
LHhhPWZhbHNlLFE9W10sTCwkPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYWE9T2JqZWN0LnBy
b3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxiYT1BcnJheS5wcm90b3R5cGUucHVzaCxSPUFycmF5LnBy
b3RvdHlwZS5zbGljZSx5YT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZjtjLmZuPWMucHJvdG90eXBl
PXtpbml0OmZ1bmN0aW9uKGEsYil7dmFyIGQsZjtpZighYSlyZXR1cm4gdGhpcztpZihhLm5vZGVU
eXBlKXt0aGlzLmNvbnRleHQ9dGhpc1swXT1hO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRoaXN9aWYo
YT09PSJib2R5IiYmIWIpe3RoaXMuY29udGV4dD1zO3RoaXNbMF09cy5ib2R5O3RoaXMuc2VsZWN0
b3I9ImJvZHkiO3RoaXMubGVuZ3RoPTE7cmV0dXJuIHRoaXN9aWYodHlwZW9mIGE9PT0ic3RyaW5n
IilpZigoZD1UYS5leGVjKGEpKSYmCihkWzFdfHwhYikpaWYoZFsxXSl7Zj1iP2Iub3duZXJEb2N1
bWVudHx8YjpzO2lmKGE9WGEuZXhlYyhhKSlpZihjLmlzUGxhaW5PYmplY3QoYikpe2E9W3MuY3Jl
YXRlRWxlbWVudChhWzFdKV07Yy5mbi5hdHRyLmNhbGwoYSxiLHRydWUpfWVsc2UgYT1bZi5jcmVh
dGVFbGVtZW50KGFbMV0pXTtlbHNle2E9c2EoW2RbMV1dLFtmXSk7YT0oYS5jYWNoZWFibGU/YS5m
cmFnbWVudC5jbG9uZU5vZGUodHJ1ZSk6YS5mcmFnbWVudCkuY2hpbGROb2Rlc31yZXR1cm4gYy5t
ZXJnZSh0aGlzLGEpfWVsc2V7aWYoYj1zLmdldEVsZW1lbnRCeUlkKGRbMl0pKXtpZihiLmlkIT09
ZFsyXSlyZXR1cm4gVC5maW5kKGEpO3RoaXMubGVuZ3RoPTE7dGhpc1swXT1ifXRoaXMuY29udGV4
dD1zO3RoaXMuc2VsZWN0b3I9YTtyZXR1cm4gdGhpc31lbHNlIGlmKCFiJiYvXlx3KyQvLnRlc3Qo
YSkpe3RoaXMuc2VsZWN0b3I9YTt0aGlzLmNvbnRleHQ9czthPXMuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoYSk7cmV0dXJuIGMubWVyZ2UodGhpcywKYSl9ZWxzZSByZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8
fFQpLmZpbmQoYSk6YyhiKS5maW5kKGEpO2Vsc2UgaWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiBU
LnJlYWR5KGEpO2lmKGEuc2VsZWN0b3IhPT13KXt0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3I7dGhp
cy5jb250ZXh0PWEuY29udGV4dH1yZXR1cm4gYy5tYWtlQXJyYXkoYSx0aGlzKX0sc2VsZWN0b3I6
IiIsanF1ZXJ5OiIxLjQuMiIsbGVuZ3RoOjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxl
bmd0aH0sdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBSLmNhbGwodGhpcywwKX0sZ2V0OmZ1bmN0
aW9uKGEpe3JldHVybiBhPT1udWxsP3RoaXMudG9BcnJheSgpOmE8MD90aGlzLnNsaWNlKGEpWzBd
OnRoaXNbYV19LHB1c2hTdGFjazpmdW5jdGlvbihhLGIsZCl7dmFyIGY9YygpO2MuaXNBcnJheShh
KT9iYS5hcHBseShmLGEpOmMubWVyZ2UoZixhKTtmLnByZXZPYmplY3Q9dGhpcztmLmNvbnRleHQ9
dGhpcy5jb250ZXh0O2lmKGI9PT0KImZpbmQiKWYuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhp
cy5zZWxlY3Rvcj8iICI6IiIpK2Q7ZWxzZSBpZihiKWYuc2VsZWN0b3I9dGhpcy5zZWxlY3Rvcisi
LiIrYisiKCIrZCsiKSI7cmV0dXJuIGZ9LGVhY2g6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYy5lYWNo
KHRoaXMsYSxiKX0scmVhZHk6ZnVuY3Rpb24oYSl7Yy5iaW5kUmVhZHkoKTtpZihjLmlzUmVhZHkp
YS5jYWxsKHMsYyk7ZWxzZSBRJiZRLnB1c2goYSk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGEp
e3JldHVybiBhPT09LTE/dGhpcy5zbGljZShhKTp0aGlzLnNsaWNlKGEsK2ErMSl9LGZpcnN0OmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5l
cSgtMSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFIuYXBwbHkodGhp
cyxhcmd1bWVudHMpLCJzbGljZSIsUi5jYWxsKGFyZ3VtZW50cykuam9pbigiLCIpKX0sbWFwOmZ1
bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhjLm1hcCh0aGlzLApmdW5jdGlvbihiLGQp
e3JldHVybiBhLmNhbGwoYixkLGIpfSkpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2
T2JqZWN0fHxjKG51bGwpfSxwdXNoOmJhLHNvcnQ6W10uc29ydCxzcGxpY2U6W10uc3BsaWNlfTtj
LmZuLmluaXQucHJvdG90eXBlPWMuZm47Yy5leHRlbmQ9Yy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2
YXIgYT1hcmd1bWVudHNbMF18fHt9LGI9MSxkPWFyZ3VtZW50cy5sZW5ndGgsZj1mYWxzZSxlLGos
aSxvO2lmKHR5cGVvZiBhPT09ImJvb2xlYW4iKXtmPWE7YT1hcmd1bWVudHNbMV18fHt9O2I9Mn1p
Zih0eXBlb2YgYSE9PSJvYmplY3QiJiYhYy5pc0Z1bmN0aW9uKGEpKWE9e307aWYoZD09PWIpe2E9
dGhpczstLWJ9Zm9yKDtiPGQ7YisrKWlmKChlPWFyZ3VtZW50c1tiXSkhPW51bGwpZm9yKGogaW4g
ZSl7aT1hW2pdO289ZVtqXTtpZihhIT09bylpZihmJiZvJiYoYy5pc1BsYWluT2JqZWN0KG8pfHxj
LmlzQXJyYXkobykpKXtpPWkmJihjLmlzUGxhaW5PYmplY3QoaSl8fApjLmlzQXJyYXkoaSkpP2k6
Yy5pc0FycmF5KG8pP1tdOnt9O2Fbal09Yy5leHRlbmQoZixpLG8pfWVsc2UgaWYobyE9PXcpYVtq
XT1vfXJldHVybiBhfTtjLmV4dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihhKXtBLiQ9U2E7aWYo
YSlBLmpRdWVyeT1SYTtyZXR1cm4gY30saXNSZWFkeTpmYWxzZSxyZWFkeTpmdW5jdGlvbigpe2lm
KCFjLmlzUmVhZHkpe2lmKCFzLmJvZHkpcmV0dXJuIHNldFRpbWVvdXQoYy5yZWFkeSwxMyk7Yy5p
c1JlYWR5PXRydWU7aWYoUSl7Zm9yKHZhciBhLGI9MDthPVFbYisrXTspYS5jYWxsKHMsYyk7UT1u
dWxsfWMuZm4udHJpZ2dlckhhbmRsZXImJmMocykudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9fSxi
aW5kUmVhZHk6ZnVuY3Rpb24oKXtpZigheGEpe3hhPXRydWU7aWYocy5yZWFkeVN0YXRlPT09ImNv
bXBsZXRlIilyZXR1cm4gYy5yZWFkeSgpO2lmKHMuYWRkRXZlbnRMaXN0ZW5lcil7cy5hZGRFdmVu
dExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwKTCxmYWxzZSk7QS5hZGRFdmVudExpc3RlbmVy
KCJsb2FkIixjLnJlYWR5LGZhbHNlKX1lbHNlIGlmKHMuYXR0YWNoRXZlbnQpe3MuYXR0YWNoRXZl
bnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsTCk7QS5hdHRhY2hFdmVudCgib25sb2FkIixjLnJlYWR5
KTt2YXIgYT1mYWxzZTt0cnl7YT1BLmZyYW1lRWxlbWVudD09bnVsbH1jYXRjaChiKXt9cy5kb2N1
bWVudEVsZW1lbnQuZG9TY3JvbGwmJmEmJm1hKCl9fX0saXNGdW5jdGlvbjpmdW5jdGlvbihhKXty
ZXR1cm4gJC5jYWxsKGEpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihh
KXtyZXR1cm4gJC5jYWxsKGEpPT09IltvYmplY3QgQXJyYXldIn0saXNQbGFpbk9iamVjdDpmdW5j
dGlvbihhKXtpZighYXx8JC5jYWxsKGEpIT09IltvYmplY3QgT2JqZWN0XSJ8fGEubm9kZVR5cGV8
fGEuc2V0SW50ZXJ2YWwpcmV0dXJuIGZhbHNlO2lmKGEuY29uc3RydWN0b3ImJiFhYS5jYWxsKGEs
ImNvbnN0cnVjdG9yIikmJiFhYS5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlLAoiaXNQcm90
b3R5cGVPZiIpKXJldHVybiBmYWxzZTt2YXIgYjtmb3IoYiBpbiBhKTtyZXR1cm4gYj09PXd8fGFh
LmNhbGwoYSxiKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlyZXR1
cm4gZmFsc2U7cmV0dXJuIHRydWV9LGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IGE7fSxwYXJzZUpT
T046ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPT0ic3RyaW5nInx8IWEpcmV0dXJuIG51bGw7YT1j
LnRyaW0oYSk7aWYoL15bXF0sOnt9XHNdKiQvLnRlc3QoYS5yZXBsYWNlKC9cXCg/OlsiXFxcL2Jm
bnJ0XXx1WzAtOWEtZkEtRl17NH0pL2csIkAiKS5yZXBsYWNlKC8iW14iXFxcblxyXSoifHRydWV8
ZmFsc2V8bnVsbHwtP1xkKyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZywiXSIpLnJlcGxh
Y2UoLyg/Ol58OnwsKSg/OlxzKlxbKSsvZywiIikpKXJldHVybiBBLkpTT04mJkEuSlNPTi5wYXJz
ZT9BLkpTT04ucGFyc2UoYSk6KG5ldyBGdW5jdGlvbigicmV0dXJuICIrCmEpKSgpO2Vsc2UgYy5l
cnJvcigiSW52YWxpZCBKU09OOiAiK2EpfSxub29wOmZ1bmN0aW9uKCl7fSxnbG9iYWxFdmFsOmZ1
bmN0aW9uKGEpe2lmKGEmJlZhLnRlc3QoYSkpe3ZhciBiPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImhlYWQiKVswXXx8cy5kb2N1bWVudEVsZW1lbnQsZD1zLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
O2QudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihjLnN1cHBvcnQuc2NyaXB0RXZhbClkLmFwcGVu
ZENoaWxkKHMuY3JlYXRlVGV4dE5vZGUoYSkpO2Vsc2UgZC50ZXh0PWE7Yi5pbnNlcnRCZWZvcmUo
ZCxiLmZpcnN0Q2hpbGQpO2IucmVtb3ZlQ2hpbGQoZCl9fSxub2RlTmFtZTpmdW5jdGlvbihhLGIp
e3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT1iLnRvVXBwZXJD
YXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiLGQpe3ZhciBmLGU9MCxqPWEubGVuZ3RoLGk9aj09PXd8
fGMuaXNGdW5jdGlvbihhKTtpZihkKWlmKGkpZm9yKGYgaW4gYSl7aWYoYi5hcHBseShhW2ZdLApk
KT09PWZhbHNlKWJyZWFrfWVsc2UgZm9yKDtlPGo7KXtpZihiLmFwcGx5KGFbZSsrXSxkKT09PWZh
bHNlKWJyZWFrfWVsc2UgaWYoaSlmb3IoZiBpbiBhKXtpZihiLmNhbGwoYVtmXSxmLGFbZl0pPT09
ZmFsc2UpYnJlYWt9ZWxzZSBmb3IoZD1hWzBdO2U8aiYmYi5jYWxsKGQsZSxkKSE9PWZhbHNlO2Q9
YVsrK2VdKTtyZXR1cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4oYXx8IiIpLnJlcGxhY2Uo
V2EsIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO2lmKGEhPW51bGwpYS5sZW5n
dGg9PW51bGx8fHR5cGVvZiBhPT09InN0cmluZyJ8fGMuaXNGdW5jdGlvbihhKXx8dHlwZW9mIGEh
PT0iZnVuY3Rpb24iJiZhLnNldEludGVydmFsP2JhLmNhbGwoYixhKTpjLm1lcmdlKGIsYSk7cmV0
dXJuIGJ9LGluQXJyYXk6ZnVuY3Rpb24oYSxiKXtpZihiLmluZGV4T2YpcmV0dXJuIGIuaW5kZXhP
ZihhKTtmb3IodmFyIGQ9MCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYltkXT09PQphKXJldHVybiBk
O3JldHVybi0xfSxtZXJnZTpmdW5jdGlvbihhLGIpe3ZhciBkPWEubGVuZ3RoLGY9MDtpZih0eXBl
b2YgYi5sZW5ndGg9PT0ibnVtYmVyIilmb3IodmFyIGU9Yi5sZW5ndGg7ZjxlO2YrKylhW2QrK109
YltmXTtlbHNlIGZvcig7YltmXSE9PXc7KWFbZCsrXT1iW2YrK107YS5sZW5ndGg9ZDtyZXR1cm4g
YX0sZ3JlcDpmdW5jdGlvbihhLGIsZCl7Zm9yKHZhciBmPVtdLGU9MCxqPWEubGVuZ3RoO2U8ajtl
KyspIWQhPT0hYihhW2VdLGUpJiZmLnB1c2goYVtlXSk7cmV0dXJuIGZ9LG1hcDpmdW5jdGlvbihh
LGIsZCl7Zm9yKHZhciBmPVtdLGUsaj0wLGk9YS5sZW5ndGg7ajxpO2orKyl7ZT1iKGFbal0saixk
KTtpZihlIT1udWxsKWZbZi5sZW5ndGhdPWV9cmV0dXJuIGYuY29uY2F0LmFwcGx5KFtdLGYpfSxn
dWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiLGQpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PT0yKWlmKHR5
cGVvZiBiPT09InN0cmluZyIpe2Q9YTthPWRbYl07Yj13fWVsc2UgaWYoYiYmCiFjLmlzRnVuY3Rp
b24oYikpe2Q9YjtiPXd9aWYoIWImJmEpYj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGR8fHRo
aXMsYXJndW1lbnRzKX07aWYoYSliLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8Yi5ndWlkfHxjLmd1aWQr
KztyZXR1cm4gYn0sdWFNYXRjaDpmdW5jdGlvbihhKXthPWEudG9Mb3dlckNhc2UoKTthPS8od2Vi
a2l0KVsgXC9dKFtcdy5dKykvLmV4ZWMoYSl8fC8ob3BlcmEpKD86Lip2ZXJzaW9uKT9bIFwvXShb
XHcuXSspLy5leGVjKGEpfHwvKG1zaWUpIChbXHcuXSspLy5leGVjKGEpfHwhL2NvbXBhdGlibGUv
LnRlc3QoYSkmJi8obW96aWxsYSkoPzouKj8gcnY6KFtcdy5dKykpPy8uZXhlYyhhKXx8W107cmV0
dXJue2Jyb3dzZXI6YVsxXXx8IiIsdmVyc2lvbjphWzJdfHwiMCJ9fSxicm93c2VyOnt9fSk7UD1j
LnVhTWF0Y2goUCk7aWYoUC5icm93c2VyKXtjLmJyb3dzZXJbUC5icm93c2VyXT10cnVlO2MuYnJv
d3Nlci52ZXJzaW9uPVAudmVyc2lvbn1pZihjLmJyb3dzZXIud2Via2l0KWMuYnJvd3Nlci5zYWZh
cmk9CnRydWU7aWYoeWEpYy5pbkFycmF5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHlhLmNhbGwoYixh
KX07VD1jKHMpO2lmKHMuYWRkRXZlbnRMaXN0ZW5lcilMPWZ1bmN0aW9uKCl7cy5yZW1vdmVFdmVu
dExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixMLGZhbHNlKTtjLnJlYWR5KCl9O2Vsc2UgaWYo
cy5hdHRhY2hFdmVudClMPWZ1bmN0aW9uKCl7aWYocy5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil7
cy5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixMKTtjLnJlYWR5KCl9fTsoZnVuY3Rp
b24oKXtjLnN1cHBvcnQ9e307dmFyIGE9cy5kb2N1bWVudEVsZW1lbnQsYj1zLmNyZWF0ZUVsZW1l
bnQoInNjcmlwdCIpLGQ9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxmPSJzY3JpcHQiK0ooKTtkLnN0
eWxlLmRpc3BsYXk9Im5vbmUiO2QuaW5uZXJIVE1MPSIgICA8bGluay8+PHRhYmxlPjwvdGFibGU+
PGEgaHJlZj0nL2EnIHN0eWxlPSdjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8
L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IjsKdmFyIGU9ZC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiKiIpLGo9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdO2lmKCEoIWV8fCFlLmxlbmd0
aHx8IWopKXtjLnN1cHBvcnQ9e2xlYWRpbmdXaGl0ZXNwYWNlOmQuZmlyc3RDaGlsZC5ub2RlVHlw
ZT09PTMsdGJvZHk6IWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IikubGVuZ3RoLGh0bWxT
ZXJpYWxpemU6ISFkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLHN0eWxlOi9y
ZWQvLnRlc3Qoai5nZXRBdHRyaWJ1dGUoInN0eWxlIikpLGhyZWZOb3JtYWxpemVkOmouZ2V0QXR0
cmlidXRlKCJocmVmIik9PT0iL2EiLG9wYWNpdHk6L14wLjU1JC8udGVzdChqLnN0eWxlLm9wYWNp
dHkpLGNzc0Zsb2F0OiEhai5zdHlsZS5jc3NGbG9hdCxjaGVja09uOmQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImlucHV0IilbMF0udmFsdWU9PT0ib24iLG9wdFNlbGVjdGVkOnMuY3JlYXRlRWxlbWVu
dCgic2VsZWN0IikuYXBwZW5kQ2hpbGQocy5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSkuc2VsZWN0
ZWQsCnBhcmVudE5vZGU6ZC5yZW1vdmVDaGlsZChkLmFwcGVuZENoaWxkKHMuY3JlYXRlRWxlbWVu
dCgiZGl2IikpKS5wYXJlbnROb2RlPT09bnVsbCxkZWxldGVFeHBhbmRvOnRydWUsY2hlY2tDbG9u
ZTpmYWxzZSxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9
O2IudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Yi5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHRO
b2RlKCJ3aW5kb3cuIitmKyI9MTsiKSl9Y2F0Y2goaSl7fWEuaW5zZXJ0QmVmb3JlKGIsYS5maXJz
dENoaWxkKTtpZihBW2ZdKXtjLnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2RlbGV0ZSBBW2ZdfXRy
eXtkZWxldGUgYi50ZXN0fWNhdGNoKG8pe2Muc3VwcG9ydC5kZWxldGVFeHBhbmRvPWZhbHNlfWEu
cmVtb3ZlQ2hpbGQoYik7aWYoZC5hdHRhY2hFdmVudCYmZC5maXJlRXZlbnQpe2QuYXR0YWNoRXZl
bnQoIm9uY2xpY2siLGZ1bmN0aW9uIGsoKXtjLnN1cHBvcnQubm9DbG9uZUV2ZW50PQpmYWxzZTtk
LmRldGFjaEV2ZW50KCJvbmNsaWNrIixrKX0pO2QuY2xvbmVOb2RlKHRydWUpLmZpcmVFdmVudCgi
b25jbGljayIpfWQ9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtkLmlubmVySFRNTD0iPGlucHV0IHR5
cGU9J3JhZGlvJyBuYW1lPSdyYWRpb3Rlc3QnIGNoZWNrZWQ9J2NoZWNrZWQnLz4iO2E9cy5jcmVh
dGVEb2N1bWVudEZyYWdtZW50KCk7YS5hcHBlbmRDaGlsZChkLmZpcnN0Q2hpbGQpO2Muc3VwcG9y
dC5jaGVja0Nsb25lPWEuY2xvbmVOb2RlKHRydWUpLmNsb25lTm9kZSh0cnVlKS5sYXN0Q2hpbGQu
Y2hlY2tlZDtjKGZ1bmN0aW9uKCl7dmFyIGs9cy5jcmVhdGVFbGVtZW50KCJkaXYiKTtrLnN0eWxl
LndpZHRoPWsuc3R5bGUucGFkZGluZ0xlZnQ9IjFweCI7cy5ib2R5LmFwcGVuZENoaWxkKGspO2Mu
Ym94TW9kZWw9Yy5zdXBwb3J0LmJveE1vZGVsPWsub2Zmc2V0V2lkdGg9PT0yO3MuYm9keS5yZW1v
dmVDaGlsZChrKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2E9ZnVuY3Rpb24oayl7dmFyIG49CnMu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7az0ib24iK2s7dmFyIHI9ayBpbiBuO2lmKCFyKXtuLnNldEF0
dHJpYnV0ZShrLCJyZXR1cm47Iik7cj10eXBlb2YgbltrXT09PSJmdW5jdGlvbiJ9cmV0dXJuIHJ9
O2Muc3VwcG9ydC5zdWJtaXRCdWJibGVzPWEoInN1Ym1pdCIpO2Muc3VwcG9ydC5jaGFuZ2VCdWJi
bGVzPWEoImNoYW5nZSIpO2E9Yj1kPWU9aj1udWxsfX0pKCk7Yy5wcm9wcz17ImZvciI6Imh0bWxG
b3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIscmVhZG9ubHk6InJlYWRPbmx5IixtYXhsZW5ndGg6Im1h
eExlbmd0aCIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixyb3dzcGFuOiJyb3dTcGFuIixjb2xz
cGFuOiJjb2xTcGFuIix0YWJpbmRleDoidGFiSW5kZXgiLHVzZW1hcDoidXNlTWFwIixmcmFtZWJv
cmRlcjoiZnJhbWVCb3JkZXIifTt2YXIgRz0ialF1ZXJ5IitKKCksWWE9MCx6YT17fTtjLmV4dGVu
ZCh7Y2FjaGU6e30sZXhwYW5kbzpHLG5vRGF0YTp7ZW1iZWQ6dHJ1ZSxvYmplY3Q6dHJ1ZSwKYXBw
bGV0OnRydWV9LGRhdGE6ZnVuY3Rpb24oYSxiLGQpe2lmKCEoYS5ub2RlTmFtZSYmYy5ub0RhdGFb
YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkpe2E9YT09QT96YTphO3ZhciBmPWFbR10sZT1jLmNh
Y2hlO2lmKCFmJiZ0eXBlb2YgYj09PSJzdHJpbmciJiZkPT09dylyZXR1cm4gbnVsbDtmfHwoZj0r
K1lhKTtpZih0eXBlb2YgYj09PSJvYmplY3QiKXthW0ddPWY7ZVtmXT1jLmV4dGVuZCh0cnVlLHt9
LGIpfWVsc2UgaWYoIWVbZl0pe2FbR109ZjtlW2ZdPXt9fWE9ZVtmXTtpZihkIT09dylhW2JdPWQ7
cmV0dXJuIHR5cGVvZiBiPT09InN0cmluZyI/YVtiXTphfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihh
LGIpe2lmKCEoYS5ub2RlTmFtZSYmYy5ub0RhdGFbYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkp
e2E9YT09QT96YTphO3ZhciBkPWFbR10sZj1jLmNhY2hlLGU9ZltkXTtpZihiKXtpZihlKXtkZWxl
dGUgZVtiXTtjLmlzRW1wdHlPYmplY3QoZSkmJmMucmVtb3ZlRGF0YShhKX19ZWxzZXtpZihjLnN1
cHBvcnQuZGVsZXRlRXhwYW5kbylkZWxldGUgYVtjLmV4cGFuZG9dOwplbHNlIGEucmVtb3ZlQXR0
cmlidXRlJiZhLnJlbW92ZUF0dHJpYnV0ZShjLmV4cGFuZG8pO2RlbGV0ZSBmW2RdfX19fSk7Yy5m
bi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXtpZih0eXBlb2YgYT09PSJ1bmRlZmluZWQiJiZ0
aGlzLmxlbmd0aClyZXR1cm4gYy5kYXRhKHRoaXNbMF0pO2Vsc2UgaWYodHlwZW9mIGE9PT0ib2Jq
ZWN0IilyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5kYXRhKHRoaXMsYSl9KTt2YXIgZD1h
LnNwbGl0KCIuIik7ZFsxXT1kWzFdPyIuIitkWzFdOiIiO2lmKGI9PT13KXt2YXIgZj10aGlzLnRy
aWdnZXJIYW5kbGVyKCJnZXREYXRhIitkWzFdKyIhIixbZFswXV0pO2lmKGY9PT13JiZ0aGlzLmxl
bmd0aClmPWMuZGF0YSh0aGlzWzBdLGEpO3JldHVybiBmPT09dyYmZFsxXT90aGlzLmRhdGEoZFsw
XSk6Zn1lbHNlIHJldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK2RbMV0rIiEiLFtkWzBdLGJd
KS5lYWNoKGZ1bmN0aW9uKCl7Yy5kYXRhKHRoaXMsCmEsYil9KX0scmVtb3ZlRGF0YTpmdW5jdGlv
bihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5yZW1vdmVEYXRhKHRoaXMsYSl9KX19
KTtjLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiLGQpe2lmKGEpe2I9KGJ8fCJmeCIpKyJxdWV1
ZSI7dmFyIGY9Yy5kYXRhKGEsYik7aWYoIWQpcmV0dXJuIGZ8fFtdO2lmKCFmfHxjLmlzQXJyYXko
ZCkpZj1jLmRhdGEoYSxiLGMubWFrZUFycmF5KGQpKTtlbHNlIGYucHVzaChkKTtyZXR1cm4gZn19
LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGQ9Yy5xdWV1ZShhLGIpLGY9ZC5z
aGlmdCgpO2lmKGY9PT0iaW5wcm9ncmVzcyIpZj1kLnNoaWZ0KCk7aWYoZil7Yj09PSJmeCImJmQu
dW5zaGlmdCgiaW5wcm9ncmVzcyIpO2YuY2FsbChhLGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKGEsYil9
KX19fSk7Yy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ic3Ry
aW5nIil7Yj1hO2E9ImZ4In1pZihiPT09CncpcmV0dXJuIGMucXVldWUodGhpc1swXSxhKTtyZXR1
cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9Yy5xdWV1ZSh0aGlzLGEsYik7YT09PSJmeCIm
JmRbMF0hPT0iaW5wcm9ncmVzcyImJmMuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rp
b24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2MuZGVxdWV1ZSh0aGlzLGEpfSl9LGRl
bGF5OmZ1bmN0aW9uKGEsYil7YT1jLmZ4P2MuZnguc3BlZWRzW2FdfHxhOmE7Yj1ifHwiZngiO3Jl
dHVybiB0aGlzLnF1ZXVlKGIsZnVuY3Rpb24oKXt2YXIgZD10aGlzO3NldFRpbWVvdXQoZnVuY3Rp
b24oKXtjLmRlcXVldWUoZCxiKX0sYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4g
dGhpcy5xdWV1ZShhfHwiZngiLFtdKX19KTt2YXIgQWE9L1tcblx0XS9nLGNhPS9ccysvLFphPS9c
ci9nLCRhPS9ocmVmfHNyY3xzdHlsZS8sYWI9LyhidXR0b258aW5wdXQpL2ksYmI9LyhidXR0b258
aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkvaSwKY2I9L14oYXxhcmVhKSQvaSxCYT0vcmFk
aW98Y2hlY2tib3gvO2MuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhp
cyxhLGIsdHJ1ZSxjLmF0dHIpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24oKXtjLmF0dHIodGhpcyxhLCIiKTt0aGlzLm5vZGVUeXBlPT09MSYmdGhpcy5y
ZW1vdmVBdHRyaWJ1dGUoYSl9KX0sYWRkQ2xhc3M6ZnVuY3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9u
KGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24obil7dmFyIHI9Yyh0aGlzKTtyLmFkZENsYXNz
KGEuY2FsbCh0aGlzLG4sci5hdHRyKCJjbGFzcyIpKSl9KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJp
bmciKWZvcih2YXIgYj0oYXx8IiIpLnNwbGl0KGNhKSxkPTAsZj10aGlzLmxlbmd0aDtkPGY7ZCsr
KXt2YXIgZT10aGlzW2RdO2lmKGUubm9kZVR5cGU9PT0xKWlmKGUuY2xhc3NOYW1lKXtmb3IodmFy
IGo9IiAiK2UuY2xhc3NOYW1lKyIgIiwKaT1lLmNsYXNzTmFtZSxvPTAsaz1iLmxlbmd0aDtvPGs7
bysrKWlmKGouaW5kZXhPZigiICIrYltvXSsiICIpPDApaSs9IiAiK2Jbb107ZS5jbGFzc05hbWU9
Yy50cmltKGkpfWVsc2UgZS5jbGFzc05hbWU9YX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVu
Y3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oayl7
dmFyIG49Yyh0aGlzKTtuLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGssbi5hdHRyKCJjbGFzcyIp
KSl9KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJpbmcifHxhPT09dylmb3IodmFyIGI9KGF8fCIiKS5z
cGxpdChjYSksZD0wLGY9dGhpcy5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9dGhpc1tkXTtpZihlLm5v
ZGVUeXBlPT09MSYmZS5jbGFzc05hbWUpaWYoYSl7Zm9yKHZhciBqPSgiICIrZS5jbGFzc05hbWUr
IiAiKS5yZXBsYWNlKEFhLCIgIiksaT0wLG89Yi5sZW5ndGg7aTxvO2krKylqPWoucmVwbGFjZSgi
ICIrYltpXSsiICIsCiIgIik7ZS5jbGFzc05hbWU9Yy50cmltKGopfWVsc2UgZS5jbGFzc05hbWU9
IiJ9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGEsYil7dmFyIGQ9dHlwZW9mIGEs
Zj10eXBlb2YgYj09PSJib29sZWFuIjtpZihjLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFj
aChmdW5jdGlvbihlKXt2YXIgaj1jKHRoaXMpO2oudG9nZ2xlQ2xhc3MoYS5jYWxsKHRoaXMsZSxq
LmF0dHIoImNsYXNzIiksYiksYil9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZD09
PSJzdHJpbmciKWZvcih2YXIgZSxqPTAsaT1jKHRoaXMpLG89YixrPWEuc3BsaXQoY2EpO2U9a1tq
KytdOyl7bz1mP286IWkuaGFzQ2xhc3MoZSk7aVtvPyJhZGRDbGFzcyI6InJlbW92ZUNsYXNzIl0o
ZSl9ZWxzZSBpZihkPT09InVuZGVmaW5lZCJ8fGQ9PT0iYm9vbGVhbiIpe3RoaXMuY2xhc3NOYW1l
JiZjLmRhdGEodGhpcywiX19jbGFzc05hbWVfXyIsdGhpcy5jbGFzc05hbWUpO3RoaXMuY2xhc3NO
YW1lPQp0aGlzLmNsYXNzTmFtZXx8YT09PWZhbHNlPyIiOmMuZGF0YSh0aGlzLCJfX2NsYXNzTmFt
ZV9fIil8fCIifX0pfSxoYXNDbGFzczpmdW5jdGlvbihhKXthPSIgIithKyIgIjtmb3IodmFyIGI9
MCxkPXRoaXMubGVuZ3RoO2I8ZDtiKyspaWYoKCIgIit0aGlzW2JdLmNsYXNzTmFtZSsiICIpLnJl
cGxhY2UoQWEsIiAiKS5pbmRleE9mKGEpPi0xKXJldHVybiB0cnVlO3JldHVybiBmYWxzZX0sdmFs
OmZ1bmN0aW9uKGEpe2lmKGE9PT13KXt2YXIgYj10aGlzWzBdO2lmKGIpe2lmKGMubm9kZU5hbWUo
Yiwib3B0aW9uIikpcmV0dXJuKGIuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9iLnZh
bHVlOmIudGV4dDtpZihjLm5vZGVOYW1lKGIsInNlbGVjdCIpKXt2YXIgZD1iLnNlbGVjdGVkSW5k
ZXgsZj1bXSxlPWIub3B0aW9ucztiPWIudHlwZT09PSJzZWxlY3Qtb25lIjtpZihkPDApcmV0dXJu
IG51bGw7dmFyIGo9Yj9kOjA7Zm9yKGQ9Yj9kKzE6ZS5sZW5ndGg7ajxkO2orKyl7dmFyIGk9CmVb
al07aWYoaS5zZWxlY3RlZCl7YT1jKGkpLnZhbCgpO2lmKGIpcmV0dXJuIGE7Zi5wdXNoKGEpfX1y
ZXR1cm4gZn1pZihCYS50ZXN0KGIudHlwZSkmJiFjLnN1cHBvcnQuY2hlY2tPbilyZXR1cm4gYi5n
ZXRBdHRyaWJ1dGUoInZhbHVlIik9PT1udWxsPyJvbiI6Yi52YWx1ZTtyZXR1cm4oYi52YWx1ZXx8
IiIpLnJlcGxhY2UoWmEsIiIpfXJldHVybiB3fXZhciBvPWMuaXNGdW5jdGlvbihhKTtyZXR1cm4g
dGhpcy5lYWNoKGZ1bmN0aW9uKGspe3ZhciBuPWModGhpcykscj1hO2lmKHRoaXMubm9kZVR5cGU9
PT0xKXtpZihvKXI9YS5jYWxsKHRoaXMsayxuLnZhbCgpKTtpZih0eXBlb2Ygcj09PSJudW1iZXIi
KXIrPSIiO2lmKGMuaXNBcnJheShyKSYmQmEudGVzdCh0aGlzLnR5cGUpKXRoaXMuY2hlY2tlZD1j
LmluQXJyYXkobi52YWwoKSxyKT49MDtlbHNlIGlmKGMubm9kZU5hbWUodGhpcywic2VsZWN0Iikp
e3ZhciB1PWMubWFrZUFycmF5KHIpO2MoIm9wdGlvbiIsdGhpcykuZWFjaChmdW5jdGlvbigpe3Ro
aXMuc2VsZWN0ZWQ9CmMuaW5BcnJheShjKHRoaXMpLnZhbCgpLHUpPj0wfSk7aWYoIXUubGVuZ3Ro
KXRoaXMuc2VsZWN0ZWRJbmRleD0tMX1lbHNlIHRoaXMudmFsdWU9cn19KX19KTtjLmV4dGVuZCh7
YXR0ckZuOnt2YWw6dHJ1ZSxjc3M6dHJ1ZSxodG1sOnRydWUsdGV4dDp0cnVlLGRhdGE6dHJ1ZSx3
aWR0aDp0cnVlLGhlaWdodDp0cnVlLG9mZnNldDp0cnVlfSxhdHRyOmZ1bmN0aW9uKGEsYixkLGYp
e2lmKCFhfHxhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgpcmV0dXJuIHc7aWYoZiYmYiBp
biBjLmF0dHJGbilyZXR1cm4gYyhhKVtiXShkKTtmPWEubm9kZVR5cGUhPT0xfHwhYy5pc1hNTERv
YyhhKTt2YXIgZT1kIT09dztiPWYmJmMucHJvcHNbYl18fGI7aWYoYS5ub2RlVHlwZT09PTEpe3Zh
ciBqPSRhLnRlc3QoYik7aWYoYiBpbiBhJiZmJiYhail7aWYoZSl7Yj09PSJ0eXBlIiYmYWIudGVz
dChhLm5vZGVOYW1lKSYmYS5wYXJlbnROb2RlJiZjLmVycm9yKCJ0eXBlIHByb3BlcnR5IGNhbid0
IGJlIGNoYW5nZWQiKTsKYVtiXT1kfWlmKGMubm9kZU5hbWUoYSwiZm9ybSIpJiZhLmdldEF0dHJp
YnV0ZU5vZGUoYikpcmV0dXJuIGEuZ2V0QXR0cmlidXRlTm9kZShiKS5ub2RlVmFsdWU7aWYoYj09
PSJ0YWJJbmRleCIpcmV0dXJuKGI9YS5nZXRBdHRyaWJ1dGVOb2RlKCJ0YWJJbmRleCIpKSYmYi5z
cGVjaWZpZWQ/Yi52YWx1ZTpiYi50ZXN0KGEubm9kZU5hbWUpfHxjYi50ZXN0KGEubm9kZU5hbWUp
JiZhLmhyZWY/MDp3O3JldHVybiBhW2JdfWlmKCFjLnN1cHBvcnQuc3R5bGUmJmYmJmI9PT0ic3R5
bGUiKXtpZihlKWEuc3R5bGUuY3NzVGV4dD0iIitkO3JldHVybiBhLnN0eWxlLmNzc1RleHR9ZSYm
YS5zZXRBdHRyaWJ1dGUoYiwiIitkKTthPSFjLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJmYmJmo/
YS5nZXRBdHRyaWJ1dGUoYiwyKTphLmdldEF0dHJpYnV0ZShiKTtyZXR1cm4gYT09PW51bGw/dzph
fXJldHVybiBjLnN0eWxlKGEsYixkKX19KTt2YXIgTz0vXC4oLiopJC8sZGI9ZnVuY3Rpb24oYSl7
cmV0dXJuIGEucmVwbGFjZSgvW15cd1xzXC5cfGBdL2csCmZ1bmN0aW9uKGIpe3JldHVybiJcXCIr
Yn0pfTtjLmV2ZW50PXthZGQ6ZnVuY3Rpb24oYSxiLGQsZil7aWYoIShhLm5vZGVUeXBlPT09M3x8
YS5ub2RlVHlwZT09PTgpKXtpZihhLnNldEludGVydmFsJiZhIT09QSYmIWEuZnJhbWVFbGVtZW50
KWE9QTt2YXIgZSxqO2lmKGQuaGFuZGxlcil7ZT1kO2Q9ZS5oYW5kbGVyfWlmKCFkLmd1aWQpZC5n
dWlkPWMuZ3VpZCsrO2lmKGo9Yy5kYXRhKGEpKXt2YXIgaT1qLmV2ZW50cz1qLmV2ZW50c3x8e30s
bz1qLmhhbmRsZTtpZighbylqLmhhbmRsZT1vPWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBjIT09
InVuZGVmaW5lZCImJiFjLmV2ZW50LnRyaWdnZXJlZD9jLmV2ZW50LmhhbmRsZS5hcHBseShvLmVs
ZW0sYXJndW1lbnRzKTp3fTtvLmVsZW09YTtiPWIuc3BsaXQoIiAiKTtmb3IodmFyIGssbj0wLHI7
az1iW24rK107KXtqPWU/Yy5leHRlbmQoe30sZSk6e2hhbmRsZXI6ZCxkYXRhOmZ9O2lmKGsuaW5k
ZXhPZigiLiIpPi0xKXtyPWsuc3BsaXQoIi4iKTsKaz1yLnNoaWZ0KCk7ai5uYW1lc3BhY2U9ci5z
bGljZSgwKS5zb3J0KCkuam9pbigiLiIpfWVsc2V7cj1bXTtqLm5hbWVzcGFjZT0iIn1qLnR5cGU9
aztqLmd1aWQ9ZC5ndWlkO3ZhciB1PWlba10sej1jLmV2ZW50LnNwZWNpYWxba118fHt9O2lmKCF1
KXt1PWlba109W107aWYoIXouc2V0dXB8fHouc2V0dXAuY2FsbChhLGYscixvKT09PWZhbHNlKWlm
KGEuYWRkRXZlbnRMaXN0ZW5lcilhLmFkZEV2ZW50TGlzdGVuZXIoayxvLGZhbHNlKTtlbHNlIGEu
YXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitrLG8pfWlmKHouYWRkKXt6LmFkZC5jYWxs
KGEsaik7aWYoIWouaGFuZGxlci5ndWlkKWouaGFuZGxlci5ndWlkPWQuZ3VpZH11LnB1c2goaik7
Yy5ldmVudC5nbG9iYWxba109dHJ1ZX1hPW51bGx9fX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlv
bihhLGIsZCxmKXtpZighKGEubm9kZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OCkpe3ZhciBlLGo9
MCxpLG8sayxuLHIsdSx6PWMuZGF0YShhKSwKQz16JiZ6LmV2ZW50cztpZih6JiZDKXtpZihiJiZi
LnR5cGUpe2Q9Yi5oYW5kbGVyO2I9Yi50eXBlfWlmKCFifHx0eXBlb2YgYj09PSJzdHJpbmciJiZi
LmNoYXJBdCgwKT09PSIuIil7Yj1ifHwiIjtmb3IoZSBpbiBDKWMuZXZlbnQucmVtb3ZlKGEsZSti
KX1lbHNle2ZvcihiPWIuc3BsaXQoIiAiKTtlPWJbaisrXTspe249ZTtpPWUuaW5kZXhPZigiLiIp
PDA7bz1bXTtpZighaSl7bz1lLnNwbGl0KCIuIik7ZT1vLnNoaWZ0KCk7az1uZXcgUmVnRXhwKCIo
XnxcXC4pIitjLm1hcChvLnNsaWNlKDApLnNvcnQoKSxkYikuam9pbigiXFwuKD86LipcXC4pPyIp
KyIoXFwufCQpIil9aWYocj1DW2VdKWlmKGQpe249Yy5ldmVudC5zcGVjaWFsW2VdfHx7fTtmb3Io
Qj1mfHwwO0I8ci5sZW5ndGg7QisrKXt1PXJbQl07aWYoZC5ndWlkPT09dS5ndWlkKXtpZihpfHxr
LnRlc3QodS5uYW1lc3BhY2UpKXtmPT1udWxsJiZyLnNwbGljZShCLS0sMSk7bi5yZW1vdmUmJm4u
cmVtb3ZlLmNhbGwoYSx1KX1pZihmIT0KbnVsbClicmVha319aWYoci5sZW5ndGg9PT0wfHxmIT1u
dWxsJiZyLmxlbmd0aD09PTEpe2lmKCFuLnRlYXJkb3dufHxuLnRlYXJkb3duLmNhbGwoYSxvKT09
PWZhbHNlKUNhKGEsZSx6LmhhbmRsZSk7ZGVsZXRlIENbZV19fWVsc2UgZm9yKHZhciBCPTA7Qjxy
Lmxlbmd0aDtCKyspe3U9cltCXTtpZihpfHxrLnRlc3QodS5uYW1lc3BhY2UpKXtjLmV2ZW50LnJl
bW92ZShhLG4sdS5oYW5kbGVyLEIpO3Iuc3BsaWNlKEItLSwxKX19fWlmKGMuaXNFbXB0eU9iamVj
dChDKSl7aWYoYj16LmhhbmRsZSliLmVsZW09bnVsbDtkZWxldGUgei5ldmVudHM7ZGVsZXRlIHou
aGFuZGxlO2MuaXNFbXB0eU9iamVjdCh6KSYmYy5yZW1vdmVEYXRhKGEpfX19fX0sdHJpZ2dlcjpm
dW5jdGlvbihhLGIsZCxmKXt2YXIgZT1hLnR5cGV8fGE7aWYoIWYpe2E9dHlwZW9mIGE9PT0ib2Jq
ZWN0Ij9hW0ddP2E6Yy5leHRlbmQoYy5FdmVudChlKSxhKTpjLkV2ZW50KGUpO2lmKGUuaW5kZXhP
ZigiISIpPj0wKXthLnR5cGU9CmU9ZS5zbGljZSgwLC0xKTthLmV4Y2x1c2l2ZT10cnVlfWlmKCFk
KXthLnN0b3BQcm9wYWdhdGlvbigpO2MuZXZlbnQuZ2xvYmFsW2VdJiZjLmVhY2goYy5jYWNoZSxm
dW5jdGlvbigpe3RoaXMuZXZlbnRzJiZ0aGlzLmV2ZW50c1tlXSYmYy5ldmVudC50cmlnZ2VyKGEs
Yix0aGlzLmhhbmRsZS5lbGVtKX0pfWlmKCFkfHxkLm5vZGVUeXBlPT09M3x8ZC5ub2RlVHlwZT09
PTgpcmV0dXJuIHc7YS5yZXN1bHQ9dzthLnRhcmdldD1kO2I9Yy5tYWtlQXJyYXkoYik7Yi51bnNo
aWZ0KGEpfWEuY3VycmVudFRhcmdldD1kOyhmPWMuZGF0YShkLCJoYW5kbGUiKSkmJmYuYXBwbHko
ZCxiKTtmPWQucGFyZW50Tm9kZXx8ZC5vd25lckRvY3VtZW50O3RyeXtpZighKGQmJmQubm9kZU5h
bWUmJmMubm9EYXRhW2Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKWlmKGRbIm9uIitlXSYmZFsi
b24iK2VdLmFwcGx5KGQsYik9PT1mYWxzZSlhLnJlc3VsdD1mYWxzZX1jYXRjaChqKXt9aWYoIWEu
aXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmCmYpYy5ldmVudC50cmlnZ2VyKGEsYixmLHRydWUpO2Vs
c2UgaWYoIWEuaXNEZWZhdWx0UHJldmVudGVkKCkpe2Y9YS50YXJnZXQ7dmFyIGksbz1jLm5vZGVO
YW1lKGYsImEiKSYmZT09PSJjbGljayIsaz1jLmV2ZW50LnNwZWNpYWxbZV18fHt9O2lmKCghay5f
ZGVmYXVsdHx8ay5fZGVmYXVsdC5jYWxsKGQsYSk9PT1mYWxzZSkmJiFvJiYhKGYmJmYubm9kZU5h
bWUmJmMubm9EYXRhW2Yubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pKXt0cnl7aWYoZltlXSl7aWYo
aT1mWyJvbiIrZV0pZlsib24iK2VdPW51bGw7Yy5ldmVudC50cmlnZ2VyZWQ9dHJ1ZTtmW2VdKCl9
fWNhdGNoKG4pe31pZihpKWZbIm9uIitlXT1pO2MuZXZlbnQudHJpZ2dlcmVkPWZhbHNlfX19LGhh
bmRsZTpmdW5jdGlvbihhKXt2YXIgYixkLGYsZTthPWFyZ3VtZW50c1swXT1jLmV2ZW50LmZpeChh
fHxBLmV2ZW50KTthLmN1cnJlbnRUYXJnZXQ9dGhpcztiPWEudHlwZS5pbmRleE9mKCIuIik8MCYm
IWEuZXhjbHVzaXZlOwppZighYil7ZD1hLnR5cGUuc3BsaXQoIi4iKTthLnR5cGU9ZC5zaGlmdCgp
O2Y9bmV3IFJlZ0V4cCgiKF58XFwuKSIrZC5zbGljZSgwKS5zb3J0KCkuam9pbigiXFwuKD86Lipc
XC4pPyIpKyIoXFwufCQpIil9ZT1jLmRhdGEodGhpcywiZXZlbnRzIik7ZD1lW2EudHlwZV07aWYo
ZSYmZCl7ZD1kLnNsaWNlKDApO2U9MDtmb3IodmFyIGo9ZC5sZW5ndGg7ZTxqO2UrKyl7dmFyIGk9
ZFtlXTtpZihifHxmLnRlc3QoaS5uYW1lc3BhY2UpKXthLmhhbmRsZXI9aS5oYW5kbGVyO2EuZGF0
YT1pLmRhdGE7YS5oYW5kbGVPYmo9aTtpPWkuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7
aWYoaSE9PXcpe2EucmVzdWx0PWk7aWYoaT09PWZhbHNlKXthLnByZXZlbnREZWZhdWx0KCk7YS5z
dG9wUHJvcGFnYXRpb24oKX19aWYoYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWJy
ZWFrfX19cmV0dXJuIGEucmVzdWx0fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUg
YnViYmxlcyBidXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtl
eSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQgaGFuZGxl
ciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1ZSBvZmZzZXRYIG9mZnNldFkg
b3JpZ2luYWxUYXJnZXQgcGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRU
YXJnZXQgc2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVu
dCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCmZpeDpmdW5jdGlvbihhKXtpZihh
W0ddKXJldHVybiBhO3ZhciBiPWE7YT1jLkV2ZW50KGIpO2Zvcih2YXIgZD10aGlzLnByb3BzLmxl
bmd0aCxmO2Q7KXtmPXRoaXMucHJvcHNbLS1kXTthW2ZdPWJbZl19aWYoIWEudGFyZ2V0KWEudGFy
Z2V0PWEuc3JjRWxlbWVudHx8cztpZihhLnRhcmdldC5ub2RlVHlwZT09PTMpYS50YXJnZXQ9YS50
YXJnZXQucGFyZW50Tm9kZTtpZighYS5yZWxhdGVkVGFyZ2V0JiZhLmZyb21FbGVtZW50KWEucmVs
YXRlZFRhcmdldD1hLmZyb21FbGVtZW50PT09YS50YXJnZXQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxl
bWVudDtpZihhLnBhZ2VYPT1udWxsJiZhLmNsaWVudFghPW51bGwpe2I9cy5kb2N1bWVudEVsZW1l
bnQ7ZD1zLmJvZHk7YS5wYWdlWD1hLmNsaWVudFgrKGImJmIuc2Nyb2xsTGVmdHx8ZCYmZC5zY3Jv
bGxMZWZ0fHwwKS0oYiYmYi5jbGllbnRMZWZ0fHxkJiZkLmNsaWVudExlZnR8fDApO2EucGFnZVk9
YS5jbGllbnRZKyhiJiZiLnNjcm9sbFRvcHx8CmQmJmQuc2Nyb2xsVG9wfHwwKS0oYiYmYi5jbGll
bnRUb3B8fGQmJmQuY2xpZW50VG9wfHwwKX1pZighYS53aGljaCYmKGEuY2hhckNvZGV8fGEuY2hh
ckNvZGU9PT0wP2EuY2hhckNvZGU6YS5rZXlDb2RlKSlhLndoaWNoPWEuY2hhckNvZGV8fGEua2V5
Q29kZTtpZighYS5tZXRhS2V5JiZhLmN0cmxLZXkpYS5tZXRhS2V5PWEuY3RybEtleTtpZighYS53
aGljaCYmYS5idXR0b24hPT13KWEud2hpY2g9YS5idXR0b24mMT8xOmEuYnV0dG9uJjI/MzphLmJ1
dHRvbiY0PzI6MDtyZXR1cm4gYX0sZ3VpZDoxRTgscHJveHk6Yy5wcm94eSxzcGVjaWFsOntyZWFk
eTp7c2V0dXA6Yy5iaW5kUmVhZHksdGVhcmRvd246Yy5ub29wfSxsaXZlOnthZGQ6ZnVuY3Rpb24o
YSl7Yy5ldmVudC5hZGQodGhpcyxhLm9yaWdUeXBlLGMuZXh0ZW5kKHt9LGEse2hhbmRsZXI6b2F9
KSl9LHJlbW92ZTpmdW5jdGlvbihhKXt2YXIgYj10cnVlLGQ9YS5vcmlnVHlwZS5yZXBsYWNlKE8s
IiIpO2MuZWFjaChjLmRhdGEodGhpcywKImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKCl7aWYo
ZD09PXRoaXMub3JpZ1R5cGUucmVwbGFjZShPLCIiKSlyZXR1cm4gYj1mYWxzZX0pO2ImJmMuZXZl
bnQucmVtb3ZlKHRoaXMsYS5vcmlnVHlwZSxvYSl9fSxiZWZvcmV1bmxvYWQ6e3NldHVwOmZ1bmN0
aW9uKGEsYixkKXtpZih0aGlzLnNldEludGVydmFsKXRoaXMub25iZWZvcmV1bmxvYWQ9ZDtyZXR1
cm4gZmFsc2V9LHRlYXJkb3duOmZ1bmN0aW9uKGEsYil7aWYodGhpcy5vbmJlZm9yZXVubG9hZD09
PWIpdGhpcy5vbmJlZm9yZXVubG9hZD1udWxsfX19fTt2YXIgQ2E9cy5yZW1vdmVFdmVudExpc3Rl
bmVyP2Z1bmN0aW9uKGEsYixkKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixkLGZhbHNlKX06ZnVu
Y3Rpb24oYSxiLGQpe2EuZGV0YWNoRXZlbnQoIm9uIitiLGQpfTtjLkV2ZW50PWZ1bmN0aW9uKGEp
e2lmKCF0aGlzLnByZXZlbnREZWZhdWx0KXJldHVybiBuZXcgYy5FdmVudChhKTtpZihhJiZhLnR5
cGUpe3RoaXMub3JpZ2luYWxFdmVudD0KYTt0aGlzLnR5cGU9YS50eXBlfWVsc2UgdGhpcy50eXBl
PWE7dGhpcy50aW1lU3RhbXA9SigpO3RoaXNbR109dHJ1ZX07Yy5FdmVudC5wcm90b3R5cGU9e3By
ZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Wjt2YXIgYT10
aGlzLm9yaWdpbmFsRXZlbnQ7aWYoYSl7YS5wcmV2ZW50RGVmYXVsdCYmYS5wcmV2ZW50RGVmYXVs
dCgpO2EucmV0dXJuVmFsdWU9ZmFsc2V9fSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlz
LmlzUHJvcGFnYXRpb25TdG9wcGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKGEpe2Eu
c3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpO2EuY2FuY2VsQnViYmxlPXRydWV9
fSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJv
cGFnYXRpb25TdG9wcGVkPVo7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVu
dGVkOlksaXNQcm9wYWdhdGlvblN0b3BwZWQ6WSwKaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3Bw
ZWQ6WX07dmFyIERhPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVsYXRlZFRhcmdldDt0cnl7Zm9yKDti
JiZiIT09dGhpczspYj1iLnBhcmVudE5vZGU7aWYoYiE9PXRoaXMpe2EudHlwZT1hLmRhdGE7Yy5l
dmVudC5oYW5kbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1jYXRjaChkKXt9fSxFYT1mdW5jdGlv
bihhKXthLnR5cGU9YS5kYXRhO2MuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07
Yy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0sZnVu
Y3Rpb24oYSxiKXtjLmV2ZW50LnNwZWNpYWxbYV09e3NldHVwOmZ1bmN0aW9uKGQpe2MuZXZlbnQu
YWRkKHRoaXMsYixkJiZkLnNlbGVjdG9yP0VhOkRhLGEpfSx0ZWFyZG93bjpmdW5jdGlvbihkKXtj
LmV2ZW50LnJlbW92ZSh0aGlzLGIsZCYmZC5zZWxlY3Rvcj9FYTpEYSl9fX0pO2lmKCFjLnN1cHBv
cnQuc3VibWl0QnViYmxlcyljLmV2ZW50LnNwZWNpYWwuc3VibWl0PQp7c2V0dXA6ZnVuY3Rpb24o
KXtpZih0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT0iZm9ybSIpe2MuZXZlbnQuYWRkKHRo
aXMsImNsaWNrLnNwZWNpYWxTdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9Yi50
eXBlO2lmKChkPT09InN1Ym1pdCJ8fGQ9PT0iaW1hZ2UiKSYmYyhiKS5jbG9zZXN0KCJmb3JtIiku
bGVuZ3RoKXJldHVybiBuYSgic3VibWl0Iix0aGlzLGFyZ3VtZW50cyl9KTtjLmV2ZW50LmFkZCh0
aGlzLCJrZXlwcmVzcy5zcGVjaWFsU3VibWl0IixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxk
PWIudHlwZTtpZigoZD09PSJ0ZXh0Inx8ZD09PSJwYXNzd29yZCIpJiZjKGIpLmNsb3Nlc3QoImZv
cm0iKS5sZW5ndGgmJmEua2V5Q29kZT09PTEzKXJldHVybiBuYSgic3VibWl0Iix0aGlzLGFyZ3Vt
ZW50cyl9KX1lbHNlIHJldHVybiBmYWxzZX0sdGVhcmRvd246ZnVuY3Rpb24oKXtjLmV2ZW50LnJl
bW92ZSh0aGlzLCIuc3BlY2lhbFN1Ym1pdCIpfX07CmlmKCFjLnN1cHBvcnQuY2hhbmdlQnViYmxl
cyl7dmFyIGRhPS90ZXh0YXJlYXxpbnB1dHxzZWxlY3QvaSxlYSxGYT1mdW5jdGlvbihhKXt2YXIg
Yj1hLnR5cGUsZD1hLnZhbHVlO2lmKGI9PT0icmFkaW8ifHxiPT09ImNoZWNrYm94IilkPWEuY2hl
Y2tlZDtlbHNlIGlmKGI9PT0ic2VsZWN0LW11bHRpcGxlIilkPWEuc2VsZWN0ZWRJbmRleD4tMT9j
Lm1hcChhLm9wdGlvbnMsZnVuY3Rpb24oZil7cmV0dXJuIGYuc2VsZWN0ZWR9KS5qb2luKCItIik6
IiI7ZWxzZSBpZihhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0ic2VsZWN0IilkPWEuc2VsZWN0
ZWRJbmRleDtyZXR1cm4gZH0sZmE9ZnVuY3Rpb24oYSxiKXt2YXIgZD1hLnRhcmdldCxmLGU7aWYo
ISghZGEudGVzdChkLm5vZGVOYW1lKXx8ZC5yZWFkT25seSkpe2Y9Yy5kYXRhKGQsIl9jaGFuZ2Vf
ZGF0YSIpO2U9RmEoZCk7aWYoYS50eXBlIT09ImZvY3Vzb3V0Inx8ZC50eXBlIT09InJhZGlvIilj
LmRhdGEoZCwiX2NoYW5nZV9kYXRhIiwKZSk7aWYoIShmPT09d3x8ZT09PWYpKWlmKGYhPW51bGx8
fGUpe2EudHlwZT0iY2hhbmdlIjtyZXR1cm4gYy5ldmVudC50cmlnZ2VyKGEsYixkKX19fTtjLmV2
ZW50LnNwZWNpYWwuY2hhbmdlPXtmaWx0ZXJzOntmb2N1c291dDpmYSxjbGljazpmdW5jdGlvbihh
KXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtpZihkPT09InJhZGlvInx8ZD09PSJjaGVja2JveCJ8
fGIubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJzZWxlY3QiKXJldHVybiBmYS5jYWxsKHRoaXMs
YSl9LGtleWRvd246ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsZD1iLnR5cGU7aWYoYS5rZXlD
b2RlPT09MTMmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSE9PSJ0ZXh0YXJlYSJ8fGEua2V5Q29k
ZT09PTMyJiYoZD09PSJjaGVja2JveCJ8fGQ9PT0icmFkaW8iKXx8ZD09PSJzZWxlY3QtbXVsdGlw
bGUiKXJldHVybiBmYS5jYWxsKHRoaXMsYSl9LGJlZm9yZWFjdGl2YXRlOmZ1bmN0aW9uKGEpe2E9
YS50YXJnZXQ7Yy5kYXRhKGEsCiJfY2hhbmdlX2RhdGEiLEZhKGEpKX19LHNldHVwOmZ1bmN0aW9u
KCl7aWYodGhpcy50eXBlPT09ImZpbGUiKXJldHVybiBmYWxzZTtmb3IodmFyIGEgaW4gZWEpYy5l
dmVudC5hZGQodGhpcyxhKyIuc3BlY2lhbENoYW5nZSIsZWFbYV0pO3JldHVybiBkYS50ZXN0KHRo
aXMubm9kZU5hbWUpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2MuZXZlbnQucmVtb3ZlKHRoaXMsIi5z
cGVjaWFsQ2hhbmdlIik7cmV0dXJuIGRhLnRlc3QodGhpcy5ub2RlTmFtZSl9fTtlYT1jLmV2ZW50
LnNwZWNpYWwuY2hhbmdlLmZpbHRlcnN9cy5hZGRFdmVudExpc3RlbmVyJiZjLmVhY2goe2ZvY3Vz
OiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZChmKXtm
PWMuZXZlbnQuZml4KGYpO2YudHlwZT1iO3JldHVybiBjLmV2ZW50LmhhbmRsZS5jYWxsKHRoaXMs
Zil9Yy5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3RoaXMuYWRkRXZlbnRMaXN0
ZW5lcihhLApkLHRydWUpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3RoaXMucmVtb3ZlRXZlbnRMaXN0
ZW5lcihhLGQsdHJ1ZSl9fX0pO2MuZWFjaChbImJpbmQiLCJvbmUiXSxmdW5jdGlvbihhLGIpe2Mu
Zm5bYl09ZnVuY3Rpb24oZCxmLGUpe2lmKHR5cGVvZiBkPT09Im9iamVjdCIpe2Zvcih2YXIgaiBp
biBkKXRoaXNbYl0oaixmLGRbal0sZSk7cmV0dXJuIHRoaXN9aWYoYy5pc0Z1bmN0aW9uKGYpKXtl
PWY7Zj13fXZhciBpPWI9PT0ib25lIj9jLnByb3h5KGUsZnVuY3Rpb24oayl7Yyh0aGlzKS51bmJp
bmQoayxpKTtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTplO2lmKGQ9PT0idW5sb2Fk
IiYmYiE9PSJvbmUiKXRoaXMub25lKGQsZixlKTtlbHNle2o9MDtmb3IodmFyIG89dGhpcy5sZW5n
dGg7ajxvO2orKyljLmV2ZW50LmFkZCh0aGlzW2pdLGQsaSxmKX1yZXR1cm4gdGhpc319KTtjLmZu
LmV4dGVuZCh7dW5iaW5kOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGE9PT0ib2JqZWN0IiYmCiFh
LnByZXZlbnREZWZhdWx0KWZvcih2YXIgZCBpbiBhKXRoaXMudW5iaW5kKGQsYVtkXSk7ZWxzZXtk
PTA7Zm9yKHZhciBmPXRoaXMubGVuZ3RoO2Q8ZjtkKyspYy5ldmVudC5yZW1vdmUodGhpc1tkXSxh
LGIpfXJldHVybiB0aGlzfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4gdGhpcy5s
aXZlKGIsZCxmLGEpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYXJndW1lbnRz
Lmxlbmd0aD09PTA/dGhpcy51bmJpbmQoImxpdmUiKTp0aGlzLmRpZShiLG51bGwsZCxhKX0sdHJp
Z2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmV2ZW50LnRy
aWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7aWYodGhpc1sw
XSl7YT1jLkV2ZW50KGEpO2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2Mu
ZXZlbnQudHJpZ2dlcihhLGIsdGhpc1swXSk7cmV0dXJuIGEucmVzdWx0fX0sCnRvZ2dsZTpmdW5j
dGlvbihhKXtmb3IodmFyIGI9YXJndW1lbnRzLGQ9MTtkPGIubGVuZ3RoOyljLnByb3h5KGEsYltk
KytdKTtyZXR1cm4gdGhpcy5jbGljayhjLnByb3h5KGEsZnVuY3Rpb24oZil7dmFyIGU9KGMuZGF0
YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQpfHwwKSVkO2MuZGF0YSh0aGlzLCJsYXN0VG9nZ2xl
IithLmd1aWQsZSsxKTtmLnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIGJbZV0uYXBwbHkodGhpcyxh
cmd1bWVudHMpfHxmYWxzZX0pKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3Vz
ZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIEdhPXtmb2N1czoiZm9jdXNpbiIsYmx1
cjoiZm9jdXNvdXQiLG1vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQi
fTtjLmVhY2goWyJsaXZlIiwiZGllIl0sZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQs
ZixlLGope3ZhciBpLG89MCxrLG4scj1qfHx0aGlzLnNlbGVjdG9yLAp1PWo/dGhpczpjKHRoaXMu
Y29udGV4dCk7aWYoYy5pc0Z1bmN0aW9uKGYpKXtlPWY7Zj13fWZvcihkPShkfHwiIikuc3BsaXQo
IiAiKTsoaT1kW28rK10pIT1udWxsOyl7aj1PLmV4ZWMoaSk7az0iIjtpZihqKXtrPWpbMF07aT1p
LnJlcGxhY2UoTywiIil9aWYoaT09PSJob3ZlciIpZC5wdXNoKCJtb3VzZWVudGVyIitrLCJtb3Vz
ZWxlYXZlIitrKTtlbHNle249aTtpZihpPT09ImZvY3VzInx8aT09PSJibHVyIil7ZC5wdXNoKEdh
W2ldK2spO2krPWt9ZWxzZSBpPShHYVtpXXx8aSkraztiPT09ImxpdmUiP3UuZWFjaChmdW5jdGlv
bigpe2MuZXZlbnQuYWRkKHRoaXMscGEoaSxyKSx7ZGF0YTpmLHNlbGVjdG9yOnIsaGFuZGxlcjpl
LG9yaWdUeXBlOmksb3JpZ0hhbmRsZXI6ZSxwcmVUeXBlOm59KX0pOnUudW5iaW5kKHBhKGksciks
ZSl9fXJldHVybiB0aGlzfX0pO2MuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IGxv
YWQgcmVzaXplIHNjcm9sbCB1bmxvYWQgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAg
bW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdl
IHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBlcnJvciIuc3BsaXQoIiAiKSwK
ZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQpe3JldHVybiBkP3RoaXMuYmluZChiLGQp
OnRoaXMudHJpZ2dlcihiKX07aWYoYy5hdHRyRm4pYy5hdHRyRm5bYl09dHJ1ZX0pO0EuYXR0YWNo
RXZlbnQmJiFBLmFkZEV2ZW50TGlzdGVuZXImJkEuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5j
dGlvbigpe2Zvcih2YXIgYSBpbiBjLmNhY2hlKWlmKGMuY2FjaGVbYV0uaGFuZGxlKXRyeXtjLmV2
ZW50LnJlbW92ZShjLmNhY2hlW2FdLmhhbmRsZS5lbGVtKX1jYXRjaChiKXt9fSk7KGZ1bmN0aW9u
KCl7ZnVuY3Rpb24gYShnKXtmb3IodmFyIGg9IiIsbCxtPTA7Z1ttXTttKyspe2w9Z1ttXTtpZihs
Lm5vZGVUeXBlPT09M3x8bC5ub2RlVHlwZT09PTQpaCs9bC5ub2RlVmFsdWU7ZWxzZSBpZihsLm5v
ZGVUeXBlIT09OCloKz1hKGwuY2hpbGROb2Rlcyl9cmV0dXJuIGh9ZnVuY3Rpb24gYihnLGgsbCxt
LHEscCl7cT0wO2Zvcih2YXIgdj1tLmxlbmd0aDtxPHY7cSsrKXt2YXIgdD1tW3FdOwppZih0KXt0
PXRbZ107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09bCl7eT1tW3Quc2l6c2V0
XTticmVha31pZih0Lm5vZGVUeXBlPT09MSYmIXApe3Quc2l6Y2FjaGU9bDt0LnNpenNldD1xfWlm
KHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWgpe3k9dDticmVha310PXRbZ119bVtxXT15fX19
ZnVuY3Rpb24gZChnLGgsbCxtLHEscCl7cT0wO2Zvcih2YXIgdj1tLmxlbmd0aDtxPHY7cSsrKXt2
YXIgdD1tW3FdO2lmKHQpe3Q9dFtnXTtmb3IodmFyIHk9ZmFsc2U7dDspe2lmKHQuc2l6Y2FjaGU9
PT1sKXt5PW1bdC5zaXpzZXRdO2JyZWFrfWlmKHQubm9kZVR5cGU9PT0xKXtpZighcCl7dC5zaXpj
YWNoZT1sO3Quc2l6c2V0PXF9aWYodHlwZW9mIGghPT0ic3RyaW5nIil7aWYodD09PWgpe3k9dHJ1
ZTticmVha319ZWxzZSBpZihrLmZpbHRlcihoLFt0XSkubGVuZ3RoPjApe3k9dDticmVha319dD10
W2ddfW1bcV09eX19fXZhciBmPS8oKD86XCgoPzpcKFteKCldK1wpfFteKCldKykrXCl8XFsoPzpc
W1teW1xdXSpcXXxbJyJdW14nIl0qWyciXXxbXltcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxd
KykrfFs+K35dKShccyosXHMqKT8oKD86LnxccnxcbikqKS9nLAplPTAsaj1PYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLGk9ZmFsc2Usbz10cnVlO1swLDBdLnNvcnQoZnVuY3Rpb24oKXtvPWZhbHNl
O3JldHVybiAwfSk7dmFyIGs9ZnVuY3Rpb24oZyxoLGwsbSl7bD1sfHxbXTt2YXIgcT1oPWh8fHM7
aWYoaC5ub2RlVHlwZSE9PTEmJmgubm9kZVR5cGUhPT05KXJldHVybltdO2lmKCFnfHx0eXBlb2Yg
ZyE9PSJzdHJpbmciKXJldHVybiBsO2Zvcih2YXIgcD1bXSx2LHQseSxTLEg9dHJ1ZSxNPXgoaCks
ST1nOyhmLmV4ZWMoIiIpLHY9Zi5leGVjKEkpKSE9PW51bGw7KXtJPXZbM107cC5wdXNoKHZbMV0p
O2lmKHZbMl0pe1M9dlszXTticmVha319aWYocC5sZW5ndGg+MSYmci5leGVjKGcpKWlmKHAubGVu
Z3RoPT09MiYmbi5yZWxhdGl2ZVtwWzBdXSl0PWdhKHBbMF0rcFsxXSxoKTtlbHNlIGZvcih0PW4u
cmVsYXRpdmVbcFswXV0/W2hdOmsocC5zaGlmdCgpLGgpO3AubGVuZ3RoOyl7Zz1wLnNoaWZ0KCk7
aWYobi5yZWxhdGl2ZVtnXSlnKz1wLnNoaWZ0KCk7CnQ9Z2EoZyx0KX1lbHNle2lmKCFtJiZwLmxl
bmd0aD4xJiZoLm5vZGVUeXBlPT09OSYmIU0mJm4ubWF0Y2guSUQudGVzdChwWzBdKSYmIW4ubWF0
Y2guSUQudGVzdChwW3AubGVuZ3RoLTFdKSl7dj1rLmZpbmQocC5zaGlmdCgpLGgsTSk7aD12LmV4
cHI/ay5maWx0ZXIodi5leHByLHYuc2V0KVswXTp2LnNldFswXX1pZihoKXt2PW0/e2V4cHI6cC5w
b3AoKSxzZXQ6eihtKX06ay5maW5kKHAucG9wKCkscC5sZW5ndGg9PT0xJiYocFswXT09PSJ+Inx8
cFswXT09PSIrIikmJmgucGFyZW50Tm9kZT9oLnBhcmVudE5vZGU6aCxNKTt0PXYuZXhwcj9rLmZp
bHRlcih2LmV4cHIsdi5zZXQpOnYuc2V0O2lmKHAubGVuZ3RoPjApeT16KHQpO2Vsc2UgSD1mYWxz
ZTtmb3IoO3AubGVuZ3RoOyl7dmFyIEQ9cC5wb3AoKTt2PUQ7aWYobi5yZWxhdGl2ZVtEXSl2PXAu
cG9wKCk7ZWxzZSBEPSIiO2lmKHY9PW51bGwpdj1oO24ucmVsYXRpdmVbRF0oeSx2LE0pfX1lbHNl
IHk9W119eXx8KHk9dCk7eXx8ay5lcnJvcihEfHwKZyk7aWYoai5jYWxsKHkpPT09IltvYmplY3Qg
QXJyYXldIilpZihIKWlmKGgmJmgubm9kZVR5cGU9PT0xKWZvcihnPTA7eVtnXSE9bnVsbDtnKysp
e2lmKHlbZ10mJih5W2ddPT09dHJ1ZXx8eVtnXS5ub2RlVHlwZT09PTEmJkUoaCx5W2ddKSkpbC5w
dXNoKHRbZ10pfWVsc2UgZm9yKGc9MDt5W2ddIT1udWxsO2crKyl5W2ddJiZ5W2ddLm5vZGVUeXBl
PT09MSYmbC5wdXNoKHRbZ10pO2Vsc2UgbC5wdXNoLmFwcGx5KGwseSk7ZWxzZSB6KHksbCk7aWYo
Uyl7ayhTLHEsbCxtKTtrLnVuaXF1ZVNvcnQobCl9cmV0dXJuIGx9O2sudW5pcXVlU29ydD1mdW5j
dGlvbihnKXtpZihCKXtpPW87Zy5zb3J0KEIpO2lmKGkpZm9yKHZhciBoPTE7aDxnLmxlbmd0aDto
KyspZ1toXT09PWdbaC0xXSYmZy5zcGxpY2UoaC0tLDEpfXJldHVybiBnfTtrLm1hdGNoZXM9ZnVu
Y3Rpb24oZyxoKXtyZXR1cm4gayhnLG51bGwsbnVsbCxoKX07ay5maW5kPWZ1bmN0aW9uKGcsaCxs
KXt2YXIgbSxxO2lmKCFnKXJldHVybltdOwpmb3IodmFyIHA9MCx2PW4ub3JkZXIubGVuZ3RoO3A8
djtwKyspe3ZhciB0PW4ub3JkZXJbcF07aWYocT1uLmxlZnRNYXRjaFt0XS5leGVjKGcpKXt2YXIg
eT1xWzFdO3Euc3BsaWNlKDEsMSk7aWYoeS5zdWJzdHIoeS5sZW5ndGgtMSkhPT0iXFwiKXtxWzFd
PShxWzFdfHwiIikucmVwbGFjZSgvXFwvZywiIik7bT1uLmZpbmRbdF0ocSxoLGwpO2lmKG0hPW51
bGwpe2c9Zy5yZXBsYWNlKG4ubWF0Y2hbdF0sIiIpO2JyZWFrfX19fW18fChtPWguZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIioiKSk7cmV0dXJue3NldDptLGV4cHI6Z319O2suZmlsdGVyPWZ1bmN0aW9u
KGcsaCxsLG0pe2Zvcih2YXIgcT1nLHA9W10sdj1oLHQseSxTPWgmJmhbMF0mJngoaFswXSk7ZyYm
aC5sZW5ndGg7KXtmb3IodmFyIEggaW4gbi5maWx0ZXIpaWYoKHQ9bi5sZWZ0TWF0Y2hbSF0uZXhl
YyhnKSkhPW51bGwmJnRbMl0pe3ZhciBNPW4uZmlsdGVyW0hdLEksRDtEPXRbMV07eT1mYWxzZTt0
LnNwbGljZSgxLDEpO2lmKEQuc3Vic3RyKEQubGVuZ3RoLQoxKSE9PSJcXCIpe2lmKHY9PT1wKXA9
W107aWYobi5wcmVGaWx0ZXJbSF0paWYodD1uLnByZUZpbHRlcltIXSh0LHYsbCxwLG0sUykpe2lm
KHQ9PT10cnVlKWNvbnRpbnVlfWVsc2UgeT1JPXRydWU7aWYodClmb3IodmFyIFU9MDsoRD12W1Vd
KSE9bnVsbDtVKyspaWYoRCl7ST1NKEQsdCxVLHYpO3ZhciBIYT1tXiEhSTtpZihsJiZJIT1udWxs
KWlmKEhhKXk9dHJ1ZTtlbHNlIHZbVV09ZmFsc2U7ZWxzZSBpZihIYSl7cC5wdXNoKEQpO3k9dHJ1
ZX19aWYoSSE9PXcpe2x8fCh2PXApO2c9Zy5yZXBsYWNlKG4ubWF0Y2hbSF0sIiIpO2lmKCF5KXJl
dHVybltdO2JyZWFrfX19aWYoZz09PXEpaWYoeT09bnVsbClrLmVycm9yKGcpO2Vsc2UgYnJlYWs7
cT1nfXJldHVybiB2fTtrLmVycm9yPWZ1bmN0aW9uKGcpe3Rocm93IlN5bnRheCBlcnJvciwgdW5y
ZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZzt9O3ZhciBuPWsuc2VsZWN0b3JzPXtvcmRlcjpbIklE
IiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSsp
LywKQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkYtXXxcXC4pKykvLE5BTUU6L1xbbmFtZT1b
JyJdKigoPzpbXHdcdTAwYzAtXHVGRkZGLV18XFwuKSspWyciXSpcXS8sQVRUUjovXFtccyooKD86
W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClc
cypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKi1dfFxcLikrKS8sQ0hJTEQ6Lzoob25s
eXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcKChldmVufG9kZHxbXGRuKy1dKilcKSk/LyxQT1M6
LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxvZGQpKD86XCgoXGQqKVwpKT8oPz1bXi1d
fCQpLyxQU0VVRE86LzooKD86W1x3XHUwMGMwLVx1RkZGRi1dfFxcLikrKSg/OlwoKFsnIl0/KSgo
PzpcKFteXCldK1wpfFteXChcKV0qKSspXDJcKSk/L30sbGVmdE1hdGNoOnt9LGF0dHJNYXA6eyJj
bGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0
aW9uKGcpe3JldHVybiBnLmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0sCnJlbGF0aXZlOnsiKyI6ZnVu
Y3Rpb24oZyxoKXt2YXIgbD10eXBlb2YgaD09PSJzdHJpbmciLG09bCYmIS9cVy8udGVzdChoKTts
PWwmJiFtO2lmKG0paD1oLnRvTG93ZXJDYXNlKCk7bT0wO2Zvcih2YXIgcT1nLmxlbmd0aCxwO208
cTttKyspaWYocD1nW21dKXtmb3IoOyhwPXAucHJldmlvdXNTaWJsaW5nKSYmcC5ub2RlVHlwZSE9
PTE7KTtnW21dPWx8fHAmJnAubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWg/cHx8ZmFsc2U6cD09
PWh9bCYmay5maWx0ZXIoaCxnLHRydWUpfSwiPiI6ZnVuY3Rpb24oZyxoKXt2YXIgbD10eXBlb2Yg
aD09PSJzdHJpbmciO2lmKGwmJiEvXFcvLnRlc3QoaCkpe2g9aC50b0xvd2VyQ2FzZSgpO2Zvcih2
YXIgbT0wLHE9Zy5sZW5ndGg7bTxxO20rKyl7dmFyIHA9Z1ttXTtpZihwKXtsPXAucGFyZW50Tm9k
ZTtnW21dPWwubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWg/bDpmYWxzZX19fWVsc2V7bT0wO2Zv
cihxPWcubGVuZ3RoO208cTttKyspaWYocD1nW21dKWdbbV09Cmw/cC5wYXJlbnROb2RlOnAucGFy
ZW50Tm9kZT09PWg7bCYmay5maWx0ZXIoaCxnLHRydWUpfX0sIiI6ZnVuY3Rpb24oZyxoLGwpe3Zh
ciBtPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFyIHA9
aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInBhcmVudE5vZGUiLGgsbSxnLHAsbCl9LCJ+IjpmdW5j
dGlvbihnLGgsbCl7dmFyIG09ZSsrLHE9ZDtpZih0eXBlb2YgaD09PSJzdHJpbmciJiYhL1xXLy50
ZXN0KGgpKXt2YXIgcD1oPWgudG9Mb3dlckNhc2UoKTtxPWJ9cSgicHJldmlvdXNTaWJsaW5nIixo
LG0sZyxwLGwpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oZyxoLGwpe2lmKHR5cGVvZiBoLmdldEVsZW1l
bnRCeUlkIT09InVuZGVmaW5lZCImJiFsKXJldHVybihnPWguZ2V0RWxlbWVudEJ5SWQoZ1sxXSkp
P1tnXTpbXX0sTkFNRTpmdW5jdGlvbihnLGgpe2lmKHR5cGVvZiBoLmdldEVsZW1lbnRzQnlOYW1l
IT09InVuZGVmaW5lZCIpe3ZhciBsPVtdOwpoPWguZ2V0RWxlbWVudHNCeU5hbWUoZ1sxXSk7Zm9y
KHZhciBtPTAscT1oLmxlbmd0aDttPHE7bSsrKWhbbV0uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1n
WzFdJiZsLnB1c2goaFttXSk7cmV0dXJuIGwubGVuZ3RoPT09MD9udWxsOmx9fSxUQUc6ZnVuY3Rp
b24oZyxoKXtyZXR1cm4gaC5nZXRFbGVtZW50c0J5VGFnTmFtZShnWzFdKX19LHByZUZpbHRlcjp7
Q0xBU1M6ZnVuY3Rpb24oZyxoLGwsbSxxLHApe2c9IiAiK2dbMV0ucmVwbGFjZSgvXFwvZywiIikr
IiAiO2lmKHApcmV0dXJuIGc7cD0wO2Zvcih2YXIgdjsodj1oW3BdKSE9bnVsbDtwKyspaWYodilp
ZihxXih2LmNsYXNzTmFtZSYmKCIgIit2LmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoL1tcdFxuXS9n
LCIgIikuaW5kZXhPZihnKT49MCkpbHx8bS5wdXNoKHYpO2Vsc2UgaWYobCloW3BdPWZhbHNlO3Jl
dHVybiBmYWxzZX0sSUQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0ucmVwbGFjZSgvXFwvZywiIil9
LFRBRzpmdW5jdGlvbihnKXtyZXR1cm4gZ1sxXS50b0xvd2VyQ2FzZSgpfSwKQ0hJTEQ6ZnVuY3Rp
b24oZyl7aWYoZ1sxXT09PSJudGgiKXt2YXIgaD0vKC0/KShcZCopbigoPzpcK3wtKT9cZCopLy5l
eGVjKGdbMl09PT0iZXZlbiImJiIybiJ8fGdbMl09PT0ib2RkIiYmIjJuKzEifHwhL1xELy50ZXN0
KGdbMl0pJiYiMG4rIitnWzJdfHxnWzJdKTtnWzJdPWhbMV0rKGhbMl18fDEpLTA7Z1szXT1oWzNd
LTB9Z1swXT1lKys7cmV0dXJuIGd9LEFUVFI6ZnVuY3Rpb24oZyxoLGwsbSxxLHApe2g9Z1sxXS5y
ZXBsYWNlKC9cXC9nLCIiKTtpZighcCYmbi5hdHRyTWFwW2hdKWdbMV09bi5hdHRyTWFwW2hdO2lm
KGdbMl09PT0ifj0iKWdbNF09IiAiK2dbNF0rIiAiO3JldHVybiBnfSxQU0VVRE86ZnVuY3Rpb24o
ZyxoLGwsbSxxKXtpZihnWzFdPT09Im5vdCIpaWYoKGYuZXhlYyhnWzNdKXx8IiIpLmxlbmd0aD4x
fHwvXlx3Ly50ZXN0KGdbM10pKWdbM109ayhnWzNdLG51bGwsbnVsbCxoKTtlbHNle2c9ay5maWx0
ZXIoZ1szXSxoLGwsdHJ1ZV5xKTtsfHxtLnB1c2guYXBwbHkobSwKZyk7cmV0dXJuIGZhbHNlfWVs
c2UgaWYobi5tYXRjaC5QT1MudGVzdChnWzBdKXx8bi5tYXRjaC5DSElMRC50ZXN0KGdbMF0pKXJl
dHVybiB0cnVlO3JldHVybiBnfSxQT1M6ZnVuY3Rpb24oZyl7Zy51bnNoaWZ0KHRydWUpO3JldHVy
biBnfX0sZmlsdGVyczp7ZW5hYmxlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5kaXNhYmxlZD09PWZh
bHNlJiZnLnR5cGUhPT0iaGlkZGVuIn0sZGlzYWJsZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZGlz
YWJsZWQ9PT10cnVlfSxjaGVja2VkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmNoZWNrZWQ9PT10cnVl
fSxzZWxlY3RlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5zZWxlY3RlZD09PXRydWV9LHBhcmVudDpm
dW5jdGlvbihnKXtyZXR1cm4hIWcuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oZyl7cmV0dXJu
IWcuZmlyc3RDaGlsZH0saGFzOmZ1bmN0aW9uKGcsaCxsKXtyZXR1cm4hIWsobFszXSxnKS5sZW5n
dGh9LGhlYWRlcjpmdW5jdGlvbihnKXtyZXR1cm4vaFxkL2kudGVzdChnLm5vZGVOYW1lKX0sCnRl
eHQ6ZnVuY3Rpb24oZyl7cmV0dXJuInRleHQiPT09Zy50eXBlfSxyYWRpbzpmdW5jdGlvbihnKXty
ZXR1cm4icmFkaW8iPT09Zy50eXBlfSxjaGVja2JveDpmdW5jdGlvbihnKXtyZXR1cm4iY2hlY2ti
b3giPT09Zy50eXBlfSxmaWxlOmZ1bmN0aW9uKGcpe3JldHVybiJmaWxlIj09PWcudHlwZX0scGFz
c3dvcmQ6ZnVuY3Rpb24oZyl7cmV0dXJuInBhc3N3b3JkIj09PWcudHlwZX0sc3VibWl0OmZ1bmN0
aW9uKGcpe3JldHVybiJzdWJtaXQiPT09Zy50eXBlfSxpbWFnZTpmdW5jdGlvbihnKXtyZXR1cm4i
aW1hZ2UiPT09Zy50eXBlfSxyZXNldDpmdW5jdGlvbihnKXtyZXR1cm4icmVzZXQiPT09Zy50eXBl
fSxidXR0b246ZnVuY3Rpb24oZyl7cmV0dXJuImJ1dHRvbiI9PT1nLnR5cGV8fGcubm9kZU5hbWUu
dG9Mb3dlckNhc2UoKT09PSJidXR0b24ifSxpbnB1dDpmdW5jdGlvbihnKXtyZXR1cm4vaW5wdXR8
c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLnRlc3QoZy5ub2RlTmFtZSl9fSwKc2V0RmlsdGVyczp7
Zmlyc3Q6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PTB9LGxhc3Q6ZnVuY3Rpb24oZyxoLGwsbSl7
cmV0dXJuIGg9PT1tLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGglMj09PTB9
LG9kZDpmdW5jdGlvbihnLGgpe3JldHVybiBoJTI9PT0xfSxsdDpmdW5jdGlvbihnLGgsbCl7cmV0
dXJuIGg8bFszXS0wfSxndDpmdW5jdGlvbihnLGgsbCl7cmV0dXJuIGg+bFszXS0wfSxudGg6ZnVu
Y3Rpb24oZyxoLGwpe3JldHVybiBsWzNdLTA9PT1ofSxlcTpmdW5jdGlvbihnLGgsbCl7cmV0dXJu
IGxbM10tMD09PWh9fSxmaWx0ZXI6e1BTRVVETzpmdW5jdGlvbihnLGgsbCxtKXt2YXIgcT1oWzFd
LHA9bi5maWx0ZXJzW3FdO2lmKHApcmV0dXJuIHAoZyxsLGgsbSk7ZWxzZSBpZihxPT09ImNvbnRh
aW5zIilyZXR1cm4oZy50ZXh0Q29udGVudHx8Zy5pbm5lclRleHR8fGEoW2ddKXx8IiIpLmluZGV4
T2YoaFszXSk+PTA7ZWxzZSBpZihxPT09Im5vdCIpe2g9CmhbM107bD0wO2ZvcihtPWgubGVuZ3Ro
O2w8bTtsKyspaWYoaFtsXT09PWcpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlfWVsc2Ugay5lcnJv
cigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitxKX0sQ0hJTEQ6ZnVu
Y3Rpb24oZyxoKXt2YXIgbD1oWzFdLG09Zztzd2l0Y2gobCl7Y2FzZSAib25seSI6Y2FzZSAiZmly
c3QiOmZvcig7bT1tLnByZXZpb3VzU2libGluZzspaWYobS5ub2RlVHlwZT09PTEpcmV0dXJuIGZh
bHNlO2lmKGw9PT0iZmlyc3QiKXJldHVybiB0cnVlO209ZztjYXNlICJsYXN0Ijpmb3IoO209bS5u
ZXh0U2libGluZzspaWYobS5ub2RlVHlwZT09PTEpcmV0dXJuIGZhbHNlO3JldHVybiB0cnVlO2Nh
c2UgIm50aCI6bD1oWzJdO3ZhciBxPWhbM107aWYobD09PTEmJnE9PT0wKXJldHVybiB0cnVlO2g9
aFswXTt2YXIgcD1nLnBhcmVudE5vZGU7aWYocCYmKHAuc2l6Y2FjaGUhPT1ofHwhZy5ub2RlSW5k
ZXgpKXt2YXIgdj0wO2ZvcihtPXAuZmlyc3RDaGlsZDttO209Cm0ubmV4dFNpYmxpbmcpaWYobS5u
b2RlVHlwZT09PTEpbS5ub2RlSW5kZXg9Kyt2O3Auc2l6Y2FjaGU9aH1nPWcubm9kZUluZGV4LXE7
cmV0dXJuIGw9PT0wP2c9PT0wOmclbD09PTAmJmcvbD49MH19LElEOmZ1bmN0aW9uKGcsaCl7cmV0
dXJuIGcubm9kZVR5cGU9PT0xJiZnLmdldEF0dHJpYnV0ZSgiaWQiKT09PWh9LFRBRzpmdW5jdGlv
bihnLGgpe3JldHVybiBoPT09IioiJiZnLm5vZGVUeXBlPT09MXx8Zy5ub2RlTmFtZS50b0xvd2Vy
Q2FzZSgpPT09aH0sQ0xBU1M6ZnVuY3Rpb24oZyxoKXtyZXR1cm4oIiAiKyhnLmNsYXNzTmFtZXx8
Zy5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihoKT4tMX0sQVRUUjpmdW5jdGlv
bihnLGgpe3ZhciBsPWhbMV07Zz1uLmF0dHJIYW5kbGVbbF0/bi5hdHRySGFuZGxlW2xdKGcpOmdb
bF0hPW51bGw/Z1tsXTpnLmdldEF0dHJpYnV0ZShsKTtsPWcrIiI7dmFyIG09aFsyXTtoPWhbNF07
cmV0dXJuIGc9PW51bGw/bT09PSIhPSI6bT09PQoiPSI/bD09PWg6bT09PSIqPSI/bC5pbmRleE9m
KGgpPj0wOm09PT0ifj0iPygiICIrbCsiICIpLmluZGV4T2YoaCk+PTA6IWg/bCYmZyE9PWZhbHNl
Om09PT0iIT0iP2whPT1oOm09PT0iXj0iP2wuaW5kZXhPZihoKT09PTA6bT09PSIkPSI/bC5zdWJz
dHIobC5sZW5ndGgtaC5sZW5ndGgpPT09aDptPT09Inw9Ij9sPT09aHx8bC5zdWJzdHIoMCxoLmxl
bmd0aCsxKT09PWgrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oZyxoLGwsbSl7dmFyIHE9bi5zZXRG
aWx0ZXJzW2hbMl1dO2lmKHEpcmV0dXJuIHEoZyxsLGgsbSl9fX0scj1uLm1hdGNoLlBPUztmb3Io
dmFyIHUgaW4gbi5tYXRjaCl7bi5tYXRjaFt1XT1uZXcgUmVnRXhwKG4ubWF0Y2hbdV0uc291cmNl
Ky8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSk7bi5sZWZ0TWF0Y2hbdV09bmV3IFJl
Z0V4cCgvKF4oPzoufFxyfFxuKSo/KS8uc291cmNlK24ubWF0Y2hbdV0uc291cmNlLnJlcGxhY2Uo
L1xcKFxkKykvZyxmdW5jdGlvbihnLApoKXtyZXR1cm4iXFwiKyhoLTArMSl9KSl9dmFyIHo9ZnVu
Y3Rpb24oZyxoKXtnPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGcsMCk7aWYoaCl7aC5wdXNo
LmFwcGx5KGgsZyk7cmV0dXJuIGh9cmV0dXJuIGd9O3RyeXtBcnJheS5wcm90b3R5cGUuc2xpY2Uu
Y2FsbChzLmRvY3VtZW50RWxlbWVudC5jaGlsZE5vZGVzLDApfWNhdGNoKEMpe3o9ZnVuY3Rpb24o
ZyxoKXtoPWh8fFtdO2lmKGouY2FsbChnKT09PSJbb2JqZWN0IEFycmF5XSIpQXJyYXkucHJvdG90
eXBlLnB1c2guYXBwbHkoaCxnKTtlbHNlIGlmKHR5cGVvZiBnLmxlbmd0aD09PSJudW1iZXIiKWZv
cih2YXIgbD0wLG09Zy5sZW5ndGg7bDxtO2wrKyloLnB1c2goZ1tsXSk7ZWxzZSBmb3IobD0wO2db
bF07bCsrKWgucHVzaChnW2xdKTtyZXR1cm4gaH19dmFyIEI7aWYocy5kb2N1bWVudEVsZW1lbnQu
Y29tcGFyZURvY3VtZW50UG9zaXRpb24pQj1mdW5jdGlvbihnLGgpe2lmKCFnLmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9ufHwKIWguY29tcGFyZURvY3VtZW50UG9zaXRpb24pe2lmKGc9PWgpaT10cnVl
O3JldHVybiBnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPy0xOjF9Zz1nLmNvbXBhcmVEb2N1bWVu
dFBvc2l0aW9uKGgpJjQ/LTE6Zz09PWg/MDoxO2lmKGc9PT0wKWk9dHJ1ZTtyZXR1cm4gZ307ZWxz
ZSBpZigic291cmNlSW5kZXgiaW4gcy5kb2N1bWVudEVsZW1lbnQpQj1mdW5jdGlvbihnLGgpe2lm
KCFnLnNvdXJjZUluZGV4fHwhaC5zb3VyY2VJbmRleCl7aWYoZz09aClpPXRydWU7cmV0dXJuIGcu
c291cmNlSW5kZXg/LTE6MX1nPWcuc291cmNlSW5kZXgtaC5zb3VyY2VJbmRleDtpZihnPT09MClp
PXRydWU7cmV0dXJuIGd9O2Vsc2UgaWYocy5jcmVhdGVSYW5nZSlCPWZ1bmN0aW9uKGcsaCl7aWYo
IWcub3duZXJEb2N1bWVudHx8IWgub3duZXJEb2N1bWVudCl7aWYoZz09aClpPXRydWU7cmV0dXJu
IGcub3duZXJEb2N1bWVudD8tMToxfXZhciBsPWcub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgp
LG09Cmgub3duZXJEb2N1bWVudC5jcmVhdGVSYW5nZSgpO2wuc2V0U3RhcnQoZywwKTtsLnNldEVu
ZChnLDApO20uc2V0U3RhcnQoaCwwKTttLnNldEVuZChoLDApO2c9bC5jb21wYXJlQm91bmRhcnlQ
b2ludHMoUmFuZ2UuU1RBUlRfVE9fRU5ELG0pO2lmKGc9PT0wKWk9dHJ1ZTtyZXR1cm4gZ307KGZ1
bmN0aW9uKCl7dmFyIGc9cy5jcmVhdGVFbGVtZW50KCJkaXYiKSxoPSJzY3JpcHQiKyhuZXcgRGF0
ZSkuZ2V0VGltZSgpO2cuaW5uZXJIVE1MPSI8YSBuYW1lPSciK2grIicvPiI7dmFyIGw9cy5kb2N1
bWVudEVsZW1lbnQ7bC5pbnNlcnRCZWZvcmUoZyxsLmZpcnN0Q2hpbGQpO2lmKHMuZ2V0RWxlbWVu
dEJ5SWQoaCkpe24uZmluZC5JRD1mdW5jdGlvbihtLHEscCl7aWYodHlwZW9mIHEuZ2V0RWxlbWVu
dEJ5SWQhPT0idW5kZWZpbmVkIiYmIXApcmV0dXJuKHE9cS5nZXRFbGVtZW50QnlJZChtWzFdKSk/
cS5pZD09PW1bMV18fHR5cGVvZiBxLmdldEF0dHJpYnV0ZU5vZGUhPT0idW5kZWZpbmVkIiYmCnEu
Z2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWU9PT1tWzFdP1txXTp3OltdfTtuLmZpbHRl
ci5JRD1mdW5jdGlvbihtLHEpe3ZhciBwPXR5cGVvZiBtLmdldEF0dHJpYnV0ZU5vZGUhPT0idW5k
ZWZpbmVkIiYmbS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBtLm5vZGVUeXBlPT09MSYm
cCYmcC5ub2RlVmFsdWU9PT1xfX1sLnJlbW92ZUNoaWxkKGcpO2w9Zz1udWxsfSkoKTsoZnVuY3Rp
b24oKXt2YXIgZz1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuYXBwZW5kQ2hpbGQocy5jcmVhdGVD
b21tZW50KCIiKSk7aWYoZy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aD4wKW4uZmlu
ZC5UQUc9ZnVuY3Rpb24oaCxsKXtsPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaFsxXSk7aWYoaFsx
XT09PSIqIil7aD1bXTtmb3IodmFyIG09MDtsW21dO20rKylsW21dLm5vZGVUeXBlPT09MSYmaC5w
dXNoKGxbbV0pO2w9aH1yZXR1cm4gbH07Zy5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iOwpp
ZihnLmZpcnN0Q2hpbGQmJnR5cGVvZiBnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlIT09InVuZGVm
aW5lZCImJmcuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PSIjIiluLmF0dHJIYW5k
bGUuaHJlZj1mdW5jdGlvbihoKXtyZXR1cm4gaC5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfTtnPW51
bGx9KSgpO3MucXVlcnlTZWxlY3RvckFsbCYmZnVuY3Rpb24oKXt2YXIgZz1rLGg9cy5jcmVhdGVF
bGVtZW50KCJkaXYiKTtoLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKCEoaC5x
dWVyeVNlbGVjdG9yQWxsJiZoLnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoPT09MCkp
e2s9ZnVuY3Rpb24obSxxLHAsdil7cT1xfHxzO2lmKCF2JiZxLm5vZGVUeXBlPT09OSYmIXgocSkp
dHJ5e3JldHVybiB6KHEucXVlcnlTZWxlY3RvckFsbChtKSxwKX1jYXRjaCh0KXt9cmV0dXJuIGco
bSxxLHAsdil9O2Zvcih2YXIgbCBpbiBnKWtbbF09Z1tsXTtoPW51bGx9fSgpOwooZnVuY3Rpb24o
KXt2YXIgZz1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0
ZXN0IGUnPjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISghZy5nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lfHxnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGg9PT0wKSl7
Zy5sYXN0Q2hpbGQuY2xhc3NOYW1lPSJlIjtpZihnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUi
KS5sZW5ndGghPT0xKXtuLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7bi5maW5kLkNMQVNTPWZ1
bmN0aW9uKGgsbCxtKXtpZih0eXBlb2YgbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVm
aW5lZCImJiFtKXJldHVybiBsLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaFsxXSl9O2c9bnVsbH19
fSkoKTt2YXIgRT1zLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKGcsaCl7cmV0dXJu
ISEoZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihoKSYxNil9OgpmdW5jdGlvbihnLGgpe3JldHVy
biBnIT09aCYmKGcuY29udGFpbnM/Zy5jb250YWlucyhoKTp0cnVlKX0seD1mdW5jdGlvbihnKXty
ZXR1cm4oZz0oZz9nLm93bmVyRG9jdW1lbnR8fGc6MCkuZG9jdW1lbnRFbGVtZW50KT9nLm5vZGVO
YW1lIT09IkhUTUwiOmZhbHNlfSxnYT1mdW5jdGlvbihnLGgpe3ZhciBsPVtdLG09IiIscTtmb3Io
aD1oLm5vZGVUeXBlP1toXTpoO3E9bi5tYXRjaC5QU0VVRE8uZXhlYyhnKTspe20rPXFbMF07Zz1n
LnJlcGxhY2Uobi5tYXRjaC5QU0VVRE8sIiIpfWc9bi5yZWxhdGl2ZVtnXT9nKyIqIjpnO3E9MDtm
b3IodmFyIHA9aC5sZW5ndGg7cTxwO3ErKylrKGcsaFtxXSxsKTtyZXR1cm4gay5maWx0ZXIobSxs
KX07Yy5maW5kPWs7Yy5leHByPWsuc2VsZWN0b3JzO2MuZXhwclsiOiJdPWMuZXhwci5maWx0ZXJz
O2MudW5pcXVlPWsudW5pcXVlU29ydDtjLnRleHQ9YTtjLmlzWE1MRG9jPXg7Yy5jb250YWlucz1F
fSkoKTt2YXIgZWI9L1VudGlsJC8sZmI9L14oPzpwYXJlbnRzfHByZXZVbnRpbHxwcmV2QWxsKS8s
CmdiPS8sLztSPUFycmF5LnByb3RvdHlwZS5zbGljZTt2YXIgSWE9ZnVuY3Rpb24oYSxiLGQpe2lm
KGMuaXNGdW5jdGlvbihiKSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSxqKXtyZXR1cm4hIWIu
Y2FsbChlLGosZSk9PT1kfSk7ZWxzZSBpZihiLm5vZGVUeXBlKXJldHVybiBjLmdyZXAoYSxmdW5j
dGlvbihlKXtyZXR1cm4gZT09PWI9PT1kfSk7ZWxzZSBpZih0eXBlb2YgYj09PSJzdHJpbmciKXt2
YXIgZj1jLmdyZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlVHlwZT09PTF9KTtpZihVYS50
ZXN0KGIpKXJldHVybiBjLmZpbHRlcihiLGYsIWQpO2Vsc2UgYj1jLmZpbHRlcihiLGYpfXJldHVy
biBjLmdyZXAoYSxmdW5jdGlvbihlKXtyZXR1cm4gYy5pbkFycmF5KGUsYik+PTA9PT1kfSl9O2Mu
Zm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLnB1c2hTdGFjaygiIiwi
ZmluZCIsYSksZD0wLGY9MCxlPXRoaXMubGVuZ3RoO2Y8ZTtmKyspe2Q9Yi5sZW5ndGg7CmMuZmlu
ZChhLHRoaXNbZl0sYik7aWYoZj4wKWZvcih2YXIgaj1kO2o8Yi5sZW5ndGg7aisrKWZvcih2YXIg
aT0wO2k8ZDtpKyspaWYoYltpXT09PWJbal0pe2Iuc3BsaWNlKGotLSwxKTticmVha319cmV0dXJu
IGJ9LGhhczpmdW5jdGlvbihhKXt2YXIgYj1jKGEpO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlv
bigpe2Zvcih2YXIgZD0wLGY9Yi5sZW5ndGg7ZDxmO2QrKylpZihjLmNvbnRhaW5zKHRoaXMsYltk
XSkpcmV0dXJuIHRydWV9KX0sbm90OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhJ
YSh0aGlzLGEsZmFsc2UpLCJub3QiLGEpfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMu
cHVzaFN0YWNrKElhKHRoaXMsYSx0cnVlKSwiZmlsdGVyIixhKX0saXM6ZnVuY3Rpb24oYSl7cmV0
dXJuISFhJiZjLmZpbHRlcihhLHRoaXMpLmxlbmd0aD4wfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7
aWYoYy5pc0FycmF5KGEpKXt2YXIgZD1bXSxmPXRoaXNbMF0sZSxqPQp7fSxpO2lmKGYmJmEubGVu
Z3RoKXtlPTA7Zm9yKHZhciBvPWEubGVuZ3RoO2U8bztlKyspe2k9YVtlXTtqW2ldfHwoaltpXT1j
LmV4cHIubWF0Y2guUE9TLnRlc3QoaSk/YyhpLGJ8fHRoaXMuY29udGV4dCk6aSl9Zm9yKDtmJiZm
Lm93bmVyRG9jdW1lbnQmJmYhPT1iOyl7Zm9yKGkgaW4gail7ZT1qW2ldO2lmKGUuanF1ZXJ5P2Uu
aW5kZXgoZik+LTE6YyhmKS5pcyhlKSl7ZC5wdXNoKHtzZWxlY3RvcjppLGVsZW06Zn0pO2RlbGV0
ZSBqW2ldfX1mPWYucGFyZW50Tm9kZX19cmV0dXJuIGR9dmFyIGs9Yy5leHByLm1hdGNoLlBPUy50
ZXN0KGEpP2MoYSxifHx0aGlzLmNvbnRleHQpOm51bGw7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9u
KG4scil7Zm9yKDtyJiZyLm93bmVyRG9jdW1lbnQmJnIhPT1iOyl7aWYoaz9rLmluZGV4KHIpPi0x
OmMocikuaXMoYSkpcmV0dXJuIHI7cj1yLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KX0saW5kZXg6
ZnVuY3Rpb24oYSl7aWYoIWF8fHR5cGVvZiBhPT09CiJzdHJpbmciKXJldHVybiBjLmluQXJyYXko
dGhpc1swXSxhP2MoYSk6dGhpcy5wYXJlbnQoKS5jaGlsZHJlbigpKTtyZXR1cm4gYy5pbkFycmF5
KGEuanF1ZXJ5P2FbMF06YSx0aGlzKX0sYWRkOmZ1bmN0aW9uKGEsYil7YT10eXBlb2YgYT09PSJz
dHJpbmciP2MoYSxifHx0aGlzLmNvbnRleHQpOmMubWFrZUFycmF5KGEpO2I9Yy5tZXJnZSh0aGlz
LmdldCgpLGEpO3JldHVybiB0aGlzLnB1c2hTdGFjayhxYShhWzBdKXx8cWEoYlswXSk/YjpjLnVu
aXF1ZShiKSl9LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGQodGhpcy5wcmV2T2Jq
ZWN0KX19KTtjLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLnBhcmVudE5vZGUp
JiZhLm5vZGVUeXBlIT09MTE/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRp
cihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMu
ZGlyKGEsInBhcmVudE5vZGUiLApkKX0sbmV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwy
LCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBjLm50aChhLDIsInByZXZp
b3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJuZXh0U2li
bGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJwcmV2aW91c1NpYmxp
bmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYy5kaXIoYSwibmV4dFNpYmxp
bmciLGQpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwcmV2aW91
c1NpYmxpbmciLGQpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gYy5zaWJsaW5nKGEucGFy
ZW50Tm9kZS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gYy5zaWJs
aW5nKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBjLm5vZGVOYW1l
KGEsImlmcmFtZSIpPwphLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2luZG93LmRvY3VtZW50
OmMubWFrZUFycmF5KGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rp
b24oZCxmKXt2YXIgZT1jLm1hcCh0aGlzLGIsZCk7ZWIudGVzdChhKXx8KGY9ZCk7aWYoZiYmdHlw
ZW9mIGY9PT0ic3RyaW5nIillPWMuZmlsdGVyKGYsZSk7ZT10aGlzLmxlbmd0aD4xP2MudW5pcXVl
KGUpOmU7aWYoKHRoaXMubGVuZ3RoPjF8fGdiLnRlc3QoZikpJiZmYi50ZXN0KGEpKWU9ZS5yZXZl
cnNlKCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUsYSxSLmNhbGwoYXJndW1lbnRzKS5qb2luKCIs
IikpfX0pO2MuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oYSxiLGQpe2lmKGQpYT0iOm5vdCgiK2Er
IikiO3JldHVybiBjLmZpbmQubWF0Y2hlcyhhLGIpfSxkaXI6ZnVuY3Rpb24oYSxiLGQpe3ZhciBm
PVtdO2ZvcihhPWFbYl07YSYmYS5ub2RlVHlwZSE9PTkmJihkPT09d3x8YS5ub2RlVHlwZSE9PTF8
fCFjKGEpLmlzKGQpKTspe2Eubm9kZVR5cGU9PT0KMSYmZi5wdXNoKGEpO2E9YVtiXX1yZXR1cm4g
Zn0sbnRoOmZ1bmN0aW9uKGEsYixkKXtiPWJ8fDE7Zm9yKHZhciBmPTA7YTthPWFbZF0paWYoYS5u
b2RlVHlwZT09PTEmJisrZj09PWIpYnJlYWs7cmV0dXJuIGF9LHNpYmxpbmc6ZnVuY3Rpb24oYSxi
KXtmb3IodmFyIGQ9W107YTthPWEubmV4dFNpYmxpbmcpYS5ub2RlVHlwZT09PTEmJmEhPT1iJiZk
LnB1c2goYSk7cmV0dXJuIGR9fSk7dmFyIEphPS8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2cs
Vj0vXlxzKy8sS2E9Lyg8KFtcdzpdKylbXj5dKj8pXC8+L2csaGI9L14oPzphcmVhfGJyfGNvbHxl
bWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSQvaSxMYT0vPChbXHc6XSspLyxpYj0v
PHRib2R5L2ksamI9Lzx8JiM/XHcrOy8sdGE9LzxzY3JpcHR8PG9iamVjdHw8ZW1iZWR8PG9wdGlv
bnw8c3R5bGUvaSx1YT0vY2hlY2tlZFxzKig/OltePV18PVxzKi5jaGVja2VkLikvaSxNYT1mdW5j
dGlvbihhLGIsZCl7cmV0dXJuIGhiLnRlc3QoZCk/CmE6YisiPjwvIitkKyI+In0sRj17b3B0aW9u
OlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsx
LCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSx0aGVhZDpbMSwiPHRhYmxlPiIsIjwvdGFibGU+
Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFi
bGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48
dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEs
IjxtYXA+IiwiPC9tYXA+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtGLm9wdGdyb3VwPUYub3B0aW9u
O0YudGJvZHk9Ri50Zm9vdD1GLmNvbGdyb3VwPUYuY2FwdGlvbj1GLnRoZWFkO0YudGg9Ri50ZDtp
ZighYy5zdXBwb3J0Lmh0bWxTZXJpYWxpemUpRi5fZGVmYXVsdD1bMSwiZGl2PGRpdj4iLCI8L2Rp
dj4iXTtjLmZuLmV4dGVuZCh7dGV4dDpmdW5jdGlvbihhKXtpZihjLmlzRnVuY3Rpb24oYSkpcmV0
dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXt2YXIgZD0KYyh0aGlzKTtkLnRleHQoYS5jYWxsKHRo
aXMsYixkLnRleHQoKSkpfSk7aWYodHlwZW9mIGEhPT0ib2JqZWN0IiYmYSE9PXcpcmV0dXJuIHRo
aXMuZW1wdHkoKS5hcHBlbmQoKHRoaXNbMF0mJnRoaXNbMF0ub3duZXJEb2N1bWVudHx8cykuY3Jl
YXRlVGV4dE5vZGUoYSkpO3JldHVybiBjLnRleHQodGhpcyl9LHdyYXBBbGw6ZnVuY3Rpb24oYSl7
aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZCl7Yyh0aGlzKS53
cmFwQWxsKGEuY2FsbCh0aGlzLGQpKX0pO2lmKHRoaXNbMF0pe3ZhciBiPWMoYSx0aGlzWzBdLm93
bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKHRydWUpO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNl
cnRCZWZvcmUodGhpc1swXSk7Yi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGQ9dGhpcztkLmZpcnN0
Q2hpbGQmJmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTE7KWQ9ZC5maXJzdENoaWxkO3JldHVybiBk
fSkuYXBwZW5kKHRoaXMpfXJldHVybiB0aGlzfSwKd3JhcElubmVyOmZ1bmN0aW9uKGEpe2lmKGMu
aXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2ModGhpcykud3JhcElu
bmVyKGEuY2FsbCh0aGlzLGIpKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1j
KHRoaXMpLGQ9Yi5jb250ZW50cygpO2QubGVuZ3RoP2Qud3JhcEFsbChhKTpiLmFwcGVuZChhKX0p
fSx3cmFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLndy
YXBBbGwoYSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChm
dW5jdGlvbigpe2Mubm9kZU5hbWUodGhpcywiYm9keSIpfHxjKHRoaXMpLnJlcGxhY2VXaXRoKHRo
aXMuY2hpbGROb2Rlcyl9KS5lbmQoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9t
TWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMu
YXBwZW5kQ2hpbGQoYSl9KX0sCnByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5p
cChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihhKXt0aGlzLm5vZGVUeXBlPT09MSYmdGhpcy5pbnNl
cnRCZWZvcmUoYSx0aGlzLmZpcnN0Q2hpbGQpfSl9LGJlZm9yZTpmdW5jdGlvbigpe2lmKHRoaXNb
MF0mJnRoaXNbMF0ucGFyZW50Tm9kZSlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFs
c2UsZnVuY3Rpb24oYil7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLHRoaXMpfSk7ZWxz
ZSBpZihhcmd1bWVudHMubGVuZ3RoKXt2YXIgYT1jKGFyZ3VtZW50c1swXSk7YS5wdXNoLmFwcGx5
KGEsdGhpcy50b0FycmF5KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhhLCJiZWZvcmUiLGFyZ3Vt
ZW50cyl9fSxhZnRlcjpmdW5jdGlvbigpe2lmKHRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZSly
ZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oYil7dGhpcy5wYXJl
bnROb2RlLmluc2VydEJlZm9yZShiLAp0aGlzLm5leHRTaWJsaW5nKX0pO2Vsc2UgaWYoYXJndW1l
bnRzLmxlbmd0aCl7dmFyIGE9dGhpcy5wdXNoU3RhY2sodGhpcywiYWZ0ZXIiLGFyZ3VtZW50cyk7
YS5wdXNoLmFwcGx5KGEsYyhhcmd1bWVudHNbMF0pLnRvQXJyYXkoKSk7cmV0dXJuIGF9fSxyZW1v
dmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9MCxmOyhmPXRoaXNbZF0pIT1udWxsO2QrKylpZigh
YXx8Yy5maWx0ZXIoYSxbZl0pLmxlbmd0aCl7aWYoIWImJmYubm9kZVR5cGU9PT0xKXtjLmNsZWFu
RGF0YShmLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO2MuY2xlYW5EYXRhKFtmXSl9Zi5wYXJl
bnROb2RlJiZmLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZil9cmV0dXJuIHRoaXN9LGVtcHR5OmZ1
bmN0aW9uKCl7Zm9yKHZhciBhPTAsYjsoYj10aGlzW2FdKSE9bnVsbDthKyspZm9yKGIubm9kZVR5
cGU9PT0xJiZjLmNsZWFuRGF0YShiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpO2IuZmlyc3RD
aGlsZDspYi5yZW1vdmVDaGlsZChiLmZpcnN0Q2hpbGQpOwpyZXR1cm4gdGhpc30sY2xvbmU6ZnVu
Y3Rpb24oYSl7dmFyIGI9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighYy5zdXBwb3J0Lm5vQ2xvbmVF
dmVudCYmIWMuaXNYTUxEb2ModGhpcykpe3ZhciBkPXRoaXMub3V0ZXJIVE1MLGY9dGhpcy5vd25l
ckRvY3VtZW50O2lmKCFkKXtkPWYuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5hcHBlbmRDaGlsZCh0
aGlzLmNsb25lTm9kZSh0cnVlKSk7ZD1kLmlubmVySFRNTH1yZXR1cm4gYy5jbGVhbihbZC5yZXBs
YWNlKEphLCIiKS5yZXBsYWNlKC89KFtePSInPlxzXStcLyk+L2csJz0iJDEiPicpLnJlcGxhY2Uo
ViwiIildLGYpWzBdfWVsc2UgcmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfSk7aWYoYT09PXRy
dWUpe3JhKHRoaXMsYik7cmEodGhpcy5maW5kKCIqIiksYi5maW5kKCIqIikpfXJldHVybiBifSxo
dG1sOmZ1bmN0aW9uKGEpe2lmKGE9PT13KXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLm5vZGVUeXBl
PT09MT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKEphLAoiIik6bnVsbDtlbHNlIGlmKHR5cGVv
ZiBhPT09InN0cmluZyImJiF0YS50ZXN0KGEpJiYoYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNl
fHwhVi50ZXN0KGEpKSYmIUZbKExhLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCld
KXthPWEucmVwbGFjZShLYSxNYSk7dHJ5e2Zvcih2YXIgYj0wLGQ9dGhpcy5sZW5ndGg7YjxkO2Ir
KylpZih0aGlzW2JdLm5vZGVUeXBlPT09MSl7Yy5jbGVhbkRhdGEodGhpc1tiXS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiKiIpKTt0aGlzW2JdLmlubmVySFRNTD1hfX1jYXRjaChmKXt0aGlzLmVtcHR5
KCkuYXBwZW5kKGEpfX1lbHNlIGMuaXNGdW5jdGlvbihhKT90aGlzLmVhY2goZnVuY3Rpb24oZSl7
dmFyIGo9Yyh0aGlzKSxpPWouaHRtbCgpO2ouZW1wdHkoKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1
cm4gYS5jYWxsKHRoaXMsZSxpKX0pfSk6dGhpcy5lbXB0eSgpLmFwcGVuZChhKTtyZXR1cm4gdGhp
c30scmVwbGFjZVdpdGg6ZnVuY3Rpb24oYSl7aWYodGhpc1swXSYmCnRoaXNbMF0ucGFyZW50Tm9k
ZSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9
Yyh0aGlzKSxmPWQuaHRtbCgpO2QucmVwbGFjZVdpdGgoYS5jYWxsKHRoaXMsYixmKSl9KTtpZih0
eXBlb2YgYSE9PSJzdHJpbmciKWE9YyhhKS5kZXRhY2goKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0
aW9uKCl7dmFyIGI9dGhpcy5uZXh0U2libGluZyxkPXRoaXMucGFyZW50Tm9kZTtjKHRoaXMpLnJl
bW92ZSgpO2I/YyhiKS5iZWZvcmUoYSk6YyhkKS5hcHBlbmQoYSl9KX1lbHNlIHJldHVybiB0aGlz
LnB1c2hTdGFjayhjKGMuaXNGdW5jdGlvbihhKT9hKCk6YSksInJlcGxhY2VXaXRoIixhKX0sZGV0
YWNoOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnJlbW92ZShhLHRydWUpfSxkb21NYW5pcDpmdW5j
dGlvbihhLGIsZCl7ZnVuY3Rpb24gZih1KXtyZXR1cm4gYy5ub2RlTmFtZSh1LCJ0YWJsZSIpP3Uu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fAp1LmFwcGVuZENoaWxkKHUub3duZXJE
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTp1fXZhciBlLGosaT1hWzBdLG89W10saztp
ZighYy5zdXBwb3J0LmNoZWNrQ2xvbmUmJmFyZ3VtZW50cy5sZW5ndGg9PT0zJiZ0eXBlb2YgaT09
PSJzdHJpbmciJiZ1YS50ZXN0KGkpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMp
LmRvbU1hbmlwKGEsYixkLHRydWUpfSk7aWYoYy5pc0Z1bmN0aW9uKGkpKXJldHVybiB0aGlzLmVh
Y2goZnVuY3Rpb24odSl7dmFyIHo9Yyh0aGlzKTthWzBdPWkuY2FsbCh0aGlzLHUsYj96Lmh0bWwo
KTp3KTt6LmRvbU1hbmlwKGEsYixkKX0pO2lmKHRoaXNbMF0pe2U9aSYmaS5wYXJlbnROb2RlO2U9
Yy5zdXBwb3J0LnBhcmVudE5vZGUmJmUmJmUubm9kZVR5cGU9PT0xMSYmZS5jaGlsZE5vZGVzLmxl
bmd0aD09PXRoaXMubGVuZ3RoP3tmcmFnbWVudDplfTpzYShhLHRoaXMsbyk7az1lLmZyYWdtZW50
O2lmKGo9ay5jaGlsZE5vZGVzLmxlbmd0aD09PQoxPyhrPWsuZmlyc3RDaGlsZCk6ay5maXJzdENo
aWxkKXtiPWImJmMubm9kZU5hbWUoaiwidHIiKTtmb3IodmFyIG49MCxyPXRoaXMubGVuZ3RoO248
cjtuKyspZC5jYWxsKGI/Zih0aGlzW25dLGopOnRoaXNbbl0sbj4wfHxlLmNhY2hlYWJsZXx8dGhp
cy5sZW5ndGg+MT9rLmNsb25lTm9kZSh0cnVlKTprKX1vLmxlbmd0aCYmYy5lYWNoKG8sUWEpfXJl
dHVybiB0aGlzfX0pO2MuZnJhZ21lbnRzPXt9O2MuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJl
cGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVy
IixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7Yy5mblthXT1mdW5jdGlv
bihkKXt2YXIgZj1bXTtkPWMoZCk7dmFyIGU9dGhpcy5sZW5ndGg9PT0xJiZ0aGlzWzBdLnBhcmVu
dE5vZGU7aWYoZSYmZS5ub2RlVHlwZT09PTExJiZlLmNoaWxkTm9kZXMubGVuZ3RoPT09MSYmZC5s
ZW5ndGg9PT0xKXtkW2JdKHRoaXNbMF0pOwpyZXR1cm4gdGhpc31lbHNle2U9MDtmb3IodmFyIGo9
ZC5sZW5ndGg7ZTxqO2UrKyl7dmFyIGk9KGU+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgp
O2MuZm5bYl0uYXBwbHkoYyhkW2VdKSxpKTtmPWYuY29uY2F0KGkpfXJldHVybiB0aGlzLnB1c2hT
dGFjayhmLGEsZC5zZWxlY3Rvcil9fX0pO2MuZXh0ZW5kKHtjbGVhbjpmdW5jdGlvbihhLGIsZCxm
KXtiPWJ8fHM7aWYodHlwZW9mIGIuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKWI9Yi5vd25l
ckRvY3VtZW50fHxiWzBdJiZiWzBdLm93bmVyRG9jdW1lbnR8fHM7Zm9yKHZhciBlPVtdLGo9MCxp
OyhpPWFbal0pIT1udWxsO2orKyl7aWYodHlwZW9mIGk9PT0ibnVtYmVyIilpKz0iIjtpZihpKXtp
Zih0eXBlb2YgaT09PSJzdHJpbmciJiYhamIudGVzdChpKSlpPWIuY3JlYXRlVGV4dE5vZGUoaSk7
ZWxzZSBpZih0eXBlb2YgaT09PSJzdHJpbmciKXtpPWkucmVwbGFjZShLYSxNYSk7dmFyIG89KExh
LmV4ZWMoaSl8fFsiIiwKIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGs9RltvXXx8Ri5fZGVmYXVsdCxu
PWtbMF0scj1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2ZvcihyLmlubmVySFRNTD1rWzFdK2kra1sy
XTtuLS07KXI9ci5sYXN0Q2hpbGQ7aWYoIWMuc3VwcG9ydC50Ym9keSl7bj1pYi50ZXN0KGkpO289
bz09PSJ0YWJsZSImJiFuP3IuZmlyc3RDaGlsZCYmci5maXJzdENoaWxkLmNoaWxkTm9kZXM6a1sx
XT09PSI8dGFibGU+IiYmIW4/ci5jaGlsZE5vZGVzOltdO2ZvcihrPW8ubGVuZ3RoLTE7az49MDst
LWspYy5ub2RlTmFtZShvW2tdLCJ0Ym9keSIpJiYhb1trXS5jaGlsZE5vZGVzLmxlbmd0aCYmb1tr
XS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9ba10pfSFjLnN1cHBvcnQubGVhZGluZ1doaXRlc3Bh
Y2UmJlYudGVzdChpKSYmci5pbnNlcnRCZWZvcmUoYi5jcmVhdGVUZXh0Tm9kZShWLmV4ZWMoaSlb
MF0pLHIuZmlyc3RDaGlsZCk7aT1yLmNoaWxkTm9kZXN9aWYoaS5ub2RlVHlwZSllLnB1c2goaSk7
ZWxzZSBlPQpjLm1lcmdlKGUsaSl9fWlmKGQpZm9yKGo9MDtlW2pdO2orKylpZihmJiZjLm5vZGVO
YW1lKGVbal0sInNjcmlwdCIpJiYoIWVbal0udHlwZXx8ZVtqXS50eXBlLnRvTG93ZXJDYXNlKCk9
PT0idGV4dC9qYXZhc2NyaXB0IikpZi5wdXNoKGVbal0ucGFyZW50Tm9kZT9lW2pdLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZVtqXSk6ZVtqXSk7ZWxzZXtlW2pdLm5vZGVUeXBlPT09MSYmZS5zcGxp
Y2UuYXBwbHkoZSxbaisxLDBdLmNvbmNhdChjLm1ha2VBcnJheShlW2pdLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJzY3JpcHQiKSkpKTtkLmFwcGVuZENoaWxkKGVbal0pfXJldHVybiBlfSxjbGVhbkRh
dGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGQsZj1jLmNhY2hlLGU9Yy5ldmVudC5zcGVjaWFsLGo9
Yy5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8saT0wLG87KG89YVtpXSkhPW51bGw7aSsrKWlmKGQ9b1tj
LmV4cGFuZG9dKXtiPWZbZF07aWYoYi5ldmVudHMpZm9yKHZhciBrIGluIGIuZXZlbnRzKWVba10/
CmMuZXZlbnQucmVtb3ZlKG8sayk6Q2EobyxrLGIuaGFuZGxlKTtpZihqKWRlbGV0ZSBvW2MuZXhw
YW5kb107ZWxzZSBvLnJlbW92ZUF0dHJpYnV0ZSYmby5yZW1vdmVBdHRyaWJ1dGUoYy5leHBhbmRv
KTtkZWxldGUgZltkXX19fSk7dmFyIGtiPS96LT9pbmRleHxmb250LT93ZWlnaHR8b3BhY2l0eXx6
b29tfGxpbmUtP2hlaWdodC9pLE5hPS9hbHBoYVwoW14pXSpcKS8sT2E9L29wYWNpdHk9KFteKV0q
KS8saGE9L2Zsb2F0L2ksaWE9Ly0oW2Etel0pL2lnLGxiPS8oW0EtWl0pL2csbWI9L14tP1xkKyg/
OnB4KT8kL2ksbmI9L14tP1xkLyxvYj17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJo
aWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0scGI9WyJMZWZ0IiwiUmlnaHQiXSxxYj1bIlRvcCIsIkJv
dHRvbSJdLHJiPXMuZGVmYXVsdFZpZXcmJnMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSxQ
YT1jLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCIsamE9CmZ1bmN0aW9u
KGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX07Yy5mbi5jc3M9ZnVuY3Rpb24oYSxiKXtyZXR1
cm4gWCh0aGlzLGEsYix0cnVlLGZ1bmN0aW9uKGQsZixlKXtpZihlPT09dylyZXR1cm4gYy5jdXJD
U1MoZCxmKTtpZih0eXBlb2YgZT09PSJudW1iZXIiJiYha2IudGVzdChmKSllKz0icHgiO2Muc3R5
bGUoZCxmLGUpfSl9O2MuZXh0ZW5kKHtzdHlsZTpmdW5jdGlvbihhLGIsZCl7aWYoIWF8fGEubm9k
ZVR5cGU9PT0zfHxhLm5vZGVUeXBlPT09OClyZXR1cm4gdztpZigoYj09PSJ3aWR0aCJ8fGI9PT0i
aGVpZ2h0IikmJnBhcnNlRmxvYXQoZCk8MClkPXc7dmFyIGY9YS5zdHlsZXx8YSxlPWQhPT13O2lm
KCFjLnN1cHBvcnQub3BhY2l0eSYmYj09PSJvcGFjaXR5Iil7aWYoZSl7Zi56b29tPTE7Yj1wYXJz
ZUludChkLDEwKSsiIj09PSJOYU4iPyIiOiJhbHBoYShvcGFjaXR5PSIrZCoxMDArIikiO2E9Zi5m
aWx0ZXJ8fGMuY3VyQ1NTKGEsImZpbHRlciIpfHwiIjtmLmZpbHRlcj0KTmEudGVzdChhKT9hLnJl
cGxhY2UoTmEsYik6Yn1yZXR1cm4gZi5maWx0ZXImJmYuZmlsdGVyLmluZGV4T2YoIm9wYWNpdHk9
Iik+PTA/cGFyc2VGbG9hdChPYS5leGVjKGYuZmlsdGVyKVsxXSkvMTAwKyIiOiIifWlmKGhhLnRl
c3QoYikpYj1QYTtiPWIucmVwbGFjZShpYSxqYSk7aWYoZSlmW2JdPWQ7cmV0dXJuIGZbYl19LGNz
czpmdW5jdGlvbihhLGIsZCxmKXtpZihiPT09IndpZHRoInx8Yj09PSJoZWlnaHQiKXt2YXIgZSxq
PWI9PT0id2lkdGgiP3BiOnFiO2Z1bmN0aW9uIGkoKXtlPWI9PT0id2lkdGgiP2Eub2Zmc2V0V2lk
dGg6YS5vZmZzZXRIZWlnaHQ7ZiE9PSJib3JkZXIiJiZjLmVhY2goaixmdW5jdGlvbigpe2Z8fChl
LT1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwKTtpZihmPT09
Im1hcmdpbiIpZSs9cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHww
O2Vsc2UgZS09cGFyc2VGbG9hdChjLmN1ckNTUyhhLAoiYm9yZGVyIit0aGlzKyJXaWR0aCIsdHJ1
ZSkpfHwwfSl9YS5vZmZzZXRXaWR0aCE9PTA/aSgpOmMuc3dhcChhLG9iLGkpO3JldHVybiBNYXRo
Lm1heCgwLE1hdGgucm91bmQoZSkpfXJldHVybiBjLmN1ckNTUyhhLGIsZCl9LGN1ckNTUzpmdW5j
dGlvbihhLGIsZCl7dmFyIGYsZT1hLnN0eWxlO2lmKCFjLnN1cHBvcnQub3BhY2l0eSYmYj09PSJv
cGFjaXR5IiYmYS5jdXJyZW50U3R5bGUpe2Y9T2EudGVzdChhLmN1cnJlbnRTdHlsZS5maWx0ZXJ8
fCIiKT9wYXJzZUZsb2F0KFJlZ0V4cC4kMSkvMTAwKyIiOiIiO3JldHVybiBmPT09IiI/IjEiOmZ9
aWYoaGEudGVzdChiKSliPVBhO2lmKCFkJiZlJiZlW2JdKWY9ZVtiXTtlbHNlIGlmKHJiKXtpZiho
YS50ZXN0KGIpKWI9ImZsb2F0IjtiPWIucmVwbGFjZShsYiwiLSQxIikudG9Mb3dlckNhc2UoKTtl
PWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztpZighZSlyZXR1cm4gbnVsbDtpZihhPWUuZ2V0
Q29tcHV0ZWRTdHlsZShhLG51bGwpKWY9CmEuZ2V0UHJvcGVydHlWYWx1ZShiKTtpZihiPT09Im9w
YWNpdHkiJiZmPT09IiIpZj0iMSJ9ZWxzZSBpZihhLmN1cnJlbnRTdHlsZSl7ZD1iLnJlcGxhY2Uo
aWEsamEpO2Y9YS5jdXJyZW50U3R5bGVbYl18fGEuY3VycmVudFN0eWxlW2RdO2lmKCFtYi50ZXN0
KGYpJiZuYi50ZXN0KGYpKXtiPWUubGVmdDt2YXIgaj1hLnJ1bnRpbWVTdHlsZS5sZWZ0O2EucnVu
dGltZVN0eWxlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdDtlLmxlZnQ9ZD09PSJmb250U2l6ZSI/
IjFlbSI6Znx8MDtmPWUucGl4ZWxMZWZ0KyJweCI7ZS5sZWZ0PWI7YS5ydW50aW1lU3R5bGUubGVm
dD1qfX1yZXR1cm4gZn0sc3dhcDpmdW5jdGlvbihhLGIsZCl7dmFyIGY9e307Zm9yKHZhciBlIGlu
IGIpe2ZbZV09YS5zdHlsZVtlXTthLnN0eWxlW2VdPWJbZV19ZC5jYWxsKGEpO2ZvcihlIGluIGIp
YS5zdHlsZVtlXT1mW2VdfX0pO2lmKGMuZXhwciYmYy5leHByLmZpbHRlcnMpe2MuZXhwci5maWx0
ZXJzLmhpZGRlbj1mdW5jdGlvbihhKXt2YXIgYj0KYS5vZmZzZXRXaWR0aCxkPWEub2Zmc2V0SGVp
Z2h0LGY9YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09InRyIjtyZXR1cm4gYj09PTAmJmQ9PT0w
JiYhZj90cnVlOmI+MCYmZD4wJiYhZj9mYWxzZTpjLmN1ckNTUyhhLCJkaXNwbGF5Iik9PT0ibm9u
ZSJ9O2MuZXhwci5maWx0ZXJzLnZpc2libGU9ZnVuY3Rpb24oYSl7cmV0dXJuIWMuZXhwci5maWx0
ZXJzLmhpZGRlbihhKX19dmFyIHNiPUooKSx0Yj0vPHNjcmlwdCgufFxzKSo/XC9zY3JpcHQ+L2dp
LHViPS9zZWxlY3R8dGV4dGFyZWEvaSx2Yj0vY29sb3J8ZGF0ZXxkYXRldGltZXxlbWFpbHxoaWRk
ZW58bW9udGh8bnVtYmVyfHBhc3N3b3JkfHJhbmdlfHNlYXJjaHx0ZWx8dGV4dHx0aW1lfHVybHx3
ZWVrL2ksTj0vPVw/KCZ8JCkvLGthPS9cPy8sd2I9LyhcP3wmKV89Lio/KCZ8JCkvLHhiPS9eKFx3
KzopP1wvXC8oW15cLz8jXSspLyx5Yj0vJTIwL2csemI9Yy5mbi5sb2FkO2MuZm4uZXh0ZW5kKHts
b2FkOmZ1bmN0aW9uKGEsYixkKXtpZih0eXBlb2YgYSE9PQoic3RyaW5nIilyZXR1cm4gemIuY2Fs
bCh0aGlzLGEpO2Vsc2UgaWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBmPWEuaW5kZXhP
ZigiICIpO2lmKGY+PTApe3ZhciBlPWEuc2xpY2UoZixhLmxlbmd0aCk7YT1hLnNsaWNlKDAsZil9
Zj0iR0VUIjtpZihiKWlmKGMuaXNGdW5jdGlvbihiKSl7ZD1iO2I9bnVsbH1lbHNlIGlmKHR5cGVv
ZiBiPT09Im9iamVjdCIpe2I9Yy5wYXJhbShiLGMuYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsKTtm
PSJQT1NUIn12YXIgaj10aGlzO2MuYWpheCh7dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixk
YXRhOmIsY29tcGxldGU6ZnVuY3Rpb24oaSxvKXtpZihvPT09InN1Y2Nlc3MifHxvPT09Im5vdG1v
ZGlmaWVkIilqLmh0bWwoZT9jKCI8ZGl2IC8+IikuYXBwZW5kKGkucmVzcG9uc2VUZXh0LnJlcGxh
Y2UodGIsIiIpKS5maW5kKGUpOmkucmVzcG9uc2VUZXh0KTtkJiZqLmVhY2goZCxbaS5yZXNwb25z
ZVRleHQsbyxpXSl9fSk7cmV0dXJuIHRoaXN9LApzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4g
Yy5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigp
e3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzP2MubWFrZUFy
cmF5KHRoaXMuZWxlbWVudHMpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5u
YW1lJiYhdGhpcy5kaXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8dWIudGVzdCh0aGlzLm5vZGVOYW1l
KXx8dmIudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihhLGIpe2E9Yyh0aGlzKS52YWwo
KTtyZXR1cm4gYT09bnVsbD9udWxsOmMuaXNBcnJheShhKT9jLm1hcChhLGZ1bmN0aW9uKGQpe3Jl
dHVybntuYW1lOmIubmFtZSx2YWx1ZTpkfX0pOntuYW1lOmIubmFtZSx2YWx1ZTphfX0pLmdldCgp
fX0pO2MuZWFjaCgiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJyb3IgYWph
eFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCIgIiksCmZ1bmN0aW9uKGEsYil7Yy5mbltiXT1mdW5j
dGlvbihkKXtyZXR1cm4gdGhpcy5iaW5kKGIsZCl9fSk7Yy5leHRlbmQoe2dldDpmdW5jdGlvbihh
LGIsZCxmKXtpZihjLmlzRnVuY3Rpb24oYikpe2Y9Znx8ZDtkPWI7Yj1udWxsfXJldHVybiBjLmFq
YXgoe3R5cGU6IkdFVCIsdXJsOmEsZGF0YTpiLHN1Y2Nlc3M6ZCxkYXRhVHlwZTpmfSl9LGdldFNj
cmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBjLmdldChhLG51bGwsYiwic2NyaXB0Iil9LGdldEpT
T046ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBjLmdldChhLGIsZCwianNvbiIpfSxwb3N0OmZ1bmN0
aW9uKGEsYixkLGYpe2lmKGMuaXNGdW5jdGlvbihiKSl7Zj1mfHxkO2Q9YjtiPXt9fXJldHVybiBj
LmFqYXgoe3R5cGU6IlBPU1QiLHVybDphLGRhdGE6YixzdWNjZXNzOmQsZGF0YVR5cGU6Zn0pfSxh
amF4U2V0dXA6ZnVuY3Rpb24oYSl7Yy5leHRlbmQoYy5hamF4U2V0dGluZ3MsYSl9LGFqYXhTZXR0
aW5nczp7dXJsOmxvY2F0aW9uLmhyZWYsCmdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5
cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxh
c3luYzp0cnVlLHhocjpBLlhNTEh0dHBSZXF1ZXN0JiYoQS5sb2NhdGlvbi5wcm90b2NvbCE9PSJm
aWxlOiJ8fCFBLkFjdGl2ZVhPYmplY3QpP2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBBLlhNTEh0dHBS
ZXF1ZXN0fTpmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEEuQWN0aXZlWE9iamVjdCgiTWljcm9z
b2Z0LlhNTEhUVFAiKX1jYXRjaChhKXt9fSxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwg
dGV4dC94bWwiLGh0bWw6InRleHQvaHRtbCIsc2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxp
Y2F0aW9uL2phdmFzY3JpcHQiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlw
dCIsdGV4dDoidGV4dC9wbGFpbiIsX2RlZmF1bHQ6IiovKiJ9fSxsYXN0TW9kaWZpZWQ6e30sZXRh
Zzp7fSxhamF4OmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtlLnN1Y2Nlc3MmJgplLnN1Y2Nlc3Mu
Y2FsbChrLG8saSx4KTtlLmdsb2JhbCYmZigiYWpheFN1Y2Nlc3MiLFt4LGVdKX1mdW5jdGlvbiBk
KCl7ZS5jb21wbGV0ZSYmZS5jb21wbGV0ZS5jYWxsKGsseCxpKTtlLmdsb2JhbCYmZigiYWpheENv
bXBsZXRlIixbeCxlXSk7ZS5nbG9iYWwmJiEtLWMuYWN0aXZlJiZjLmV2ZW50LnRyaWdnZXIoImFq
YXhTdG9wIil9ZnVuY3Rpb24gZihxLHApeyhlLmNvbnRleHQ/YyhlLmNvbnRleHQpOmMuZXZlbnQp
LnRyaWdnZXIocSxwKX12YXIgZT1jLmV4dGVuZCh0cnVlLHt9LGMuYWpheFNldHRpbmdzLGEpLGos
aSxvLGs9YSYmYS5jb250ZXh0fHxlLG49ZS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoZS5kYXRhJiZl
LnByb2Nlc3NEYXRhJiZ0eXBlb2YgZS5kYXRhIT09InN0cmluZyIpZS5kYXRhPWMucGFyYW0oZS5k
YXRhLGUudHJhZGl0aW9uYWwpO2lmKGUuZGF0YVR5cGU9PT0ianNvbnAiKXtpZihuPT09IkdFVCIp
Ti50ZXN0KGUudXJsKXx8KGUudXJsKz0oa2EudGVzdChlLnVybCk/CiImIjoiPyIpKyhlLmpzb25w
fHwiY2FsbGJhY2siKSsiPT8iKTtlbHNlIGlmKCFlLmRhdGF8fCFOLnRlc3QoZS5kYXRhKSllLmRh
dGE9KGUuZGF0YT9lLmRhdGErIiYiOiIiKSsoZS5qc29ucHx8ImNhbGxiYWNrIikrIj0/IjtlLmRh
dGFUeXBlPSJqc29uIn1pZihlLmRhdGFUeXBlPT09Impzb24iJiYoZS5kYXRhJiZOLnRlc3QoZS5k
YXRhKXx8Ti50ZXN0KGUudXJsKSkpe2o9ZS5qc29ucENhbGxiYWNrfHwianNvbnAiK3NiKys7aWYo
ZS5kYXRhKWUuZGF0YT0oZS5kYXRhKyIiKS5yZXBsYWNlKE4sIj0iK2orIiQxIik7ZS51cmw9ZS51
cmwucmVwbGFjZShOLCI9IitqKyIkMSIpO2UuZGF0YVR5cGU9InNjcmlwdCI7QVtqXT1BW2pdfHxm
dW5jdGlvbihxKXtvPXE7YigpO2QoKTtBW2pdPXc7dHJ5e2RlbGV0ZSBBW2pdfWNhdGNoKHApe316
JiZ6LnJlbW92ZUNoaWxkKEMpfX1pZihlLmRhdGFUeXBlPT09InNjcmlwdCImJmUuY2FjaGU9PT1u
dWxsKWUuY2FjaGU9ZmFsc2U7aWYoZS5jYWNoZT09PQpmYWxzZSYmbj09PSJHRVQiKXt2YXIgcj1K
KCksdT1lLnVybC5yZXBsYWNlKHdiLCIkMV89IityKyIkMiIpO2UudXJsPXUrKHU9PT1lLnVybD8o
a2EudGVzdChlLnVybCk/IiYiOiI/IikrIl89IityOiIiKX1pZihlLmRhdGEmJm49PT0iR0VUIill
LnVybCs9KGthLnRlc3QoZS51cmwpPyImIjoiPyIpK2UuZGF0YTtlLmdsb2JhbCYmIWMuYWN0aXZl
KysmJmMuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iik7cj0ocj14Yi5leGVjKGUudXJsKSkmJihy
WzFdJiZyWzFdIT09bG9jYXRpb24ucHJvdG9jb2x8fHJbMl0hPT1sb2NhdGlvbi5ob3N0KTtpZihl
LmRhdGFUeXBlPT09InNjcmlwdCImJm49PT0iR0VUIiYmcil7dmFyIHo9cy5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaGVhZCIpWzBdfHxzLmRvY3VtZW50RWxlbWVudCxDPXMuY3JlYXRlRWxlbWVudCgi
c2NyaXB0Iik7Qy5zcmM9ZS51cmw7aWYoZS5zY3JpcHRDaGFyc2V0KUMuY2hhcnNldD1lLnNjcmlw
dENoYXJzZXQ7aWYoIWope3ZhciBCPQpmYWxzZTtDLm9ubG9hZD1DLm9ucmVhZHlzdGF0ZWNoYW5n
ZT1mdW5jdGlvbigpe2lmKCFCJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT09
ImxvYWRlZCJ8fHRoaXMucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpKXtCPXRydWU7YigpO2QoKTtD
Lm9ubG9hZD1DLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsO3omJkMucGFyZW50Tm9kZSYmei5yZW1v
dmVDaGlsZChDKX19fXouaW5zZXJ0QmVmb3JlKEMsei5maXJzdENoaWxkKTtyZXR1cm4gd312YXIg
RT1mYWxzZSx4PWUueGhyKCk7aWYoeCl7ZS51c2VybmFtZT94Lm9wZW4obixlLnVybCxlLmFzeW5j
LGUudXNlcm5hbWUsZS5wYXNzd29yZCk6eC5vcGVuKG4sZS51cmwsZS5hc3luYyk7dHJ5e2lmKGUu
ZGF0YXx8YSYmYS5jb250ZW50VHlwZSl4LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIs
ZS5jb250ZW50VHlwZSk7aWYoZS5pZk1vZGlmaWVkKXtjLmxhc3RNb2RpZmllZFtlLnVybF0mJngu
c2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLApjLmxhc3RNb2RpZmllZFtlLnVy
bF0pO2MuZXRhZ1tlLnVybF0mJnguc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsYy5l
dGFnW2UudXJsXSl9cnx8eC5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1M
SHR0cFJlcXVlc3QiKTt4LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsZS5kYXRhVHlwZSYmZS5h
Y2NlcHRzW2UuZGF0YVR5cGVdP2UuYWNjZXB0c1tlLmRhdGFUeXBlXSsiLCAqLyoiOmUuYWNjZXB0
cy5fZGVmYXVsdCl9Y2F0Y2goZ2Epe31pZihlLmJlZm9yZVNlbmQmJmUuYmVmb3JlU2VuZC5jYWxs
KGsseCxlKT09PWZhbHNlKXtlLmdsb2JhbCYmIS0tYy5hY3RpdmUmJmMuZXZlbnQudHJpZ2dlcigi
YWpheFN0b3AiKTt4LmFib3J0KCk7cmV0dXJuIGZhbHNlfWUuZ2xvYmFsJiZmKCJhamF4U2VuZCIs
W3gsZV0pO3ZhciBnPXgub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKHEpe2lmKCF4fHx4LnJl
YWR5U3RhdGU9PT0wfHxxPT09ImFib3J0Iil7RXx8CmQoKTtFPXRydWU7aWYoeCl4Lm9ucmVhZHlz
dGF0ZWNoYW5nZT1jLm5vb3B9ZWxzZSBpZighRSYmeCYmKHgucmVhZHlTdGF0ZT09PTR8fHE9PT0i
dGltZW91dCIpKXtFPXRydWU7eC5vbnJlYWR5c3RhdGVjaGFuZ2U9Yy5ub29wO2k9cT09PSJ0aW1l
b3V0Ij8idGltZW91dCI6IWMuaHR0cFN1Y2Nlc3MoeCk/ImVycm9yIjplLmlmTW9kaWZpZWQmJmMu
aHR0cE5vdE1vZGlmaWVkKHgsZS51cmwpPyJub3Rtb2RpZmllZCI6InN1Y2Nlc3MiO3ZhciBwO2lm
KGk9PT0ic3VjY2VzcyIpdHJ5e289Yy5odHRwRGF0YSh4LGUuZGF0YVR5cGUsZSl9Y2F0Y2godil7
aT0icGFyc2VyZXJyb3IiO3A9dn1pZihpPT09InN1Y2Nlc3MifHxpPT09Im5vdG1vZGlmaWVkIilq
fHxiKCk7ZWxzZSBjLmhhbmRsZUVycm9yKGUseCxpLHApO2QoKTtxPT09InRpbWVvdXQiJiZ4LmFi
b3J0KCk7aWYoZS5hc3luYyl4PW51bGx9fTt0cnl7dmFyIGg9eC5hYm9ydDt4LmFib3J0PWZ1bmN0
aW9uKCl7eCYmaC5jYWxsKHgpOwpnKCJhYm9ydCIpfX1jYXRjaChsKXt9ZS5hc3luYyYmZS50aW1l
b3V0PjAmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt4JiYhRSYmZygidGltZW91dCIpfSxlLnRpbWVv
dXQpO3RyeXt4LnNlbmQobj09PSJQT1NUInx8bj09PSJQVVQifHxuPT09IkRFTEVURSI/ZS5kYXRh
Om51bGwpfWNhdGNoKG0pe2MuaGFuZGxlRXJyb3IoZSx4LG51bGwsbSk7ZCgpfWUuYXN5bmN8fGco
KTtyZXR1cm4geH19LGhhbmRsZUVycm9yOmZ1bmN0aW9uKGEsYixkLGYpe2lmKGEuZXJyb3IpYS5l
cnJvci5jYWxsKGEuY29udGV4dHx8YSxiLGQsZik7aWYoYS5nbG9iYWwpKGEuY29udGV4dD9jKGEu
Y29udGV4dCk6Yy5ldmVudCkudHJpZ2dlcigiYWpheEVycm9yIixbYixhLGZdKX0sYWN0aXZlOjAs
aHR0cFN1Y2Nlc3M6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiFhLnN0YXR1cyYmbG9jYXRpb24ucHJv
dG9jb2w9PT0iZmlsZToifHxhLnN0YXR1cz49MjAwJiZhLnN0YXR1czwzMDB8fGEuc3RhdHVzPT09
MzA0fHxhLnN0YXR1cz09PQoxMjIzfHxhLnN0YXR1cz09PTB9Y2F0Y2goYil7fXJldHVybiBmYWxz
ZX0saHR0cE5vdE1vZGlmaWVkOmZ1bmN0aW9uKGEsYil7dmFyIGQ9YS5nZXRSZXNwb25zZUhlYWRl
cigiTGFzdC1Nb2RpZmllZCIpLGY9YS5nZXRSZXNwb25zZUhlYWRlcigiRXRhZyIpO2lmKGQpYy5s
YXN0TW9kaWZpZWRbYl09ZDtpZihmKWMuZXRhZ1tiXT1mO3JldHVybiBhLnN0YXR1cz09PTMwNHx8
YS5zdGF0dXM9PT0wfSxodHRwRGF0YTpmdW5jdGlvbihhLGIsZCl7dmFyIGY9YS5nZXRSZXNwb25z
ZUhlYWRlcigiY29udGVudC10eXBlIil8fCIiLGU9Yj09PSJ4bWwifHwhYiYmZi5pbmRleE9mKCJ4
bWwiKT49MDthPWU/YS5yZXNwb25zZVhNTDphLnJlc3BvbnNlVGV4dDtlJiZhLmRvY3VtZW50RWxl
bWVudC5ub2RlTmFtZT09PSJwYXJzZXJlcnJvciImJmMuZXJyb3IoInBhcnNlcmVycm9yIik7aWYo
ZCYmZC5kYXRhRmlsdGVyKWE9ZC5kYXRhRmlsdGVyKGEsYik7aWYodHlwZW9mIGE9PT0ic3RyaW5n
IilpZihiPT09CiJqc29uInx8IWImJmYuaW5kZXhPZigianNvbiIpPj0wKWE9Yy5wYXJzZUpTT04o
YSk7ZWxzZSBpZihiPT09InNjcmlwdCJ8fCFiJiZmLmluZGV4T2YoImphdmFzY3JpcHQiKT49MClj
Lmdsb2JhbEV2YWwoYSk7cmV0dXJuIGF9LHBhcmFtOmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gZChp
LG8pe2lmKGMuaXNBcnJheShvKSljLmVhY2gobyxmdW5jdGlvbihrLG4pe2J8fC9cW1xdJC8udGVz
dChpKT9mKGksbik6ZChpKyJbIisodHlwZW9mIG49PT0ib2JqZWN0Inx8Yy5pc0FycmF5KG4pP2s6
IiIpKyJdIixuKX0pO2Vsc2UhYiYmbyE9bnVsbCYmdHlwZW9mIG89PT0ib2JqZWN0Ij9jLmVhY2go
byxmdW5jdGlvbihrLG4pe2QoaSsiWyIraysiXSIsbil9KTpmKGksbyl9ZnVuY3Rpb24gZihpLG8p
e289Yy5pc0Z1bmN0aW9uKG8pP28oKTpvO2VbZS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChp
KSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG8pfXZhciBlPVtdO2lmKGI9PT13KWI9Yy5hamF4U2V0
dGluZ3MudHJhZGl0aW9uYWw7CmlmKGMuaXNBcnJheShhKXx8YS5qcXVlcnkpYy5lYWNoKGEsZnVu
Y3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKHZhciBqIGluIGEpZChq
LGFbal0pO3JldHVybiBlLmpvaW4oIiYiKS5yZXBsYWNlKHliLCIrIil9fSk7dmFyIGxhPXt9LEFi
PS90b2dnbGV8c2hvd3xoaWRlLyxCYj0vXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyxXLHZhPVtb
ImhlaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5n
Qm90dG9tIl0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdMZWZ0
IiwicGFkZGluZ1JpZ2h0Il0sWyJvcGFjaXR5Il1dO2MuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9u
KGEsYil7aWYoYXx8YT09PTApcmV0dXJuIHRoaXMuYW5pbWF0ZShLKCJzaG93IiwzKSxhLGIpO2Vs
c2V7YT0wO2ZvcihiPXRoaXMubGVuZ3RoO2E8YjthKyspe3ZhciBkPWMuZGF0YSh0aGlzW2FdLCJv
bGRkaXNwbGF5Iik7CnRoaXNbYV0uc3R5bGUuZGlzcGxheT1kfHwiIjtpZihjLmNzcyh0aGlzW2Fd
LCJkaXNwbGF5Iik9PT0ibm9uZSIpe2Q9dGhpc1thXS5ub2RlTmFtZTt2YXIgZjtpZihsYVtkXSlm
PWxhW2RdO2Vsc2V7dmFyIGU9YygiPCIrZCsiIC8+IikuYXBwZW5kVG8oImJvZHkiKTtmPWUuY3Nz
KCJkaXNwbGF5Iik7aWYoZj09PSJub25lIilmPSJibG9jayI7ZS5yZW1vdmUoKTtsYVtkXT1mfWMu
ZGF0YSh0aGlzW2FdLCJvbGRkaXNwbGF5IixmKX19YT0wO2ZvcihiPXRoaXMubGVuZ3RoO2E8Yjth
KyspdGhpc1thXS5zdHlsZS5kaXNwbGF5PWMuZGF0YSh0aGlzW2FdLCJvbGRkaXNwbGF5Iil8fCIi
O3JldHVybiB0aGlzfX0saGlkZTpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlz
LmFuaW1hdGUoSygiaGlkZSIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7
YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpOyFkJiZkIT09Im5vbmUiJiZj
LmRhdGEodGhpc1thXSwKIm9sZGRpc3BsYXkiLGMuY3NzKHRoaXNbYV0sImRpc3BsYXkiKSl9YT0w
O2ZvcihiPXRoaXMubGVuZ3RoO2E8YjthKyspdGhpc1thXS5zdHlsZS5kaXNwbGF5PSJub25lIjty
ZXR1cm4gdGhpc319LF90b2dnbGU6Yy5mbi50b2dnbGUsdG9nZ2xlOmZ1bmN0aW9uKGEsYil7dmFy
IGQ9dHlwZW9mIGE9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpJiZjLmlzRnVuY3Rpb24o
YikpdGhpcy5fdG9nZ2xlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlbHNlIGE9PW51bGx8fGQ/dGhp
cy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9ZD9hOmModGhpcykuaXMoIjpoaWRkZW4iKTtjKHRoaXMp
W2Y/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZShLKCJ0b2dnbGUiLDMpLGEsYik7cmV0
dXJuIHRoaXN9LGZhZGVUbzpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIHRoaXMuZmlsdGVyKCI6aGlk
ZGVuIikuY3NzKCJvcGFjaXR5IiwwKS5zaG93KCkuZW5kKCkuYW5pbWF0ZSh7b3BhY2l0eTpifSxh
LGQpfSwKYW5pbWF0ZTpmdW5jdGlvbihhLGIsZCxmKXt2YXIgZT1jLnNwZWVkKGIsZCxmKTtpZihj
LmlzRW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFjaChlLmNvbXBsZXRlKTtyZXR1cm4gdGhp
c1tlLnF1ZXVlPT09ZmFsc2U/ImVhY2giOiJxdWV1ZSJdKGZ1bmN0aW9uKCl7dmFyIGo9Yy5leHRl
bmQoe30sZSksaSxvPXRoaXMubm9kZVR5cGU9PT0xJiZjKHRoaXMpLmlzKCI6aGlkZGVuIiksaz10
aGlzO2ZvcihpIGluIGEpe3ZhciBuPWkucmVwbGFjZShpYSxqYSk7aWYoaSE9PW4pe2Fbbl09YVtp
XTtkZWxldGUgYVtpXTtpPW59aWYoYVtpXT09PSJoaWRlIiYmb3x8YVtpXT09PSJzaG93IiYmIW8p
cmV0dXJuIGouY29tcGxldGUuY2FsbCh0aGlzKTtpZigoaT09PSJoZWlnaHQifHxpPT09IndpZHRo
IikmJnRoaXMuc3R5bGUpe2ouZGlzcGxheT1jLmNzcyh0aGlzLCJkaXNwbGF5Iik7ai5vdmVyZmxv
dz10aGlzLnN0eWxlLm92ZXJmbG93fWlmKGMuaXNBcnJheShhW2ldKSl7KGouc3BlY2lhbEVhc2lu
Zz0Kai5zcGVjaWFsRWFzaW5nfHx7fSlbaV09YVtpXVsxXTthW2ldPWFbaV1bMF19fWlmKGoub3Zl
cmZsb3chPW51bGwpdGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtqLmN1ckFuaW09Yy5leHRl
bmQoe30sYSk7Yy5lYWNoKGEsZnVuY3Rpb24ocix1KXt2YXIgej1uZXcgYy5meChrLGoscik7aWYo
QWIudGVzdCh1KSl6W3U9PT0idG9nZ2xlIj9vPyJzaG93IjoiaGlkZSI6dV0oYSk7ZWxzZXt2YXIg
Qz1CYi5leGVjKHUpLEI9ei5jdXIodHJ1ZSl8fDA7aWYoQyl7dT1wYXJzZUZsb2F0KENbMl0pO3Zh
ciBFPUNbM118fCJweCI7aWYoRSE9PSJweCIpe2suc3R5bGVbcl09KHV8fDEpK0U7Qj0odXx8MSkv
ei5jdXIodHJ1ZSkqQjtrLnN0eWxlW3JdPUIrRX1pZihDWzFdKXU9KENbMV09PT0iLT0iPy0xOjEp
KnUrQjt6LmN1c3RvbShCLHUsRSl9ZWxzZSB6LmN1c3RvbShCLHUsIiIpfX0pO3JldHVybiB0cnVl
fSl9LHN0b3A6ZnVuY3Rpb24oYSxiKXt2YXIgZD1jLnRpbWVyczthJiZ0aGlzLnF1ZXVlKFtdKTsK
dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zm9yKHZhciBmPWQubGVuZ3RoLTE7Zj49MDtmLS0paWYoZFtm
XS5lbGVtPT09dGhpcyl7YiYmZFtmXSh0cnVlKTtkLnNwbGljZShmLDEpfX0pO2J8fHRoaXMuZGVx
dWV1ZSgpO3JldHVybiB0aGlzfX0pO2MuZWFjaCh7c2xpZGVEb3duOksoInNob3ciLDEpLHNsaWRl
VXA6SygiaGlkZSIsMSksc2xpZGVUb2dnbGU6SygidG9nZ2xlIiwxKSxmYWRlSW46e29wYWNpdHk6
InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn19LGZ1bmN0aW9uKGEsYil7Yy5mblthXT1m
dW5jdGlvbihkLGYpe3JldHVybiB0aGlzLmFuaW1hdGUoYixkLGYpfX0pO2MuZXh0ZW5kKHtzcGVl
ZDpmdW5jdGlvbihhLGIsZCl7dmFyIGY9YSYmdHlwZW9mIGE9PT0ib2JqZWN0Ij9hOntjb21wbGV0
ZTpkfHwhZCYmYnx8Yy5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmQmJmJ8fGIm
JiFjLmlzRnVuY3Rpb24oYikmJmJ9O2YuZHVyYXRpb249Yy5meC5vZmY/MDp0eXBlb2YgZi5kdXJh
dGlvbj09PQoibnVtYmVyIj9mLmR1cmF0aW9uOmMuZnguc3BlZWRzW2YuZHVyYXRpb25dfHxjLmZ4
LnNwZWVkcy5fZGVmYXVsdDtmLm9sZD1mLmNvbXBsZXRlO2YuY29tcGxldGU9ZnVuY3Rpb24oKXtm
LnF1ZXVlIT09ZmFsc2UmJmModGhpcykuZGVxdWV1ZSgpO2MuaXNGdW5jdGlvbihmLm9sZCkmJmYu
b2xkLmNhbGwodGhpcyl9O3JldHVybiBmfSxlYXNpbmc6e2xpbmVhcjpmdW5jdGlvbihhLGIsZCxm
KXtyZXR1cm4gZCtmKmF9LHN3aW5nOmZ1bmN0aW9uKGEsYixkLGYpe3JldHVybigtTWF0aC5jb3Mo
YSpNYXRoLlBJKS8yKzAuNSkqZitkfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKGEsYixkKXt0aGlz
Lm9wdGlvbnM9Yjt0aGlzLmVsZW09YTt0aGlzLnByb3A9ZDtpZighYi5vcmlnKWIub3JpZz17fX19
KTtjLmZ4LnByb3RvdHlwZT17dXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLnN0ZXAmJnRo
aXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpOyhjLmZ4LnN0ZXBb
dGhpcy5wcm9wXXx8CmMuZnguc3RlcC5fZGVmYXVsdCkodGhpcyk7aWYoKHRoaXMucHJvcD09PSJo
ZWlnaHQifHx0aGlzLnByb3A9PT0id2lkdGgiKSYmdGhpcy5lbGVtLnN0eWxlKXRoaXMuZWxlbS5z
dHlsZS5kaXNwbGF5PSJibG9jayJ9LGN1cjpmdW5jdGlvbihhKXtpZih0aGlzLmVsZW1bdGhpcy5w
cm9wXSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3Bd
PT1udWxsKSlyZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF07cmV0dXJuKGE9cGFyc2VGbG9hdChj
LmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wLGEpKSkmJmE+LTEwMDAwP2E6cGFyc2VGbG9hdChjLmN1
ckNTUyh0aGlzLmVsZW0sdGhpcy5wcm9wKSl8fDB9LGN1c3RvbTpmdW5jdGlvbihhLGIsZCl7ZnVu
Y3Rpb24gZihqKXtyZXR1cm4gZS5zdGVwKGopfXRoaXMuc3RhcnRUaW1lPUooKTt0aGlzLnN0YXJ0
PWE7dGhpcy5lbmQ9Yjt0aGlzLnVuaXQ9ZHx8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMu
c3RhcnQ7CnRoaXMucG9zPXRoaXMuc3RhdGU9MDt2YXIgZT10aGlzO2YuZWxlbT10aGlzLmVsZW07
aWYoZigpJiZjLnRpbWVycy5wdXNoKGYpJiYhVylXPXNldEludGVydmFsKGMuZngudGljaywxMyl9
LHNob3c6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUodGhp
cy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlz
LnByb3A9PT0id2lkdGgifHx0aGlzLnByb3A9PT0iaGVpZ2h0Ij8xOjAsdGhpcy5jdXIoKSk7Yyh0
aGlzLmVsZW0pLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vcmlnW3RoaXMu
cHJvcF09Yy5zdHlsZSh0aGlzLmVsZW0sdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVl
O3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oYSl7dmFyIGI9SigpLGQ9
dHJ1ZTtpZihhfHxiPj10aGlzLm9wdGlvbnMuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMu
bm93PQp0aGlzLmVuZDt0aGlzLnBvcz10aGlzLnN0YXRlPTE7dGhpcy51cGRhdGUoKTt0aGlzLm9w
dGlvbnMuY3VyQW5pbVt0aGlzLnByb3BdPXRydWU7Zm9yKHZhciBmIGluIHRoaXMub3B0aW9ucy5j
dXJBbmltKWlmKHRoaXMub3B0aW9ucy5jdXJBbmltW2ZdIT09dHJ1ZSlkPWZhbHNlO2lmKGQpe2lm
KHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhp
cy5vcHRpb25zLm92ZXJmbG93O2E9Yy5kYXRhKHRoaXMuZWxlbSwib2xkZGlzcGxheSIpO3RoaXMu
ZWxlbS5zdHlsZS5kaXNwbGF5PWE/YTp0aGlzLm9wdGlvbnMuZGlzcGxheTtpZihjLmNzcyh0aGlz
LmVsZW0sImRpc3BsYXkiKT09PSJub25lIil0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxvY2si
fXRoaXMub3B0aW9ucy5oaWRlJiZjKHRoaXMuZWxlbSkuaGlkZSgpO2lmKHRoaXMub3B0aW9ucy5o
aWRlfHx0aGlzLm9wdGlvbnMuc2hvdylmb3IodmFyIGUgaW4gdGhpcy5vcHRpb25zLmN1ckFuaW0p
Yy5zdHlsZSh0aGlzLmVsZW0sCmUsdGhpcy5vcHRpb25zLm9yaWdbZV0pO3RoaXMub3B0aW9ucy5j
b21wbGV0ZS5jYWxsKHRoaXMuZWxlbSl9cmV0dXJuIGZhbHNlfWVsc2V7ZT1iLXRoaXMuc3RhcnRU
aW1lO3RoaXMuc3RhdGU9ZS90aGlzLm9wdGlvbnMuZHVyYXRpb247YT10aGlzLm9wdGlvbnMuZWFz
aW5nfHwoYy5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIik7dGhpcy5wb3M9Yy5lYXNpbmdb
dGhpcy5vcHRpb25zLnNwZWNpYWxFYXNpbmcmJnRoaXMub3B0aW9ucy5zcGVjaWFsRWFzaW5nW3Ro
aXMucHJvcF18fGFdKHRoaXMuc3RhdGUsZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlz
Lm5vdz10aGlzLnN0YXJ0Kyh0aGlzLmVuZC10aGlzLnN0YXJ0KSp0aGlzLnBvczt0aGlzLnVwZGF0
ZSgpfXJldHVybiB0cnVlfX07Yy5leHRlbmQoYy5meCx7dGljazpmdW5jdGlvbigpe2Zvcih2YXIg
YT1jLnRpbWVycyxiPTA7YjxhLmxlbmd0aDtiKyspYVtiXSgpfHxhLnNwbGljZShiLS0sMSk7YS5s
ZW5ndGh8fApjLmZ4LnN0b3AoKX0sc3RvcDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoVyk7Vz1u
dWxsfSxzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0
eTpmdW5jdGlvbihhKXtjLnN0eWxlKGEuZWxlbSwib3BhY2l0eSIsYS5ub3cpfSxfZGVmYXVsdDpm
dW5jdGlvbihhKXtpZihhLmVsZW0uc3R5bGUmJmEuZWxlbS5zdHlsZVthLnByb3BdIT1udWxsKWEu
ZWxlbS5zdHlsZVthLnByb3BdPShhLnByb3A9PT0id2lkdGgifHxhLnByb3A9PT0iaGVpZ2h0Ij9N
YXRoLm1heCgwLGEubm93KTphLm5vdykrYS51bml0O2Vsc2UgYS5lbGVtW2EucHJvcF09YS5ub3d9
fX0pO2lmKGMuZXhwciYmYy5leHByLmZpbHRlcnMpYy5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVu
Y3Rpb24oYSl7cmV0dXJuIGMuZ3JlcChjLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIu
ZWxlbX0pLmxlbmd0aH07Yy5mbi5vZmZzZXQ9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCJpbiBzLmRv
Y3VtZW50RWxlbWVudD8KZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXTtpZihhKXJldHVybiB0aGlz
LmVhY2goZnVuY3Rpb24oZSl7Yy5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxlKX0pO2lmKCFifHwh
Yi5vd25lckRvY3VtZW50KXJldHVybiBudWxsO2lmKGI9PT1iLm93bmVyRG9jdW1lbnQuYm9keSly
ZXR1cm4gYy5vZmZzZXQuYm9keU9mZnNldChiKTt2YXIgZD1iLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLGY9Yi5vd25lckRvY3VtZW50O2I9Zi5ib2R5O2Y9Zi5kb2N1bWVudEVsZW1lbnQ7cmV0dXJu
e3RvcDpkLnRvcCsoc2VsZi5wYWdlWU9mZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9s
bFRvcHx8Yi5zY3JvbGxUb3ApLShmLmNsaWVudFRvcHx8Yi5jbGllbnRUb3B8fDApLGxlZnQ6ZC5s
ZWZ0KyhzZWxmLnBhZ2VYT2Zmc2V0fHxjLnN1cHBvcnQuYm94TW9kZWwmJmYuc2Nyb2xsTGVmdHx8
Yi5zY3JvbGxMZWZ0KS0oZi5jbGllbnRMZWZ0fHxiLmNsaWVudExlZnR8fDApfX06ZnVuY3Rpb24o
YSl7dmFyIGI9CnRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKHIpe2Mub2Zm
c2V0LnNldE9mZnNldCh0aGlzLGEscil9KTtpZighYnx8IWIub3duZXJEb2N1bWVudClyZXR1cm4g
bnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZz
ZXQoYik7Yy5vZmZzZXQuaW5pdGlhbGl6ZSgpO3ZhciBkPWIub2Zmc2V0UGFyZW50LGY9YixlPWIu
b3duZXJEb2N1bWVudCxqLGk9ZS5kb2N1bWVudEVsZW1lbnQsbz1lLmJvZHk7Zj0oZT1lLmRlZmF1
bHRWaWV3KT9lLmdldENvbXB1dGVkU3R5bGUoYixudWxsKTpiLmN1cnJlbnRTdHlsZTtmb3IodmFy
IGs9Yi5vZmZzZXRUb3Asbj1iLm9mZnNldExlZnQ7KGI9Yi5wYXJlbnROb2RlKSYmYiE9PW8mJmIh
PT1pOyl7aWYoYy5vZmZzZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uJiZmLnBvc2l0aW9uPT09ImZp
eGVkIilicmVhaztqPWU/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7
CmstPWIuc2Nyb2xsVG9wO24tPWIuc2Nyb2xsTGVmdDtpZihiPT09ZCl7ays9Yi5vZmZzZXRUb3A7
bis9Yi5vZmZzZXRMZWZ0O2lmKGMub2Zmc2V0LmRvZXNOb3RBZGRCb3JkZXImJiEoYy5vZmZzZXQu
ZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMmJi9edChhYmxlfGR8aCkkL2kudGVzdChiLm5v
ZGVOYW1lKSkpe2srPXBhcnNlRmxvYXQoai5ib3JkZXJUb3BXaWR0aCl8fDA7bis9cGFyc2VGbG9h
dChqLmJvcmRlckxlZnRXaWR0aCl8fDB9Zj1kO2Q9Yi5vZmZzZXRQYXJlbnR9aWYoYy5vZmZzZXQu
c3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlJiZqLm92ZXJmbG93IT09InZpc2li
bGUiKXtrKz1wYXJzZUZsb2F0KGouYm9yZGVyVG9wV2lkdGgpfHwwO24rPXBhcnNlRmxvYXQoai5i
b3JkZXJMZWZ0V2lkdGgpfHwwfWY9an1pZihmLnBvc2l0aW9uPT09InJlbGF0aXZlInx8Zi5wb3Np
dGlvbj09PSJzdGF0aWMiKXtrKz1vLm9mZnNldFRvcDtuKz1vLm9mZnNldExlZnR9aWYoYy5vZmZz
ZXQuc3VwcG9ydHNGaXhlZFBvc2l0aW9uJiYKZi5wb3NpdGlvbj09PSJmaXhlZCIpe2srPU1hdGgu
bWF4KGkuc2Nyb2xsVG9wLG8uc2Nyb2xsVG9wKTtuKz1NYXRoLm1heChpLnNjcm9sbExlZnQsby5z
Y3JvbGxMZWZ0KX1yZXR1cm57dG9wOmssbGVmdDpufX07Yy5vZmZzZXQ9e2luaXRpYWxpemU6ZnVu
Y3Rpb24oKXt2YXIgYT1zLmJvZHksYj1zLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQsZixlLGo9cGFy
c2VGbG9hdChjLmN1ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtjLmV4dGVuZChiLnN0eWxl
LHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxtYXJnaW46MCxib3JkZXI6MCx3aWR0
aDoiMXB4IixoZWlnaHQ6IjFweCIsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2IuaW5uZXJIVE1MPSI8
ZGl2IHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9yZGVy
OjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDsnPjxkaXY+PC9k
aXY+PC9kaXY+PHRhYmxlIHN0eWxlPSdwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFy
Z2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFw
eDsnIGNlbGxwYWRkaW5nPScwJyBjZWxsc3BhY2luZz0nMCc+PHRyPjx0ZD48L3RkPjwvdHI+PC90
YWJsZT4iOwphLmluc2VydEJlZm9yZShiLGEuZmlyc3RDaGlsZCk7ZD1iLmZpcnN0Q2hpbGQ7Zj1k
LmZpcnN0Q2hpbGQ7ZT1kLm5leHRTaWJsaW5nLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDt0aGlzLmRv
ZXNOb3RBZGRCb3JkZXI9Zi5vZmZzZXRUb3AhPT01O3RoaXMuZG9lc0FkZEJvcmRlckZvclRhYmxl
QW5kQ2VsbHM9ZS5vZmZzZXRUb3A9PT01O2Yuc3R5bGUucG9zaXRpb249ImZpeGVkIjtmLnN0eWxl
LnRvcD0iMjBweCI7dGhpcy5zdXBwb3J0c0ZpeGVkUG9zaXRpb249Zi5vZmZzZXRUb3A9PT0yMHx8
Zi5vZmZzZXRUb3A9PT0xNTtmLnN0eWxlLnBvc2l0aW9uPWYuc3R5bGUudG9wPSIiO2Quc3R5bGUu
b3ZlcmZsb3c9ImhpZGRlbiI7ZC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJh
Y3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPWYub2Zmc2V0VG9wPT09LTU7dGhpcy5kb2Vz
Tm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldD1hLm9mZnNldFRvcCE9PWo7YS5yZW1vdmVDaGls
ZChiKTsKYy5vZmZzZXQuaW5pdGlhbGl6ZT1jLm5vb3B9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oYSl7
dmFyIGI9YS5vZmZzZXRUb3AsZD1hLm9mZnNldExlZnQ7Yy5vZmZzZXQuaW5pdGlhbGl6ZSgpO2lm
KGMub2Zmc2V0LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0KXtiKz1wYXJzZUZsb2F0
KGMuY3VyQ1NTKGEsIm1hcmdpblRvcCIsdHJ1ZSkpfHwwO2QrPXBhcnNlRmxvYXQoYy5jdXJDU1Mo
YSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwfXJldHVybnt0b3A6YixsZWZ0OmR9fSxzZXRPZmZzZXQ6
ZnVuY3Rpb24oYSxiLGQpe2lmKC9zdGF0aWMvLnRlc3QoYy5jdXJDU1MoYSwicG9zaXRpb24iKSkp
YS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBmPWMoYSksZT1mLm9mZnNldCgpLGo9cGFy
c2VJbnQoYy5jdXJDU1MoYSwidG9wIix0cnVlKSwxMCl8fDAsaT1wYXJzZUludChjLmN1ckNTUyhh
LCJsZWZ0Iix0cnVlKSwxMCl8fDA7aWYoYy5pc0Z1bmN0aW9uKGIpKWI9Yi5jYWxsKGEsCmQsZSk7
ZD17dG9wOmIudG9wLWUudG9wK2osbGVmdDpiLmxlZnQtZS5sZWZ0K2l9OyJ1c2luZyJpbiBiP2Iu
dXNpbmcuY2FsbChhLGQpOmYuY3NzKGQpfX07Yy5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9u
KCl7aWYoIXRoaXNbMF0pcmV0dXJuIG51bGw7dmFyIGE9dGhpc1swXSxiPXRoaXMub2Zmc2V0UGFy
ZW50KCksZD10aGlzLm9mZnNldCgpLGY9L15ib2R5fGh0bWwkL2kudGVzdChiWzBdLm5vZGVOYW1l
KT97dG9wOjAsbGVmdDowfTpiLm9mZnNldCgpO2QudG9wLT1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEs
Im1hcmdpblRvcCIsdHJ1ZSkpfHwwO2QubGVmdC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJtYXJn
aW5MZWZ0Iix0cnVlKSl8fDA7Zi50b3ArPXBhcnNlRmxvYXQoYy5jdXJDU1MoYlswXSwiYm9yZGVy
VG9wV2lkdGgiLHRydWUpKXx8MDtmLmxlZnQrPXBhcnNlRmxvYXQoYy5jdXJDU1MoYlswXSwiYm9y
ZGVyTGVmdFdpZHRoIix0cnVlKSl8fDA7cmV0dXJue3RvcDpkLnRvcC0KZi50b3AsbGVmdDpkLmxl
ZnQtZi5sZWZ0fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0
aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zmc2V0UGFyZW50fHxzLmJvZHk7YSYmIS9eYm9keXxodG1s
JC9pLnRlc3QoYS5ub2RlTmFtZSkmJmMuY3NzKGEsInBvc2l0aW9uIik9PT0ic3RhdGljIjspYT1h
Lm9mZnNldFBhcmVudDtyZXR1cm4gYX0pfX0pO2MuZWFjaChbIkxlZnQiLCJUb3AiXSxmdW5jdGlv
bihhLGIpe3ZhciBkPSJzY3JvbGwiK2I7Yy5mbltkXT1mdW5jdGlvbihmKXt2YXIgZT10aGlzWzBd
LGo7aWYoIWUpcmV0dXJuIG51bGw7aWYoZiE9PXcpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigp
e2lmKGo9d2EodGhpcykpai5zY3JvbGxUbyghYT9mOmMoaikuc2Nyb2xsTGVmdCgpLGE/ZjpjKGop
LnNjcm9sbFRvcCgpKTtlbHNlIHRoaXNbZF09Zn0pO2Vsc2UgcmV0dXJuKGo9d2EoZSkpPyJwYWdl
WE9mZnNldCJpbiBqP2pbYT8icGFnZVlPZmZzZXQiOgoicGFnZVhPZmZzZXQiXTpjLnN1cHBvcnQu
Ym94TW9kZWwmJmouZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W2RdfHxqLmRvY3VtZW50LmJvZHlb
ZF06ZVtkXX19KTtjLmVhY2goWyJIZWlnaHQiLCJXaWR0aCJdLGZ1bmN0aW9uKGEsYil7dmFyIGQ9
Yi50b0xvd2VyQ2FzZSgpO2MuZm5bImlubmVyIitiXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBd
P2MuY3NzKHRoaXNbMF0sZCxmYWxzZSwicGFkZGluZyIpOm51bGx9O2MuZm5bIm91dGVyIitiXT1m
dW5jdGlvbihmKXtyZXR1cm4gdGhpc1swXT9jLmNzcyh0aGlzWzBdLGQsZmFsc2UsZj8ibWFyZ2lu
IjoiYm9yZGVyIik6bnVsbH07Yy5mbltkXT1mdW5jdGlvbihmKXt2YXIgZT10aGlzWzBdO2lmKCFl
KXJldHVybiBmPT1udWxsP251bGw6dGhpcztpZihjLmlzRnVuY3Rpb24oZikpcmV0dXJuIHRoaXMu
ZWFjaChmdW5jdGlvbihqKXt2YXIgaT1jKHRoaXMpO2lbZF0oZi5jYWxsKHRoaXMsaixpW2RdKCkp
KX0pO3JldHVybiJzY3JvbGxUbyJpbgplJiZlLmRvY3VtZW50P2UuZG9jdW1lbnQuY29tcGF0TW9k
ZT09PSJDU1MxQ29tcGF0IiYmZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYl18
fGUuZG9jdW1lbnQuYm9keVsiY2xpZW50IitiXTplLm5vZGVUeXBlPT09OT9NYXRoLm1heChlLmRv
Y3VtZW50RWxlbWVudFsiY2xpZW50IitiXSxlLmJvZHlbInNjcm9sbCIrYl0sZS5kb2N1bWVudEVs
ZW1lbnRbInNjcm9sbCIrYl0sZS5ib2R5WyJvZmZzZXQiK2JdLGUuZG9jdW1lbnRFbGVtZW50WyJv
ZmZzZXQiK2JdKTpmPT09dz9jLmNzcyhlLGQpOnRoaXMuY3NzKGQsdHlwZW9mIGY9PT0ic3RyaW5n
Ij9mOmYrInB4Iil9fSk7QS5qUXVlcnk9QS4kPWN9KSh3aW5kb3cpOwpfEA90ZXh0L2phdmFzY3Jp
cHRVdXRmLThfEEBodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8x
LjQuMi9qcXVlcnkubWluLmpzTxEFO2JwbGlzdDAw1AECAwQFBnp7WCR2ZXJzaW9uWCRvYmplY3Rz
WSRhcmNoaXZlclQkdG9wEgABhqCvECYHCCIoKTAhMTJQUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdo
bG1xdVUkbnVsbN0JCgsMDQ4PEBESExQVFhcYGRobHB0eHxcgIVIkNlMkMTBSJDJSJDdSJDNTJDEx
UiQ4ViRjbGFzc1IkNFIkOVIkMFIkNVIkMYAHEAgQB4AIgAIQAIAigCWABYAjgAYQAdMjECQlJidX
TlMuYmFzZVtOUy5yZWxhdGl2ZYAAgASAA18QQGh0dHBzOi8vYWpheC5nb29nbGVhcGlzLmNvbS9h
amF4L2xpYnMvanF1ZXJ5LzEuNC4yL2pxdWVyeS5taW4uanPSKissLVokY2xhc3NuYW1lWCRjbGFz
c2VzVU5TVVJMoi4vVU5TVVJMWE5TT2JqZWN0I0G2xhfjM5YpEMjTMzQQNUJPV05TLmtleXNaTlMu
b2JqZWN0c6w2Nzg5Ojs8PT4/QEGACYAKgAuADIANgA6AD4AQgBGAEoATgBSsQ0RFRkdISUpLTE1O
gBWAFoAXgBiAGYAagBuAHIAdgB6AH4AggCFcQ29udGVudC1UeXBlU0FnZV8QEENvbnRlbnQtRW5j
b2RpbmdWU2VydmVyXxAQWC1YU1MtUHJvdGVjdGlvbldFeHBpcmVzXUNhY2hlLUNvbnRyb2xURGF0
ZV5Db250ZW50LUxlbmd0aF8QFlgtQ29udGVudC1UeXBlLU9wdGlvbnNUVmFyeV1MYXN0LU1vZGlm
aWVkXxAedGV4dC9qYXZhc2NyaXB0OyBjaGFyc2V0PVVURi04VjEyMTEzOFRnemlwVHNmZmVdMTsg
bW9kZT1ibG9ja18QHUZyaSwgMDcgRmViIDIwMTQgMTk6NTc6MzcgR01UXxAYcHVibGljLCBtYXgt
YWdlPTMxNTM2MDAwXxAdVGh1LCAwNyBGZWIgMjAxMyAxOTo1NzozNyBHTVRVMjQ2MDVXbm9zbmlm
Zl8QD0FjY2VwdC1FbmNvZGluZ18QHU1vbiwgMDIgQXByIDIwMTIgMTg6MjQ6MjggR01U0ioraWpf
EBNOU011dGFibGVEaWN0aW9uYXJ5o2lrL1xOU0RpY3Rpb25hcnkSAAEZ7tIQbm9wWU5TLnN0cmlu
Z4AkXxAPdGV4dC9qYXZhc2NyaXB00iorcnNfEA9OU011dGFibGVTdHJpbmejcnQvWE5TU3RyaW5n
0iordndfEBFOU0hUVFBVUkxSZXNwb25zZaN4eS9fEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJl
c3BvbnNlXxAPTlNLZXllZEFyY2hpdmVy0Xx9XxATV2ViUmVzb3VyY2VSZXNwb25zZYABAAgAEQAa
ACMALQAyADcAYABmAIEAhACIAIsAjgCRAJUAmACfAKIApQCoAKsArgCwALIAtAC2ALgAugC8AL4A
wADCAMQAxgDNANUA4QDjAOUA5wEqAS8BOgFDAUkBTAFSAVsBZAFmAW0BdQGAAY0BjwGRAZMBlQGX
AZkBmwGdAZ8BoQGjAaUBsgG0AbYBuAG6AbwBvgHAAcIBxAHGAcgBygHMAdkB3QHwAfcCCgISAiAC
JQI0Ak0CUgJgAoECiAKNApICoALAAtsC+wMBAwkDGwM7A0ADVgNaA2cDbANxA3sDfQOPA5QDpgOq
A7MDuAPMA9AD5APyBAQEBwQdAAAAAAAAAgEAAAAAAAAAfgAAAAAAAAAAAAAAAAAABB/UBgcJChES
ExRPEgABFdkvLyBDb3B5cmlnaHQgKEMpIDIwMTAgQWRhbSBCYXJ0aC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLy8KLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgovLwovLyAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCi8vIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi8vCi8vIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLy8gdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgov
LyBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
Ly8KLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQovLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi8vIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLy8gRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLy8gQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAovLyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgovLyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgovLyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLy8gTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWQovLyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKLy8gREFNQUdFLgp2YXIgQ09ERV9SRVZJRVdfVU5J
VFRFU1Q7CgooZnVuY3Rpb24oKSB7CiAgLyoqCiAgICogQ3JlYXRlIGEgbmV3IGZ1bmN0aW9uIHdp
dGggc29tZSBvZiBpdHMgYXJndWVtZW50cwogICAqIHByZS1maWxsZWQuCiAgICogVGFrZW4gZnJv
bSBnb29nLnBhcnRpYWwgaW4gdGhlIENsb3N1cmUgbGlicmFyeS4KICAgKiBAcGFyYW0ge0Z1bmN0
aW9ufSBmbiBBIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseS4KICAgKiBAcGFyYW0gey4uLip9
IHZhcl9hcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIHRoYXQgYXJlIHBhcnRpYWxseQogICAqICAg
ICBhcHBsaWVkIHRvIGZuLgogICAqIEByZXR1cm4geyFGdW5jdGlvbn0gQSBwYXJ0aWFsbHktYXBw
bGllZCBmb3JtIG9mIHRoZSBmdW5jdGlvbi4KICAgKi8KICBmdW5jdGlvbiBwYXJ0aWFsKGZuLCB2
YXJfYXJncykgewogICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1
bWVudHMsIDEpOwogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAvLyBQcmVwZW5kIHRoZSBi
b3VuZCBhcmd1bWVudHMgdG8gdGhlIGN1cnJlbnQgYXJndW1lbnRzLgogICAgICB2YXIgbmV3QXJn
cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7CiAgICAgIG5ld0FyZ3Mu
dW5zaGlmdC5hcHBseShuZXdBcmdzLCBhcmdzKTsKICAgICAgcmV0dXJuIGZuLmFwcGx5KHRoaXMs
IG5ld0FyZ3MpOwogICAgfTsKICB9OwoKICBmdW5jdGlvbiBkZXRlcm1pbmVBdHRhY2htZW50SUQo
KSB7CiAgICB0cnkgewogICAgICByZXR1cm4gL2lkPShcZCspLy5leGVjKHdpbmRvdy5sb2NhdGlv
bi5zZWFyY2gpWzFdCiAgICB9IGNhdGNoIChleCkgewogICAgICByZXR1cm47CiAgICB9CiAgfQoK
ICAvLyBBdHRlbXB0IHRvIGFjdGl2YXRlIG9ubHkgaW4gdGhlICJSZXZpZXcgUGF0Y2giIGNvbnRl
eHQuCiAgaWYgKHdpbmRvdy50b3AgIT0gd2luZG93KQogICAgcmV0dXJuOwoKICBpZiAoIUNPREVf
UkVWSUVXX1VOSVRURVNUICYmICF3aW5kb3cubG9jYXRpb24uc2VhcmNoLm1hdGNoKC9hY3Rpb249
cmV2aWV3LykKICAgICAgJiYgIXdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpLm1hdGNoKC9idWdz
XC53ZWJraXRcLm9yZ1wvUHJldHR5UGF0Y2gvKSkKICAgIHJldHVybjsKCiAgdmFyIGF0dGFjaG1l
bnRfaWQgPSBkZXRlcm1pbmVBdHRhY2htZW50SUQoKTsKICBpZiAoIWF0dGFjaG1lbnRfaWQpCiAg
ICBjb25zb2xlLmxvZygnTm8gYXR0YWNobWVudCBJRCcpOwoKICB2YXIgbWluTGVmdFNpZGVSYXRp
byA9IDEwOwogIHZhciBtYXhMZWZ0U2lkZVJhdGlvID0gOTA7CiAgdmFyIGZpbGVfZGlmZl9iZWlu
Z19yZXNpemVkID0gbnVsbDsKICB2YXIgZmlsZXMgPSB7fTsKICB2YXIgb3JpZ2luYWxfZmlsZV9j
b250ZW50cyA9IHt9OwogIHZhciBwYXRjaGVkX2ZpbGVfY29udGVudHMgPSB7fTsKICB2YXIgV0VC
S0lUX0JBU0VfRElSID0gIi8vc3ZuLndlYmtpdC5vcmcvcmVwb3NpdG9yeS93ZWJraXQvdHJ1bmsv
IjsKICB2YXIgU0lERV9CWV9TSURFX0RJRkZTX0tFWSA9ICdzaWRlYnlzaWRlZGlmZnMnOwogIHZh
ciBnX2Rpc3BsYXllZF9kcmFmdF9jb21tZW50cyA9IGZhbHNlOwogIHZhciBnX25leHRfbGluZV9p
ZCA9IDA7CiAgdmFyIEtFWV9DT0RFID0gewogICAgZG93bjogNDAsCiAgICBlbnRlcjogMTMsCiAg
ICBlc2NhcGU6IDI3LAogICAgajogNzQsCiAgICBrOiA3NSwKICAgIG46IDc4LAogICAgcDogODAs
CiAgICByOiA4MiwKICAgIHVwOiAzOAogIH0KCiAgZnVuY3Rpb24gaWRGb3JMaW5lKG51bWJlcikg
ewogICAgcmV0dXJuICdsaW5lJyArIG51bWJlcjsKICB9CgogIGZ1bmN0aW9uIGZvckVhY2hMaW5l
KGNhbGxiYWNrKSB7CiAgICB2YXIgaSA9IDA7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdfbmV4
dF9saW5lX2lkOyBpKyspIHsKICAgICAgdmFyIGxpbmUgPSAkKCcjJyArIGlkRm9yTGluZShpKSk7
CiAgICAgIGlmIChsaW5lWzBdKQogICAgICAgIGNhbGxiYWNrKGxpbmUpOwogICAgfQogIH0KCiAg
ZnVuY3Rpb24gaG92ZXJpZnkoKSB7CiAgICAkKHRoaXMpLmhvdmVyKGZ1bmN0aW9uKCkgewogICAg
ICAkKHRoaXMpLmFkZENsYXNzKCdob3QnKTsKICAgIH0sCiAgICBmdW5jdGlvbiAoKSB7CiAgICAg
ICQodGhpcykucmVtb3ZlQ2xhc3MoJ2hvdCcpOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBmaWxl
RGlmZkZvcihsaW5lKSB7CiAgICByZXR1cm4gJChsaW5lKS5wYXJlbnRzKCcuRmlsZURpZmYnKTsK
ICB9CgogIGZ1bmN0aW9uIGRpZmZTZWN0aW9uRm9yKGxpbmUpIHsKICAgIHJldHVybiAkKGxpbmUp
LnBhcmVudHMoJy5EaWZmU2VjdGlvbicpOwogIH0KCiAgZnVuY3Rpb24gYWN0aXZlQ29tbWVudEZv
cihsaW5lKSB7CiAgICAvLyBTY29wZSB0byB0aGUgZGlmZlNlY3Rpb24gYXMgYSBwZXJmb3JtYW5j
ZSBpbXByb3ZlbWVudC4KICAgIHJldHVybiAkKCd0ZXh0YXJlYVtkYXRhLWNvbW1lbnQtZm9yfj0i
JyArIGxpbmVbMF0uaWQgKyAnIl0nLCBmaWxlRGlmZkZvcihsaW5lKSk7CiAgfQoKICBmdW5jdGlv
biBwcmV2aW91c0NvbW1lbnRzRm9yKGxpbmUpIHsKICAgIC8vIFNjb3BlIHRvIHRoZSBkaWZmU2Vj
dGlvbiBhcyBhIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LgogICAgcmV0dXJuICQoJ2RpdltkYXRh
LWNvbW1lbnQtZm9yfj0iJyArIGxpbmVbMF0uaWQgKyAnIl0ucHJldmlvdXNDb21tZW50JywgZmls
ZURpZmZGb3IobGluZSkpOwogIH0KCiAgZnVuY3Rpb24gZmluZENvbW1lbnRQb3NpdGlvbkZvcihs
aW5lKSB7CiAgICB2YXIgcHJldmlvdXNfY29tbWVudHMgPSBwcmV2aW91c0NvbW1lbnRzRm9yKGxp
bmUpOwogICAgdmFyIG51bV9wcmV2aW91c19jb21tZW50cyA9IHByZXZpb3VzX2NvbW1lbnRzLnNp
emUoKTsKICAgIGlmIChudW1fcHJldmlvdXNfY29tbWVudHMpCiAgICAgIHJldHVybiAkKHByZXZp
b3VzX2NvbW1lbnRzW251bV9wcmV2aW91c19jb21tZW50cyAtIDFdKQogICAgcmV0dXJuIGxpbmU7
CiAgfQoKICBmdW5jdGlvbiBmaW5kQ29tbWVudEJsb2NrRm9yKGxpbmUpIHsKICAgIHZhciBjb21t
ZW50X2Jsb2NrID0gZmluZENvbW1lbnRQb3NpdGlvbkZvcihsaW5lKS5uZXh0KCk7CiAgICBpZiAo
IWNvbW1lbnRfYmxvY2suaGFzQ2xhc3MoJ2NvbW1lbnQnKSkKICAgICAgcmV0dXJuOwogICAgcmV0
dXJuIGNvbW1lbnRfYmxvY2s7CiAgfQoKICBmdW5jdGlvbiBpbnNlcnRDb21tZW50Rm9yKGxpbmUs
IGJsb2NrKSB7CiAgICBmaW5kQ29tbWVudFBvc2l0aW9uRm9yKGxpbmUpLmFmdGVyKGJsb2NrKTsK
ICB9CgogIGZ1bmN0aW9uIGFkZERyYWZ0Q29tbWVudChzdGFydF9saW5lX2lkLCBlbmRfbGluZV9p
ZCwgY29udGVudHMpIHsKICAgIHZhciBsaW5lID0gJCgnIycgKyBlbmRfbGluZV9pZCk7CiAgICB2
YXIgc3RhcnQgPSBudW1iZXJGcm9tKHN0YXJ0X2xpbmVfaWQpOwogICAgdmFyIGVuZCA9IG51bWJl
ckZyb20oZW5kX2xpbmVfaWQpOwogICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDw9IGVuZDsgaSsr
KSB7CiAgICAgIGFkZERhdGFDb21tZW50QmFzZUxpbmUoJCgnI2xpbmUnICsgaSksIGVuZF9saW5l
X2lkKTsKICAgIH0KCiAgICB2YXIgY29tbWVudF9ibG9jayA9IGNyZWF0ZUNvbW1lbnRGb3IobGlu
ZSk7CiAgICAkKGNvbW1lbnRfYmxvY2spLmNoaWxkcmVuKCd0ZXh0YXJlYScpLnZhbChjb250ZW50
cyk7CiAgICBmcmVlemVDb21tZW50KGNvbW1lbnRfYmxvY2spOwogIH0KCiAgZnVuY3Rpb24gZW5z
dXJlRHJhZnRDb21tZW50c0Rpc3BsYXllZCgpIHsKICAgIGlmIChnX2Rpc3BsYXllZF9kcmFmdF9j
b21tZW50cykKICAgICAgcmV0dXJuOwogICAgZ19kaXNwbGF5ZWRfZHJhZnRfY29tbWVudHMgPSB0
cnVlOwoKICAgIHZhciBjb21tZW50cyA9IGdfZHJhZnRDb21tZW50U2F2ZXIuc2F2ZWRfY29tbWVu
dHMoKTsKICAgIHZhciBlcnJvcnMgPSBbXTsKICAgICQoY29tbWVudHMuY29tbWVudHMpLmVhY2go
ZnVuY3Rpb24oKSB7CiAgICAgIHRyeSB7CiAgICAgICAgYWRkRHJhZnRDb21tZW50KHRoaXMuc3Rh
cnRfbGluZV9pZCwgdGhpcy5lbmRfbGluZV9pZCwgdGhpcy5jb250ZW50cyk7CiAgICAgIH0gY2F0
Y2ggKGUpIHsKICAgICAgICBlcnJvcnMucHVzaCh7J3N0YXJ0JzogdGhpcy5zdGFydF9saW5lX2lk
LCAnZW5kJzogdGhpcy5lbmRfbGluZV9pZCwgJ2NvbnRlbnRzJzogdGhpcy5jb250ZW50c30pOwog
ICAgICB9CiAgICB9KTsKICAgIAogICAgaWYgKGVycm9ycy5sZW5ndGgpIHsKICAgICAgY29uc29s
ZS5sb2coJ0RSQUZUIENPTU1FTlRTIFdJVEggRVJST1JTOicsIEpTT04uc3RyaW5naWZ5KGVycm9y
cykpOwogICAgICBhbGVydCgnU29tZSBkcmFmdCBjb21tZW50cyBmYWlsZWQgdG8gYmUgYWRkZWQu
IFNlZSB0aGUgY29uc29sZSB0byBtYW51YWxseSByZXNvbHZlLicpOwogICAgfQogICAgCiAgICB2
YXIgb3ZlcmFsbF9jb21tZW50cyA9IGNvbW1lbnRzWydvdmVyYWxsLWNvbW1lbnRzJ107CiAgICBp
ZiAob3ZlcmFsbF9jb21tZW50cykgewogICAgICBvcGVuT3ZlcmFsbENvbW1lbnRzKCk7CiAgICAg
ICQoJy5vdmVyYWxsQ29tbWVudHMgdGV4dGFyZWEnKS52YWwob3ZlcmFsbF9jb21tZW50cyk7CiAg
ICB9CiAgfQoKICBmdW5jdGlvbiBEcmFmdENvbW1lbnRTYXZlcihvcHRfYXR0YWNobWVudF9pZCwg
b3B0X2xvY2FsU3RvcmFnZSkgewogICAgdGhpcy5fYXR0YWNobWVudF9pZCA9IG9wdF9hdHRhY2ht
ZW50X2lkIHx8IGF0dGFjaG1lbnRfaWQ7CiAgICB0aGlzLl9sb2NhbFN0b3JhZ2UgPSBvcHRfbG9j
YWxTdG9yYWdlIHx8IGxvY2FsU3RvcmFnZTsKICAgIHRoaXMuX3NhdmVfY29tbWVudHMgPSB0cnVl
OwogIH0KCiAgRHJhZnRDb21tZW50U2F2ZXIucHJvdG90eXBlLl9qc29uID0gZnVuY3Rpb24oKSB7
CiAgICB2YXIgY29tbWVudHMgPSAkKCcuY29tbWVudCcpOwogICAgdmFyIGNvbW1lbnRfc3RvcmUg
PSBbXTsKICAgIGNvbW1lbnRzLmVhY2goZnVuY3Rpb24gKCkgewogICAgICB2YXIgZmlsZV9kaWZm
ID0gZmlsZURpZmZGb3IodGhpcyk7CiAgICAgIHZhciB0ZXh0YXJlYSA9ICQoJ3RleHRhcmVhJywg
dGhpcyk7CgogICAgICB2YXIgY29udGVudHMgPSB0ZXh0YXJlYS52YWwoKS50cmltKCk7CiAgICAg
IGlmICghY29udGVudHMpCiAgICAgICAgcmV0dXJuOwoKICAgICAgdmFyIGNvbW1lbnRfYmFzZV9s
aW5lID0gdGV4dGFyZWEuYXR0cignZGF0YS1jb21tZW50LWZvcicpOwogICAgICB2YXIgbGluZXMg
PSBjb250ZXh0TGluZXNGb3IoY29tbWVudF9iYXNlX2xpbmUsIGZpbGVfZGlmZik7CgogICAgICBj
b21tZW50X3N0b3JlLnB1c2goewogICAgICAgIHN0YXJ0X2xpbmVfaWQ6IGxpbmVzLmZpcnN0KCku
YXR0cignaWQnKSwKICAgICAgICBlbmRfbGluZV9pZDogY29tbWVudF9iYXNlX2xpbmUsCiAgICAg
ICAgY29udGVudHM6IGNvbnRlbnRzCiAgICAgIH0pOwogICAgfSk7CgogICAgdmFyIG92ZXJhbGxf
Y29tbWVudHMgPSAkKCcub3ZlcmFsbENvbW1lbnRzIHRleHRhcmVhJykudmFsKCkudHJpbSgpOwog
ICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsnYm9ybi1vbic6IERhdGUubm93KCksICdjb21tZW50
cyc6IGNvbW1lbnRfc3RvcmUsICdvdmVyYWxsLWNvbW1lbnRzJzogb3ZlcmFsbF9jb21tZW50c30p
OwogIH0KICAKICBEcmFmdENvbW1lbnRTYXZlci5wcm90b3R5cGUubG9jYWxTdG9yYWdlS2V5ID0g
ZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gRHJhZnRDb21tZW50U2F2ZXIuX2tleVByZWZpeCArIHRo
aXMuX2F0dGFjaG1lbnRfaWQ7CiAgfQogIAogIERyYWZ0Q29tbWVudFNhdmVyLnByb3RvdHlwZS5z
YXZlZF9jb21tZW50cyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHNlcmlhbGl6ZWRfY29tbWVudHMg
PSB0aGlzLl9sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUtleSgpKTsKICAg
IGlmICghc2VyaWFsaXplZF9jb21tZW50cykKICAgICAgcmV0dXJuIFtdOwoKICAgIHZhciBjb21t
ZW50cyA9IHt9OwogICAgdHJ5IHsKICAgICAgY29tbWVudHMgPSBKU09OLnBhcnNlKHNlcmlhbGl6
ZWRfY29tbWVudHMpOwogICAgfSBjYXRjaCAoZSkgewogICAgICB0aGlzLl9lcmFzZV9jb3JydXB0
X2NvbW1lbnRzKCk7CiAgICAgIHJldHVybiB7fTsKICAgIH0KCiAgICB2YXIgaW5kaXZpZHVhbF9j
b21tZW50cyA9IGNvbW1lbnRzLmNvbW1lbnRzOwogICAgaWYgKCFjb21tZW50cyB8fCAhY29tbWVu
dHNbJ2Jvcm4tb24nXSB8fCAhaW5kaXZpZHVhbF9jb21tZW50cyB8fCAoaW5kaXZpZHVhbF9jb21t
ZW50cy5sZW5ndGggJiYgIWluZGl2aWR1YWxfY29tbWVudHNbMF0uY29udGVudHMpKSB7CiAgICAg
IHRoaXMuX2VyYXNlX2NvcnJ1cHRfY29tbWVudHMoKTsKICAgICAgcmV0dXJuIHt9OwogICAgfSAg
ICAKICAgIHJldHVybiBjb21tZW50czsKICB9CiAgCiAgRHJhZnRDb21tZW50U2F2ZXIucHJvdG90
eXBlLl9lcmFzZV9jb3JydXB0X2NvbW1lbnRzID0gZnVuY3Rpb24oKSB7CiAgICAvLyBGSVhNRTog
U2hvdyBhbiBlcnJvciB0byB0aGUgdXNlciBpbnN0ZWFkIG9mIGxvZ2dpbmcuCiAgICBjb25zb2xl
LmxvZygnRHJhZnQgY29tbWVudHMgd2VyZSBjb3JydXB0ZWQuIEVyYXNpbmcgY29tbWVudHMuJyk7
CiAgICB0aGlzLmVyYXNlKCk7CiAgfQogIAogIERyYWZ0Q29tbWVudFNhdmVyLnByb3RvdHlwZS5z
YXZlID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoIXRoaXMuX3NhdmVfY29tbWVudHMpCiAgICAgIHJl
dHVybjsKCiAgICB2YXIga2V5ID0gdGhpcy5sb2NhbFN0b3JhZ2VLZXkoKTsKICAgIHZhciB2YWx1
ZSA9IHRoaXMuX2pzb24oKTsKCiAgICBpZiAodGhpcy5fYXR0ZW1wdFRvV3JpdGUoa2V5LCB2YWx1
ZSkpCiAgICAgIHJldHVybjsKCiAgICB0aGlzLl9lcmFzZU9sZENvbW1lbnRzRm9yQWxsUmV2aWV3
cygpOwogICAgaWYgKHRoaXMuX2F0dGVtcHRUb1dyaXRlKGtleSwgdmFsdWUpKQogICAgICByZXR1
cm47CgogICAgdmFyIHJlbW92ZV9jb21tZW50cyA9IHRoaXMuX3Nob3VsZF9yZW1vdmVfY29tbWVu
dHMoKTsKICAgIGlmICghcmVtb3ZlX2NvbW1lbnRzKSB7CiAgICAgIHRoaXMuX3NhdmVfY29tbWVu
dHMgPSBmYWxzZTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHRoaXMuX2VyYXNlQ29tbWVudHNG
b3JBbGxSZXZpZXdzKCk7CiAgICBpZiAodGhpcy5fYXR0ZW1wdFRvV3JpdGUoa2V5LCB2YWx1ZSkp
CiAgICAgIHJldHVybjsKCiAgICB0aGlzLl9zYXZlX2NvbW1lbnRzID0gZmFsc2U7CiAgICAvLyBG
SVhNRTogU2hvdyBhbiBlcnJvciB0byB0aGUgdXNlci4KICB9CgogIERyYWZ0Q29tbWVudFNhdmVy
LnByb3RvdHlwZS5fc2hvdWxkX3JlbW92ZV9jb21tZW50cyA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsK
ICAgIHJldHVybiBwcm9tcHQoJ0xvY2FsIHN0b3JhZ2UgcXVvdGEgaXMgZnVsbC4gUmVtb3ZlIGRy
YWZ0IGNvbW1lbnRzIGZyb20gYWxsIHByZXZpb3VzIHJldmlld3MgdG8gbWFrZSByb29tPycpOwog
IH0KCiAgRHJhZnRDb21tZW50U2F2ZXIucHJvdG90eXBlLl9hdHRlbXB0VG9Xcml0ZSA9IGZ1bmN0
aW9uKGtleSwgdmFsdWUpIHsKICAgIHRyeSB7CiAgICAgIHRoaXMuX2xvY2FsU3RvcmFnZS5zZXRJ
dGVtKGtleSwgdmFsdWUpOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KCiAgRHJhZnRDb21tZW50U2F2ZXIuX2tleVByZWZp
eCA9ICdkcmFmdC1jb21tZW50cy1mb3ItYXR0YWNobWVudC0nOwoKICBEcmFmdENvbW1lbnRTYXZl
ci5wcm90b3R5cGUuZXJhc2UgPSBmdW5jdGlvbigpIHsKICAgIHRoaXMuX2xvY2FsU3RvcmFnZS5y
ZW1vdmVJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KCkpOwogIH0KCiAgRHJhZnRDb21tZW50U2F2
ZXIucHJvdG90eXBlLl9lcmFzZU9sZENvbW1lbnRzRm9yQWxsUmV2aWV3cyA9IGZ1bmN0aW9uKCkg
ewogICAgdGhpcy5fZXJhc2VDb21tZW50cyh0cnVlKTsKICB9CiAgRHJhZnRDb21tZW50U2F2ZXIu
cHJvdG90eXBlLl9lcmFzZUNvbW1lbnRzRm9yQWxsUmV2aWV3cyA9IGZ1bmN0aW9uKCkgewogICAg
dGhpcy5fZXJhc2VDb21tZW50cyhmYWxzZSk7CiAgfQoKICB2YXIgTU9OVEhfSU5fTVMgPSAxMDAw
ICogNjAgKiA2MCAqIDI0ICogMzA7CgogIERyYWZ0Q29tbWVudFNhdmVyLnByb3RvdHlwZS5fZXJh
c2VDb21tZW50cyA9IGZ1bmN0aW9uKG9ubHlfb2xkX3Jldmlld3MpIHsKICAgIHZhciBsZW5ndGgg
PSB0aGlzLl9sb2NhbFN0b3JhZ2UubGVuZ3RoOwogICAgdmFyIGtleXNfdG9fZGVsZXRlID0gW107
CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBrZXkgPSB0
aGlzLl9sb2NhbFN0b3JhZ2Uua2V5KGkpOwogICAgICBpZiAoa2V5LmluZGV4T2YoRHJhZnRDb21t
ZW50U2F2ZXIuX2tleVByZWZpeCkgIT0gMCkKICAgICAgICBjb250aW51ZTsKICAgICAgICAKICAg
ICAgaWYgKG9ubHlfb2xkX3Jldmlld3MpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdmFyIGJv
cm5fb24gPSBKU09OLnBhcnNlKHRoaXMuX2xvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpWydib3Ju
LW9uJ107CiAgICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIGJvcm5fb24gPCBNT05USF9JTl9NUykK
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgY29u
c29sZS5sb2coJ0RlbGV0aW5nIEpTT04uIEpTT04gZm9yIGNvZGUgcmV2aWV3IGlzIGNvcnJ1cHQ6
ICcgKyBrZXkpOwogICAgICAgIH0gICAgICAgIAogICAgICB9CiAgICAgIGtleXNfdG9fZGVsZXRl
LnB1c2goa2V5KTsKICAgIH0KCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXNfdG9fZGVsZXRl
Lmxlbmd0aDsgaSsrKSB7CiAgICAgIHRoaXMuX2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleXNf
dG9fZGVsZXRlW2ldKTsKICAgIH0KICB9CiAgCiAgdmFyIGdfZHJhZnRDb21tZW50U2F2ZXIgPSBu
ZXcgRHJhZnRDb21tZW50U2F2ZXIoKTsKCiAgZnVuY3Rpb24gc2F2ZURyYWZ0Q29tbWVudHMoKSB7
CiAgICBlbnN1cmVEcmFmdENvbW1lbnRzRGlzcGxheWVkKCk7CiAgICBnX2RyYWZ0Q29tbWVudFNh
dmVyLnNhdmUoKTsKICAgIHNldEF1dG9TYXZlU3RhdGVJbmRpY2F0b3IoJ3NhdmVkJyk7CiAgfQoK
ICBmdW5jdGlvbiBzZXRBdXRvU2F2ZVN0YXRlSW5kaWNhdG9yKHN0YXRlKSB7CiAgICB2YXIgY29u
dGFpbmVyID0gJCgnLmF1dG9zYXZlLXN0YXRlJyk7CiAgICBjb250YWluZXIudGV4dChzdGF0ZSk7
CiAgICAKICAgIGlmIChzdGF0ZSA9PSAnc2F2aW5nJykKICAgICAgY29udGFpbmVyLmFkZENsYXNz
KHN0YXRlKTsKICAgIGVsc2UKICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdzYXZpbmcnKTsK
ICB9CiAgCiAgZnVuY3Rpb24gdW5mcmVlemVDb21tZW50Rm9yKGxpbmUpIHsKICAgIC8vIEZJWE1F
OiBUaGlzIHF1ZXJ5IGlzIG92ZXJseSBjb21wbGV4IGJlY2F1c2Ugd2UgcGxhY2UgY29tbWVudCBi
bG9ja3MKICAgIC8vIGFmdGVyIExpbmVzLiAgSW5zdGVhZCwgY29tbWVudCBibG9ja3Mgc2hvdWxk
IGJlIGNoaWxkcmVuIG9mIExpbmVzLgogICAgZmluZENvbW1lbnRQb3NpdGlvbkZvcihsaW5lKS5u
ZXh0KCkubmV4dCgpLmZpbHRlcignLmZyb3plbkNvbW1lbnQnKS5lYWNoKGhhbmRsZVVuZnJlZXpl
Q29tbWVudCk7CiAgfQoKICBmdW5jdGlvbiBjcmVhdGVDb21tZW50Rm9yKGxpbmUpIHsKICAgIGlm
IChsaW5lLmF0dHIoJ2RhdGEtaGFzLWNvbW1lbnQnKSkgewogICAgICB1bmZyZWV6ZUNvbW1lbnRG
b3IobGluZSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGxpbmUuYXR0cignZGF0YS1oYXMtY29t
bWVudCcsICd0cnVlJyk7CiAgICBsaW5lLmFkZENsYXNzKCdjb21tZW50Q29udGV4dCcpOwoKICAg
IHZhciBjb21tZW50X2Jsb2NrID0gJCgnPGRpdiBjbGFzcz0iY29tbWVudCI+PHRleHRhcmVhIGRh
dGEtY29tbWVudC1mb3I9IicgKyBsaW5lLmF0dHIoJ2lkJykgKyAnIj48L3RleHRhcmVhPjxkaXYg
Y2xhc3M9ImFjdGlvbnMiPjxidXR0b24gY2xhc3M9Im9rIj5PSzwvYnV0dG9uPjxidXR0b24gY2xh
c3M9ImRpc2NhcmQiPkRpc2NhcmQ8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKTsKICAgICQoJ3RleHRh
cmVhJywgY29tbWVudF9ibG9jaykuYmluZCgnaW5wdXQnLCBoYW5kbGVPdmVyYWxsQ29tbWVudHNJ
bnB1dCk7CiAgICBpbnNlcnRDb21tZW50Rm9yKGxpbmUsIGNvbW1lbnRfYmxvY2spOwogICAgcmV0
dXJuIGNvbW1lbnRfYmxvY2s7CiAgfQoKICBmdW5jdGlvbiBhZGRDb21tZW50Rm9yKGxpbmUpIHsK
ICAgIHZhciBjb21tZW50X2Jsb2NrID0gY3JlYXRlQ29tbWVudEZvcihsaW5lKTsKICAgIGlmICgh
Y29tbWVudF9ibG9jaykKICAgICAgcmV0dXJuOwoKICAgIGNvbW1lbnRfYmxvY2suaGlkZSgpLnNs
aWRlRG93bignZmFzdCcsIGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNoaWxkcmVuKCd0ZXh0
YXJlYScpLmZvY3VzKCk7CiAgICB9KTsKICAgIHJldHVybiBjb21tZW50X2Jsb2NrOwogIH0KCiAg
ZnVuY3Rpb24gYWRkQ29tbWVudEZpZWxkKGNvbW1lbnRfYmxvY2spIHsKICAgIHZhciBpZCA9ICQo
Y29tbWVudF9ibG9jaykuYXR0cignZGF0YS1jb21tZW50LWZvcicpOwogICAgaWYgKCFpZCkKICAg
ICAgaWQgPSBjb21tZW50X2Jsb2NrLmlkOwogICAgcmV0dXJuIGFkZENvbW1lbnRGb3IoJCgnIycg
KyBpZCkpOwogIH0KICAKICBmdW5jdGlvbiBoYW5kbGVBZGRDb21tZW50RmllbGQoKSB7CiAgICBh
ZGRDb21tZW50RmllbGQodGhpcyk7CiAgfQoKICBmdW5jdGlvbiBhZGRQcmV2aW91c0NvbW1lbnQo
bGluZSwgYXV0aG9yLCBjb21tZW50X3RleHQpIHsKICAgIHZhciBsaW5lX2lkID0gJChsaW5lKS5h
dHRyKCdpZCcpOwogICAgdmFyIGNvbW1lbnRfYmxvY2sgPSAkKCc8ZGl2IGRhdGEtY29tbWVudC1m
b3I9IicgKyBsaW5lX2lkICsgJyIgY2xhc3M9InByZXZpb3VzQ29tbWVudCI+PC9kaXY+Jyk7CiAg
ICB2YXIgYXV0aG9yX2Jsb2NrID0gJCgnPGRpdiBjbGFzcz0iYXV0aG9yIj48L2Rpdj4nKS50ZXh0
KGF1dGhvciArICc6Jyk7CiAgICB2YXIgdGV4dF9ibG9jayA9ICQoJzxkaXYgY2xhc3M9ImNvbnRl
bnQiPjwvZGl2PicpLnRleHQoY29tbWVudF90ZXh0KTsKICAgIGNvbW1lbnRfYmxvY2suYXBwZW5k
KGF1dGhvcl9ibG9jaykuYXBwZW5kKHRleHRfYmxvY2spLmVhY2goaG92ZXJpZnkpLmNsaWNrKGhh
bmRsZUFkZENvbW1lbnRGaWVsZCk7CiAgICBhZGREYXRhQ29tbWVudEJhc2VMaW5lKCQobGluZSks
IGxpbmVfaWQpOwogICAgaW5zZXJ0Q29tbWVudEZvcigkKGxpbmUpLCBjb21tZW50X2Jsb2NrKTsK
ICB9CgogIGZ1bmN0aW9uIGRpc3BsYXlQcmV2aW91c0NvbW1lbnRzKGNvbW1lbnRzKSB7CiAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGNvbW1lbnRzLmxlbmd0aDsgKytpKSB7CiAgICAgIHZhciBhdXRo
b3IgPSBjb21tZW50c1tpXS5hdXRob3I7CiAgICAgIHZhciBmaWxlX25hbWUgPSBjb21tZW50c1tp
XS5maWxlX25hbWU7CiAgICAgIHZhciBsaW5lX251bWJlciA9IGNvbW1lbnRzW2ldLmxpbmVfbnVt
YmVyOwogICAgICB2YXIgY29tbWVudF90ZXh0ID0gY29tbWVudHNbaV0uY29tbWVudF90ZXh0OwoK
ICAgICAgdmFyIGZpbGUgPSBmaWxlc1tmaWxlX25hbWVdOwoKICAgICAgdmFyIHF1ZXJ5ID0gJy5M
aW5lIC50byc7CiAgICAgIGlmIChsaW5lX251bWJlclswXSA9PSAnLScpIHsKICAgICAgICAvLyBU
aGUgbGluZV9udW1iZXIgcmVwcmVzZW50IGEgcmVtb3ZhbC4gIFdlIG5lZWQgdG8gYWRqdXN0IHRo
ZSBxdWVyeSB0bwogICAgICAgIC8vIGxvb2sgYXQgdGhlICJmcm9tIiBsaW5lcy4KICAgICAgICBx
dWVyeSA9ICcuTGluZSAuZnJvbSc7CiAgICAgICAgLy8gVHJpbSBvZmYgdGhlICctJyBjb250cm9s
IGNoYXJhY3Rlci4KICAgICAgICBsaW5lX251bWJlciA9IGxpbmVfbnVtYmVyLnN1YnN0cigxKTsK
ICAgICAgfQoKICAgICAgJChmaWxlKS5maW5kKHF1ZXJ5KS5lYWNoKGZ1bmN0aW9uKCkgewogICAg
ICAgIGlmICgkKHRoaXMpLnRleHQoKSAhPSBsaW5lX251bWJlcikKICAgICAgICAgIHJldHVybjsK
ICAgICAgICB2YXIgbGluZSA9IGxpbmVDb250YWluZXJGcm9tRGVzY2VuZGFudCgkKHRoaXMpKTsK
ICAgICAgICBhZGRQcmV2aW91c0NvbW1lbnQobGluZSwgYXV0aG9yLCBjb21tZW50X3RleHQpOwog
ICAgICB9KTsKICAgIH0KCiAgICBpZiAoY29tbWVudHMubGVuZ3RoID09IDApIHsKICAgICAgcmV0
dXJuOwogICAgfQoKICAgIGRlc2NyaXB0b3IgPSBjb21tZW50cy5sZW5ndGggKyAnIGNvbW1lbnQn
OwogICAgaWYgKGNvbW1lbnRzLmxlbmd0aCA+IDEpCiAgICAgIGRlc2NyaXB0b3IgKz0gJ3MnOwog
ICAgJCgnLmhlbHAgLm1vcmUnKS5iZWZvcmUoJyBUaGlzIHBhdGNoIGhhcyAnICsgZGVzY3JpcHRv
ciArICcuICBTY3JvbGwgdGhyb3VnaCB0aGVtIHdpdGggdGhlICJuIiBhbmQgInAiIGtleXMuICcp
OwogIH0KICAKICBmdW5jdGlvbiBzaG93TW9yZUhlbHAoKSB7CiAgICAkKCcubW9yZS1oZWxwJyku
cmVtb3ZlQ2xhc3MoJ2luYWN0aXZlJyk7CiAgfQogIAogIGZ1bmN0aW9uIGhpZGVNb3JlSGVscCgp
IHsKICAgICQoJy5tb3JlLWhlbHAnKS5hZGRDbGFzcygnaW5hY3RpdmUnKTsKICB9CgogIGZ1bmN0
aW9uIHNjYW5Gb3JTdHlsZVF1ZXVlQ29tbWVudHModGV4dCkgewogICAgdmFyIGNvbW1lbnRzID0g
W10KICAgIHZhciBsaW5lcyA9IHRleHQuc3BsaXQoJ1xuJyk7CiAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGxpbmVzLmxlbmd0aDsgKytpKSB7CiAgICAgIHZhciBwYXJ0cyA9IGxpbmVzW2ldLm1hdGNo
KC9eKFteOl0rKTooLT9cZCspOiguKikkLyk7CiAgICAgIGlmICghcGFydHMpCiAgICAgICAgY29u
dGludWU7CgogICAgICB2YXIgZmlsZV9uYW1lID0gcGFydHNbMV07CiAgICAgIHZhciBsaW5lX251
bWJlciA9IHBhcnRzWzJdOwogICAgICB2YXIgY29tbWVudF90ZXh0ID0gcGFydHNbM10udHJpbSgp
OwoKICAgICAgaWYgKCFmaWxlX25hbWUgaW4gZmlsZXMpIHsKICAgICAgICBjb25zb2xlLmxvZygn
RmlsZW5hbWUgaW4gc3R5bGUgcXVldWUgb3V0cHV0IGlzIG5vdCBpbiB0aGUgcGF0Y2g6ICcgKyBm
aWxlX25hbWUpOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBjb21tZW50cy5wdXNo
KHsKICAgICAgICAnYXV0aG9yJzogJ1N0eWxlUXVldWUnLAogICAgICAgICdmaWxlX25hbWUnOiBm
aWxlX25hbWUsCiAgICAgICAgJ2xpbmVfbnVtYmVyJzogbGluZV9udW1iZXIsCiAgICAgICAgJ2Nv
bW1lbnRfdGV4dCc6IGNvbW1lbnRfdGV4dAogICAgICB9KTsKICAgIH0KICAgIHJldHVybiBjb21t
ZW50czsKICB9CgogIGZ1bmN0aW9uIHNjYW5Gb3JDb21tZW50cyhhdXRob3IsIHRleHQpIHsKICAg
IHZhciBjb21tZW50cyA9IFtdCiAgICB2YXIgbGluZXMgPSB0ZXh0LnNwbGl0KCdcbicpOwogICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7ICsraSkgewogICAgICB2YXIgcGFydHMg
PSBsaW5lc1tpXS5tYXRjaCgvXihbPiBdKykoW146XSspOigtP1xkKykkLyk7CiAgICAgIGlmICgh
cGFydHMpCiAgICAgICAgY29udGludWU7CiAgICAgIHZhciBxdW90ZV9tYXJrZXJzID0gcGFydHNb
MV07CiAgICAgIHZhciBmaWxlX25hbWUgPSBwYXJ0c1syXTsKICAgICAgLy8gRklYTUU6IFN0b3Jl
IG11bHRpcGxlIGxpbmVzIGZvciBtdWx0aWxpbmUgY29tbWVudHMgYW5kIGNvcnJlY3RseSBpbXBv
cnQgdGhlbSBoZXJlLgogICAgICB2YXIgbGluZV9udW1iZXIgPSBwYXJ0c1szXTsKICAgICAgaWYg
KCFmaWxlX25hbWUgaW4gZmlsZXMpCiAgICAgICAgY29udGludWU7CiAgICAgIHdoaWxlIChpIDwg
bGluZXMubGVuZ3RoICYmIGxpbmVzW2ldLmxlbmd0aCA+IDAgJiYgbGluZXNbaV1bMF0gPT0gJz4n
KQogICAgICAgICsraTsKICAgICAgdmFyIGNvbW1lbnRfbGluZXMgPSBbXTsKICAgICAgd2hpbGUg
KGkgPCBsaW5lcy5sZW5ndGggJiYgKGxpbmVzW2ldLmxlbmd0aCA9PSAwIHx8IGxpbmVzW2ldWzBd
ICE9ICc+JykpIHsKICAgICAgICBjb21tZW50X2xpbmVzLnB1c2gobGluZXNbaV0pOwogICAgICAg
ICsraTsKICAgICAgfQogICAgICAtLWk7IC8vIERlY3JlbWVudCBpIGJlY2F1c2UgdGhlIGZvciBs
b29wIHdpbGwgaW5jcmVtZW50IGl0IGFnYWluIGluIGEgc2Vjb25kLgogICAgICB2YXIgY29tbWVu
dF90ZXh0ID0gY29tbWVudF9saW5lcy5qb2luKCdcbicpLnRyaW0oKTsKICAgICAgY29tbWVudHMu
cHVzaCh7CiAgICAgICAgJ2F1dGhvcic6IGF1dGhvciwKICAgICAgICAnZmlsZV9uYW1lJzogZmls
ZV9uYW1lLAogICAgICAgICdsaW5lX251bWJlcic6IGxpbmVfbnVtYmVyLAogICAgICAgICdjb21t
ZW50X3RleHQnOiBjb21tZW50X3RleHQKICAgICAgfSk7CiAgICB9CiAgICByZXR1cm4gY29tbWVu
dHM7CiAgfQoKICBmdW5jdGlvbiBpc1Jldmlld0ZsYWcoc2VsZWN0KSB7CiAgICByZXR1cm4gJChz
ZWxlY3QpLmF0dHIoJ3RpdGxlJykgPT0gJ1JlcXVlc3QgZm9yIHBhdGNoIHJldmlldy4nOwogIH0K
CiAgZnVuY3Rpb24gaXNDb21taXRRdWV1ZUZsYWcoc2VsZWN0KSB7CiAgICByZXR1cm4gJChzZWxl
Y3QpLmF0dHIoJ3RpdGxlJykubWF0Y2goL2NvbW1pdC1xdWV1ZS8pOwogIH0KCiAgZnVuY3Rpb24g
ZmluZENvbnRyb2xGb3JGbGFnKHNlbGVjdCkgewogICAgaWYgKGlzUmV2aWV3RmxhZyhzZWxlY3Qp
KQogICAgICByZXR1cm4gJCgnI3Rvb2xiYXIgLnJldmlldyBzZWxlY3QnKTsKICAgIGVsc2UgaWYg
KGlzQ29tbWl0UXVldWVGbGFnKHNlbGVjdCkpCiAgICAgIHJldHVybiAkKCcjdG9vbGJhciAuY29t
bWl0UXVldWUgc2VsZWN0Jyk7CiAgICByZXR1cm4gJCgpOwogIH0KCiAgZnVuY3Rpb24gYWRkRmxh
Z3NGb3JBdHRhY2htZW50KGRldGFpbHMpIHsKICAgIHZhciBmbGFnX2NvbnRyb2wgPSAiPHNlbGVj
dD48b3B0aW9uPjwvb3B0aW9uPjxvcHRpb24+Pzwvb3B0aW9uPjxvcHRpb24+Kzwvb3B0aW9uPjxv
cHRpb24+LTwvb3B0aW9uPjwvc2VsZWN0PiI7CiAgICAkKCcjZmxhZ0NvbnRhaW5lcicpLmFwcGVu
ZCgKICAgICAgJCgnPHNwYW4gY2xhc3M9InJldmlldyI+IHI6ICcgKyBmbGFnX2NvbnRyb2wgKyAn
PC9zcGFuPicpKS5hcHBlbmQoCiAgICAgICQoJzxzcGFuIGNsYXNzPSJjb21taXRRdWV1ZSI+IGNx
OiAnICsgZmxhZ19jb250cm9sICsgJzwvc3Bhbj4nKSk7CgogICAgZGV0YWlscy5maW5kKCcjZmxh
Z3Mgc2VsZWN0JykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgdmFyIHJlcXVlc3RlZSA9ICQodGhp
cykucGFyZW50KCkuc2libGluZ3MoJ3RkOmZpcnN0LWNoaWxkJykudGV4dCgpLnRyaW0oKTsKICAg
ICAgaWYgKHJlcXVlc3RlZS5sZW5ndGgpIHsKICAgICAgICAvLyBSZW1vdmUgdHJhaWxpbmcgJzon
LgogICAgICAgIHJlcXVlc3RlZSA9IHJlcXVlc3RlZS5zdWJzdHIoMCwgcmVxdWVzdGVlLmxlbmd0
aCAtIDEpOwogICAgICAgIHJlcXVlc3RlZSA9ICcgKCcgKyByZXF1ZXN0ZWUgKyAnKSc7CiAgICAg
IH0KICAgICAgdmFyIGNvbnRyb2wgPSBmaW5kQ29udHJvbEZvckZsYWcodGhpcykKICAgICAgY29u
dHJvbC5hdHRyKCdzZWxlY3RlZEluZGV4JywgJCh0aGlzKS5hdHRyKCdzZWxlY3RlZEluZGV4Jykp
OwogICAgICBjb250cm9sLnBhcmVudCgpLnByZXBlbmQocmVxdWVzdGVlKTsKICAgIH0pOwogIH0K
CiAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7CiAgICBp
ZiAoZS5vcmlnaW4gIT0gJ2h0dHBzOi8vd2Via2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90LmNvbScp
CiAgICAgIHJldHVybjsKCiAgICBpZiAoZS5kYXRhLmhlaWdodCkgewogICAgICAkKCcuc3RhdHVz
QnViYmxlJylbMF0uc3R5bGUuaGVpZ2h0ID0gZS5kYXRhLmhlaWdodDsKICAgICAgJCgnLnN0YXR1
c0J1YmJsZScpWzBdLnN0eWxlLndpZHRoID0gZS5kYXRhLndpZHRoOwogICAgfQogIH0sIGZhbHNl
KTsKCiAgZnVuY3Rpb24gaGFuZGxlU3RhdHVzQnViYmxlTG9hZChlKSB7CiAgICBlLnRhcmdldC5j
b250ZW50V2luZG93LnBvc3RNZXNzYWdlKCdjb250YWluZXJNZXRyaWNzJywgJ2h0dHBzOi8vd2Vi
a2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90LmNvbScpOwogIH0KCiAgZnVuY3Rpb24gZmV0Y2hIaXN0
b3J5KCkgewogICAgJC5nZXQoJ2F0dGFjaG1lbnQuY2dpP2lkPScgKyBhdHRhY2htZW50X2lkICsg
JyZhY3Rpb249ZWRpdCcsIGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgdmFyIGJ1Z19pZCA9IC9BdHRh
Y2htZW50IFxkKyBEZXRhaWxzIGZvciBCdWcgKFxkKykvLmV4ZWMoZGF0YSlbMV07CiAgICAgICQu
Z2V0KCdzaG93X2J1Zy5jZ2k/aWQ9JyArIGJ1Z19pZCwgZnVuY3Rpb24oZGF0YSkgewogICAgICAg
IHZhciBjb21tZW50cyA9IFtdOwogICAgICAgICQoZGF0YSkuZmluZCgnLmJ6X2NvbW1lbnQnKS5l
YWNoKGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGF1dGhvciA9ICQodGhpcykuZmluZCgnLmVt
YWlsJykudGV4dCgpOwogICAgICAgICAgdmFyIHRleHQgPSAkKHRoaXMpLmZpbmQoJy5iel9jb21t
ZW50X3RleHQnKS50ZXh0KCk7CgogICAgICAgICAgdmFyIGNvbW1lbnRfbWFya2VyID0gJyhGcm9t
IHVwZGF0ZSBvZiBhdHRhY2htZW50ICcgKyBhdHRhY2htZW50X2lkICsgJyAuZGV0YWlscy4pJzsK
ICAgICAgICAgIGlmICh0ZXh0Lm1hdGNoKGNvbW1lbnRfbWFya2VyKSkKICAgICAgICAgICAgJC5t
ZXJnZShjb21tZW50cywgc2NhbkZvckNvbW1lbnRzKGF1dGhvciwgdGV4dCkpOwoKICAgICAgICAg
IHZhciBzdHlsZV9xdWV1ZV9jb21tZW50X21hcmtlciA9ICdBdHRhY2htZW50ICcgKyBhdHRhY2ht
ZW50X2lkICsgJyAuZGV0YWlscy4gZGlkIG5vdCBwYXNzIHN0eWxlLXF1ZXVlLicKICAgICAgICAg
IGlmICh0ZXh0Lm1hdGNoKHN0eWxlX3F1ZXVlX2NvbW1lbnRfbWFya2VyKSkKICAgICAgICAgICAg
JC5tZXJnZShjb21tZW50cywgc2NhbkZvclN0eWxlUXVldWVDb21tZW50cyh0ZXh0KSk7CiAgICAg
ICAgfSk7CiAgICAgICAgZGlzcGxheVByZXZpb3VzQ29tbWVudHMoY29tbWVudHMpOwogICAgICAg
IGVuc3VyZURyYWZ0Q29tbWVudHNEaXNwbGF5ZWQoKTsKICAgICAgfSk7CgogICAgICB2YXIgZGV0
YWlscyA9ICQoZGF0YSk7CiAgICAgIGFkZEZsYWdzRm9yQXR0YWNobWVudChkZXRhaWxzKTsKCiAg
ICAgIHZhciBzdGF0dXNCdWJibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsK
ICAgICAgc3RhdHVzQnViYmxlLmNsYXNzTmFtZSA9ICdzdGF0dXNCdWJibGUnOwogICAgICBzdGF0
dXNCdWJibGUuc3JjICA9ICdodHRwczovL3dlYmtpdC1jb21taXQtcXVldWUuYXBwc3BvdC5jb20v
c3RhdHVzLWJ1YmJsZS8nICsgYXR0YWNobWVudF9pZDsKICAgICAgc3RhdHVzQnViYmxlLnNjcm9s
bGluZyA9ICdubyc7CiAgICAgIC8vIENhbid0IGFwcGVuZCB0aGUgSFRNTCBiZWNhdXNlIHdlIG5l
ZWQgdG8gc2V0IHRoZSBvbmxvYWQgaGFuZGxlciBiZWZvcmUgYXBwZW5kaW5nIHRoZSBpZnJhbWUg
dG8gdGhlIERPTS4KICAgICAgc3RhdHVzQnViYmxlLm9ubG9hZCA9IGhhbmRsZVN0YXR1c0J1YmJs
ZUxvYWQ7CiAgICAgICQoJyNzdGF0dXNCdWJibGVDb250YWluZXInKS5hcHBlbmQoc3RhdHVzQnVi
YmxlKTsKCiAgICAgICQoJyN0b29sYmFyIC5idWdMaW5rJykuaHRtbCgnPGEgaHJlZj0iL3Nob3df
YnVnLmNnaT9pZD0nICsgYnVnX2lkICsgJyIgdGFyZ2V0PSJfYmxhbmsiPkJ1ZyAnICsgYnVnX2lk
ICsgJzwvYT4nKTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gZmlyc3RMaW5lKGZpbGVfZGlmZikg
ewogICAgdmFyIGNvbnRhaW5lciA9ICQoJy5MaW5lQ29udGFpbmVyOm5vdCguY29udGV4dCknLCBm
aWxlX2RpZmYpWzBdOwogICAgaWYgKCFjb250YWluZXIpCiAgICAgIHJldHVybiAwOwoKICAgIHZh
ciBmcm9tID0gZnJvbUxpbmVOdW1iZXIoY29udGFpbmVyKTsKICAgIHZhciB0byA9IHRvTGluZU51
bWJlcihjb250YWluZXIpOwogICAgcmV0dXJuIGZyb20gfHwgdG87CiAgfQoKICBmdW5jdGlvbiBj
cmF3bERpZmYoKSB7CiAgICBnX25leHRfbGluZV9pZCA9IDA7CiAgICB2YXIgaWRpZnkgPSBmdW5j
dGlvbigpIHsKICAgICAgdGhpcy5pZCA9IGlkRm9yTGluZShnX25leHRfbGluZV9pZCsrKTsKICAg
IH0KCiAgICAkKCcuTGluZScpLmVhY2goaWRpZnkpLmVhY2goaG92ZXJpZnkpOwogICAgJCgnLkZp
bGVEaWZmJykuZWFjaChmdW5jdGlvbigpIHsKICAgICAgdmFyIGhlYWRlciA9ICQodGhpcykuY2hp
bGRyZW4oJ2gxJyk7CiAgICAgIHZhciB1cmxfaGFzaCA9ICcjTCcgKyBmaXJzdExpbmUodGhpcyk7
CgogICAgICB2YXIgZmlsZV9uYW1lID0gaGVhZGVyLnRleHQoKTsKICAgICAgZmlsZXNbZmlsZV9u
YW1lXSA9IHRoaXM7CgogICAgICBhZGRFeHBhbmRMaW5rcyhmaWxlX25hbWUpOwoKICAgICAgdmFy
IGRpZmZfbGlua3MgPSAkKCc8ZGl2IGNsYXNzPSJGaWxlRGlmZkxpbmtDb250YWluZXIgTGlua0Nv
bnRhaW5lciI+JyArCiAgICAgICAgICBkaWZmTGlua3NIdG1sKCkgKwogICAgICAgICAgJzwvZGl2
PicpOwoKICAgICAgdmFyIGZpbGVfbGluayA9ICQoJ2EnLCBoZWFkZXIpWzBdOwogICAgICAvLyBJ
ZiB0aGUgYmFzZSBkaXJlY3RvcnkgaW4gdGhlIGZpbGUgcGF0aCBkb2VzIG5vdCBtYXRjaCBhIFdl
YktpdCB0b3AgbGV2ZWwgZGlyZWN0b3J5LAogICAgICAvLyB0aGVuIFByZXR0eVBhdGNoLnJiIGRv
ZXNuJ3QgbGlua2lmeSB0aGUgaGVhZGVyLgogICAgICBpZiAoZmlsZV9saW5rKSB7CiAgICAgICAg
ZmlsZV9saW5rLnRhcmdldCA9ICJfYmxhbmsiOwogICAgICAgIGZpbGVfbGluay5ocmVmICs9IHVy
bF9oYXNoOwogICAgICAgIGRpZmZfbGlua3MuYXBwZW5kKHRyYWNMaW5rcyhmaWxlX25hbWUsIHVy
bF9oYXNoKSk7CiAgICAgIH0KCiAgICAgICQoJ2gxJywgdGhpcykuYWZ0ZXIoZGlmZl9saW5rcyk7
CiAgICAgIHVwZGF0ZURpZmZMaW5rVmlzaWJpbGl0eSh0aGlzKTsKICAgIH0pOwogIH0KCiAgZnVu
Y3Rpb24gdHJhY0xpbmtzKGZpbGVfbmFtZSwgdXJsX2hhc2gpIHsKICAgIHZhciB0cmFjX2xpbmtz
ID0gJCgnPGEgdGFyZ2V0PSJfYmxhbmsiPmFubm90YXRlPC9hPjxhIHRhcmdldD0iX2JsYW5rIj5y
ZXZpc2lvbiBsb2c8L2E+Jyk7CiAgICB0cmFjX2xpbmtzWzBdLmhyZWYgPSAnaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9icm93c2VyL3RydW5rLycgKyBmaWxlX25hbWUgKyAnP2Fubm90YXRlPWJsYW1l
JyArIHVybF9oYXNoOwogICAgdHJhY19saW5rc1sxXS5ocmVmID0gJ2h0dHA6Ly90cmFjLndlYmtp
dC5vcmcvbG9nL3RydW5rLycgKyBmaWxlX25hbWU7CiAgICB2YXIgaW1wbGVtZW50YXRpb25fc3Vm
Zml4X2xpc3QgPSBbJy5jcHAnLCAnLm1tJ107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltcGxl
bWVudGF0aW9uX3N1ZmZpeF9saXN0Lmxlbmd0aDsgKytpKSB7CiAgICAgIHZhciBzdWZmaXggPSBp
bXBsZW1lbnRhdGlvbl9zdWZmaXhfbGlzdFtpXTsKICAgICAgaWYgKGZpbGVfbmFtZS5sYXN0SW5k
ZXhPZihzdWZmaXgpID09IGZpbGVfbmFtZS5sZW5ndGggLSBzdWZmaXgubGVuZ3RoKSB7CiAgICAg
ICAgdmFyIG5ld19saW5rID0gJCgnPGEgdGFyZ2V0PSJfYmxhbmsiPmhlYWRlcjwvYT4nKTsKICAg
ICAgICB2YXIgc3RlbSA9IGZpbGVfbmFtZS5zdWJzdHIoMCwgZmlsZV9uYW1lLmxlbmd0aCAtIHN1
ZmZpeC5sZW5ndGgpOwogICAgICAgIG5ld19saW5rWzBdLmhyZWY9ICdodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2xvZy90cnVuay8nICsgc3RlbSArICcuaCc7CiAgICAgICAgdHJhY19saW5rcyA9ICQu
bWVyZ2UobmV3X2xpbmssIHRyYWNfbGlua3MpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gdHJh
Y19saW5rczsKICB9CgogIGZ1bmN0aW9uIGlzQ2hhbmdlTG9nKGZpbGVfbmFtZSkgewogICAgcmV0
dXJuIGZpbGVfbmFtZS5tYXRjaCgvXC9DaGFuZ2VMb2ckLykgfHwgZmlsZV9uYW1lID09ICdDaGFu
Z2VMb2cnOwogIH0KCiAgZnVuY3Rpb24gYWRkRXhwYW5kTGlua3MoZmlsZV9uYW1lKSB7CiAgICBp
ZiAoaXNDaGFuZ2VMb2coZmlsZV9uYW1lKSkKICAgICAgcmV0dXJuOwoKICAgIHZhciBmaWxlX2Rp
ZmYgPSBmaWxlc1tmaWxlX25hbWVdOwoKICAgIC8vIERvbid0IHNob3cgdGhlIGxpbmtzIHRvIGV4
cGFuZCB1cHdhcmRzL2Rvd253YXJkcyBpZiB0aGUgcGF0Y2ggc3RhcnRzL2VuZHMgd2l0aG91dCBj
b250ZXh0CiAgICAvLyBsaW5lcywgaS5lLiBzdGFydHMvZW5kcyB3aXRoIGFkZC9yZW1vdmUgbGlu
ZXMuCiAgICB2YXIgZmlyc3RfbGluZSA9IGZpbGVfZGlmZi5xdWVyeVNlbGVjdG9yKCcuTGluZUNv
bnRhaW5lcjpub3QoLmNvbnRleHQpJyk7CgogICAgLy8gSWYgdGhlcmUgaXMgbm8gZWxlbWVudCB3
aXRoIGEgIkxpbmUiIGNsYXNzLCB0aGVuIHRoaXMgaXMgYW4gaW1hZ2UgZGlmZi4KICAgIGlmICgh
Zmlyc3RfbGluZSkKICAgICAgcmV0dXJuOwoKICAgIHZhciBleHBhbmRfYmFyX2luZGV4ID0gMDsK
ICAgIGlmICghJChmaXJzdF9saW5lKS5oYXNDbGFzcygnYWRkJykgJiYgISQoZmlyc3RfbGluZSku
aGFzQ2xhc3MoJ3JlbW92ZScpKQogICAgICAkKCdoMScsIGZpbGVfZGlmZikuYWZ0ZXIoZXhwYW5k
QmFySHRtbChCRUxPVykpCgogICAgJCgnYnInLCBmaWxlX2RpZmYpLnJlcGxhY2VXaXRoKGV4cGFu
ZEJhckh0bWwoKSk7CgogICAgLy8ganF1ZXJ5IGRvZXNuJ3Qgc3VwcG9ydCA6bGFzdC1vZi10eXBl
LCBzbyB1c2UgcXVlcnlTZWxlY3RvciBpbnN0ZWFkLgogICAgdmFyIGxhc3RfbGluZSA9IGZpbGVf
ZGlmZi5xdWVyeVNlbGVjdG9yKCcuTGluZUNvbnRhaW5lcjpsYXN0LW9mLXR5cGUnKTsKICAgIC8v
IFNvbWUgcGF0Y2hlcyBmb3IgbmV3IGZpbGVzIHNvbWVob3cgZW5kIHVwIHdpdGggYW4gZW1wdHkg
Y29udGV4dCBsaW5lIGF0IHRoZSBlbmQKICAgIC8vIHdpdGggYSBmcm9tIGxpbmUgbnVtYmVyIG9m
IDAuIERvbid0IHNob3cgZXhwYW5kIGxpbmtzIGluIHRoYXQgY2FzZSBlaXRoZXIuCiAgICBpZiAo
ISQobGFzdF9saW5lKS5oYXNDbGFzcygnYWRkJykgJiYgISQobGFzdF9saW5lKS5oYXNDbGFzcygn
cmVtb3ZlJykgJiYgZnJvbUxpbmVOdW1iZXIobGFzdF9saW5lKSAhPSAwKQogICAgICAkKGZpbGVf
ZGlmZi5xdWVyeVNlbGVjdG9yKCcuRGlmZlNlY3Rpb246bGFzdC1vZi10eXBlJykpLmFmdGVyKGV4
cGFuZEJhckh0bWwoQUJPVkUpKTsKICB9CgogIGZ1bmN0aW9uIGV4cGFuZEJhckh0bWwob3B0X2Rp
cmVjdGlvbikgewogICAgdmFyIGh0bWwgPSAnPGRpdiBjbGFzcz0iRXhwYW5kQmFyIj4nICsKICAg
ICAgICAnPGRpdiBjbGFzcz0iRXhwYW5kQXJlYSBFeHBhbmQnICsgQUJPVkUgKyAnIj48L2Rpdj4n
ICsKICAgICAgICAnPGRpdiBjbGFzcz0iRXhwYW5kTGlua0NvbnRhaW5lciBMaW5rQ29udGFpbmVy
Ij48c3BhbiBjbGFzcz0iRXhwYW5kVGV4dCI+ZXhwYW5kOiA8L3NwYW4+JzsKCiAgICAvLyBGSVhN
RTogSWYgdGhlcmUgYXJlIDwxMDAgbGluZSB0byBleHBhbmQsIGRvbid0IHNob3cgdGhlIGV4cGFu
ZC0xMDAgbGluay4KICAgIC8vIElmIHRoZXJlIGFyZSA8MjAgbGluZXMgdG8gZXhwYW5kLCBkb24n
dCBzaG93IHRoZSBleHBhbmQtMjAgbGluay4KICAgIGlmICghb3B0X2RpcmVjdGlvbiB8fCBvcHRf
ZGlyZWN0aW9uID09IEFCT1ZFKSB7CiAgICAgIGh0bWwgKz0gZXhwYW5kTGlua0h0bWwoQUJPVkUs
IDEwMCkgKwogICAgICAgICAgZXhwYW5kTGlua0h0bWwoQUJPVkUsIDIwKTsKICAgIH0KCiAgICBo
dG1sICs9IGV4cGFuZExpbmtIdG1sKEFMTCk7CgogICAgaWYgKCFvcHRfZGlyZWN0aW9uIHx8IG9w
dF9kaXJlY3Rpb24gPT0gQkVMT1cpIHsKICAgICAgaHRtbCArPSBleHBhbmRMaW5rSHRtbChCRUxP
VywgMjApICsKICAgICAgICBleHBhbmRMaW5rSHRtbChCRUxPVywgMTAwKTsKICAgIH0KCiAgICBo
dG1sICs9ICc8L2Rpdj48ZGl2IGNsYXNzPSJFeHBhbmRBcmVhIEV4cGFuZCcgKyBCRUxPVyArICci
PjwvZGl2PjwvZGl2Pic7CiAgICByZXR1cm4gaHRtbDsKICB9CgogIGZ1bmN0aW9uIGV4cGFuZExp
bmtIdG1sKGRpcmVjdGlvbiwgYW1vdW50KSB7CiAgICByZXR1cm4gIjxhIGNsYXNzPSdFeHBhbmRM
aW5rJyBocmVmPSdqYXZhc2NyaXB0OicgZGF0YS1kaXJlY3Rpb249JyIgKyBkaXJlY3Rpb24gKyAi
JyBkYXRhLWFtb3VudD0nIiArIGFtb3VudCArICInPiIgKwogICAgICAgIChhbW91bnQgPyBhbW91
bnQgKyAiICIgOiAiIikgKyBkaXJlY3Rpb24gKyAiPC9hPiI7CiAgfQoKICBmdW5jdGlvbiBoYW5k
bGVFeHBhbmRMaW5rQ2xpY2soKSB7CiAgICB2YXIgZXhwYW5kX2JhciA9ICQodGhpcykucGFyZW50
cygnLkV4cGFuZEJhcicpOwogICAgdmFyIGZpbGVfbmFtZSA9IGV4cGFuZF9iYXIucGFyZW50cygn
LkZpbGVEaWZmJykuY2hpbGRyZW4oJ2gxJylbMF0udGV4dENvbnRlbnQ7CiAgICB2YXIgZXhwYW5k
X2Z1bmN0aW9uID0gcGFydGlhbChleHBhbmQsIGV4cGFuZF9iYXJbMF0sIGZpbGVfbmFtZSwgdGhp
cy5nZXRBdHRyaWJ1dGUoJ2RhdGEtZGlyZWN0aW9uJyksIE51bWJlcih0aGlzLmdldEF0dHJpYnV0
ZSgnZGF0YS1hbW91bnQnKSkpOwogICAgaWYgKGZpbGVfbmFtZSBpbiBvcmlnaW5hbF9maWxlX2Nv
bnRlbnRzKQogICAgICBleHBhbmRfZnVuY3Rpb24oKTsKICAgIGVsc2UKICAgICAgZ2V0V2ViS2l0
U291cmNlRmlsZShmaWxlX25hbWUsIGV4cGFuZF9mdW5jdGlvbiwgZXhwYW5kX2Jhcik7CiAgfQoK
ICBmdW5jdGlvbiBoYW5kbGVTaWRlQnlTaWRlTGlua0NsaWNrKCkgewogICAgY29udmVydERpZmYo
J3NpZGVieXNpZGUnLCB0aGlzKTsKICB9CgogIGZ1bmN0aW9uIGhhbmRsZVVuaWZ5TGlua0NsaWNr
KCkgewogICAgY29udmVydERpZmYoJ3VuaWZpZWQnLCB0aGlzKTsKICB9CgogIGZ1bmN0aW9uIGNv
bnZlcnREaWZmKGRpZmZ0eXBlLCBjb252ZXJ0X2xpbmspIHsKICAgIHZhciBmaWxlX2RpZmZzID0g
JChjb252ZXJ0X2xpbmspLnBhcmVudHMoJy5GaWxlRGlmZicpOwogICAgaWYgKCFmaWxlX2RpZmZz
LnNpemUoKSkgewogICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY29kZS1yZXZpZXctZGlmZnN0
YXRlJywgZGlmZnR5cGUpOwogICAgICBmaWxlX2RpZmZzID0gJCgnLkZpbGVEaWZmJyk7CiAgICB9
CgogICAgY29udmVydEFsbEZpbGVEaWZmcyhkaWZmdHlwZSwgZmlsZV9kaWZmcyk7CiAgfQoKICBm
dW5jdGlvbiBwYXRjaFJldmlzaW9uKCkgewogICAgdmFyIHJldmlzaW9uID0gJCgnLnJldmlzaW9u
Jyk7CiAgICByZXR1cm4gcmV2aXNpb25bMF0gPyByZXZpc2lvbi5maXJzdCgpLnRleHQoKSA6IG51
bGw7CiAgfQoKICBmdW5jdGlvbiBzZXRGaWxlQ29udGVudHMoZmlsZV9uYW1lLCBvcmlnaW5hbF9j
b250ZW50cywgcGF0Y2hlZF9jb250ZW50cykgewogICAgb3JpZ2luYWxfZmlsZV9jb250ZW50c1tm
aWxlX25hbWVdID0gb3JpZ2luYWxfY29udGVudHM7CiAgICBwYXRjaGVkX2ZpbGVfY29udGVudHNb
ZmlsZV9uYW1lXSA9IHBhdGNoZWRfY29udGVudHM7CiAgfQoKICBmdW5jdGlvbiBnZXRXZWJLaXRT
b3VyY2VGaWxlKGZpbGVfbmFtZSwgb25Mb2FkLCBleHBhbmRfYmFyKSB7CiAgICBmdW5jdGlvbiBo
YW5kbGVMb2FkKGNvbnRlbnRzKSB7CiAgICAgIHZhciBzcGxpdF9jb250ZW50cyA9IGNvbnRlbnRz
LnNwbGl0KCdcbicpOwogICAgICBzZXRGaWxlQ29udGVudHMoZmlsZV9uYW1lLCBzcGxpdF9jb250
ZW50cywgYXBwbHlEaWZmKHNwbGl0X2NvbnRlbnRzLCBmaWxlX25hbWUpKTsKICAgICAgb25Mb2Fk
KCk7CiAgICB9OwoKICAgIHZhciByZXZpc2lvbiA9IHBhdGNoUmV2aXNpb24oKTsKICAgIHZhciBx
dWVyeVBhcmFtZXRlcnMgPSByZXZpc2lvbiA/ICc/cD0nICsgcmV2aXNpb24gOiAnJzsKCiAgICAk
LmFqYXgoewogICAgICB1cmw6IFdFQktJVF9CQVNFX0RJUiArIGZpbGVfbmFtZSArIHF1ZXJ5UGFy
YW1ldGVycywKICAgICAgY29udGV4dDogZG9jdW1lbnQuYm9keSwKICAgICAgY29tcGxldGU6IGZ1
bmN0aW9uKHhociwgZGF0YSkgewogICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDApCiAg
ICAgICAgICAgICAgICAgIGhhbmRsZUxvYWRFcnJvcihleHBhbmRfYmFyKTsKICAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgIGhhbmRsZUxvYWQoeGhyLnJlc3BvbnNlVGV4dCk7CiAg
ICAgIH0KICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gcmVwbGFjZUV4cGFuZExpbmtDb250YWluZXJz
KGV4cGFuZF9iYXIsIHRleHQpIHsKICAgICQoJy5FeHBhbmRMaW5rQ29udGFpbmVyJywgJChleHBh
bmRfYmFyKS5wYXJlbnRzKCcuRmlsZURpZmYnKSkucmVwbGFjZVdpdGgoJzxzcGFuIGNsYXNzPSJF
eHBhbmRUZXh0Ij4nICsgdGV4dCArICc8L3NwYW4+Jyk7CiAgfQoKICBmdW5jdGlvbiBoYW5kbGVM
b2FkRXJyb3IoZXhwYW5kX2JhcikgewogICAgcmVwbGFjZUV4cGFuZExpbmtDb250YWluZXJzKGV4
cGFuZF9iYXIsICJDYW4ndCBleHBhbmQuIElzIHRoaXMgYSBuZXcgb3IgZGVsZXRlZCBmaWxlPyIp
OwogIH0KCiAgdmFyIEFCT1ZFID0gJ2Fib3ZlJzsKICB2YXIgQkVMT1cgPSAnYmVsb3cnOwogIHZh
ciBBTEwgPSAnYWxsJzsKCiAgZnVuY3Rpb24gbGluZU51bWJlcnNGcm9tU2V0KHNldCwgaXNfbGFz
dCkgewogICAgdmFyIHRvID0gLTE7CiAgICB2YXIgZnJvbSA9IC0xOwoKICAgIHZhciBzaXplID0g
c2V0LnNpemUoKTsKICAgIHZhciBzdGFydCA9IGlzX2xhc3QgPyAoc2l6ZSAtIDEpIDogMDsKICAg
IHZhciBlbmQgPSBpc19sYXN0ID8gLTEgOiBzaXplOwogICAgdmFyIG9mZnNldCA9IGlzX2xhc3Qg
PyAtMSA6IDE7CgogICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpICE9IGVuZDsgaSArPSBvZmZzZXQp
IHsKICAgICAgaWYgKHRvICE9IC0xICYmIGZyb20gIT0gLTEpCiAgICAgICAgcmV0dXJuIHt0bzog
dG8sIGZyb206IGZyb219OwoKICAgICAgdmFyIGxpbmVfbnVtYmVyID0gc2V0W2ldOwogICAgICBp
ZiAoJChsaW5lX251bWJlcikuaGFzQ2xhc3MoJ3RvJykpIHsKICAgICAgICBpZiAodG8gPT0gLTEp
CiAgICAgICAgICB0byA9IE51bWJlcihsaW5lX251bWJlci50ZXh0Q29udGVudCk7CiAgICAgIH0g
ZWxzZSB7CiAgICAgICAgaWYgKGZyb20gPT0gLTEpCiAgICAgICAgICBmcm9tID0gTnVtYmVyKGxp
bmVfbnVtYmVyLnRleHRDb250ZW50KTsKICAgICAgfQogICAgfQogIH0KCiAgZnVuY3Rpb24gcmVt
b3ZlQ29udGV4dEJhckJlbG93KGV4cGFuZF9iYXIpIHsKICAgICQoJy5jb250ZXh0JywgZXhwYW5k
X2Jhci5uZXh0RWxlbWVudFNpYmxpbmcpLmRldGFjaCgpOwogIH0KCiAgZnVuY3Rpb24gZXhwYW5k
KGV4cGFuZF9iYXIsIGZpbGVfbmFtZSwgZGlyZWN0aW9uLCBhbW91bnQpIHsKICAgIGlmIChmaWxl
X25hbWUgaW4gb3JpZ2luYWxfZmlsZV9jb250ZW50cyAmJiAhcGF0Y2hlZF9maWxlX2NvbnRlbnRz
W2ZpbGVfbmFtZV0pIHsKICAgICAgLy8gRklYTUU6IEluIHRoaXMgY2FzZSwgdHJ5IGZldGNoaW5n
IHRoZSBzb3VyY2UgZmlsZSBhdCB0aGUgcmV2aXNpb24gdGhlIHBhdGNoIHdhcyBjcmVhdGVkIGF0
LgogICAgICAvLyBNaWdodCBuZWVkIHRvIG1vZGlmeSB3ZWJraXQtcGF0Y2ggdG8gaW5jbHVkZSB0
aGF0IGRhdGEgaW4gdGhlIGRpZmYuCiAgICAgIHJlcGxhY2VFeHBhbmRMaW5rQ29udGFpbmVycyhl
eHBhbmRfYmFyLCAiQ2FuJ3QgZXhwYW5kLiBVbmFibGUgdG8gYXBwbHkgcGF0Y2ggdG8gdGlwIG9m
IHRyZWUuIik7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgYWJvdmVfZXhwYW5zaW9uID0g
ZXhwYW5kX2Jhci5xdWVyeVNlbGVjdG9yKCcuRXhwYW5kJyArIEFCT1ZFKQogICAgdmFyIGJlbG93
X2V4cGFuc2lvbiA9IGV4cGFuZF9iYXIucXVlcnlTZWxlY3RvcignLkV4cGFuZCcgKyBCRUxPVykK
CiAgICB2YXIgYWJvdmVfbGluZV9udW1iZXJzID0gJCgnLmV4cGFuc2lvbkxpbmVOdW1iZXInLCBh
Ym92ZV9leHBhbnNpb24pOwogICAgaWYgKCFhYm92ZV9saW5lX251bWJlcnNbMF0pIHsKICAgICAg
dmFyIGRpZmZfc2VjdGlvbiA9IGV4cGFuZF9iYXIucHJldmlvdXNFbGVtZW50U2libGluZzsKICAg
ICAgYWJvdmVfbGluZV9udW1iZXJzID0gJCgnLkxpbmU6bm90KC5jb250ZXh0KSAubGluZU51bWJl
cicsIGRpZmZfc2VjdGlvbik7CiAgICB9CgogICAgdmFyIGFib3ZlX2xhc3RfbGluZV9udW0sIGFi
b3ZlX2xhc3RfZnJvbV9saW5lX251bTsKICAgIGlmIChhYm92ZV9saW5lX251bWJlcnNbMF0pIHsK
ICAgICAgdmFyIGFib3ZlX251bWJlcnMgPSBsaW5lTnVtYmVyc0Zyb21TZXQoYWJvdmVfbGluZV9u
dW1iZXJzLCB0cnVlKTsKICAgICAgYWJvdmVfbGFzdF9saW5lX251bSA9IGFib3ZlX251bWJlcnMu
dG87CiAgICAgIGFib3ZlX2xhc3RfZnJvbV9saW5lX251bSA9IGFib3ZlX251bWJlcnMuZnJvbTsK
ICAgIH0gZWxzZQogICAgICBhYm92ZV9sYXN0X2Zyb21fbGluZV9udW0gPSBhYm92ZV9sYXN0X2xp
bmVfbnVtID0gMDsKCiAgICB2YXIgYmVsb3dfbGluZV9udW1iZXJzID0gJCgnLmV4cGFuc2lvbkxp
bmVOdW1iZXInLCBiZWxvd19leHBhbnNpb24pOwogICAgaWYgKCFiZWxvd19saW5lX251bWJlcnNb
MF0pIHsKICAgICAgdmFyIGRpZmZfc2VjdGlvbiA9IGV4cGFuZF9iYXIubmV4dEVsZW1lbnRTaWJs
aW5nOwogICAgICBpZiAoZGlmZl9zZWN0aW9uKQogICAgICAgIGJlbG93X2xpbmVfbnVtYmVycyA9
ICQoJy5MaW5lOm5vdCguY29udGV4dCkgLmxpbmVOdW1iZXInLCBkaWZmX3NlY3Rpb24pOwogICAg
fQoKICAgIHZhciBiZWxvd19maXJzdF9saW5lX251bSwgYmVsb3dfZmlyc3RfZnJvbV9saW5lX251
bTsKICAgIGlmIChiZWxvd19saW5lX251bWJlcnNbMF0pIHsKICAgICAgdmFyIGJlbG93X251bWJl
cnMgPSBsaW5lTnVtYmVyc0Zyb21TZXQoYmVsb3dfbGluZV9udW1iZXJzLCBmYWxzZSk7CiAgICAg
IGJlbG93X2ZpcnN0X2xpbmVfbnVtID0gYmVsb3dfbnVtYmVycy50byAtIDE7CiAgICAgIGJlbG93
X2ZpcnN0X2Zyb21fbGluZV9udW0gPSBiZWxvd19udW1iZXJzLmZyb20gLSAxOwogICAgfSBlbHNl
CiAgICAgIGJlbG93X2ZpcnN0X2Zyb21fbGluZV9udW0gPSBiZWxvd19maXJzdF9saW5lX251bSA9
IHBhdGNoZWRfZmlsZV9jb250ZW50c1tmaWxlX25hbWVdLmxlbmd0aCAtIDE7CgogICAgdmFyIHN0
YXJ0X2xpbmVfbnVtLCBzdGFydF9mcm9tX2xpbmVfbnVtOwogICAgdmFyIGVuZF9saW5lX251bTsK
CiAgICBpZiAoZGlyZWN0aW9uID09IEFCT1ZFKSB7CiAgICAgIHN0YXJ0X2Zyb21fbGluZV9udW0g
PSBhYm92ZV9sYXN0X2Zyb21fbGluZV9udW07CiAgICAgIHN0YXJ0X2xpbmVfbnVtID0gYWJvdmVf
bGFzdF9saW5lX251bTsKICAgICAgZW5kX2xpbmVfbnVtID0gTWF0aC5taW4oc3RhcnRfbGluZV9u
dW0gKyBhbW91bnQsIGJlbG93X2ZpcnN0X2xpbmVfbnVtKTsKICAgIH0gZWxzZSBpZiAoZGlyZWN0
aW9uID09IEJFTE9XKSB7CiAgICAgIGVuZF9saW5lX251bSA9IGJlbG93X2ZpcnN0X2xpbmVfbnVt
OwogICAgICBzdGFydF9saW5lX251bSA9IE1hdGgubWF4KGVuZF9saW5lX251bSAtIGFtb3VudCwg
YWJvdmVfbGFzdF9saW5lX251bSkKICAgICAgc3RhcnRfZnJvbV9saW5lX251bSA9IE1hdGgubWF4
KGJlbG93X2ZpcnN0X2Zyb21fbGluZV9udW0gLSBhbW91bnQsIGFib3ZlX2xhc3RfZnJvbV9saW5l
X251bSkKICAgIH0gZWxzZSB7IC8vIGRpcmVjdGlvbiA9PSBBTEwKICAgICAgc3RhcnRfbGluZV9u
dW0gPSBhYm92ZV9sYXN0X2xpbmVfbnVtOwogICAgICBzdGFydF9mcm9tX2xpbmVfbnVtID0gYWJv
dmVfbGFzdF9mcm9tX2xpbmVfbnVtOwogICAgICBlbmRfbGluZV9udW0gPSBiZWxvd19maXJzdF9s
aW5lX251bTsKICAgIH0KCiAgICB2YXIgbGluZXMgPSBleHBhbnNpb25MaW5lcyhmaWxlX25hbWUs
IGV4cGFuc2lvbl9hcmVhLCBkaXJlY3Rpb24sIHN0YXJ0X2xpbmVfbnVtLCBlbmRfbGluZV9udW0s
IHN0YXJ0X2Zyb21fbGluZV9udW0pOwoKICAgIHZhciBleHBhbnNpb25fYXJlYTsKICAgIC8vIEZp
bGxpbmcgaW4gYWxsIHRoZSByZW1haW5pbmcgbGluZXMuIE92ZXJ3cml0ZSB0aGUgZXhwYW5kIGxp
bmtzLgogICAgaWYgKHN0YXJ0X2xpbmVfbnVtID09IGFib3ZlX2xhc3RfbGluZV9udW0gJiYgZW5k
X2xpbmVfbnVtID09IGJlbG93X2ZpcnN0X2xpbmVfbnVtKSB7CiAgICAgICQoJy5FeHBhbmRMaW5r
Q29udGFpbmVyJywgZXhwYW5kX2JhcikuZGV0YWNoKCk7CiAgICAgIGJlbG93X2V4cGFuc2lvbi5p
bnNlcnRCZWZvcmUobGluZXMsIGJlbG93X2V4cGFuc2lvbi5maXJzdENoaWxkKTsKICAgICAgcmVt
b3ZlQ29udGV4dEJhckJlbG93KGV4cGFuZF9iYXIpOwogICAgfSBlbHNlIGlmIChkaXJlY3Rpb24g
PT0gQUJPVkUpIHsKICAgICAgYWJvdmVfZXhwYW5zaW9uLmFwcGVuZENoaWxkKGxpbmVzKTsKICAg
IH0gZWxzZSB7CiAgICAgIGJlbG93X2V4cGFuc2lvbi5pbnNlcnRCZWZvcmUobGluZXMsIGJlbG93
X2V4cGFuc2lvbi5maXJzdENoaWxkKTsKICAgICAgcmVtb3ZlQ29udGV4dEJhckJlbG93KGV4cGFu
ZF9iYXIpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gdW5pZmllZExpbmUoZnJvbSwgdG8sIGNvbnRl
bnRzLCBpc19leHBhbnNpb25fbGluZSwgb3B0X2NsYXNzTmFtZSwgb3B0X2F0dHJpYnV0ZXMpIHsK
ICAgIHZhciBjbGFzc05hbWUgPSBpc19leHBhbnNpb25fbGluZSA/ICdFeHBhbnNpb25MaW5lJyA6
ICdMaW5lQ29udGFpbmVyIExpbmUnOwogICAgaWYgKG9wdF9jbGFzc05hbWUpCiAgICAgIGNsYXNz
TmFtZSArPSAnICcgKyBvcHRfY2xhc3NOYW1lOwoKICAgIHZhciBsaW5lTnVtYmVyQ2xhc3NOYW1l
ID0gaXNfZXhwYW5zaW9uX2xpbmUgPyAnZXhwYW5zaW9uTGluZU51bWJlcicgOiAnbGluZU51bWJl
cic7CgogICAgdmFyIGxpbmUgPSAkKCc8ZGl2IGNsYXNzPSInICsgY2xhc3NOYW1lICsgJyIgJyAr
IChvcHRfYXR0cmlidXRlcyB8fCAnJykgKyAnPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iZnJv
bSAnICsgbGluZU51bWJlckNsYXNzTmFtZSArICciPicgKyAoZnJvbSB8fCAnJm5ic3A7JykgKwog
ICAgICAgICc8L3NwYW4+PHNwYW4gY2xhc3M9InRvICcgKyBsaW5lTnVtYmVyQ2xhc3NOYW1lICsg
JyI+JyArICh0byB8fCAnJm5ic3A7JykgKwogICAgICAgICc8L3NwYW4+PHNwYW4gY2xhc3M9InRl
eHQiPjwvc3Bhbj4nICsKICAgICAgICAnPC9kaXY+Jyk7CgogICAgJCgnLnRleHQnLCBsaW5lKS5y
ZXBsYWNlV2l0aChjb250ZW50cyk7CiAgICByZXR1cm4gbGluZTsKICB9CgogIGZ1bmN0aW9uIHVu
aWZpZWRFeHBhbnNpb25MaW5lKGZyb20sIHRvLCBjb250ZW50cykgewogICAgcmV0dXJuIHVuaWZp
ZWRMaW5lKGZyb20sIHRvLCBjb250ZW50cywgdHJ1ZSk7CiAgfQoKICBmdW5jdGlvbiBzaWRlQnlT
aWRlRXhwYW5zaW9uTGluZShmcm9tLCB0bywgY29udGVudHMpIHsKICAgIHZhciBsaW5lID0gJCgn
PGRpdiBjbGFzcz0iRXhwYW5zaW9uTGluZSI+PC9kaXY+Jyk7CiAgICAvLyBDbG9uZSB0aGUgY29u
dGVudHMgc28gd2UgaGF2ZSB0d28gY29waWVzIHdlIGNhbiBwdXQgYmFjayBpbiB0aGUgRE9NLgog
ICAgbGluZS5hcHBlbmQobGluZVNpZGUoJ2Zyb20nLCBjb250ZW50cy5jbG9uZSh0cnVlKSwgdHJ1
ZSwgZnJvbSkpOwogICAgbGluZS5hcHBlbmQobGluZVNpZGUoJ3RvJywgY29udGVudHMsIHRydWUs
IHRvKSk7CiAgICByZXR1cm4gbGluZTsKICB9CgogIGZ1bmN0aW9uIGxpbmVTaWRlKHNpZGUsIGNv
bnRlbnRzLCBpc19leHBhbnNpb25fbGluZSwgb3B0X2xpbmVfbnVtYmVyLCBvcHRfYXR0cmlidXRl
cywgb3B0X2NsYXNzKSB7CiAgICB2YXIgY2xhc3NfbmFtZSA9ICcnOwogICAgaWYgKG9wdF9hdHRy
aWJ1dGVzIHx8IG9wdF9jbGFzcykgewogICAgICBjbGFzc19uYW1lID0gJ2NsYXNzPSInOwogICAg
ICBpZiAob3B0X2F0dHJpYnV0ZXMpCiAgICAgICAgY2xhc3NfbmFtZSArPSBpc19leHBhbnNpb25f
bGluZSA/ICdFeHBhbnNpb25MaW5lJyA6ICdMaW5lJzsKICAgICAgY2xhc3NfbmFtZSArPSAnICcg
KyAob3B0X2NsYXNzIHx8ICcnKSArICciJzsKICAgIH0KCiAgICB2YXIgYXR0cmlidXRlcyA9IG9w
dF9hdHRyaWJ1dGVzIHx8ICcnOwoKICAgIHZhciBsaW5lX3NpZGUgPSAkKCc8ZGl2IGNsYXNzPSJM
aW5lU2lkZSI+JyArCiAgICAgICAgJzxkaXYgJyArIGF0dHJpYnV0ZXMgKyAnICcgKyBjbGFzc19u
YW1lICsgJz4nICsKICAgICAgICAgICc8c3BhbiBjbGFzcz0iJyArIHNpZGUgKyAnICcgKyAoaXNf
ZXhwYW5zaW9uX2xpbmUgPyAnZXhwYW5zaW9uTGluZU51bWJlcicgOiAnbGluZU51bWJlcicpICsg
JyI+JyArCiAgICAgICAgICAgICAgKG9wdF9saW5lX251bWJlciB8fCAnJm5ic3A7JykgKwogICAg
ICAgICAgJzwvc3Bhbj4nICsKICAgICAgICAgICc8c3BhbiBjbGFzcz0idGV4dCI+PC9zcGFuPicg
KwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+Jyk7CgogICAgJCgnLnRleHQnLCBs
aW5lX3NpZGUpLnJlcGxhY2VXaXRoKGNvbnRlbnRzKTsKICAgIHJldHVybiBsaW5lX3NpZGU7CiAg
fQoKICBmdW5jdGlvbiBleHBhbnNpb25MaW5lcyhmaWxlX25hbWUsIGV4cGFuc2lvbl9hcmVhLCBk
aXJlY3Rpb24sIHN0YXJ0X2xpbmVfbnVtLCBlbmRfbGluZV9udW0sIHN0YXJ0X2Zyb21fbGluZV9u
dW0pIHsKICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo
KTsKICAgIHZhciBpc19zaWRlX2J5X3NpZGUgPSBpc0RpZmZTaWRlQnlTaWRlKGZpbGVzW2ZpbGVf
bmFtZV0pOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW5kX2xpbmVfbnVtIC0gc3RhcnRfbGlu
ZV9udW07IGkrKykgewogICAgICB2YXIgZnJvbSA9IHN0YXJ0X2Zyb21fbGluZV9udW0gKyBpICsg
MTsKICAgICAgdmFyIHRvID0gc3RhcnRfbGluZV9udW0gKyBpICsgMTsKICAgICAgdmFyIGNvbnRl
bnRzID0gJCgnPHNwYW4gY2xhc3M9InRleHQiPjwvc3Bhbj4nKTsKICAgICAgY29udGVudHMudGV4
dChwYXRjaGVkX2ZpbGVfY29udGVudHNbZmlsZV9uYW1lXVtzdGFydF9saW5lX251bSArIGldKTsK
ICAgICAgdmFyIGxpbmUgPSBpc19zaWRlX2J5X3NpZGUgPyBzaWRlQnlTaWRlRXhwYW5zaW9uTGlu
ZShmcm9tLCB0bywgY29udGVudHMpIDogdW5pZmllZEV4cGFuc2lvbkxpbmUoZnJvbSwgdG8sIGNv
bnRlbnRzKTsKICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQobGluZVswXSk7CiAgICB9CgogICAg
cmV0dXJuIGZyYWdtZW50OwogIH0KCiAgZnVuY3Rpb24gaHVua1N0YXJ0aW5nTGluZShwYXRjaGVk
X2ZpbGUsIGNvbnRleHQsIHByZXZfbGluZSwgaHVua19udW0pIHsKICAgIHZhciBjdXJyZW50X2xp
bmUgPSAtMTsKICAgIHZhciBsYXN0X2NvbnRleHRfbGluZSA9IGNvbnRleHRbY29udGV4dC5sZW5n
dGggLSAxXTsKICAgIGlmIChwYXRjaGVkX2ZpbGVbcHJldl9saW5lXSA9PSBsYXN0X2NvbnRleHRf
bGluZSkKICAgICAgY3VycmVudF9saW5lID0gcHJldl9saW5lICsgMTsKICAgIGVsc2UgewogICAg
ICBjb25zb2xlLmxvZygnSHVuayAjJyArIGh1bmtfbnVtICsgJyBGQUlMRUQuJyk7CiAgICAgIHJl
dHVybiAtMTsKICAgIH0KCiAgICAvLyBGb3IgcGFyYW5vaWEgc2FrZSwgY29uZmlybSB0aGUgcmVz
dCBvZiB0aGUgY29udGV4dCBtYXRjaGVzOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250ZXh0
Lmxlbmd0aCAtIDE7IGkrKykgewogICAgICBpZiAocGF0Y2hlZF9maWxlW2N1cnJlbnRfbGluZSAt
IGNvbnRleHQubGVuZ3RoICsgaV0gIT0gY29udGV4dFtpXSkgewogICAgICAgIGNvbnNvbGUubG9n
KCdIdW5rICMnICsgaHVua19udW0gKyAnIEZBSUxFRC4gRGlkIG5vdCBtYXRjaCBwcmVjZWRpbmcg
Y29udGV4dC4nKTsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4g
Y3VycmVudF9saW5lOwogIH0KCiAgZnVuY3Rpb24gZnJvbUxpbmVOdW1iZXIobGluZSkgewogICAg
dmFyIG5vZGUgPSBsaW5lLnF1ZXJ5U2VsZWN0b3IoJy5mcm9tJyk7CiAgICByZXR1cm4gbm9kZSA/
IE51bWJlcihub2RlLnRleHRDb250ZW50KSA6IDA7CiAgfQoKICBmdW5jdGlvbiB0b0xpbmVOdW1i
ZXIobGluZSkgewogICAgdmFyIG5vZGUgPSBsaW5lLnF1ZXJ5U2VsZWN0b3IoJy50bycpOwogICAg
cmV0dXJuIG5vZGUgPyBOdW1iZXIobm9kZS50ZXh0Q29udGVudCkgOiAwOwogIH0KCiAgZnVuY3Rp
b24gdGV4dENvbnRlbnRzRm9yKGxpbmUpIHsKICAgIC8vIEp1c3QgZ2V0IHRoZSBmaXJzdCBtYXRj
aCBzaW5jZSBhIHNpZGUtYnktc2lkZSBkaWZmIGhhcyB0d28gbGluZXMgd2l0aCB0ZXh0IGluc2lk
ZSB0aGVtIGZvcgogICAgLy8gdW5tb2RpZmllZCBsaW5lcyBpbiB0aGUgZGlmZi4KICAgIHJldHVy
biAkKCcudGV4dCcsIGxpbmUpLmZpcnN0KCkudGV4dCgpOwogIH0KCiAgZnVuY3Rpb24gbGluZU51
bWJlckZvckZpcnN0Tm9uQ29udGV4dExpbmUocGF0Y2hlZF9maWxlLCBsaW5lLCBwcmV2X2xpbmUs
IGNvbnRleHQsIGh1bmtfbnVtKSB7CiAgICBpZiAoY29udGV4dC5sZW5ndGgpIHsKICAgICAgdmFy
IHByZXZfbGluZV9udW0gPSBmcm9tTGluZU51bWJlcihwcmV2X2xpbmUpIC0gMTsKICAgICAgcmV0
dXJuIGh1bmtTdGFydGluZ0xpbmUocGF0Y2hlZF9maWxlLCBjb250ZXh0LCBwcmV2X2xpbmVfbnVt
LCBodW5rX251bSk7CiAgICB9CgogICAgaWYgKHRvTGluZU51bWJlcihsaW5lKSA9PSAxIHx8IGZy
b21MaW5lTnVtYmVyKGxpbmUpID09IDEpCiAgICAgIHJldHVybiAwOwoKICAgIGNvbnNvbGUubG9n
KCdGYWlsZWQgdG8gYXBwbHkgcGF0Y2guIEFkZHMgb3IgcmVtb3ZlcyBsaW5lcyBiZWZvcmUgYW55
IGNvbnRleHQgbGluZXMuJyk7CiAgICByZXR1cm4gLTE7CiAgfQoKICBmdW5jdGlvbiBhcHBseURp
ZmYob3JpZ2luYWxfZmlsZSwgZmlsZV9uYW1lKSB7CiAgICB2YXIgZGlmZl9zZWN0aW9ucyA9IGZp
bGVzW2ZpbGVfbmFtZV0uZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnRGlmZlNlY3Rpb24nKTsKICAg
IHZhciBwYXRjaGVkX2ZpbGUgPSBvcmlnaW5hbF9maWxlLmNvbmNhdChbXSk7CgogICAgLy8gQXBw
bHkgZGlmZnMgaW4gcmV2ZXJzZSBvcmRlciB0byBhdm9pZCBuZWVkaW5nIHRvIGtlZXAgdHJhY2sg
b2YgY2hhbmdpbmcgbGluZSBudW1iZXJzLgogICAgZm9yICh2YXIgaSA9IGRpZmZfc2VjdGlvbnMu
bGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgdmFyIHNlY3Rpb24gPSBkaWZmX3NlY3Rp
b25zW2ldOwogICAgICB2YXIgbGluZXMgPSAkKCcuTGluZTpub3QoLmNvbnRleHQpJywgc2VjdGlv
bik7CiAgICAgIHZhciBjdXJyZW50X2xpbmUgPSAtMTsKICAgICAgdmFyIGNvbnRleHQgPSBbXTsK
ICAgICAgdmFyIGh1bmtfbnVtID0gaSArIDE7CgogICAgICBmb3IgKHZhciBqID0gMCwgbGluZXNf
bGVuID0gbGluZXMubGVuZ3RoOyBqIDwgbGluZXNfbGVuOyBqKyspIHsKICAgICAgICB2YXIgbGlu
ZSA9IGxpbmVzW2pdOwogICAgICAgIHZhciBsaW5lX2NvbnRlbnRzID0gdGV4dENvbnRlbnRzRm9y
KGxpbmUpOwogICAgICAgIGlmICgkKGxpbmUpLmhhc0NsYXNzKCdhZGQnKSkgewogICAgICAgICAg
aWYgKGN1cnJlbnRfbGluZSA9PSAtMSkgewogICAgICAgICAgICBjdXJyZW50X2xpbmUgPSBsaW5l
TnVtYmVyRm9yRmlyc3ROb25Db250ZXh0TGluZShwYXRjaGVkX2ZpbGUsIGxpbmUsIGxpbmVzW2ot
MV0sIGNvbnRleHQsIGh1bmtfbnVtKTsKICAgICAgICAgICAgaWYgKGN1cnJlbnRfbGluZSA9PSAt
MSkKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KCiAgICAgICAgICBwYXRj
aGVkX2ZpbGUuc3BsaWNlKGN1cnJlbnRfbGluZSwgMCwgbGluZV9jb250ZW50cyk7CiAgICAgICAg
ICBjdXJyZW50X2xpbmUrKzsKICAgICAgICB9IGVsc2UgaWYgKCQobGluZSkuaGFzQ2xhc3MoJ3Jl
bW92ZScpKSB7CiAgICAgICAgICBpZiAoY3VycmVudF9saW5lID09IC0xKSB7CiAgICAgICAgICAg
IGN1cnJlbnRfbGluZSA9IGxpbmVOdW1iZXJGb3JGaXJzdE5vbkNvbnRleHRMaW5lKHBhdGNoZWRf
ZmlsZSwgbGluZSwgbGluZXNbai0xXSwgY29udGV4dCwgaHVua19udW0pOwogICAgICAgICAgICBp
ZiAoY3VycmVudF9saW5lID09IC0xKQogICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAg
ICAgfQoKICAgICAgICAgIGlmIChwYXRjaGVkX2ZpbGVbY3VycmVudF9saW5lXSAhPSBsaW5lX2Nv
bnRlbnRzKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdIdW5rICMnICsgaHVua19udW0gKyAn
IEZBSUxFRC4nKTsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICB9CgogICAgICAg
ICAgcGF0Y2hlZF9maWxlLnNwbGljZShjdXJyZW50X2xpbmUsIDEpOwogICAgICAgIH0gZWxzZSBp
ZiAoY3VycmVudF9saW5lID09IC0xKSB7CiAgICAgICAgICBjb250ZXh0LnB1c2gobGluZV9jb250
ZW50cyk7CiAgICAgICAgfSBlbHNlIGlmIChsaW5lX2NvbnRlbnRzICE9IHBhdGNoZWRfZmlsZVtj
dXJyZW50X2xpbmVdKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygnSHVuayAjJyArIGh1bmtfbnVt
ICsgJyBGQUlMRUQuIENvbnRleHQgYXQgZW5kIGRpZCBub3QgbWF0Y2gnKTsKICAgICAgICAgIHJl
dHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50X2xpbmUrKzsKICAg
ICAgICB9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcGF0Y2hlZF9maWxlOwogIH0KCiAgZnVu
Y3Rpb24gb3Blbk92ZXJhbGxDb21tZW50cyhlKSB7CiAgICAkKCcub3ZlcmFsbENvbW1lbnRzIHRl
eHRhcmVhJykuYWRkQ2xhc3MoJ29wZW4nKTsKICAgICQoJyNzdGF0dXNCdWJibGVDb250YWluZXIn
KS5hZGRDbGFzcygnd3JhcCcpOwogIH0KCiAgdmFyIGdfb3ZlcmFsbENvbW1lbnRzSW5wdXRUaW1l
cjsKCiAgZnVuY3Rpb24gaGFuZGxlT3ZlcmFsbENvbW1lbnRzSW5wdXQoKSB7CiAgICBzZXRBdXRv
U2F2ZVN0YXRlSW5kaWNhdG9yKCdzYXZpbmcnKTsKICAgIC8vIFNhdmUgZHJhZnQgY29tbWVudHMg
YWZ0ZXIgd2UgaGF2ZW4ndCByZWNlaXZlZCBhbiBpbnB1dCBldmVudCBpbiAxIHNlY29uZC4KICAg
IGlmIChnX292ZXJhbGxDb21tZW50c0lucHV0VGltZXIpCiAgICAgIGNsZWFyVGltZW91dChnX292
ZXJhbGxDb21tZW50c0lucHV0VGltZXIpOwogICAgZ19vdmVyYWxsQ29tbWVudHNJbnB1dFRpbWVy
ID0gc2V0VGltZW91dChzYXZlRHJhZnRDb21tZW50cywgMTAwMCk7CiAgfQoKICBmdW5jdGlvbiBk
aWZmTGlua3NIdG1sKCkgewogICAgcmV0dXJuICc8YSBocmVmPSJqYXZhc2NyaXB0OiIgY2xhc3M9
InVuaWZ5LWxpbmsiPnVuaWZpZWQ8L2E+JyArCiAgICAgICc8YSBocmVmPSJqYXZhc2NyaXB0OiIg
Y2xhc3M9InNpZGUtYnktc2lkZS1saW5rIj5zaWRlLWJ5LXNpZGU8L2E+JzsKICB9CgogIGZ1bmN0
aW9uIGFwcGVuZFRvb2xiYXIoKSB7CiAgICAkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgnPGRpdiBp
ZD0idG9vbGJhciI+JyArCiAgICAgICAgJzxkaXYgY2xhc3M9Im92ZXJhbGxDb21tZW50cyI+JyAr
CiAgICAgICAgICAnPHRleHRhcmVhIHBsYWNlaG9sZGVyPSJPdmVyYWxsIGNvbW1lbnRzIj48L3Rl
eHRhcmVhPicgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGRpdj4nICsKICAgICAgICAg
ICc8c3BhbiBpZD0ic3RhdHVzQnViYmxlQ29udGFpbmVyIj48L3NwYW4+JyArCiAgICAgICAgICAn
PHNwYW4gY2xhc3M9ImFjdGlvbnMiPicgKwogICAgICAgICAgICAnPHNwYW4gY2xhc3M9Imxpbmtz
Ij48c3BhbiBjbGFzcz0iYnVnTGluayI+PC9zcGFuPjwvc3Bhbj4nICsKICAgICAgICAgICAgJzxz
cGFuIGlkPSJmbGFnQ29udGFpbmVyIj48L3NwYW4+JyArCiAgICAgICAgICAgICc8YnV0dG9uIGlk
PSJwcmV2aWV3X2NvbW1lbnRzIj5QcmV2aWV3PC9idXR0b24+JyArCiAgICAgICAgICAgICc8YnV0
dG9uIGlkPSJwb3N0X2NvbW1lbnRzIj5QdWJsaXNoPC9idXR0b24+ICcgKwogICAgICAgICAgJzwv
c3Bhbj4nICsKICAgICAgICAgICc8ZGl2IGNsYXNzPSJjbGVhcl9mbG9hdCI+PC9kaXY+JyArCiAg
ICAgICAgJzwvZGl2PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJhdXRvc2F2ZS1zdGF0ZSI+PC9k
aXY+JyArCiAgICAgICAgJzwvZGl2PicpOwoKICAgICQoJy5vdmVyYWxsQ29tbWVudHMgdGV4dGFy
ZWEnKS5iaW5kKCdjbGljaycsIG9wZW5PdmVyYWxsQ29tbWVudHMpOwogICAgJCgnLm92ZXJhbGxD
b21tZW50cyB0ZXh0YXJlYScpLmJpbmQoJ2lucHV0JywgaGFuZGxlT3ZlcmFsbENvbW1lbnRzSW5w
dXQpOwoKICAgIHZhciB0b29sYmFyID0gJCgnI3Rvb2xiYXInKTsKICAgIHRvb2xiYXIuY3NzKCdw
b3NpdGlvbicsICctd2Via2l0LXN0aWNreScpOwogICAgdmFyIHN1cHBvcnRzU3RpY2t5ID0gdG9v
bGJhci5jc3MoJ3Bvc2l0aW9uJykgPT0gJy13ZWJraXQtc3RpY2t5JzsKICAgIGRvY3VtZW50LmJv
ZHkuc3R5bGUubWFyZ2luQm90dG9tID0gc3VwcG9ydHNTdGlja3kgPyAwIDogJzQwcHgnOwogIH0K
CiAgZnVuY3Rpb24gaGFuZGxlRG9jdW1lbnRSZWFkeSgpIHsKICAgIGNyYXdsRGlmZigpOwogICAg
ZmV0Y2hIaXN0b3J5KCk7CgogICAgJChkb2N1bWVudC5ib2R5KS5wcmVwZW5kKCc8ZGl2IGlkPSJt
ZXNzYWdlIj4nICsKICAgICAgICAnPGRpdiBjbGFzcz0iaGVscCI+U2VsZWN0IGxpbmUgbnVtYmVy
cyB0byBhZGQgYSBjb21tZW50LiBTY3JvbGwgdGhvdWdoIGRpZmZzIHdpdGggdGhlICJqIiBhbmQg
ImsiIGtleXMuJyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0iRGlmZkxpbmtzIExpbmtDb250YWlu
ZXIiPicgKwogICAgICAgICAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ibGluZS1udW1i
ZXItb24tY29weSI+PGxhYmVsIGZvcj0ibGluZS1udW1iZXItb24tY29weSI+U2tpcCBsaW5lIG51
bWJlcnMgb24gY29weTwvbGFiZWw+JyArCiAgICAgICAgICAgIGRpZmZMaW5rc0h0bWwoKSArCiAg
ICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAnPGEgaHJlZj0iamF2YXNjcmlwdDoiIGNsYXNz
PSJtb3JlIj5bbW9yZV08L2E+JyArCiAgICAgICAgICAnPGRpdiBjbGFzcz0ibW9yZS1oZWxwIGlu
YWN0aXZlIj4nICsKICAgICAgICAgICAgJzxkaXYgY2xhc3M9IndpbnRlciI+PC9kaXY+JyArCiAg
ICAgICAgICAgICc8ZGl2IGNsYXNzPSJsaWdodGJveCI+PHRhYmxlPicgKwogICAgICAgICAgICAg
ICc8dHI+PHRkPmVudGVyPC90ZD48dGQ+YWRkL2VkaXQgY29tbWVudCBmb3IgZm9jdXNlZCBpdGVt
PC90ZD48L3RyPicgKwogICAgICAgICAgICAgICc8dHI+PHRkPmVzY2FwZTwvdGQ+PHRkPmFjY2Vw
dCBjdXJyZW50IGNvbW1lbnQgLyBjbG9zZSBwcmV2aWV3IGFuZCBoZWxwIHBvcHVwczwvdGQ+PC90
cj4nICsKICAgICAgICAgICAgICAnPHRyPjx0ZD5qPC90ZD48dGQ+Zm9jdXMgbmV4dCBkaWZmPC90
ZD48L3RyPicgKwogICAgICAgICAgICAgICc8dHI+PHRkPms8L3RkPjx0ZD5mb2N1cyBwcmV2aW91
cyBkaWZmPC90ZD48L3RyPicgKwogICAgICAgICAgICAgICc8dHI+PHRkPnNoaWZ0ICsgajwvdGQ+
PHRkPmZvY3VzIG5leHQgbGluZTwvdGQ+PC90cj4nICsKICAgICAgICAgICAgICAnPHRyPjx0ZD5z
aGlmdCArIGs8L3RkPjx0ZD5mb2N1cyBwcmV2aW91cyBsaW5lPC90ZD48L3RyPicgKwogICAgICAg
ICAgICAgICc8dHI+PHRkPm48L3RkPjx0ZD5mb2N1cyBuZXh0IGNvbW1lbnQ8L3RkPjwvdHI+JyAr
CiAgICAgICAgICAgICAgJzx0cj48dGQ+cDwvdGQ+PHRkPmZvY3VzIHByZXZpb3VzIGNvbW1lbnQ8
L3RkPjwvdHI+JyArCiAgICAgICAgICAgICAgJzx0cj48dGQ+cjwvdGQ+PHRkPmZvY3VzIHJldmll
dyBzZWxlY3QgZWxlbWVudDwvdGQ+PC90cj4nICsKICAgICAgICAgICAgICAnPHRyPjx0ZD5jdHJs
ICsgc2hpZnQgKyB1cDwvdGQ+PHRkPmV4dGVuZCBjb250ZXh0IG9mIHRoZSBmb2N1c2VkIGNvbW1l
bnQ8L3RkPjwvdHI+JyArCiAgICAgICAgICAgICAgJzx0cj48dGQ+Y3RybCArIHNoaWZ0ICsgZG93
bjwvdGQ+PHRkPnNocmluayBjb250ZXh0IG9mIHRoZSBmb2N1c2VkIGNvbW1lbnQ8L3RkPjwvdHI+
JyArCiAgICAgICAgICAgICc8L3RhYmxlPjwvZGl2PicgKwogICAgICAgICAgJzwvZGl2PicgKwog
ICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPC9kaXY+Jyk7CgogICAgYXBwZW5kVG9vbGJhcigp
OwoKICAgICQoZG9jdW1lbnQuYm9keSkucHJlcGVuZCgnPGRpdiBpZD0iY29tbWVudF9mb3JtIiBj
bGFzcz0iaW5hY3RpdmUiPjxkaXYgY2xhc3M9IndpbnRlciI+PC9kaXY+PGRpdiBjbGFzcz0ibGln
aHRib3giPjxpZnJhbWUgaWQ9InJldmlld2Zvcm0iIHNyYz0iYXR0YWNobWVudC5jZ2k/aWQ9JyAr
IGF0dGFjaG1lbnRfaWQgKyAnJmFjdGlvbj1yZXZpZXdmb3JtIj48L2lmcmFtZT48L2Rpdj48L2Rp
dj4nKTsKICAgICQoJyNyZXZpZXdmb3JtJykuYmluZCgnbG9hZCcsIGhhbmRsZVJldmlld0Zvcm1M
b2FkKTsKCiAgICBsb2FkRGlmZlN0YXRlKCk7CiAgICBnZW5lcmF0ZUZpbGVEaWZmUmVzaXplU3R5
bGVFbGVtZW50KCk7CiAgICB1cGRhdGVMaW5lTnVtYmVyT25Db3B5TGlua0NvbnRlbnRzKCk7Cgog
ICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgaGFuZGxlQ29weSk7CiAg
fTsKCiAgZnVuY3Rpb24gZm9yRWFjaE5vZGUobm9kZUxpc3QsIGNhbGxiYWNrKSB7CiAgICBBcnJh
eS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKG5vZGVMaXN0LCBjYWxsYmFjayk7CiAgfQoKICAkKCcj
bGluZS1udW1iZXItb24tY29weScpLmxpdmUoJ2NsaWNrJywgdG9nZ2xlU2hvdWxkU3RyaXBMaW5l
TnVtYmVyc09uQ29weSk7CgogIGZ1bmN0aW9uIHVwZGF0ZUxpbmVOdW1iZXJPbkNvcHlMaW5rQ29u
dGVudHMoKSB7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGluZS1udW1iZXItb24tY29w
eScpLmNoZWNrZWQgPSBzaG91bGRTdHJpcExpbmVOdW1iZXJzT25Db3B5KCk7CiAgfQoKICBmdW5j
dGlvbiBzaG91bGRTdHJpcExpbmVOdW1iZXJzT25Db3B5KCkgewogICAgcmV0dXJuIGxvY2FsU3Rv
cmFnZS5nZXRJdGVtKCdjb2RlLXJldmlldy1saW5lLW51bWJlcnMtb24tY29weScpID09ICd0cnVl
JzsKICB9CgogIGZ1bmN0aW9uIHRvZ2dsZVNob3VsZFN0cmlwTGluZU51bWJlcnNPbkNvcHkoKSB7
CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY29kZS1yZXZpZXctbGluZS1udW1iZXJzLW9uLWNv
cHknLCAhc2hvdWxkU3RyaXBMaW5lTnVtYmVyc09uQ29weSgpKTsKICAgIHVwZGF0ZUxpbmVOdW1i
ZXJPbkNvcHlMaW5rQ29udGVudHMoKTsKICB9CgogIGZ1bmN0aW9uIHNhbml0aXplRnJhZ21lbnRG
b3JDb3B5KGZyYWdtZW50LCBzaG91bGRTdHJpcExpbmVOdW1iZXJzKSB7CiAgICB2YXIgY2xhc3Nl
c1RvUmVtb3ZlID0gWydMaW5rQ29udGFpbmVyJ107CiAgICBpZiAoc2hvdWxkU3RyaXBMaW5lTnVt
YmVycykKICAgICAgY2xhc3Nlc1RvUmVtb3ZlLnB1c2goJ2xpbmVOdW1iZXInKTsKCiAgICBjbGFz
c2VzVG9SZW1vdmUuZm9yRWFjaChmdW5jdGlvbihjbGFzc05hbWUpIHsKICAgICAgZm9yRWFjaE5v
ZGUoZnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyBjbGFzc05hbWUpLCBmdW5jdGlvbihu
b2RlKSB7CiAgICAgICAgJChub2RlKS5yZW1vdmUoKTsKICAgICAgfSk7CiAgICB9KTsKCiAgICAv
LyBFbnN1cmUgdGhhdCBlbXB0eSBuZXdsaW5lcyBzaG93IHVwIGluIHRoZSBjb3B5IG5vdyB0aGF0
CiAgICAvLyB0aGUgbGluZSBtaWdodCBjb2xsYXBzZSBzaW5jZSB0aGUgbGluZSBudW1iZXIgZG9l
c24ndCB0YWtlIHVwIHNwYWNlLgogICAgZm9yRWFjaE5vZGUoZnJhZ21lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnLnRleHQnKSwgZnVuY3Rpb24obm9kZSkgewogICAgICBpZiAobm9kZS50ZXh0Q29udGVu
dC5tYXRjaCgvXlxzKiQvKSkKICAgICAgICBub2RlLmlubmVySFRNTCA9ICc8YnI+JzsKICAgIH0p
OwogIH0KCiAgZnVuY3Rpb24gaGFuZGxlQ29weShldmVudCkgewogICAgaWYgKGV2ZW50LnRhcmdl
dC50YWdOYW1lID09ICdURVhUQVJFQScpCiAgICAgIHJldHVybjsKICAgIHZhciBzZWxlY3Rpb24g
PSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CiAgICB2YXIgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFu
Z2VBdCgwKTsKICAgIHZhciBzZWxlY3Rpb25GcmFnbWVudCA9IHJhbmdlLmNsb25lQ29udGVudHMo
KTsKICAgIHNhbml0aXplRnJhZ21lbnRGb3JDb3B5KHNlbGVjdGlvbkZyYWdtZW50LCBzaG91bGRT
dHJpcExpbmVOdW1iZXJzT25Db3B5KCkpCgogICAgLy8gRklYTUU6IFdoZW4gZXZlbnQuY2xpcGJv
YXJkRGF0YS5zZXREYXRhIHN1cHBvcnRzIHRleHQvaHRtbCwgcmVtb3ZlIGFsbCB0aGUgY29kZSBi
ZWxvdy4KICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQx
NzkKICAgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAg
IGNvbnRhaW5lci5hcHBlbmRDaGlsZChzZWxlY3Rpb25GcmFnbWVudCk7CiAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CiAgICBzZWxlY3Rpb24uc2VsZWN0QWxsQ2hpbGRy
ZW4oY29udGFpbmVyKTsKCiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAkKGNvbnRh
aW5lcikucmVtb3ZlKCk7CiAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsKICAgICAg
c2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTsKICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gaGFuZGxl
UmV2aWV3Rm9ybUxvYWQoKSB7CiAgICB2YXIgcmV2aWV3X2Zvcm1fY29udGVudHMgPSAkKCcjcmV2
aWV3Zm9ybScpLmNvbnRlbnRzKCk7CiAgICBpZiAocmV2aWV3X2Zvcm1fY29udGVudHNbMF0ucXVl
cnlTZWxlY3RvcignI2Zvcm0tY29udHJvbHMgI2ZsYWdzJykpIHsKICAgICAgcmV2aWV3X2Zvcm1f
Y29udGVudHMuYmluZCgna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoZS5rZXlD
b2RlID09IEtFWV9DT0RFLmVzY2FwZSkKICAgICAgICAgIGhpZGVDb21tZW50Rm9ybSgpOwogICAg
ICB9KTsKCiAgICAgIC8vIFRoaXMgaXMgdGhlIGludGlhbCBsb2FkIG9mIHRoZSByZXZpZXcgZm9y
bSBpZnJhbWUuCiAgICAgIHZhciBmb3JtID0gcmV2aWV3X2Zvcm1fY29udGVudHMuZmluZCgnZm9y
bScpWzBdOwogICAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIGVyYXNlRHJhZnRD
b21tZW50cyk7CiAgICAgIGZvcm0udGFyZ2V0ID0gJyc7CiAgICAgIHJldHVybjsKICAgIH0KCiAg
ICAvLyBSZXZpZXcgZm9ybSBpZnJhbWUgaGF2ZSB0aGUgcHVibGlzaCBidXR0b24gaGFzIGJlZW4g
cHJlc3NlZC4KICAgIHZhciBlbWFpbF9zZW50X3RvID0gcmV2aWV3X2Zvcm1fY29udGVudHNbMF0u
cXVlcnlTZWxlY3RvcignI2J1Z3ppbGxhLWJvZHkgZGwnKTsKICAgIC8vIElmIHRoZSBlbWFpbF9z
ZW5kX3RvIERMIGlzIG5vdCBpbiB0aGUgdHJlZSB0aGF0IG1lYW5zIHRoZSBwdWJsaXNoIGZhaWxl
ZCBmb3Igc29tZSByZWFzb24sCiAgICAvLyBlLmcuLCB5b3UncmUgbm90IGxvZ2dlZCBpbi4gU2hv
dyB0aGUgY29tbWVudCBmb3JtIHRvIGFsbG93IHlvdSB0byBsb2dpbi4KICAgIGlmICghZW1haWxf
c2VudF90bykgewogICAgICBzaG93Q29tbWVudEZvcm0oKTsKICAgICAgcmV0dXJuOwogICAgfQoK
ICAgIGVyYXNlRHJhZnRDb21tZW50cygpOwogICAgLy8gRklYTUU6IE9uY2UgV2ViS2l0IHN1cHBv
cnRzIHNlYW1sZXNzIGlmcmFtZXMsIHdlIGNhbiBqdXN0IG1ha2UgdGhlIHJldmlldy1mb3JtCiAg
ICAvLyBpZnJhbWUgZmlsbCB0aGUgcGFnZSBpbnN0ZWFkIG9mIHJlZGlyZWN0aW5nIGJhY2sgdG8g
dGhlIGJ1Zy4KICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCQoJyN0b29sYmFyIC5idWdMaW5r
IGEnKS5hdHRyKCdocmVmJykpOwogIH0KICAKICBmdW5jdGlvbiBlcmFzZURyYWZ0Q29tbWVudHMo
KSB7CiAgICBnX2RyYWZ0Q29tbWVudFNhdmVyLmVyYXNlKCk7CiAgfQoKICBmdW5jdGlvbiBsb2Fk
RGlmZlN0YXRlKCkgewogICAgdmFyIGRpZmZzdGF0ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdj
b2RlLXJldmlldy1kaWZmc3RhdGUnKTsKICAgIGlmIChkaWZmc3RhdGUgIT0gJ3NpZGVieXNpZGUn
ICYmIGRpZmZzdGF0ZSAhPSAndW5pZmllZCcpCiAgICAgIHJldHVybjsKCiAgICBjb252ZXJ0QWxs
RmlsZURpZmZzKGRpZmZzdGF0ZSwgJCgnLkZpbGVEaWZmJykpOwogIH0KCiAgZnVuY3Rpb24gaXNE
aWZmU2lkZUJ5U2lkZShmaWxlX2RpZmYpIHsKICAgIHJldHVybiBkaWZmU3RhdGUoZmlsZV9kaWZm
KSA9PSAnc2lkZWJ5c2lkZSc7CiAgfQoKICBmdW5jdGlvbiBkaWZmU3RhdGUoZmlsZV9kaWZmKSB7
CiAgICB2YXIgZGlmZl9zdGF0ZSA9ICQoZmlsZV9kaWZmKS5hdHRyKCdkYXRhLWRpZmZzdGF0ZScp
OwogICAgcmV0dXJuIGRpZmZfc3RhdGUgfHwgJ3VuaWZpZWQnOwogIH0KCiAgZnVuY3Rpb24gdW5p
ZnlMaW5lKGxpbmUsIGZyb20sIHRvLCBjb250ZW50cywgY2xhc3NOYW1lcywgYXR0cmlidXRlcywg
aWQpIHsKICAgIHZhciBuZXdfbGluZSA9IHVuaWZpZWRMaW5lKGZyb20sIHRvLCBjb250ZW50cywg
ZmFsc2UsIGNsYXNzTmFtZXMsIGF0dHJpYnV0ZXMpOwogICAgdmFyIG9sZF9saW5lID0gJChsaW5l
KTsKICAgIGlmICghb2xkX2xpbmUuaGFzQ2xhc3MoJ0xpbmVDb250YWluZXInKSkKICAgICAgb2xk
X2xpbmUgPSBvbGRfbGluZS5wYXJlbnRzKCcuTGluZUNvbnRhaW5lcicpOwoKICAgIHZhciBjb21t
ZW50cyA9IGNvbW1lbnRzVG9UcmFuc2ZlckZvcigkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlk
KSkpOwogICAgb2xkX2xpbmUuYWZ0ZXIoY29tbWVudHMpOwogICAgb2xkX2xpbmUucmVwbGFjZVdp
dGgobmV3X2xpbmUpOwogIH0KCiAgZnVuY3Rpb24gdXBkYXRlRGlmZkxpbmtWaXNpYmlsaXR5KGZp
bGVfZGlmZikgewogICAgaWYgKGRpZmZTdGF0ZShmaWxlX2RpZmYpID09ICd1bmlmaWVkJykgewog
ICAgICAkKCcuc2lkZS1ieS1zaWRlLWxpbmsnLCBmaWxlX2RpZmYpLnNob3coKTsKICAgICAgJCgn
LnVuaWZ5LWxpbmsnLCBmaWxlX2RpZmYpLmhpZGUoKTsKICAgIH0gZWxzZSB7CiAgICAgICQoJy5z
aWRlLWJ5LXNpZGUtbGluaycsIGZpbGVfZGlmZikuaGlkZSgpOwogICAgICAkKCcudW5pZnktbGlu
aycsIGZpbGVfZGlmZikuc2hvdygpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gY29udmVydEFsbEZp
bGVEaWZmcyhkaWZmX3R5cGUsIGZpbGVfZGlmZnMpIHsKICAgIGZpbGVfZGlmZnMuZWFjaChmdW5j
dGlvbigpIHsKICAgICAgY29udmVydEZpbGVEaWZmKGRpZmZfdHlwZSwgdGhpcyk7CiAgICB9KTsK
ICB9CgogIGZ1bmN0aW9uIGNvbnZlcnRGaWxlRGlmZihkaWZmX3R5cGUsIGZpbGVfZGlmZikgewog
ICAgaWYgKGRpZmZTdGF0ZShmaWxlX2RpZmYpID09IGRpZmZfdHlwZSkKICAgICAgcmV0dXJuOwoK
ICAgIGlmICghJCgnLnJlc2l6ZUhhbmRsZScsIGZpbGVfZGlmZikubGVuZ3RoKQogICAgICAkKGZp
bGVfZGlmZikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJyZXNpemVIYW5kbGUiPjwvZGl2PicpOwoKICAg
ICQoZmlsZV9kaWZmKS5yZW1vdmVDbGFzcygnc2lkZWJ5c2lkZSB1bmlmaWVkJyk7CiAgICAkKGZp
bGVfZGlmZikuYWRkQ2xhc3MoZGlmZl90eXBlKTsKCiAgICAkKGZpbGVfZGlmZikuYXR0cignZGF0
YS1kaWZmc3RhdGUnLCBkaWZmX3R5cGUpOwogICAgdXBkYXRlRGlmZkxpbmtWaXNpYmlsaXR5KGZp
bGVfZGlmZik7CgogICAgJCgnLmNvbnRleHQnLCBmaWxlX2RpZmYpLmVhY2goZnVuY3Rpb24oKSB7
CiAgICAgIGNvbnZlcnRMaW5lKGRpZmZfdHlwZSwgdGhpcyk7CiAgICB9KTsKCiAgICAkKCcuc2hh
cmVkIC5MaW5lJywgZmlsZV9kaWZmKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICBjb252ZXJ0TGlu
ZShkaWZmX3R5cGUsIHRoaXMpOwogICAgfSk7CgogICAgJCgnLkV4cGFuc2lvbkxpbmUnLCBmaWxl
X2RpZmYpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgIGNvbnZlcnRFeHBhbnNpb25MaW5lKGRpZmZf
dHlwZSwgdGhpcyk7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGNvbnZlcnRMaW5lKGRpZmZfdHlw
ZSwgbGluZSkgewogICAgdmFyIGNvbnZlcnRfZnVuY3Rpb24gPSBkaWZmX3R5cGUgPT0gJ3NpZGVi
eXNpZGUnID8gc2lkZUJ5U2lkZWlmeUxpbmUgOiB1bmlmeUxpbmU7CiAgICB2YXIgZnJvbSA9IGZy
b21MaW5lTnVtYmVyKGxpbmUpOwogICAgdmFyIHRvID0gdG9MaW5lTnVtYmVyKGxpbmUpOwogICAg
dmFyIGNvbnRlbnRzID0gJCgnLnRleHQnLCBsaW5lKS5maXJzdCgpOwogICAgdmFyIGNsYXNzTmFt
ZXMgPSBjbGFzc05hbWVzRm9yTW92aW5nTGluZShsaW5lKTsKICAgIHZhciBhdHRyaWJ1dGVzID0g
YXR0cmlidXRlc0Zvck1vdmluZ0xpbmUobGluZSk7CiAgICB2YXIgaWQgPSBsaW5lLmlkOwogICAg
Y29udmVydF9mdW5jdGlvbihsaW5lLCBmcm9tLCB0bywgY29udGVudHMsIGNsYXNzTmFtZXMsIGF0
dHJpYnV0ZXMsIGlkKQogIH0KCiAgZnVuY3Rpb24gY2xhc3NOYW1lc0Zvck1vdmluZ0xpbmUobGlu
ZSkgewogICAgdmFyIGNsYXNzUGFydHMgPSBsaW5lLmNsYXNzTmFtZS5zcGxpdCgnICcpOwogICAg
dmFyIGNsYXNzQnVmZmVyID0gW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNsYXNzUGFydHMu
bGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBjbGFzc1BhcnRzW2ldOwogICAgICBpZiAo
cGFydCAhPSAnTGluZUNvbnRhaW5lcicgJiYgcGFydCAhPSAnTGluZScpCiAgICAgICAgY2xhc3NC
dWZmZXIucHVzaChwYXJ0KTsKICAgIH0KICAgIHJldHVybiBjbGFzc0J1ZmZlci5qb2luKCcgJyk7
CiAgfQoKICBmdW5jdGlvbiBhdHRyaWJ1dGVzRm9yTW92aW5nTGluZShsaW5lKSB7CiAgICB2YXIg
YXR0cmlidXRlc0J1ZmZlciA9IFsnaWQ9JyArIGxpbmUuaWRdOwogICAgLy8gTWFrZSBzdXJlIHRv
IGtlZXAgYWxsIGRhdGEtIGF0dHJpYnV0ZXMuCiAgICAkKGxpbmUuYXR0cmlidXRlcykuZWFjaChm
dW5jdGlvbigpIHsKICAgICAgaWYgKHRoaXMubmFtZS5pbmRleE9mKCdkYXRhLScpID09IDApCiAg
ICAgICAgYXR0cmlidXRlc0J1ZmZlci5wdXNoKHRoaXMubmFtZSArICc9JyArIHRoaXMudmFsdWUp
OwogICAgfSk7CiAgICByZXR1cm4gYXR0cmlidXRlc0J1ZmZlci5qb2luKCcgJyk7CiAgfQoKICBm
dW5jdGlvbiBzaWRlQnlTaWRlaWZ5TGluZShsaW5lLCBmcm9tLCB0bywgY29udGVudHMsIGNsYXNz
TmFtZXMsIGF0dHJpYnV0ZXMsIGlkKSB7CiAgICB2YXIgZnJvbV9jbGFzcyA9ICcnOwogICAgdmFy
IHRvX2NsYXNzID0gJyc7CiAgICB2YXIgZnJvbV9hdHRyaWJ1dGVzID0gJyc7CiAgICB2YXIgdG9f
YXR0cmlidXRlcyA9ICcnOwogICAgLy8gQ2xvbmUgdGhlIGNvbnRlbnRzIHNvIHdlIGhhdmUgdHdv
IGNvcGllcyB3ZSBjYW4gcHV0IGJhY2sgaW4gdGhlIERPTS4KICAgIHZhciBmcm9tX2NvbnRlbnRz
ID0gY29udGVudHMuY2xvbmUodHJ1ZSk7CiAgICB2YXIgdG9fY29udGVudHMgPSBjb250ZW50czsK
CiAgICB2YXIgY29udGFpbmVyX2NsYXNzID0gJ0xpbmVDb250YWluZXInOwogICAgdmFyIGNvbnRh
aW5lcl9hdHRyaWJ1dGVzID0gJyc7CgogICAgaWYgKGZyb20gJiYgIXRvKSB7IC8vIFRoaXMgaXMg
YSByZW1vdmUgbGluZS4KICAgICAgZnJvbV9jbGFzcyA9IGNsYXNzTmFtZXM7CiAgICAgIGZyb21f
YXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAgICAgIHRvX2NvbnRlbnRzID0gJyc7CiAgICB9IGVs
c2UgaWYgKHRvICYmICFmcm9tKSB7IC8vIFRoaXMgaXMgYW4gYWRkIGxpbmUuCiAgICAgIHRvX2Ns
YXNzID0gY2xhc3NOYW1lczsKICAgICAgdG9fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7CiAgICAg
IGZyb21fY29udGVudHMgPSAnJzsKICAgIH0gZWxzZSB7CiAgICAgIGNvbnRhaW5lcl9hdHRyaWJ1
dGVzID0gYXR0cmlidXRlczsKICAgICAgY29udGFpbmVyX2NsYXNzICs9ICcgTGluZSAnICsgY2xh
c3NOYW1lczsKICAgIH0KCiAgICB2YXIgbmV3X2xpbmUgPSAkKCc8ZGl2ICcgKyBjb250YWluZXJf
YXR0cmlidXRlcyArICcgY2xhc3M9IicgKyBjb250YWluZXJfY2xhc3MgKyAnIj48L2Rpdj4nKTsK
ICAgIG5ld19saW5lLmFwcGVuZChsaW5lU2lkZSgnZnJvbScsIGZyb21fY29udGVudHMsIGZhbHNl
LCBmcm9tLCBmcm9tX2F0dHJpYnV0ZXMsIGZyb21fY2xhc3MpKTsKICAgIG5ld19saW5lLmFwcGVu
ZChsaW5lU2lkZSgndG8nLCB0b19jb250ZW50cywgZmFsc2UsIHRvLCB0b19hdHRyaWJ1dGVzLCB0
b19jbGFzcykpOwoKICAgICQobGluZSkucmVwbGFjZVdpdGgobmV3X2xpbmUpOwoKICAgIGlmICgh
bGluZS5jbGFzc0xpc3QuY29udGFpbnMoJ2NvbnRleHQnKSkgewogICAgICB2YXIgbGluZSA9ICQo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpKTsKICAgICAgbGluZS5hZnRlcihjb21tZW50c1Rv
VHJhbnNmZXJGb3IobGluZSkpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gY29udmVydEV4cGFuc2lv
bkxpbmUoZGlmZl90eXBlLCBsaW5lKSB7CiAgICB2YXIgY29udmVydF9mdW5jdGlvbiA9IGRpZmZf
dHlwZSA9PSAnc2lkZWJ5c2lkZScgPyBzaWRlQnlTaWRlRXhwYW5zaW9uTGluZSA6IHVuaWZpZWRF
eHBhbnNpb25MaW5lOwogICAgdmFyIGNvbnRlbnRzID0gJCgnLnRleHQnLCBsaW5lKS5maXJzdCgp
OwogICAgdmFyIGZyb20gPSBmcm9tTGluZU51bWJlcihsaW5lKTsKICAgIHZhciB0byA9IHRvTGlu
ZU51bWJlcihsaW5lKTsKICAgIHZhciBuZXdfbGluZSA9IGNvbnZlcnRfZnVuY3Rpb24oZnJvbSwg
dG8sIGNvbnRlbnRzKTsKICAgICQobGluZSkucmVwbGFjZVdpdGgobmV3X2xpbmUpOwogIH0KCiAg
ZnVuY3Rpb24gY29tbWVudHNUb1RyYW5zZmVyRm9yKGxpbmUpIHsKICAgIHZhciBmcmFnbWVudCA9
IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCiAgICBwcmV2aW91c0NvbW1lbnRz
Rm9yKGxpbmUpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHRo
aXMpOwogICAgfSk7CgogICAgdmFyIGFjdGl2ZV9jb21tZW50cyA9IGFjdGl2ZUNvbW1lbnRGb3Io
bGluZSk7CiAgICB2YXIgbnVtX2FjdGl2ZV9jb21tZW50cyA9IGFjdGl2ZV9jb21tZW50cy5zaXpl
KCk7CiAgICBpZiAobnVtX2FjdGl2ZV9jb21tZW50cyA+IDApIHsKICAgICAgaWYgKG51bV9hY3Rp
dmVfY29tbWVudHMgPiAxKQogICAgICAgIGNvbnNvbGUubG9nKCdFUlJPUjogVGhlcmUgaXMgbW9y
ZSB0aGFuIG9uZSBhY3RpdmUgY29tbWVudCBmb3IgJyArIGxpbmUuYXR0cignaWQnKSArICcuJyk7
CgogICAgICB2YXIgcGFyZW50ID0gYWN0aXZlX2NvbW1lbnRzWzBdLnBhcmVudE5vZGU7CiAgICAg
IHZhciBmcm96ZW5Db21tZW50ID0gcGFyZW50Lm5leHRTaWJsaW5nOwogICAgICBmcmFnbWVudC5h
cHBlbmRDaGlsZChwYXJlbnQpOwogICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChmcm96ZW5Db21t
ZW50KTsKICAgIH0KCiAgICByZXR1cm4gZnJhZ21lbnQ7CiAgfQoKICBmdW5jdGlvbiBkaXNjYXJk
Q29tbWVudChjb21tZW50X2Jsb2NrKSB7CiAgICB2YXIgbGluZV9pZCA9ICQoY29tbWVudF9ibG9j
aykuZmluZCgndGV4dGFyZWEnKS5hdHRyKCdkYXRhLWNvbW1lbnQtZm9yJyk7CiAgICB2YXIgbGlu
ZSA9ICQoJyMnICsgbGluZV9pZCkKICAgICQoY29tbWVudF9ibG9jaykuc2xpZGVVcCgnZmFzdCcs
IGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLnJlbW92ZSgpOwogICAgICBsaW5lLnJlbW92ZUF0
dHIoJ2RhdGEtaGFzLWNvbW1lbnQnKTsKICAgICAgdHJpbUNvbW1lbnRDb250ZXh0VG9CZWZvcmUo
bGluZSwgbGluZV9pZCk7CiAgICAgIHNhdmVEcmFmdENvbW1lbnRzKCk7CiAgICB9KTsKICB9Cgog
IGZ1bmN0aW9uIGhhbmRsZVVuZnJlZXplQ29tbWVudCgpIHsKICAgIHVuZnJlZXplQ29tbWVudCh0
aGlzKTsKICB9CgogIGZ1bmN0aW9uIHVuZnJlZXplQ29tbWVudChjb21tZW50KSB7CiAgICB2YXIg
dW5mcm96ZW5fY29tbWVudCA9ICQoY29tbWVudCkucHJldigpOwogICAgdW5mcm96ZW5fY29tbWVu
dC5zaG93KCk7CiAgICAkKGNvbW1lbnQpLnJlbW92ZSgpOwogICAgdW5mcm96ZW5fY29tbWVudC5m
aW5kKCd0ZXh0YXJlYScpWzBdLmZvY3VzKCk7CiAgfQoKICBmdW5jdGlvbiBzaG93RmlsZURpZmZM
aW5rcygpIHsKICAgICQoJy5MaW5rQ29udGFpbmVyJywgdGhpcykuZWFjaChmdW5jdGlvbigpIHsg
dGhpcy5zdHlsZS5vcGFjaXR5ID0gMTsgfSk7CiAgfQoKICBmdW5jdGlvbiBoaWRlRmlsZURpZmZM
aW5rcygpIHsKICAgICQoJy5MaW5rQ29udGFpbmVyJywgdGhpcykuZWFjaChmdW5jdGlvbigpIHsg
dGhpcy5zdHlsZS5vcGFjaXR5ID0gMDsgfSk7CiAgfQoKICBmdW5jdGlvbiBoYW5kbGVEaXNjYXJk
Q29tbWVudCgpIHsKICAgIGRpc2NhcmRDb21tZW50KCQodGhpcykucGFyZW50cygnLmNvbW1lbnQn
KSk7CiAgfQogIAogIGZ1bmN0aW9uIGhhbmRsZUFjY2VwdENvbW1lbnQoKSB7CiAgICBhY2NlcHRD
b21tZW50KCQodGhpcykucGFyZW50cygnLmNvbW1lbnQnKSk7CiAgfQogIAogIGZ1bmN0aW9uIGFj
Y2VwdENvbW1lbnQoY29tbWVudCkgewogICAgdmFyIGZyb3plbl9jb21tZW50ID0gZnJlZXplQ29t
bWVudCgkKGNvbW1lbnQpKTsKICAgIGZvY3VzT24oZnJvemVuX2NvbW1lbnQpOwogICAgc2F2ZURy
YWZ0Q29tbWVudHMoKTsKICAgIHJldHVybiBmcm96ZW5fY29tbWVudDsKICB9CgogICQoJy5GaWxl
RGlmZicpLmxpdmUoJ21vdXNlZW50ZXInLCBzaG93RmlsZURpZmZMaW5rcyk7CiAgJCgnLkZpbGVE
aWZmJykubGl2ZSgnbW91c2VsZWF2ZScsIGhpZGVGaWxlRGlmZkxpbmtzKTsKICAkKCcuc2lkZS1i
eS1zaWRlLWxpbmsnKS5saXZlKCdjbGljaycsIGhhbmRsZVNpZGVCeVNpZGVMaW5rQ2xpY2spOwog
ICQoJy51bmlmeS1saW5rJykubGl2ZSgnY2xpY2snLCBoYW5kbGVVbmlmeUxpbmtDbGljayk7CiAg
JCgnLkV4cGFuZExpbmsnKS5saXZlKCdjbGljaycsIGhhbmRsZUV4cGFuZExpbmtDbGljayk7CiAg
JCgnLmZyb3plbkNvbW1lbnQnKS5saXZlKCdjbGljaycsIGhhbmRsZVVuZnJlZXplQ29tbWVudCk7
CiAgJCgnLmNvbW1lbnQgLmRpc2NhcmQnKS5saXZlKCdjbGljaycsIGhhbmRsZURpc2NhcmRDb21t
ZW50KTsKICAkKCcuY29tbWVudCAub2snKS5saXZlKCdjbGljaycsIGhhbmRsZUFjY2VwdENvbW1l
bnQpOwogICQoJy5tb3JlJykubGl2ZSgnY2xpY2snLCBzaG93TW9yZUhlbHApOwogICQoJy5tb3Jl
LWhlbHAgLndpbnRlcicpLmxpdmUoJ2NsaWNrJywgaGlkZU1vcmVIZWxwKTsKCiAgZnVuY3Rpb24g
ZnJlZXplQ29tbWVudChjb21tZW50X2Jsb2NrKSB7CiAgICB2YXIgY29tbWVudF90ZXh0YXJlYSA9
IGNvbW1lbnRfYmxvY2suZmluZCgndGV4dGFyZWEnKTsKICAgIGlmIChjb21tZW50X3RleHRhcmVh
LnZhbCgpLnRyaW0oKSA9PSAnJykgewogICAgICBkaXNjYXJkQ29tbWVudChjb21tZW50X2Jsb2Nr
KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGxpbmVfaWQgPSBjb21tZW50X3RleHRhcmVh
LmF0dHIoJ2RhdGEtY29tbWVudC1mb3InKTsKICAgIHZhciBsaW5lID0gJCgnIycgKyBsaW5lX2lk
KQogICAgdmFyIGZyb3plbl9jb21tZW50ID0gJCgnPGRpdiBjbGFzcz0iZnJvemVuQ29tbWVudCI+
PC9kaXY+JykudGV4dChjb21tZW50X3RleHRhcmVhLnZhbCgpKTsKICAgIGZpbmRDb21tZW50Qmxv
Y2tGb3IobGluZSkuaGlkZSgpLmFmdGVyKGZyb3plbl9jb21tZW50KTsKICAgIHJldHVybiBmcm96
ZW5fY29tbWVudDsKICB9CgogIGZ1bmN0aW9uIGZvY3VzT24obm9kZSwgb3B0X2lzX2JhY2t3YXJk
KSB7CiAgICBpZiAobm9kZS5sZW5ndGggPT0gMCkKICAgICAgcmV0dXJuOwoKICAgIC8vIEdpdmUg
YSB0YWJpbmRleCBzbyB0aGUgZWxlbWVudCBjYW4gcmVjZWl2ZSBhY3R1YWwgYnJvd3NlciBmb2N1
cy4KICAgIC8vIC0xIG1ha2VzIHRoZSBlbGVtZW50IGZvY3VzYWJsZSB3aXRob3V0IGFjdHVhbGx5
IHB1dHRpbmcgaW4gaW4gdGhlIHRhYiBvcmRlci4KICAgIG5vZGUuYXR0cigndGFiaW5kZXgnLCAt
MSk7CiAgICBub2RlLmZvY3VzKCk7CiAgICAvLyBSZW1vdmUgdGhlIHRhYmluZGV4IG9uIGJsdXIg
dG8gYXZvaWQgaGF2aW5nIHRoZSBub2RlIGJlIG1vdXNlLWZvY3VzYWJsZS4KICAgIG5vZGUuYmlu
ZCgnYmx1cicsIGZ1bmN0aW9uKCkgeyBub2RlLnJlbW92ZUF0dHIoJ3RhYmluZGV4Jyk7IH0pOwog
ICAgCiAgICB2YXIgbm9kZV90b3AgPSBub2RlLm9mZnNldCgpLnRvcDsKICAgIHZhciBpc190b3Bf
b2Zmc2NyZWVuID0gbm9kZV90b3AgPD0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCk7CiAgICAKICAg
IHZhciBoYWxmX3dheV9wb2ludCA9ICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpICsgd2luZG93Lmlu
bmVySGVpZ2h0IC8gMjsKICAgIHZhciBpc190b3BfcGFzdF9oYWxmd2F5ID0gb3B0X2lzX2JhY2t3
YXJkID8gbm9kZV90b3AgPCBoYWxmX3dheV9wb2ludCA6IG5vZGVfdG9wID4gaGFsZl93YXlfcG9p
bnQ7CgogICAgaWYgKGlzX3RvcF9vZmZzY3JlZW4gfHwgaXNfdG9wX3Bhc3RfaGFsZndheSkKICAg
ICAgJChkb2N1bWVudCkuc2Nyb2xsVG9wKG5vZGVfdG9wIC0gd2luZG93LmlubmVySGVpZ2h0IC8g
Mik7CiAgfQoKICBmdW5jdGlvbiB2aXNpYmxlTm9kZUZpbHRlckZ1bmN0aW9uKGlzX2JhY2t3YXJk
KSB7CiAgICB2YXIgeSA9IGlzX2JhY2t3YXJkID8gJCgnI3Rvb2xiYXInKVswXS5vZmZzZXRUb3Ag
LSAxIDogMDsKICAgIHZhciB4ID0gd2luZG93LmlubmVyV2lkdGggLyAyOwogICAgdmFyIHJlZmVy
ZW5jZV9lbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh4LCB5KTsKCiAgICBpZiAo
cmVmZXJlbmNlX2VsZW1lbnQubm9kZU5hbWUgPT0gJ0hUTUwnIHx8IHJlZmVyZW5jZV9lbGVtZW50
Lm5vZGVOYW1lID09ICdCT0RZJykgewogICAgICAvLyBJbiBjYXNlIHdlIGhpdCB0ZXN0IGEgbWFy
Z2luIGJldHdlZW4gZmlsZSBkaWZmcywgc2hpZnQgYSBmdWRnZSBmYWN0b3IgYW5kIHRyeSBhZ2Fp
bi4KICAgICAgLy8gRklYTUU6IElzIHRoZXJlIGEgYmV0dGVyIHdheSB0byBkbyB0aGlzPwogICAg
ICB2YXIgZmlsZV9kaWZmcyA9ICQoJy5GaWxlRGlmZicpOwogICAgICB2YXIgZmlyc3RfZGlmZiA9
IGZpbGVfZGlmZnMuZmlyc3QoKTsKICAgICAgdmFyIHNlY29uZF9kaWZmID0gJChmaWxlX2RpZmZz
WzFdKTsKICAgICAgdmFyIGRpc3RhbmNlX2JldHdlZW5fZmlsZV9kaWZmcyA9IHNlY29uZF9kaWZm
LnBvc2l0aW9uKCkudG9wIC0gZmlyc3RfZGlmZi5wb3NpdGlvbigpLnRvcCAtIGZpcnN0X2RpZmYu
aGVpZ2h0KCk7CgogICAgICBpZiAoaXNfYmFja3dhcmQpCiAgICAgICAgeSAtPSBkaXN0YW5jZV9i
ZXR3ZWVuX2ZpbGVfZGlmZnM7CiAgICAgIGVsc2UKICAgICAgICB5ICs9IGRpc3RhbmNlX2JldHdl
ZW5fZmlsZV9kaWZmczsKCiAgICAgIHJlZmVyZW5jZV9lbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVu
dEZyb21Qb2ludCh4LCB5KTsKICAgIH0KCiAgICBpZiAocmVmZXJlbmNlX2VsZW1lbnQubm9kZU5h
bWUgPT0gJ0hUTUwnIHx8IHJlZmVyZW5jZV9lbGVtZW50Lm5vZGVOYW1lID09ICdCT0RZJykKICAg
ICAgcmV0dXJuIG51bGw7CiAgICAKICAgIHJldHVybiBmdW5jdGlvbihub2RlKSB7CiAgICAgIHZh
ciBjb21wYXJlID0gcmVmZXJlbmNlX2VsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24obm9k
ZVswXSk7CiAgICAgIGlmIChpc19iYWNrd2FyZCkKICAgICAgICByZXR1cm4gY29tcGFyZSAmIE5v
ZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOwogICAgICByZXR1cm4gY29tcGFyZSAmIE5v
ZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOwogICAgfQogIH0KCiAgZnVuY3Rpb24gZm9j
dXNOZXh0KGZpbHRlciwgZGlyZWN0aW9uKSB7CiAgICB2YXIgZm9jdXNhYmxlX25vZGVzID0gJCgn
YSwuTGluZSwuZnJvemVuQ29tbWVudCwucHJldmlvdXNDb21tZW50LC5EaWZmQmxvY2ssLm92ZXJh
bGxDb21tZW50cycpLmZpbHRlcihmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICEkKHRoaXMpLmhh
c0NsYXNzKCdEaWZmQmxvY2snKSB8fCAkKCcuYWRkLC5yZW1vdmUnLCB0aGlzKS5zaXplKCk7CiAg
ICB9KTsKCiAgICB2YXIgaXNfYmFja3dhcmQgPSBkaXJlY3Rpb24gPT0gRElSRUNUSU9OLkJBQ0tX
QVJEOwogICAgdmFyIGluZGV4ID0gZm9jdXNhYmxlX25vZGVzLmluZGV4KCQoZG9jdW1lbnQuYWN0
aXZlRWxlbWVudCkpOwogICAgCiAgICB2YXIgZXh0cmFfZmlsdGVyID0gbnVsbDsKCiAgICBpZiAo
aW5kZXggPT0gLTEpIHsKICAgICAgaWYgKGlzX2JhY2t3YXJkKQogICAgICAgIGluZGV4ID0gZm9j
dXNhYmxlX25vZGVzLmxlbmd0aDsKICAgICAgZXh0cmFfZmlsdGVyID0gdmlzaWJsZU5vZGVGaWx0
ZXJGdW5jdGlvbihpc19iYWNrd2FyZCk7CiAgICB9CgogICAgdmFyIG9mZnNldCA9IGlzX2JhY2t3
YXJkID8gLTEgOiAxOwogICAgdmFyIGVuZCA9IGlzX2JhY2t3YXJkID8gLTEgOiBmb2N1c2FibGVf
bm9kZXMuc2l6ZSgpOwogICAgZm9yICh2YXIgaSA9IGluZGV4ICsgb2Zmc2V0OyBpICE9IGVuZDsg
aSA9IGkgKyBvZmZzZXQpIHsKICAgICAgdmFyIG5vZGUgPSAkKGZvY3VzYWJsZV9ub2Rlc1tpXSk7
CiAgICAgIGlmIChmaWx0ZXIobm9kZSkgJiYgKCFleHRyYV9maWx0ZXIgfHwgZXh0cmFfZmlsdGVy
KG5vZGUpKSkgewogICAgICAgIGZvY3VzT24obm9kZSwgaXNfYmFja3dhcmQpOwogICAgICAgIHJl
dHVybiB0cnVlOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICB2YXIgRElS
RUNUSU9OID0ge0ZPUldBUkQ6IDEsIEJBQ0tXQVJEOiAyfTsKCiAgZnVuY3Rpb24gaXNDb21tZW50
KG5vZGUpIHsKICAgIHJldHVybiBub2RlLmhhc0NsYXNzKCdmcm96ZW5Db21tZW50JykgfHwgbm9k
ZS5oYXNDbGFzcygncHJldmlvdXNDb21tZW50JykgfHwgbm9kZS5oYXNDbGFzcygnb3ZlcmFsbENv
bW1lbnRzJyk7CiAgfQogIAogIGZ1bmN0aW9uIGlzRGlmZkJsb2NrKG5vZGUpIHsKICAgIHJldHVy
biBub2RlLmhhc0NsYXNzKCdEaWZmQmxvY2snKTsKICB9CiAgCiAgZnVuY3Rpb24gaXNMaW5lKG5v
ZGUpIHsKICAgIHJldHVybiBub2RlLmhhc0NsYXNzKCdMaW5lJyk7CiAgfQoKICBmdW5jdGlvbiBj
b21tZW50VGV4dGFyZWFGb3JLZXlUYXJnZXQoa2V5X3RhcmdldCkgewogICAgaWYgKGtleV90YXJn
ZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykKICAgICAgcmV0dXJuICQoa2V5X3RhcmdldCk7Cgog
ICAgdmFyIGNvbW1lbnRfdGV4dGFyZWEgPSAkKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLnByZXYo
KS5maW5kKCd0ZXh0YXJlYScpOwogICAgaWYgKCFjb21tZW50X3RleHRhcmVhLnNpemUoKSkKICAg
ICAgcmV0dXJuIG51bGw7CiAgICByZXR1cm4gY29tbWVudF90ZXh0YXJlYTsKICB9CgogIGZ1bmN0
aW9uIGV4dGVuZENvbW1lbnRDb250ZXh0VXAoa2V5X3RhcmdldCkgewogICAgdmFyIGNvbW1lbnRf
dGV4dGFyZWEgPSBjb21tZW50VGV4dGFyZWFGb3JLZXlUYXJnZXQoa2V5X3RhcmdldCk7CiAgICBp
ZiAoIWNvbW1lbnRfdGV4dGFyZWEpCiAgICAgIHJldHVybjsKCiAgICB2YXIgY29tbWVudF9iYXNl
X2xpbmUgPSBjb21tZW50X3RleHRhcmVhLmF0dHIoJ2RhdGEtY29tbWVudC1mb3InKTsKICAgIHZh
ciBkaWZmX3NlY3Rpb24gPSBkaWZmU2VjdGlvbkZvcihjb21tZW50X3RleHRhcmVhKTsKICAgIHZh
ciBsaW5lcyA9ICQoJy5MaW5lJywgZGlmZl9zZWN0aW9uKTsKICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGluZXMubGVuZ3RoIC0gMTsgaSsrKSB7CiAgICAgIGlmIChoYXNEYXRhQ29tbWVudEJhc2VM
aW5lKGxpbmVzW2kgKyAxXSwgY29tbWVudF9iYXNlX2xpbmUpKSB7CiAgICAgICAgYWRkRGF0YUNv
bW1lbnRCYXNlTGluZShsaW5lc1tpXSwgY29tbWVudF9iYXNlX2xpbmUpOwogICAgICAgIGJyZWFr
OwogICAgICB9CiAgICB9CiAgfQoKICBmdW5jdGlvbiBzaHJpbmtDb21tZW50Q29udGV4dERvd24o
a2V5X3RhcmdldCkgewogICAgdmFyIGNvbW1lbnRfdGV4dGFyZWEgPSBjb21tZW50VGV4dGFyZWFG
b3JLZXlUYXJnZXQoa2V5X3RhcmdldCk7CiAgICBpZiAoIWNvbW1lbnRfdGV4dGFyZWEpCiAgICAg
IHJldHVybjsKCiAgICB2YXIgY29tbWVudF9iYXNlX2xpbmUgPSBjb21tZW50X3RleHRhcmVhLmF0
dHIoJ2RhdGEtY29tbWVudC1mb3InKTsKICAgIHZhciBkaWZmX3NlY3Rpb24gPSBkaWZmU2VjdGlv
bkZvcihjb21tZW50X3RleHRhcmVhKTsKICAgIHZhciBsaW5lcyA9IGNvbnRleHRMaW5lc0Zvcihj
b21tZW50X2Jhc2VfbGluZSwgZGlmZl9zZWN0aW9uKTsKICAgIGlmIChsaW5lcy5zaXplKCkgPiAx
KQogICAgICByZW1vdmVEYXRhQ29tbWVudEJhc2VMaW5lKGxpbmVzWzBdLCBjb21tZW50X2Jhc2Vf
bGluZSk7CiAgfQoKICBmdW5jdGlvbiBoYW5kbGVNb2RpZnlDb250ZXh0S2V5KGUpIHsKICAgIHZh
ciBoYW5kbGVkID0gZmFsc2U7CgogICAgaWYgKGUuc2hpZnRLZXkgJiYgZS5jdHJsS2V5KSB7CiAg
ICAgIHN3aXRjaCAoZS5rZXlDb2RlKSB7CiAgICAgIGNhc2UgS0VZX0NPREUudXA6CiAgICAgICAg
ZXh0ZW5kQ29tbWVudENvbnRleHRVcChlLnRhcmdldCk7CiAgICAgICAgaGFuZGxlZCA9IHRydWU7
CiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIEtFWV9DT0RFLmRvd246CiAgICAgICAgc2hyaW5r
Q29tbWVudENvbnRleHREb3duKGUudGFyZ2V0KTsKICAgICAgICBoYW5kbGVkID0gdHJ1ZTsKICAg
ICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIGlmIChoYW5kbGVkKQogICAgICBlLnByZXZl
bnREZWZhdWx0KCk7CgogICAgcmV0dXJuIGhhbmRsZWQ7CiAgfQoKICAkKCd0ZXh0YXJlYScpLmxp
dmUoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICBpZiAoaGFuZGxlTW9kaWZ5Q29udGV4dEtl
eShlKSkKICAgICAgcmV0dXJuOwoKICAgIGlmIChlLmtleUNvZGUgPT0gS0VZX0NPREUuZXNjYXBl
KQogICAgICBoYW5kbGVFc2NhcGVLZXlJblRleHRhcmVhKHRoaXMpOwogIH0pOwoKICAkKCdib2R5
JykubGl2ZSgna2V5ZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgIC8vIEZJWE1FOiBUaGVyZSdzIGdv
dCB0byBiZSBhIGJldHRlciB3YXkgdG8gYXZvaWQgc2VlaW5nIHRoZXNlIGtleXByZXNzCiAgICAv
LyBldmVudHMuCiAgICBpZiAoZS50YXJnZXQubm9kZU5hbWUgPT0gJ1RFWFRBUkVBJykKICAgICAg
cmV0dXJuOwoKICAgIC8vIERvbid0IHdhbnQgdG8gb3ZlcnJpZGUgYnJvd3NlciBzaG9ydGN1dHMg
bGlrZSBjdHJsK3IuCiAgICBpZiAoZS5tZXRhS2V5IHx8IGUuY3RybEtleSkKICAgICAgcmV0dXJu
OwoKICAgIGlmIChoYW5kbGVNb2RpZnlDb250ZXh0S2V5KGUpKQogICAgICByZXR1cm47CgogICAg
dmFyIGhhbmRsZWQgPSBmYWxzZTsKICAgIHN3aXRjaCAoZS5rZXlDb2RlKSB7CiAgICBjYXNlIEtF
WV9DT0RFLnI6CiAgICAgICQoJy5yZXZpZXcgc2VsZWN0JykuZm9jdXMoKTsKICAgICAgaGFuZGxl
ZCA9IHRydWU7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgS0VZX0NPREUubjoKICAgICAgaGFuZGxl
ZCA9IGZvY3VzTmV4dChpc0NvbW1lbnQsIERJUkVDVElPTi5GT1JXQVJEKTsKICAgICAgYnJlYWs7
CgogICAgY2FzZSBLRVlfQ09ERS5wOgogICAgICBoYW5kbGVkID0gZm9jdXNOZXh0KGlzQ29tbWVu
dCwgRElSRUNUSU9OLkJBQ0tXQVJEKTsKICAgICAgYnJlYWs7CgogICAgY2FzZSBLRVlfQ09ERS5q
OgogICAgICBpZiAoZS5zaGlmdEtleSkKICAgICAgICBoYW5kbGVkID0gZm9jdXNOZXh0KGlzTGlu
ZSwgRElSRUNUSU9OLkZPUldBUkQpOwogICAgICBlbHNlCiAgICAgICAgaGFuZGxlZCA9IGZvY3Vz
TmV4dChpc0RpZmZCbG9jaywgRElSRUNUSU9OLkZPUldBUkQpOwogICAgICBicmVhazsKCiAgICBj
YXNlIEtFWV9DT0RFLms6CiAgICAgIGlmIChlLnNoaWZ0S2V5KQogICAgICAgIGhhbmRsZWQgPSBm
b2N1c05leHQoaXNMaW5lLCBESVJFQ1RJT04uQkFDS1dBUkQpOwogICAgICBlbHNlCiAgICAgICAg
aGFuZGxlZCA9IGZvY3VzTmV4dChpc0RpZmZCbG9jaywgRElSRUNUSU9OLkJBQ0tXQVJEKTsKICAg
ICAgYnJlYWs7CiAgICAgIAogICAgY2FzZSBLRVlfQ09ERS5lbnRlcjoKICAgICAgaGFuZGxlZCA9
IGhhbmRsZUVudGVyS2V5KCk7CiAgICAgIGJyZWFrOwogICAgICAKICAgIGNhc2UgS0VZX0NPREUu
ZXNjYXBlOgogICAgICBoaWRlTW9yZUhlbHAoKTsKICAgICAgaGFuZGxlZCA9IHRydWU7CiAgICAg
IGJyZWFrOwogICAgfQogICAgCiAgICBpZiAoaGFuZGxlZCkKICAgICAgZS5wcmV2ZW50RGVmYXVs
dCgpOwogIH0pOwogIAogIGZ1bmN0aW9uIGhhbmRsZUVzY2FwZUtleUluVGV4dGFyZWEodGV4dGFy
ZWEpIHsKICAgIHZhciBjb21tZW50ID0gJCh0ZXh0YXJlYSkucGFyZW50cygnLmNvbW1lbnQnKTsK
ICAgIGlmIChjb21tZW50LnNpemUoKSkKICAgICAgYWNjZXB0Q29tbWVudChjb21tZW50KTsKCiAg
ICB0ZXh0YXJlYS5ibHVyKCk7CiAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7CiAgfQogIAogIGZ1
bmN0aW9uIGhhbmRsZUVudGVyS2V5KCkgewogICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
bm9kZU5hbWUgPT0gJ0JPRFknKQogICAgICByZXR1cm47CgogICAgdmFyIGZvY3VzZWQgPSAkKGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQpOwoKICAgIGlmIChmb2N1c2VkLmhhc0NsYXNzKCdmcm96ZW5D
b21tZW50JykpIHsKICAgICAgdW5mcmVlemVDb21tZW50KGZvY3VzZWQpOwogICAgICByZXR1cm4g
dHJ1ZTsKICAgIH0KICAgIAogICAgaWYgKGZvY3VzZWQuaGFzQ2xhc3MoJ292ZXJhbGxDb21tZW50
cycpKSB7CiAgICAgIG9wZW5PdmVyYWxsQ29tbWVudHMoKTsKICAgICAgZm9jdXNlZC5maW5kKCd0
ZXh0YXJlYScpWzBdLmZvY3VzKCk7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgCiAgICBp
ZiAoZm9jdXNlZC5oYXNDbGFzcygncHJldmlvdXNDb21tZW50JykpIHsKICAgICAgYWRkQ29tbWVu
dEZpZWxkKGZvY3VzZWQpOwogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICB2YXIgbGluZXMg
PSBmb2N1c2VkLmhhc0NsYXNzKCdMaW5lJykgPyBmb2N1c2VkIDogJCgnLkxpbmUnLCBmb2N1c2Vk
KTsKICAgIHZhciBsYXN0ID0gbGluZXMubGFzdCgpOwogICAgaWYgKGxhc3QuYXR0cignZGF0YS1o
YXMtY29tbWVudCcpKSB7CiAgICAgIHVuZnJlZXplQ29tbWVudEZvcihsYXN0KTsKICAgICAgcmV0
dXJuIHRydWU7CiAgICB9CgogICAgYWRkQ29tbWVudEZvckxpbmVzKGxpbmVzKTsKICAgIHJldHVy
biB0cnVlOwogIH0KCiAgZnVuY3Rpb24gY29udGV4dExpbmVzRm9yKGNvbW1lbnRfYmFzZV9saW5l
cywgZmlsZV9kaWZmKSB7CiAgICB2YXIgYmFzZV9saW5lcyA9IGNvbW1lbnRfYmFzZV9saW5lcy5z
cGxpdCgnICcpOwogICAgcmV0dXJuICQoJ2RpdltkYXRhLWNvbW1lbnQtYmFzZS1saW5lXScsIGZp
bGVfZGlmZikuZmlsdGVyKGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gJCh0aGlzKS5hdHRyKCdk
YXRhLWNvbW1lbnQtYmFzZS1saW5lJykuc3BsaXQoJyAnKS5zb21lKGZ1bmN0aW9uKGl0ZW0pIHsK
ICAgICAgICByZXR1cm4gYmFzZV9saW5lcy5pbmRleE9mKGl0ZW0pICE9IC0xOwogICAgICB9KTsK
ICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gbnVtYmVyRnJvbShsaW5lX2lkKSB7CiAgICByZXR1cm4g
TnVtYmVyKGxpbmVfaWQucmVwbGFjZSgnbGluZScsICcnKSk7CiAgfQoKICBmdW5jdGlvbiB0cmlt
Q29tbWVudENvbnRleHRUb0JlZm9yZShsaW5lLCBjb21tZW50X2Jhc2VfbGluZSkgewogICAgdmFy
IGxpbmVfdG9fdHJpbV90byA9IG51bWJlckZyb20obGluZS5hdHRyKCdpZCcpKTsKICAgIGNvbnRl
eHRMaW5lc0Zvcihjb21tZW50X2Jhc2VfbGluZSwgZmlsZURpZmZGb3IobGluZSkpLmVhY2goZnVu
Y3Rpb24oKSB7CiAgICAgIHZhciBpZCA9ICQodGhpcykuYXR0cignaWQnKTsKICAgICAgaWYgKG51
bWJlckZyb20oaWQpID4gbGluZV90b190cmltX3RvKQogICAgICAgIHJldHVybjsKCiAgICAgIGlm
ICghJCgnW2RhdGEtY29tbWVudC1mb3I9JyArIGNvbW1lbnRfYmFzZV9saW5lICsgJ10nKS5sZW5n
dGgpCiAgICAgICAgcmVtb3ZlRGF0YUNvbW1lbnRCYXNlTGluZSh0aGlzLCBjb21tZW50X2Jhc2Vf
bGluZSk7CiAgICB9KTsKICB9CgogIHZhciBkcmFnX3NlbGVjdF9zdGFydF9pbmRleCA9IC0xOwoK
ICBmdW5jdGlvbiBsaW5lT2Zmc2V0RnJvbShsaW5lLCBvZmZzZXQpIHsKICAgIHZhciBmaWxlX2Rp
ZmYgPSBsaW5lLnBhcmVudHMoJy5GaWxlRGlmZicpOwogICAgdmFyIGFsbF9saW5lcyA9ICQoJy5M
aW5lJywgZmlsZV9kaWZmKTsKICAgIHZhciBpbmRleCA9IGFsbF9saW5lcy5pbmRleChsaW5lKTsK
ICAgIHJldHVybiAkKGFsbF9saW5lc1tpbmRleCArIG9mZnNldF0pOwogIH0KCiAgZnVuY3Rpb24g
cHJldmlvdXNMaW5lRm9yKGxpbmUpIHsKICAgIHJldHVybiBsaW5lT2Zmc2V0RnJvbShsaW5lLCAt
MSk7CiAgfQoKICBmdW5jdGlvbiBuZXh0TGluZUZvcihsaW5lKSB7CiAgICByZXR1cm4gbGluZU9m
ZnNldEZyb20obGluZSwgMSk7CiAgfQoKICAkKCcucmVzaXplSGFuZGxlJykubGl2ZSgnbW91c2Vk
b3duJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgIGZpbGVfZGlmZl9iZWluZ19yZXNpemVkID0gJCh0
aGlzKS5wYXJlbnQoJy5GaWxlRGlmZicpOwogIH0pOwoKICBmdW5jdGlvbiBnZW5lcmF0ZUZpbGVE
aWZmUmVzaXplU3R5bGVFbGVtZW50KCkgewogICAgLy8gRklYTUU6IE9uY2Ugd2Ugc3VwcG9ydCBj
YWxjLCB3ZSBjYW4gcmVwbGFjZSB0aGlzIHdpdGggc29tZXRoaW5nIHRoYXQgdXNlcyB0aGUgYXR0
cmlidXRlIHZhbHVlLgogICAgdmFyIHN0eWxlVGV4dCA9ICcnOwogICAgZm9yICh2YXIgaSA9IG1p
bkxlZnRTaWRlUmF0aW87IGkgPD0gbWF4TGVmdFNpZGVSYXRpbzsgaSsrKSB7CiAgICAgIC8vIEZJ
WE1FOiBPbmNlIHdlIHN1cHBvcnQgY2FsYywgcHV0IHRoZSByZXNpemUgaGFuZGxlIGF0IGNhbGMo
aSUgLSA1KSBzbyBpdCBkb2Vzbid0IGNvdmVyIHVwCiAgICAgIC8vIHRoZSByaWdodC1zaWRlIGxp
bmUgbnVtYmVycy4KICAgICAgc3R5bGVUZXh0ICs9ICcuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
JyArIGkgKyAnIl0gLnJlc2l6ZUhhbmRsZSB7JyArCiAgICAgICAgJ2xlZnQ6ICcgKyBpICsgJyUn
ICsKICAgICAgJ30nICsKICAgICAgJy5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSInICsgaSArICci
XSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsJyArCiAgICAgICcuRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iJyArIGkgKyAnIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUgeycgKwogICAg
ICAgICd3aWR0aDonICsgaSArICclOycgKwogICAgICAnfScgKwogICAgICAnLkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IicgKyBpICsgJyJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLCcgKwogICAgICAn
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IicgKyBpICsgJyJdLnNpZGVieXNpZGUgLkRpZmZCbG9j
a1BhcnQuYWRkIHsnICsKICAgICAgICAnd2lkdGg6JyArICgxMDAgLSBpKSArICclOycgKwogICAg
ICAnfSc7CiAgICB9CiAgICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnc3R5bGUnKTsKICAgIHN0eWxlRWxlbWVudC5pbm5lclRleHQgPSBzdHlsZVRleHQ7CiAgICBk
b2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7CiAgfQoKICAkKGRvY3VtZW50
KS5iaW5kKCdtb3VzZW1vdmUnLCBmdW5jdGlvbihldmVudCkgewogICAgaWYgKCFmaWxlX2RpZmZf
YmVpbmdfcmVzaXplZCkKICAgICAgcmV0dXJuOwoKICAgIHZhciByYXRpbyA9IGV2ZW50LnBhZ2VY
IC8gd2luZG93LmlubmVyV2lkdGg7CiAgICB2YXIgcGVyY2VudGFnZSA9IE1hdGguZmxvb3IocmF0
aW8gKiAxMDApOwogICAgaWYgKHBlcmNlbnRhZ2UgPCBtaW5MZWZ0U2lkZVJhdGlvKQogICAgICBw
ZXJjZW50YWdlID0gbWluTGVmdFNpZGVSYXRpbzsKICAgIGlmIChwZXJjZW50YWdlID4gbWF4TGVm
dFNpZGVSYXRpbykKICAgICAgcGVyY2VudGFnZSA9IG1heExlZnRTaWRlUmF0aW87CiAgICBmaWxl
X2RpZmZfYmVpbmdfcmVzaXplZC5hdHRyKCdsZWZ0c2lkZXdpZHRoJywgcGVyY2VudGFnZSk7CiAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogIH0pOwoKICAkKGRvY3VtZW50KS5iaW5kKCdtb3Vz
ZXVwJywgZnVuY3Rpb24oZXZlbnQpIHsKICAgIGZpbGVfZGlmZl9iZWluZ19yZXNpemVkID0gbnVs
bDsKICAgIHByb2Nlc3NTZWxlY3RlZExpbmVzKCk7CiAgfSk7CgogICQoJy5saW5lTnVtYmVyJyku
bGl2ZSgnY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICB2YXIgbGluZSA9IGxpbmVGcm9tTGluZURl
c2NlbmRhbnQoJCh0aGlzKSk7CiAgICBpZiAobGluZS5oYXNDbGFzcygnY29tbWVudENvbnRleHQn
KSkgewogICAgICB2YXIgcHJldmlvdXNfbGluZSA9IHByZXZpb3VzTGluZUZvcihsaW5lKTsKICAg
ICAgaWYgKHByZXZpb3VzX2xpbmVbMF0pCiAgICAgICAgdHJpbUNvbW1lbnRDb250ZXh0VG9CZWZv
cmUocHJldmlvdXNfbGluZSwgbGluZS5hdHRyKCdkYXRhLWNvbW1lbnQtYmFzZS1saW5lJykpOwog
ICAgfSBlbHNlIGlmIChlLnNoaWZ0S2V5KQogICAgICBleHRlbmRDb21tZW50Q29udGV4dFRvKGxp
bmUpOwogIH0pLmxpdmUoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGUpIHsKICAgIC8vIHByZXZlbnRE
ZWZhdWx0IHRvIGF2b2lkIHNlbGVjdGluZyB0ZXh0IHdoZW4gZHJhZ2dpbmcgdG8gc2VsZWN0IGNv
bW1lbnQgY29udGV4dCBsaW5lcy4KICAgIC8vIEZJWE1FOiBzaG91bGQgd2UgdXNlIHVzZXItbW9k
aWZ5IENTUyBpbnN0ZWFkPwogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKGUuc2hpZnRL
ZXkpCiAgICAgIHJldHVybjsKCiAgICB2YXIgbGluZSA9IGxpbmVGcm9tTGluZURlc2NlbmRhbnQo
JCh0aGlzKSk7CiAgICBpZiAobGluZS5oYXNDbGFzcygnY29udGV4dCcpKQogICAgICByZXR1cm47
CgogICAgZHJhZ19zZWxlY3Rfc3RhcnRfaW5kZXggPSBudW1iZXJGcm9tKGxpbmUuYXR0cignaWQn
KSk7CiAgICBsaW5lLmFkZENsYXNzKCdzZWxlY3RlZCcpOwogIH0pOwoKICAkKCcuTGluZUNvbnRh
aW5lcjpub3QoLmNvbnRleHQpJykubGl2ZSgnbW91c2VlbnRlcicsIGZ1bmN0aW9uKGUpIHsKICAg
IGlmIChkcmFnX3NlbGVjdF9zdGFydF9pbmRleCA9PSAtMSB8fCBlLnNoaWZ0S2V5KQogICAgICBy
ZXR1cm47CiAgICBzZWxlY3RUb0xpbmVDb250YWluZXIodGhpcyk7CiAgfSkubGl2ZSgnbW91c2V1
cCcsIGZ1bmN0aW9uKGUpIHsKICAgIGlmIChkcmFnX3NlbGVjdF9zdGFydF9pbmRleCA9PSAtMSB8
fCBlLnNoaWZ0S2V5KQogICAgICByZXR1cm47CgogICAgc2VsZWN0VG9MaW5lQ29udGFpbmVyKHRo
aXMpOwogICAgcHJvY2Vzc1NlbGVjdGVkTGluZXMoKTsKICB9KTsKCiAgZnVuY3Rpb24gZXh0ZW5k
Q29tbWVudENvbnRleHRUbyhsaW5lKSB7CiAgICB2YXIgZGlmZl9zZWN0aW9uID0gZGlmZlNlY3Rp
b25Gb3IobGluZSk7CiAgICB2YXIgbGluZXMgPSAkKCcuTGluZScsIGRpZmZfc2VjdGlvbik7CiAg
ICB2YXIgbGluZXNfdG9fbW9kaWZ5ID0gW107CiAgICB2YXIgaGF2ZV9zZWVuX3N0YXJ0X2xpbmUg
PSBmYWxzZTsKICAgIHZhciBkYXRhX2NvbW1lbnRfYmFzZV9saW5lID0gbnVsbDsKICAgIGxpbmVz
LmVhY2goZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkYXRhX2NvbW1lbnRfYmFzZV9saW5lKQogICAg
ICAgIHJldHVybjsKCiAgICAgIGhhdmVfc2Vlbl9zdGFydF9saW5lID0gaGF2ZV9zZWVuX3N0YXJ0
X2xpbmUgfHwgdGhpcyA9PSBsaW5lWzBdOwogICAgICAKICAgICAgaWYgKGhhdmVfc2Vlbl9zdGFy
dF9saW5lKSB7CiAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ2NvbW1lbnRDb250ZXh0Jykp
CiAgICAgICAgICBkYXRhX2NvbW1lbnRfYmFzZV9saW5lID0gJCh0aGlzKS5hdHRyKCdkYXRhLWNv
bW1lbnQtYmFzZS1saW5lJyk7CiAgICAgICAgZWxzZQogICAgICAgICAgbGluZXNfdG9fbW9kaWZ5
LnB1c2godGhpcyk7CiAgICAgIH0KICAgIH0pOwogICAgCiAgICAvLyBUaGVyZSBpcyBubyBjb21t
ZW50IGNvbnRleHQgdG8gZXh0ZW5kLgogICAgaWYgKCFkYXRhX2NvbW1lbnRfYmFzZV9saW5lKQog
ICAgICByZXR1cm47CiAgICAKICAgICQobGluZXNfdG9fbW9kaWZ5KS5lYWNoKGZ1bmN0aW9uKCkg
ewogICAgICAkKHRoaXMpLmFkZENsYXNzKCdjb21tZW50Q29udGV4dCcpOwogICAgICAkKHRoaXMp
LmF0dHIoJ2RhdGEtY29tbWVudC1iYXNlLWxpbmUnLCBkYXRhX2NvbW1lbnRfYmFzZV9saW5lKTsK
ICAgIH0pOwogIH0KCiAgZnVuY3Rpb24gc2VsZWN0VG8oZm9jdXNfaW5kZXgpIHsKICAgIHZhciBz
ZWxlY3RlZCA9ICQoJy5zZWxlY3RlZCcpLnJlbW92ZUNsYXNzKCdzZWxlY3RlZCcpOwogICAgdmFy
IGlzX2JhY2t3YXJkID0gZHJhZ19zZWxlY3Rfc3RhcnRfaW5kZXggPiBmb2N1c19pbmRleDsKICAg
IHZhciBjdXJyZW50X2luZGV4ID0gaXNfYmFja3dhcmQgPyBmb2N1c19pbmRleCA6IGRyYWdfc2Vs
ZWN0X3N0YXJ0X2luZGV4OwogICAgdmFyIGxhc3RfaW5kZXggPSBpc19iYWNrd2FyZCA/IGRyYWdf
c2VsZWN0X3N0YXJ0X2luZGV4IDogZm9jdXNfaW5kZXg7CiAgICB3aGlsZSAoY3VycmVudF9pbmRl
eCA8PSBsYXN0X2luZGV4KSB7CiAgICAgICQoJyNsaW5lJyArIGN1cnJlbnRfaW5kZXgpLmFkZENs
YXNzKCdzZWxlY3RlZCcpCiAgICAgIGN1cnJlbnRfaW5kZXgrKzsKICAgIH0KICB9CgogIGZ1bmN0
aW9uIHNlbGVjdFRvTGluZUNvbnRhaW5lcihsaW5lX2NvbnRhaW5lcikgewogICAgdmFyIGxpbmUg
PSBsaW5lRnJvbUxpbmVDb250YWluZXIobGluZV9jb250YWluZXIpOwoKICAgIC8vIEVuc3VyZSB0
aGF0IHRoZSBzZWxlY3RlZCBsaW5lcyBhcmUgYWxsIGNvbnRhaW5lZCBpbiB0aGUgc2FtZSBEaWZm
U2VjdGlvbi4KICAgIHZhciBzZWxlY3RlZF9saW5lcyA9ICQoJy5zZWxlY3RlZCcpOwogICAgdmFy
IHNlbGVjdGVkX2RpZmZfc2VjdGlvbiA9IGRpZmZTZWN0aW9uRm9yKHNlbGVjdGVkX2xpbmVzLmZp
cnN0KCkpOwogICAgdmFyIG5ld19kaWZmX3NlY3Rpb24gPSBkaWZmU2VjdGlvbkZvcihsaW5lKTsK
ICAgIGlmIChuZXdfZGlmZl9zZWN0aW9uWzBdICE9IHNlbGVjdGVkX2RpZmZfc2VjdGlvblswXSkg
ewogICAgICB2YXIgbGluZXMgPSAkKCcuTGluZScsIHNlbGVjdGVkX2RpZmZfc2VjdGlvbik7CiAg
ICAgIGlmIChudW1iZXJGcm9tKHNlbGVjdGVkX2xpbmVzLmZpcnN0KCkuYXR0cignaWQnKSkgPT0g
ZHJhZ19zZWxlY3Rfc3RhcnRfaW5kZXgpCiAgICAgICAgbGluZSA9IGxpbmVzLmxhc3QoKTsKICAg
ICAgZWxzZQogICAgICAgIGxpbmUgPSBsaW5lcy5maXJzdCgpOwogICAgfQogICAgCiAgICBzZWxl
Y3RUbyhudW1iZXJGcm9tKGxpbmUuYXR0cignaWQnKSkpOwogIH0KCiAgZnVuY3Rpb24gcHJvY2Vz
c1NlbGVjdGVkTGluZXMoKSB7CiAgICBkcmFnX3NlbGVjdF9zdGFydF9pbmRleCA9IC0xOwogICAg
YWRkQ29tbWVudEZvckxpbmVzKCQoJy5zZWxlY3RlZCcpKTsKICB9CiAgCiAgZnVuY3Rpb24gYWRk
Q29tbWVudEZvckxpbmVzKGxpbmVzKSB7ICAgIAogICAgaWYgKCFsaW5lcy5zaXplKCkpCiAgICAg
IHJldHVybjsKCiAgICB2YXIgYWxyZWFkeV9oYXNfY29tbWVudCA9IGxpbmVzLmxhc3QoKS5oYXND
bGFzcygnY29tbWVudENvbnRleHQnKTsKCiAgICB2YXIgY29tbWVudF9iYXNlX2xpbmU7CiAgICBp
ZiAoYWxyZWFkeV9oYXNfY29tbWVudCkKICAgICAgY29tbWVudF9iYXNlX2xpbmUgPSBsaW5lcy5s
YXN0KCkuYXR0cignZGF0YS1jb21tZW50LWJhc2UtbGluZScpOwogICAgZWxzZSB7CiAgICAgIHZh
ciBsYXN0ID0gbGluZUZyb21MaW5lRGVzY2VuZGFudChsaW5lcy5sYXN0KCkpOwogICAgICBhZGRD
b21tZW50Rm9yKCQobGFzdCkpOwogICAgICBjb21tZW50X2Jhc2VfbGluZSA9IGxhc3QuYXR0cign
aWQnKTsKICAgIH0KCiAgICBsaW5lcy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICBhZGREYXRhQ29t
bWVudEJhc2VMaW5lKHRoaXMsIGNvbW1lbnRfYmFzZV9saW5lKTsKICAgICAgJCh0aGlzKS5yZW1v
dmVDbGFzcygnc2VsZWN0ZWQnKTsKICAgIH0pOwoKICAgIHNhdmVEcmFmdENvbW1lbnRzKCk7CiAg
fQoKICBmdW5jdGlvbiBoYXNEYXRhQ29tbWVudEJhc2VMaW5lKGxpbmUsIGlkKSB7CiAgICB2YXIg
dmFsID0gJChsaW5lKS5hdHRyKCdkYXRhLWNvbW1lbnQtYmFzZS1saW5lJyk7CiAgICBpZiAoIXZh
bCkKICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHZhciBwYXJ0cyA9IHZhbC5zcGxpdCgnICcpOwog
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAocGFy
dHNbaV0gPT0gaWQpCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7
CiAgfQoKICBmdW5jdGlvbiBhZGREYXRhQ29tbWVudEJhc2VMaW5lKGxpbmUsIGlkKSB7CiAgICAk
KGxpbmUpLmFkZENsYXNzKCdjb21tZW50Q29udGV4dCcpOwogICAgaWYgKGhhc0RhdGFDb21tZW50
QmFzZUxpbmUobGluZSwgaWQpKQogICAgICByZXR1cm47CgogICAgdmFyIHZhbCA9ICQobGluZSku
YXR0cignZGF0YS1jb21tZW50LWJhc2UtbGluZScpOwogICAgdmFyIHBhcnRzID0gdmFsID8gdmFs
LnNwbGl0KCcgJykgOiBbXTsKICAgIHBhcnRzLnB1c2goaWQpOwogICAgJChsaW5lKS5hdHRyKCdk
YXRhLWNvbW1lbnQtYmFzZS1saW5lJywgcGFydHMuam9pbignICcpKTsKICB9CgogIGZ1bmN0aW9u
IHJlbW92ZURhdGFDb21tZW50QmFzZUxpbmUobGluZSwgY29tbWVudF9iYXNlX2xpbmVzKSB7CiAg
ICB2YXIgdmFsID0gJChsaW5lKS5hdHRyKCdkYXRhLWNvbW1lbnQtYmFzZS1saW5lJyk7CiAgICBp
ZiAoIXZhbCkKICAgICAgcmV0dXJuOwoKICAgIHZhciBiYXNlX2xpbmVzID0gY29tbWVudF9iYXNl
X2xpbmVzLnNwbGl0KCcgJyk7CiAgICB2YXIgcGFydHMgPSB2YWwuc3BsaXQoJyAnKTsKICAgIHZh
ciBuZXdfcGFydHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBp
KyspIHsKICAgICAgaWYgKGJhc2VfbGluZXMuaW5kZXhPZihwYXJ0c1tpXSkgPT0gLTEpCiAgICAg
ICAgbmV3X3BhcnRzLnB1c2gocGFydHNbaV0pOwogICAgfQoKICAgIHZhciBuZXdfY29tbWVudF9i
YXNlX2xpbmUgPSBuZXdfcGFydHMuam9pbignICcpOwogICAgaWYgKG5ld19jb21tZW50X2Jhc2Vf
bGluZSkKICAgICAgJChsaW5lKS5hdHRyKCdkYXRhLWNvbW1lbnQtYmFzZS1saW5lJywgbmV3X2Nv
bW1lbnRfYmFzZV9saW5lKTsKICAgIGVsc2UgewogICAgICAkKGxpbmUpLnJlbW92ZUF0dHIoJ2Rh
dGEtY29tbWVudC1iYXNlLWxpbmUnKTsKICAgICAgJChsaW5lKS5yZW1vdmVDbGFzcygnY29tbWVu
dENvbnRleHQnKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIGxpbmVGcm9tTGluZURlc2NlbmRhbnQo
ZGVzY2VuZGFudCkgewogICAgcmV0dXJuIGRlc2NlbmRhbnQuaGFzQ2xhc3MoJ0xpbmUnKSA/IGRl
c2NlbmRhbnQgOiBkZXNjZW5kYW50LnBhcmVudHMoJy5MaW5lJyk7CiAgfQoKICBmdW5jdGlvbiBs
aW5lQ29udGFpbmVyRnJvbURlc2NlbmRhbnQoZGVzY2VuZGFudCkgewogICAgcmV0dXJuIGRlc2Nl
bmRhbnQuaGFzQ2xhc3MoJ0xpbmVDb250YWluZXInKSA/IGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50
LnBhcmVudHMoJy5MaW5lQ29udGFpbmVyJyk7CiAgfQoKICBmdW5jdGlvbiBsaW5lRnJvbUxpbmVD
b250YWluZXIobGluZUNvbnRhaW5lcikgewogICAgdmFyIGxpbmUgPSAkKGxpbmVDb250YWluZXIp
OwogICAgaWYgKCFsaW5lLmhhc0NsYXNzKCdMaW5lJykpCiAgICAgIGxpbmUgPSAkKCcuTGluZScs
IGxpbmUpOwogICAgcmV0dXJuIGxpbmU7CiAgfQoKICBmdW5jdGlvbiBjb250ZXh0U25pcHBldEZv
cihsaW5lLCBpbmRlbnQpIHsKICAgIHZhciBzbmlwcGV0cyA9IFtdCiAgICBjb250ZXh0TGluZXNG
b3IobGluZS5hdHRyKCdpZCcpLCBmaWxlRGlmZkZvcihsaW5lKSkuZWFjaChmdW5jdGlvbigpIHsK
ICAgICAgdmFyIGFjdGlvbiA9ICcgJzsKICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ2FkZCcp
KQogICAgICAgIGFjdGlvbiA9ICcrJzsKICAgICAgZWxzZSBpZiAoJCh0aGlzKS5oYXNDbGFzcygn
cmVtb3ZlJykpCiAgICAgICAgYWN0aW9uID0gJy0nOwogICAgICBzbmlwcGV0cy5wdXNoKGluZGVu
dCArIGFjdGlvbiArIHRleHRDb250ZW50c0Zvcih0aGlzKSk7CiAgICB9KTsKICAgIHJldHVybiBz
bmlwcGV0cy5qb2luKCdcbicpOwogIH0KCiAgZnVuY3Rpb24gZmlsZU5hbWVGb3IobGluZSkgewog
ICAgcmV0dXJuIGZpbGVEaWZmRm9yKGxpbmUpLmZpbmQoJ2gxJykudGV4dCgpOwogIH0KCiAgZnVu
Y3Rpb24gaW5kZW50Rm9yKGRlcHRoKSB7CiAgICByZXR1cm4gKG5ldyBBcnJheShkZXB0aCArIDEp
KS5qb2luKCc+JykgKyAnICc7CiAgfQoKICBmdW5jdGlvbiBzbmlwcGV0Rm9yKGxpbmUsIGluZGVu
dCkgewogICAgdmFyIGZpbGVfbmFtZSA9IGZpbGVOYW1lRm9yKGxpbmUpOwogICAgdmFyIGxpbmVf
bnVtYmVyID0gbGluZS5oYXNDbGFzcygncmVtb3ZlJykgPyAnLScgKyBmcm9tTGluZU51bWJlcihs
aW5lWzBdKSA6IHRvTGluZU51bWJlcihsaW5lWzBdKTsKICAgIHJldHVybiBpbmRlbnQgKyBmaWxl
X25hbWUgKyAnOicgKyBsaW5lX251bWJlciArICdcbicgKyBjb250ZXh0U25pcHBldEZvcihsaW5l
LCBpbmRlbnQpOwogIH0KCiAgZnVuY3Rpb24gcXVvdGVQcmV2aW91c0NvbW1lbnRzKGNvbW1lbnRz
KSB7CiAgICB2YXIgcXVvdGVkX2NvbW1lbnRzID0gW107CiAgICB2YXIgZGVwdGggPSBjb21tZW50
cy5zaXplKCk7CiAgICBjb21tZW50cy5lYWNoKGZ1bmN0aW9uKCkgewogICAgICB2YXIgaW5kZW50
ID0gaW5kZW50Rm9yKGRlcHRoLS0pOwogICAgICB2YXIgdGV4dCA9ICQodGhpcykuY2hpbGRyZW4o
Jy5jb250ZW50JykudGV4dCgpOwogICAgICBxdW90ZWRfY29tbWVudHMucHVzaChpbmRlbnQgKyAn
XG4nICsgaW5kZW50ICsgdGV4dC5zcGxpdCgnXG4nKS5qb2luKCdcbicgKyBpbmRlbnQpKTsKICAg
IH0pOwogICAgcmV0dXJuIHF1b3RlZF9jb21tZW50cy5qb2luKCdcbicpOwogIH0KCiAgJCgnI2Nv
bW1lbnRfZm9ybSAud2ludGVyJykubGl2ZSgnY2xpY2snLCBoaWRlQ29tbWVudEZvcm0pOwoKICBm
dW5jdGlvbiBzZXJpYWxpemVkQ29tbWVudHMoKSB7CiAgICB2YXIgY29tbWVudHNfaW5fY29udGV4
dCA9IFtdCiAgICBmb3JFYWNoTGluZShmdW5jdGlvbihsaW5lKSB7CiAgICAgIGlmIChsaW5lLmF0
dHIoJ2RhdGEtaGFzLWNvbW1lbnQnKSAhPSAndHJ1ZScpCiAgICAgICAgcmV0dXJuOwogICAgICB2
YXIgY29tbWVudCA9IGZpbmRDb21tZW50QmxvY2tGb3IobGluZSkuY2hpbGRyZW4oJ3RleHRhcmVh
JykudmFsKCkudHJpbSgpOwogICAgICBpZiAoY29tbWVudCA9PSAnJykKICAgICAgICByZXR1cm47
CiAgICAgIHZhciBwcmV2aW91c19jb21tZW50cyA9IHByZXZpb3VzQ29tbWVudHNGb3IobGluZSk7
CiAgICAgIHZhciBzbmlwcGV0ID0gc25pcHBldEZvcihsaW5lLCBpbmRlbnRGb3IocHJldmlvdXNf
Y29tbWVudHMuc2l6ZSgpICsgMSkpOwogICAgICB2YXIgcXVvdGVkX2NvbW1lbnRzID0gcXVvdGVQ
cmV2aW91c0NvbW1lbnRzKHByZXZpb3VzX2NvbW1lbnRzKTsKICAgICAgdmFyIGNvbW1lbnRfd2l0
aF9jb250ZXh0ID0gW107CiAgICAgIGNvbW1lbnRfd2l0aF9jb250ZXh0LnB1c2goc25pcHBldCk7
CiAgICAgIGlmIChxdW90ZWRfY29tbWVudHMgIT0gJycpCiAgICAgICAgY29tbWVudF93aXRoX2Nv
bnRleHQucHVzaChxdW90ZWRfY29tbWVudHMpOwogICAgICBjb21tZW50X3dpdGhfY29udGV4dC5w
dXNoKCdcbicgKyBjb21tZW50KTsKICAgICAgY29tbWVudHNfaW5fY29udGV4dC5wdXNoKGNvbW1l
bnRfd2l0aF9jb250ZXh0LmpvaW4oJ1xuJykpOwogICAgfSk7CiAgICB2YXIgY29tbWVudCA9ICQo
Jy5vdmVyYWxsQ29tbWVudHMgdGV4dGFyZWEnKS52YWwoKS50cmltKCk7CiAgICBpZiAoY29tbWVu
dCAhPSAnJykKICAgICAgY29tbWVudCArPSAnXG5cbic7CiAgICBjb21tZW50ICs9IGNvbW1lbnRz
X2luX2NvbnRleHQuam9pbignXG5cbicpOwogICAgaWYgKGNvbW1lbnRzX2luX2NvbnRleHQubGVu
Z3RoID4gMCkKICAgICAgY29tbWVudCA9ICdWaWV3IGluIGNvbnRleHQ6ICcgKyB3aW5kb3cubG9j
YXRpb24gKyAnXG5cbicgKyBjb21tZW50OwogICAgcmV0dXJuIGNvbW1lbnQ7CiAgfQoKICBmdW5j
dGlvbiBmaWxsSW5SZXZpZXdGb3JtKCkgewogICAgdmFyIHJldmlld19mb3JtID0gJCgnI3Jldmll
d2Zvcm0nKS5jb250ZW50cygpOwogICAgcmV2aWV3X2Zvcm0uZmluZCgnI2NvbW1lbnQnKS52YWwo
c2VyaWFsaXplZENvbW1lbnRzKCkpOwogICAgcmV2aWV3X2Zvcm0uZmluZCgnI2ZsYWdzIHNlbGVj
dCcpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjb250cm9sID0gZmluZENvbnRyb2xGb3JG
bGFnKHRoaXMpOwogICAgICBpZiAoIWNvbnRyb2wuc2l6ZSgpKQogICAgICAgIHJldHVybjsKICAg
ICAgJCh0aGlzKS5hdHRyKCdzZWxlY3RlZEluZGV4JywgY29udHJvbC5hdHRyKCdzZWxlY3RlZElu
ZGV4JykpOwogICAgfSk7CiAgfQoKICBmdW5jdGlvbiBzaG93Q29tbWVudEZvcm0oKSB7CiAgICAk
KCcjY29tbWVudF9mb3JtJykucmVtb3ZlQ2xhc3MoJ2luYWN0aXZlJyk7CiAgICAkKCcjcmV2aWV3
Zm9ybScpLmNvbnRlbnRzKCkuZmluZCgnI3N1Ym1pdEJ0bicpLmZvY3VzKCk7CiAgfQogIAogIGZ1
bmN0aW9uIGhpZGVDb21tZW50Rm9ybSgpIHsKICAgICQoJyNjb21tZW50X2Zvcm0nKS5hZGRDbGFz
cygnaW5hY3RpdmUnKTsKICAgIAogICAgLy8gTWFrZSBzdXJlIHRoZSB0b3AgZG9jdW1lbnQgaGFz
IGZvY3VzIHNvIGtleSBldmVudHMgZG9uJ3Qga2VlcCBnb2luZyB0byB0aGUgcmV2aWV3IGZvcm0u
CiAgICBkb2N1bWVudC5ib2R5LnRhYkluZGV4ID0gLTE7CiAgICBkb2N1bWVudC5ib2R5LmZvY3Vz
KCk7CiAgfQoKICAkKCcjcHJldmlld19jb21tZW50cycpLmxpdmUoJ2NsaWNrJywgZnVuY3Rpb24o
KSB7CiAgICBmaWxsSW5SZXZpZXdGb3JtKCk7CiAgICBzaG93Q29tbWVudEZvcm0oKTsKICB9KTsK
CiAgJCgnI3Bvc3RfY29tbWVudHMnKS5saXZlKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgZmls
bEluUmV2aWV3Rm9ybSgpOwogICAgJCgnI3Jldmlld2Zvcm0nKS5jb250ZW50cygpLmZpbmQoJ2Zv
cm0nKS5zdWJtaXQoKTsKICB9KTsKICAKICBpZiAoQ09ERV9SRVZJRVdfVU5JVFRFU1QpIHsKICAg
IHdpbmRvdy5EcmFmdENvbW1lbnRTYXZlciA9IERyYWZ0Q29tbWVudFNhdmVyOwogICAgd2luZG93
LmFkZENvbW1lbnRGb3IgPSBhZGRDb21tZW50Rm9yOwogICAgd2luZG93LmFkZFByZXZpb3VzQ29t
bWVudCA9IGFkZFByZXZpb3VzQ29tbWVudDsKICAgIHdpbmRvdy50cmFjTGlua3MgPSB0cmFjTGlu
a3M7CiAgICB3aW5kb3cuY3Jhd2xEaWZmID0gY3Jhd2xEaWZmOwogICAgd2luZG93LmNvbnZlcnRB
bGxGaWxlRGlmZnMgPSBjb252ZXJ0QWxsRmlsZURpZmZzOwogICAgd2luZG93LnNhbml0aXplRnJh
Z21lbnRGb3JDb3B5ID0gc2FuaXRpemVGcmFnbWVudEZvckNvcHk7CiAgICB3aW5kb3cuZGlzcGxh
eVByZXZpb3VzQ29tbWVudHMgPSBkaXNwbGF5UHJldmlvdXNDb21tZW50czsKICAgIHdpbmRvdy5k
aXNjYXJkQ29tbWVudCA9IGRpc2NhcmRDb21tZW50OwogICAgd2luZG93LmFkZENvbW1lbnRGaWVs
ZCA9IGFkZENvbW1lbnRGaWVsZDsKICAgIHdpbmRvdy5hY2NlcHRDb21tZW50ID0gYWNjZXB0Q29t
bWVudDsKICAgIHdpbmRvdy5hcHBlbmRUb29sYmFyID0gYXBwZW5kVG9vbGJhcjsKICAgIHdpbmRv
dy5lcmFzZURyYWZ0Q29tbWVudHMgPSBlcmFzZURyYWZ0Q29tbWVudHM7CiAgICB3aW5kb3cuc2Vy
aWFsaXplZENvbW1lbnRzID0gc2VyaWFsaXplZENvbW1lbnRzOwogICAgd2luZG93LnNldEZpbGVD
b250ZW50cyA9IHNldEZpbGVDb250ZW50czsKICAgIHdpbmRvdy51bmZyZWV6ZUNvbW1lbnQgPSB1
bmZyZWV6ZUNvbW1lbnQ7CiAgICB3aW5kb3cuZ19kcmFmdENvbW1lbnRTYXZlciA9IGdfZHJhZnRD
b21tZW50U2F2ZXI7CiAgICB3aW5kb3cuaXNDaGFuZ2VMb2cgPSBpc0NoYW5nZUxvZzsKICB9IGVs
c2UgewogICAgJChkb2N1bWVudCkucmVhZHkoaGFuZGxlRG9jdW1lbnRSZWFkeSkKICB9Cn0pKCk7
Cl8QD3RleHQvamF2YXNjcmlwdF8QMWh0dHBzOi8vYnVncy53ZWJraXQub3JnL2NvZGUtcmV2aWV3
LmpzP3ZlcnNpb249NDhPEQTNYnBsaXN0MDDUAQIDBAUGcnNYJHZlcnNpb25YJG9iamVjdHNZJGFy
Y2hpdmVyVCR0b3ASAAGGoK8QIgcIIigpMCExMkxNTk9QUVJTVFVWV1hZWltcXV5fYGRlaW1VJG51
bGzdCQoLDA0ODxAREhMUFRYXGBkaGxwdHh8XICFSJDZTJDEwUiQyUiQ3UiQzUyQxMVIkOFYkY2xh
c3NSJDRSJDlSJDBSJDVSJDGABxAIEAeACIACEACAHoAhgAWAH4AGEAHTIxAkJSYnV05TLmJhc2Vb
TlMucmVsYXRpdmWAAIAEgANfEDFodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9jb2RlLXJldmlldy5q
cz92ZXJzaW9uPTQ40iorLC1aJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKIuL1VOU1VSTFhOU09i
amVjdCNBtsYX4xUqlRDI0zM0EDVAS1dOUy5rZXlzWk5TLm9iamVjdHOqNjc4OTo7PD0+P4AJgAqA
C4AMgA2ADoAPgBCAEYASqkFCQ0RFRkdISUqAE4AUgBWAFoAXgBiAGYAagBuAHIAdVlNlcnZlcl8Q
G0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpblpDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEBlT
dHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XENvbnRlbnQtVHlwZV1BY2NlcHQtUmFuZ2VzVERhdGVe
Q29udGVudC1MZW5ndGhURXRhZ1pBcGFjaGUvMi4yUSpVY2xvc2VfEB1GcmksIDA0IEphbiAyMDEz
IDAxOjA1OjI5IEdNVF8QD21heC1hZ2U9Nzc3NjAwMF8QD3RleHQvamF2YXNjcmlwdFVieXRlc18Q
HVNhdCwgMDkgRmViIDIwMTMgMDU6Mzc6NTAgR01UVTcxMTI5XxAcIjE2MGIyMC0xMTVkOS00ZDI2
YzEzNTY5ZjIyItIqK2FiXxATTlNNdXRhYmxlRGljdGlvbmFyeaNhYy9cTlNEaWN0aW9uYXJ5EgAB
FdnSEGZnaFlOUy5zdHJpbmeAIF8QD3RleHQvamF2YXNjcmlwdNIqK2prXxAPTlNNdXRhYmxlU3Ry
aW5no2psL1hOU1N0cmluZ9IqK25vXxARTlNIVFRQVVJMUmVzcG9uc2WjcHEvXxARTlNIVFRQVVJM
UmVzcG9uc2VdTlNVUkxSZXNwb25zZV8QD05TS2V5ZWRBcmNoaXZlctF0dV8QE1dlYlJlc291cmNl
UmVzcG9uc2WAAQAIABEAGgAjAC0AMgA3AFwAYgB9AIAAhACHAIoAjQCRAJQAmwCeAKEApACnAKoA
rACuALAAsgC0ALYAuAC6ALwAvgDAAMIAyQDRAN0A3wDhAOMBFwEcAScBMAE2ATkBPwFIAVEBUwFa
AWIBbQF4AXoBfAF+AYABggGEAYYBiAGKAYwBlwGZAZsBnQGfAaEBowGlAacBqQGrAa0BtAHSAd0B
6wIHAhQCIgInAjYCOwJGAkgCTgJuAoACkgKYArgCvgLdAuIC+AL8AwkDDgMTAx0DHwMxAzYDSANM
A1UDWgNuA3IDhgOUA6YDqQO/AAAAAAAAAgEAAAAAAAAAdgAAAAAAAAAAAAAAAAAAA8HVBgcIFgkX
GBkaG18QFFdlYlJlc291cmNlRnJhbWVOYW1lTxGfMDxodG1sPjxoZWFkPgo8c3R5bGU+CjpsaW5r
LCA6dmlzaXRlZCB7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBib3JkZXItYm90dG9t
OiAxcHggZG90dGVkOwp9Cgo6bGluayB7CiAgICBjb2xvcjogIzAzOTsKfQoKLkZpbGVEaWZmIHsK
ICAgIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRk
OwogICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgIG1hcmdpbjogMWVtIDA7CiAgICBwb3Np
dGlvbjogcmVsYXRpdmU7Cn0KCmgxIHsKICAgIGNvbG9yOiAjMzMzOwogICAgZm9udC1mYW1pbHk6
IHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDFlbTsKICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTsK
ICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICB3aWR0aDogMTAwJTsKICAgIHBhZGRpbmc6IDAu
NWVtOwp9CgpoMSA6bGluaywgaDEgOnZpc2l0ZWQgewogICAgY29sb3I6IGluaGVyaXQ7Cn0KCmgx
IDpob3ZlciB7CiAgICBjb2xvcjogIzU1NTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7Cn0K
Ci5EaWZmTGlua3MgewogICAgZmxvYXQ6IHJpZ2h0Owp9CgouRmlsZURpZmZMaW5rQ29udGFpbmVy
IHsKICAgIG9wYWNpdHk6IDA7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwogICAgcGFkZGluZy1y
aWdodDogMC41ZW07CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgouRGlmZlNlY3Rpb24gewog
ICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBib3JkZXI6IHNvbGlkICNkZGQ7CiAgICBi
b3JkZXItd2lkdGg6IDFweCAwcHg7Cn0KCi5FeHBhbnNpb25MaW5lLCAuTGluZUNvbnRhaW5lciB7
CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Cgouc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5h
ZGQ6Zmlyc3QtY2hpbGQgewogICAgZmxvYXQ6IHJpZ2h0Owp9CgouTGluZVNpZGUsCi5zaWRlYnlz
aWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSwKLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRk
IHsKICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDUwJTsKICAgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7Cn0KCi5zaWRlYnlzaWRlIC5yZXNpemVIYW5kbGUgewogICAgd2lkdGg6IDVw
eDsKICAgIGhlaWdodDogMTAwJTsKICAgIGN1cnNvcjogbW92ZTsKICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDUwJTsKfQoKLnNpZGVieXNpZGUgLnJlc2l6ZUhh
bmRsZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmV5OwogICAgb3BhY2l0eTogMC41
Owp9Cgouc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUgLnRvLAouc2lkZWJ5c2lkZSAu
RGlmZkJsb2NrUGFydC5hZGQgLmZyb20gewogICAgZGlzcGxheTogbm9uZTsKfQoKLmxpbmVOdW1i
ZXIsIC5leHBhbnNpb25MaW5lTnVtYmVyIHsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAj
OTk4OwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RkZDsKICAgIGNvbG9yOiAjNDQ0Owog
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMXB4IDVweCAwcHggMHB4Owog
ICAgdGV4dC1hbGlnbjogcmlnaHQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwogICAgd2lk
dGg6IDNlbTsKfQoKLmxpbmVOdW1iZXIgewogIGJhY2tncm91bmQtY29sb3I6ICNlZWQ7Cn0KCi5l
eHBhbnNpb25MaW5lTnVtYmVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwp9CgoudGV4dCB7
CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgIHdv
cmQtd3JhcDogYnJlYWstd29yZDsKfQoKLmltYWdlIHsKICAgIGJvcmRlcjogMnB4IHNvbGlkIGJs
YWNrOwp9CgouY29udGV4dCwgLmNvbnRleHQgLmxpbmVOdW1iZXIgewogICAgY29sb3I6ICM4NDk7
CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmOwp9CgouTGluZS5hZGQsIC5GaWxlRGlmZiAuYWRk
IHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmQ7Cn0KCi5MaW5lLmFkZCBpbnMgewogICAgYmFj
a2dyb3VuZC1jb2xvcjogIzllOTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoKLkxpbmUu
cmVtb3ZlLCAuRmlsZURpZmYgLnJlbW92ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRkOwp9
CgouTGluZS5yZW1vdmUgZGVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNlOTk7CiAgICB0ZXh0
LWRlY29yYXRpb246IG5vbmU7Cn0KCi8qIFN1cHBvcnQgZm9yIGlubGluZSBjb21tZW50cyAqLwoK
LmF1dGhvciB7CiAgZm9udC1zdHlsZTogaXRhbGljOwp9CgouY29tbWVudCB7CiAgcG9zaXRpb246
IHJlbGF0aXZlOwp9CgouY29tbWVudCB0ZXh0YXJlYSB7CiAgaGVpZ2h0OiA2ZW07Cn0KCi5vdmVy
YWxsQ29tbWVudHMgdGV4dGFyZWEgewogIGhlaWdodDogMmVtOwogIG1heC13aWR0aDogMTAwJTsK
ICBtaW4td2lkdGg6IDIwMHB4Owp9CgouY29tbWVudCB0ZXh0YXJlYSwgLm92ZXJhbGxDb21tZW50
cyB0ZXh0YXJlYSB7CiAgZGlzcGxheTogYmxvY2s7CiAgd2lkdGg6IDEwMCU7Cn0KCi5vdmVyYWxs
Q29tbWVudHMgLm9wZW4gewogIC13ZWJraXQtdHJhbnNpdGlvbjogaGVpZ2h0IC4yczsKICBoZWln
aHQ6IDRlbTsKfQoKI3N0YXR1c0J1YmJsZUNvbnRhaW5lci53cmFwIHsKICBkaXNwbGF5OiBibG9j
azsKfQoKI3Rvb2xiYXIgewogIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKICBkaXNwbGF5OiAtbW96
LWZsZXg7CiAgcGFkZGluZzogM3B4OwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgYm9yZGVyOiAx
cHggc29saWQgI2RkZDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOwogIGZvbnQtZmFtaWx5OiBz
YW5zLXNlcmlmOwogIHBvc2l0aW9uOiBmaXhlZDsKICBib3R0b206IDA7Cn0KCiN0b29sYmFyIC5h
Y3Rpb25zIHsKICBmbG9hdDogcmlnaHQ7Cn0KCi53aW50ZXIgewogIHBvc2l0aW9uOiBmaXhlZDsK
ICB6LWluZGV4OiA1OwogIGxlZnQ6IDA7CiAgcmlnaHQ6IDA7CiAgdG9wOiAwOwogIGJvdHRvbTog
MDsKICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKICBvcGFjaXR5OiAwLjg7Cn0KCi5pbmFjdGl2
ZSB7CiAgZGlzcGxheTogbm9uZTsKfQoKLmxpZ2h0Ym94IHsKICBwb3NpdGlvbjogZml4ZWQ7CiAg
ei1pbmRleDogNjsKICBsZWZ0OiAxMCU7CiAgcmlnaHQ6IDEwJTsKICB0b3A6IDEwJTsKICBib3R0
b206IDEwJTsKICBiYWNrZ3JvdW5kOiB3aGl0ZTsKfQoKLmxpZ2h0Ym94IGlmcmFtZSB7CiAgd2lk
dGg6IDEwMCU7CiAgaGVpZ2h0OiAxMDAlOwp9CgouY29tbWVudENvbnRleHQgLmxpbmVOdW1iZXIg
ewogIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKfQoKLnNlbGVjdGVkIC5saW5lTnVtYmVyIHsK
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjlGOwogIGJvcmRlci1ib3R0b20tY29sb3I6ICM2OUY7CiAg
Ym9yZGVyLXJpZ2h0LWNvbG9yOiAjNjlGOwp9CgouRXhwYW5kTGlua0NvbnRhaW5lciB7CiAgb3Bh
Y2l0eTogMDsKICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsKICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgI2RkZDsKfQoKLkV4cGFuZEFyZWEgewogIG1hcmdpbjogMDsKfQoKLkV4cGFuZFRl
eHQgewogIG1hcmdpbi1sZWZ0OiAwLjY3ZW07Cn0KCi5MaW5rQ29udGFpbmVyIHsKICBmb250LWZh
bWlseTogc2Fucy1zZXJpZjsKICBmb250LXNpemU6IHNtYWxsOwogIGZvbnQtc3R5bGU6IG5vcm1h
bDsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC41czsKfQoKLkxpbmtDb250YWluZXIg
YSB7CiAgYm9yZGVyOiAwOwp9CgouTGlua0NvbnRhaW5lciBsYWJlbDphZnRlciwKLkxpbmtDb250
YWluZXIgYTphZnRlciB7CiAgY29udGVudDogIiB8ICI7CiAgY29sb3I6IGJsYWNrOwp9CgouTGlu
a0NvbnRhaW5lciBhOmxhc3Qtb2YtdHlwZTphZnRlciB7CiAgY29udGVudDogIiI7Cn0KCi5MaW5r
Q29udGFpbmVyIGxhYmVsIHsKICBjb2xvcjogIzAzOTsKfQoKLmhlbHAgewogY29sb3I6IGdyYXk7
CiBmb250LXN0eWxlOiBpdGFsaWM7Cn0KCiNtZXNzYWdlIHsKICBmb250LXNpemU6IHNtYWxsOwog
IGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwp9CgouY29tbWVudFN0YXR1cyB7CiAgZm9udC1zdHls
ZTogaXRhbGljOwp9CgouY29tbWVudCwgLnByZXZpb3VzQ29tbWVudCwgLmZyb3plbkNvbW1lbnQg
ewogIGJhY2tncm91bmQtY29sb3I6ICNmZmQ7Cn0KCi5vdmVyYWxsQ29tbWVudHMgewogIC13ZWJr
aXQtZmxleDogMTsKICAtbW96LWZsZXg6IDE7CiAgbWFyZ2luLXJpZ2h0OiAzcHg7Cn0KCi5wcmV2
aW91c0NvbW1lbnQsIC5mcm96ZW5Db21tZW50IHsKICBib3JkZXI6IGluc2V0IDFweDsKICBwYWRk
aW5nOiA1cHg7CiAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwp9CgouY29tbWVudCBidXR0b24gewog
IHdpZHRoOiA2ZW07Cn0KCmRpdjpmb2N1cyB7CiAgb3V0bGluZTogMXB4IHNvbGlkIGJsdWU7CiAg
b3V0bGluZS1vZmZzZXQ6IC0xcHg7Cn0KCi5zdGF0dXNCdWJibGUgewogIC8qIFRoZSB3aWR0aC9o
ZWlnaHQgZ2V0IHNldCB0byB0aGUgYnViYmxlIGNvbnRlbnRzIHZpYSBwb3N0TWVzc2FnZSBvbiBi
cm93c2VycyB0aGF0IHN1cHBvcnQgaXQuICovCiAgd2lkdGg6IDQ1MHB4OwogIGhlaWdodDogMjBw
eDsKICBtYXJnaW46IDJweCAycHggMCAwOwogIGJvcmRlcjogbm9uZTsKICB2ZXJ0aWNhbC1hbGln
bjogbWlkZGxlOwp9CgoucmV2aXNpb24gewogIGRpc3BsYXk6IG5vbmU7Cn0KCi5hdXRvc2F2ZS1z
dGF0ZSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAwOwogIHRvcDogLTEuM2VtOwog
IHBhZGRpbmc6IDAgM3B4OwogIG91dGxpbmU6IDFweCBzb2xpZCAjREREOwogIGNvbG9yOiAjOEZE
RjVGOwogIGZvbnQtc2l6ZTogc21hbGw7ICAgCiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRTsKfQoK
LmF1dG9zYXZlLXN0YXRlOmVtcHR5IHsKICBvdXRsaW5lOiAwcHg7Cn0KLmF1dG9zYXZlLXN0YXRl
LnNhdmluZyB7CiAgY29sb3I6ICNFOTgwODA7Cn0KCi5jbGVhcl9mbG9hdCB7CiAgICBjbGVhcjog
Ym90aDsKfQo8L3N0eWxlPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hamF4Lmdvb2dsZWFwaXMuY29t
L2FqYXgvbGlicy9qcXVlcnkvMS40LjIvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+IAo8c2NyaXB0
IHNyYz0iY29kZS1yZXZpZXcuanM/dmVyc2lvbj00OCI+PC9zY3JpcHQ+CjxzdHlsZT4uRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iMTAiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiAxMCV9LkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjEwIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSIxMCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDox
MCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxMCJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxMCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRk
IHt3aWR0aDo5MCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxMSJdIC5yZXNpemVIYW5kbGUg
e2xlZnQ6IDExJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTEiXSAuTGluZVNpZGU6Zmlyc3Qt
Y2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjExIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2Nr
UGFydC5yZW1vdmUge3dpZHRoOjExJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjExIl0gLkxp
bmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjExIl0uc2lkZWJ5c2lk
ZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjg5JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjEyIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMTIlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIx
MiJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTIiXS5z
aWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6MTIlO30uRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iMTIiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iMTIiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6ODglO30uRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iMTMiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiAxMyV9LkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjEzIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSIxMyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0
aDoxMyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxMyJdIC5MaW5lU2lkZTpsYXN0LWNoaWxk
LC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxMyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQu
YWRkIHt3aWR0aDo4NyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxNCJdIC5yZXNpemVIYW5k
bGUge2xlZnQ6IDE0JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTQiXSAuTGluZVNpZGU6Zmly
c3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE0Il0uc2lkZWJ5c2lkZSAuRGlmZkJs
b2NrUGFydC5yZW1vdmUge3dpZHRoOjE0JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE0Il0g
LkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE0Il0uc2lkZWJ5
c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjg2JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjE1Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMTUlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSIxNSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTUi
XS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6MTUlO30uRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iMTUiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iMTUiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6ODUlO30u
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTYiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiAxNiV9LkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjE2Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSIxNiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3
aWR0aDoxNiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxNiJdIC5MaW5lU2lkZTpsYXN0LWNo
aWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxNiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1Bh
cnQuYWRkIHt3aWR0aDo4NCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxNyJdIC5yZXNpemVI
YW5kbGUge2xlZnQ6IDE3JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTciXSAuTGluZVNpZGU6
Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE3Il0uc2lkZWJ5c2lkZSAuRGlm
ZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjE3JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE3
Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE3Il0uc2lk
ZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjgzJTt9LkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjE4Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMTglfS5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSIxOCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
MTgiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6MTglO30uRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iMTgiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iMTgiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6ODIl
O30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMTkiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiAxOSV9
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjE5Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSIxOSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3Zl
IHt3aWR0aDoxOSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxOSJdIC5MaW5lU2lkZTpsYXN0
LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIxOSJdLnNpZGVieXNpZGUgLkRpZmZCbG9j
a1BhcnQuYWRkIHt3aWR0aDo4MSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyMCJdIC5yZXNp
emVIYW5kbGUge2xlZnQ6IDIwJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjAiXSAuTGluZVNp
ZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjIwIl0uc2lkZWJ5c2lkZSAu
RGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjIwJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjIwIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjIwIl0u
c2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjgwJTt9LkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9IjIxIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMjElfS5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSIyMSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iMjEiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6MjElO30uRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iMjEiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iMjEiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6
NzklO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjIiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiAy
MiV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjIyIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyMiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVt
b3ZlIHt3aWR0aDoyMiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyMiJdIC5MaW5lU2lkZTps
YXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyMiJdLnNpZGVieXNpZGUgLkRpZmZC
bG9ja1BhcnQuYWRkIHt3aWR0aDo3OCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyMyJdIC5y
ZXNpemVIYW5kbGUge2xlZnQ6IDIzJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjMiXSAuTGlu
ZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjIzIl0uc2lkZWJ5c2lk
ZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjIzJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjIzIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjIz
Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjc3JTt9LkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjI0Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMjQlfS5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSIyNCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iMjQiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6MjQlO30u
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjQiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iMjQiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lk
dGg6NzYlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjUiXSAucmVzaXplSGFuZGxlIHtsZWZ0
OiAyNSV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjI1Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxk
LC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyNSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQu
cmVtb3ZlIHt3aWR0aDoyNSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyNSJdIC5MaW5lU2lk
ZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyNSJdLnNpZGVieXNpZGUgLkRp
ZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo3NSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyNiJd
IC5yZXNpemVIYW5kbGUge2xlZnQ6IDI2JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjYiXSAu
TGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjI2Il0uc2lkZWJ5
c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjI2JTt9LkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjI2Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjI2Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjc0JTt9LkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjI3Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMjclfS5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSIyNyJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iMjciXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6Mjcl
O30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjciXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iMjciXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7
d2lkdGg6NzMlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjgiXSAucmVzaXplSGFuZGxlIHts
ZWZ0OiAyOCV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjI4Il0gLkxpbmVTaWRlOmZpcnN0LWNo
aWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyOCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1Bh
cnQucmVtb3ZlIHt3aWR0aDoyOCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyOCJdIC5MaW5l
U2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIyOCJdLnNpZGVieXNpZGUg
LkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo3MiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIy
OSJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDI5JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMjki
XSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjI5Il0uc2lk
ZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjI5JTt9LkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9IjI5Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjI5Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjcxJTt9LkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjMwIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMzAlfS5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSIzMCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iMzAiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6
MzAlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzAiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwu
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzAiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFk
ZCB7d2lkdGg6NzAlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzEiXSAucmVzaXplSGFuZGxl
IHtsZWZ0OiAzMSV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjMxIl0gLkxpbmVTaWRlOmZpcnN0
LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzMSJdLnNpZGVieXNpZGUgLkRpZmZCbG9j
a1BhcnQucmVtb3ZlIHt3aWR0aDozMSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzMSJdIC5M
aW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzMSJdLnNpZGVieXNp
ZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo2OSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSIzMiJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDMyJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
MzIiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjMyIl0u
c2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjMyJTt9LkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjMyIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjMyIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjY4JTt9LkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjMzIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMzMlfS5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSIzMyJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iMzMiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lk
dGg6MzMlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzMiXSAuTGluZVNpZGU6bGFzdC1jaGls
ZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzMiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0
LmFkZCB7d2lkdGg6NjclO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzQiXSAucmVzaXplSGFu
ZGxlIHtsZWZ0OiAzNCV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjM0Il0gLkxpbmVTaWRlOmZp
cnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNCJdLnNpZGVieXNpZGUgLkRpZmZC
bG9ja1BhcnQucmVtb3ZlIHt3aWR0aDozNCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNCJd
IC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNCJdLnNpZGVi
eXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo2NiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSIzNSJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDM1JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iMzUiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjM1
Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjM1JTt9LkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjM1Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9IjM1Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjY1JTt9
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjM2Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMzYlfS5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNiJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iMzYiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7
d2lkdGg6MzYlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzYiXSAuTGluZVNpZGU6bGFzdC1j
aGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzYiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQ
YXJ0LmFkZCB7d2lkdGg6NjQlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzciXSAucmVzaXpl
SGFuZGxlIHtsZWZ0OiAzNyV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjM3Il0gLkxpbmVTaWRl
OmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNyJdLnNpZGVieXNpZGUgLkRp
ZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDozNyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIz
NyJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzNyJdLnNp
ZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo2MyU7fS5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSIzOCJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDM4JX0uRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iMzgiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjM4Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjM4JTt9LkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjM4Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjM4Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjYy
JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjM5Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogMzkl
fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSIzOSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iMzkiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92
ZSB7d2lkdGg6MzklO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzkiXSAuTGluZVNpZGU6bGFz
dC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iMzkiXS5zaWRlYnlzaWRlIC5EaWZmQmxv
Y2tQYXJ0LmFkZCB7d2lkdGg6NjElO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDAiXSAucmVz
aXplSGFuZGxlIHtsZWZ0OiA0MCV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQwIl0gLkxpbmVT
aWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0MCJdLnNpZGVieXNpZGUg
LkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo0MCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSI0MCJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0MCJd
LnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo2MCU7fS5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSI0MSJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDQxJX0uRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iNDEiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjQxIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjQxJTt9LkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjQxIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjQxIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRo
OjU5JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQyIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDog
NDIlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0MiJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwu
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDIiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJl
bW92ZSB7d2lkdGg6NDIlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDIiXSAuTGluZVNpZGU6
bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDIiXS5zaWRlYnlzaWRlIC5EaWZm
QmxvY2tQYXJ0LmFkZCB7d2lkdGg6NTglO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDMiXSAu
cmVzaXplSGFuZGxlIHtsZWZ0OiA0MyV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQzIl0gLkxp
bmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0MyJdLnNpZGVieXNp
ZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo0MyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSI0MyJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0
MyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo1NyU7fS5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSI0NCJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDQ0JX0uRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iNDQiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjQ0Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjQ0JTt9
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ0Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjQ0Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dp
ZHRoOjU2JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ1Il0gLnJlc2l6ZUhhbmRsZSB7bGVm
dDogNDUlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0NSJdIC5MaW5lU2lkZTpmaXJzdC1jaGls
ZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDUiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0
LnJlbW92ZSB7d2lkdGg6NDUlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDUiXSAuTGluZVNp
ZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDUiXS5zaWRlYnlzaWRlIC5E
aWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NTUlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDYi
XSAucmVzaXplSGFuZGxlIHtsZWZ0OiA0NiV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ2Il0g
LkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0NiJdLnNpZGVi
eXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo0NiU7fS5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSI0NiJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSI0NiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo1NCU7fS5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSI0NyJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDQ3JX0uRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iNDciXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9IjQ3Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjQ3
JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ3Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ3Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQg
e3dpZHRoOjUzJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ4Il0gLnJlc2l6ZUhhbmRsZSB7
bGVmdDogNDglfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0OCJdIC5MaW5lU2lkZTpmaXJzdC1j
aGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDgiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQ
YXJ0LnJlbW92ZSB7d2lkdGg6NDglO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDgiXSAuTGlu
ZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNDgiXS5zaWRlYnlzaWRl
IC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NTIlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
NDkiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA0OSV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjQ5
Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI0OSJdLnNp
ZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo0OSU7fS5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSI0OSJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSI0OSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo1MSU7fS5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSI1MCJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDUwJX0uRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iNTAiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjUwIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRo
OjUwJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjUwIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQs
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjUwIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5h
ZGQge3dpZHRoOjUwJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjUxIl0gLnJlc2l6ZUhhbmRs
ZSB7bGVmdDogNTElfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1MSJdIC5MaW5lU2lkZTpmaXJz
dC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTEiXS5zaWRlYnlzaWRlIC5EaWZmQmxv
Y2tQYXJ0LnJlbW92ZSB7d2lkdGg6NTElO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTEiXSAu
TGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTEiXS5zaWRlYnlz
aWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NDklO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iNTIiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA1MiV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjUyIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1MiJd
LnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo1MiU7fS5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSI1MiJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSI1MiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo0OCU7fS5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1MyJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDUzJX0uRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iNTMiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjUzIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dp
ZHRoOjUzJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjUzIl0gLkxpbmVTaWRlOmxhc3QtY2hp
bGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjUzIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFy
dC5hZGQge3dpZHRoOjQ3JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU0Il0gLnJlc2l6ZUhh
bmRsZSB7bGVmdDogNTQlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1NCJdIC5MaW5lU2lkZTpm
aXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTQiXS5zaWRlYnlzaWRlIC5EaWZm
QmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NTQlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTQi
XSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTQiXS5zaWRl
YnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NDYlO30uRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iNTUiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA1NSV9LkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjU1Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1
NSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo1NSU7fS5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSI1NSJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSI1NSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo0NSU7
fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1NiJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDU2JX0u
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTYiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjU2Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUg
e3dpZHRoOjU2JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU2Il0gLkxpbmVTaWRlOmxhc3Qt
Y2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU2Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2Nr
UGFydC5hZGQge3dpZHRoOjQ0JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU3Il0gLnJlc2l6
ZUhhbmRsZSB7bGVmdDogNTclfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1NyJdIC5MaW5lU2lk
ZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTciXS5zaWRlYnlzaWRlIC5E
aWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NTclO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
NTciXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTciXS5z
aWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NDMlO30uRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iNTgiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA1OCV9LkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjU4Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSI1OCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo1OCU7fS5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSI1OCJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSI1OCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDo0
MiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI1OSJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDU5
JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNTkiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjU5Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1v
dmUge3dpZHRoOjU5JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU5Il0gLkxpbmVTaWRlOmxh
c3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjU5Il0uc2lkZWJ5c2lkZSAuRGlmZkJs
b2NrUGFydC5hZGQge3dpZHRoOjQxJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjYwIl0gLnJl
c2l6ZUhhbmRsZSB7bGVmdDogNjAlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2MCJdIC5MaW5l
U2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjAiXS5zaWRlYnlzaWRl
IC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NjAlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iNjAiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjAi
XS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6NDAlO30uRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iNjEiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA2MSV9LkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9IjYxIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSI2MSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo2MSU7fS5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2MSJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSI2MSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0
aDozOSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2MiJdIC5yZXNpemVIYW5kbGUge2xlZnQ6
IDYyJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjIiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQs
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjYyIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5y
ZW1vdmUge3dpZHRoOjYyJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjYyIl0gLkxpbmVTaWRl
Omxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjYyIl0uc2lkZWJ5c2lkZSAuRGlm
ZkJsb2NrUGFydC5hZGQge3dpZHRoOjM4JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjYzIl0g
LnJlc2l6ZUhhbmRsZSB7bGVmdDogNjMlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2MyJdIC5M
aW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjMiXS5zaWRlYnlz
aWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NjMlO30uRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iNjMiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
NjMiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6MzclO30uRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iNjQiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA2NCV9LkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjY0Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSI2NCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo2NCU7
fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2NCJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSI2NCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3
aWR0aDozNiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2NSJdIC5yZXNpemVIYW5kbGUge2xl
ZnQ6IDY1JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjUiXSAuTGluZVNpZGU6Zmlyc3QtY2hp
bGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY1Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFy
dC5yZW1vdmUge3dpZHRoOjY1JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY1Il0gLkxpbmVT
aWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY1Il0uc2lkZWJ5c2lkZSAu
RGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjM1JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY2
Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogNjYlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2NiJd
IC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjYiXS5zaWRl
YnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NjYlO30uRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iNjYiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iNjYiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6MzQlO30uRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iNjciXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA2NyV9LkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9IjY3Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSI2NyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0aDo2
NyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2NyJdIC5MaW5lU2lkZTpsYXN0LWNoaWxkLC5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2NyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQuYWRk
IHt3aWR0aDozMyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2OCJdIC5yZXNpemVIYW5kbGUg
e2xlZnQ6IDY4JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjgiXSAuTGluZVNpZGU6Zmlyc3Qt
Y2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY4Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2Nr
UGFydC5yZW1vdmUge3dpZHRoOjY4JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY4Il0gLkxp
bmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjY4Il0uc2lkZWJ5c2lk
ZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjMyJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjY5Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogNjklfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI2
OSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNjkiXS5z
aWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NjklO30uRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iNjkiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iNjkiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6MzElO30uRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iNzAiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA3MCV9LkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9IjcwIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSI3MCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3aWR0
aDo3MCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3MCJdIC5MaW5lU2lkZTpsYXN0LWNoaWxk
LC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3MCJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQu
YWRkIHt3aWR0aDozMCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3MSJdIC5yZXNpemVIYW5k
bGUge2xlZnQ6IDcxJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzEiXSAuTGluZVNpZGU6Zmly
c3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjcxIl0uc2lkZWJ5c2lkZSAuRGlmZkJs
b2NrUGFydC5yZW1vdmUge3dpZHRoOjcxJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjcxIl0g
LkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjcxIl0uc2lkZWJ5
c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjI5JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjcyIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogNzIlfS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSI3MiJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzIi
XS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NzIlO30uRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iNzIiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iNzIiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6MjglO30u
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzMiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA3MyV9LkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjczIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSI3MyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3ZlIHt3
aWR0aDo3MyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3MyJdIC5MaW5lU2lkZTpsYXN0LWNo
aWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3MyJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1Bh
cnQuYWRkIHt3aWR0aDoyNyU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3NCJdIC5yZXNpemVI
YW5kbGUge2xlZnQ6IDc0JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzQiXSAuTGluZVNpZGU6
Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc0Il0uc2lkZWJ5c2lkZSAuRGlm
ZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjc0JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc0
Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc0Il0uc2lk
ZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjI2JTt9LkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9Ijc1Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogNzUlfS5GaWxlRGlmZltsZWZ0c2lkZXdp
ZHRoPSI3NSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
NzUiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NzUlO30uRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iNzUiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iNzUiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6MjUl
O30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzYiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA3NiV9
LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc2Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSI3NiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVtb3Zl
IHt3aWR0aDo3NiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3NiJdIC5MaW5lU2lkZTpsYXN0
LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3NiJdLnNpZGVieXNpZGUgLkRpZmZCbG9j
a1BhcnQuYWRkIHt3aWR0aDoyNCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3NyJdIC5yZXNp
emVIYW5kbGUge2xlZnQ6IDc3JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzciXSAuTGluZVNp
ZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc3Il0uc2lkZWJ5c2lkZSAu
RGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjc3JTt9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
Ijc3Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc3Il0u
c2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjIzJTt9LkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9Ijc4Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogNzglfS5GaWxlRGlmZltsZWZ0c2lk
ZXdpZHRoPSI3OCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0
aD0iNzgiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6NzglO30uRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iNzgiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iNzgiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lkdGg6
MjIlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iNzkiXSAucmVzaXplSGFuZGxlIHtsZWZ0OiA3
OSV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijc5Il0gLkxpbmVTaWRlOmZpcnN0LWNoaWxkLC5G
aWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3OSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQucmVt
b3ZlIHt3aWR0aDo3OSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3OSJdIC5MaW5lU2lkZTps
YXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI3OSJdLnNpZGVieXNpZGUgLkRpZmZC
bG9ja1BhcnQuYWRkIHt3aWR0aDoyMSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4MCJdIC5y
ZXNpemVIYW5kbGUge2xlZnQ6IDgwJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODAiXSAuTGlu
ZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjgwIl0uc2lkZWJ5c2lk
ZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjgwJTt9LkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9IjgwIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijgw
Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjIwJTt9LkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9IjgxIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogODElfS5GaWxlRGlmZltsZWZ0
c2lkZXdpZHRoPSI4MSJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNpZGV3
aWR0aD0iODEiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6ODElO30u
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODEiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmlsZURp
ZmZbbGVmdHNpZGV3aWR0aD0iODEiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7d2lk
dGg6MTklO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODIiXSAucmVzaXplSGFuZGxlIHtsZWZ0
OiA4MiV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjgyIl0gLkxpbmVTaWRlOmZpcnN0LWNoaWxk
LC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4MiJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1BhcnQu
cmVtb3ZlIHt3aWR0aDo4MiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4MiJdIC5MaW5lU2lk
ZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4MiJdLnNpZGVieXNpZGUgLkRp
ZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDoxOCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4MyJd
IC5yZXNpemVIYW5kbGUge2xlZnQ6IDgzJX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODMiXSAu
TGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9IjgzIl0uc2lkZWJ5
c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjgzJTt9LkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9IjgzIl0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9
IjgzIl0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjE3JTt9LkZpbGVEaWZm
W2xlZnRzaWRld2lkdGg9Ijg0Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogODQlfS5GaWxlRGlmZlts
ZWZ0c2lkZXdpZHRoPSI4NCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVmdHNp
ZGV3aWR0aD0iODQiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6ODQl
O30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODQiXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwuRmls
ZURpZmZbbGVmdHNpZGV3aWR0aD0iODQiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFkZCB7
d2lkdGg6MTYlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODUiXSAucmVzaXplSGFuZGxlIHts
ZWZ0OiA4NSV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijg1Il0gLkxpbmVTaWRlOmZpcnN0LWNo
aWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4NSJdLnNpZGVieXNpZGUgLkRpZmZCbG9ja1Bh
cnQucmVtb3ZlIHt3aWR0aDo4NSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4NSJdIC5MaW5l
U2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4NSJdLnNpZGVieXNpZGUg
LkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDoxNSU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4
NiJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDg2JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODYi
XSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijg2Il0uc2lk
ZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjg2JTt9LkZpbGVEaWZmW2xlZnRz
aWRld2lkdGg9Ijg2Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lk
dGg9Ijg2Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjE0JTt9LkZpbGVE
aWZmW2xlZnRzaWRld2lkdGg9Ijg3Il0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogODclfS5GaWxlRGlm
ZltsZWZ0c2lkZXdpZHRoPSI4NyJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZbbGVm
dHNpZGV3aWR0aD0iODciXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lkdGg6
ODclO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODciXSAuTGluZVNpZGU6bGFzdC1jaGlsZCwu
RmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODciXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LmFk
ZCB7d2lkdGg6MTMlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iODgiXSAucmVzaXplSGFuZGxl
IHtsZWZ0OiA4OCV9LkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijg4Il0gLkxpbmVTaWRlOmZpcnN0
LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4OCJdLnNpZGVieXNpZGUgLkRpZmZCbG9j
a1BhcnQucmVtb3ZlIHt3aWR0aDo4OCU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4OCJdIC5M
aW5lU2lkZTpsYXN0LWNoaWxkLC5GaWxlRGlmZltsZWZ0c2lkZXdpZHRoPSI4OCJdLnNpZGVieXNp
ZGUgLkRpZmZCbG9ja1BhcnQuYWRkIHt3aWR0aDoxMiU7fS5GaWxlRGlmZltsZWZ0c2lkZXdpZHRo
PSI4OSJdIC5yZXNpemVIYW5kbGUge2xlZnQ6IDg5JX0uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0i
ODkiXSAuTGluZVNpZGU6Zmlyc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRld2lkdGg9Ijg5Il0u
c2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5yZW1vdmUge3dpZHRoOjg5JTt9LkZpbGVEaWZmW2xl
ZnRzaWRld2lkdGg9Ijg5Il0gLkxpbmVTaWRlOmxhc3QtY2hpbGQsLkZpbGVEaWZmW2xlZnRzaWRl
d2lkdGg9Ijg5Il0uc2lkZWJ5c2lkZSAuRGlmZkJsb2NrUGFydC5hZGQge3dpZHRoOjExJTt9LkZp
bGVEaWZmW2xlZnRzaWRld2lkdGg9IjkwIl0gLnJlc2l6ZUhhbmRsZSB7bGVmdDogOTAlfS5GaWxl
RGlmZltsZWZ0c2lkZXdpZHRoPSI5MCJdIC5MaW5lU2lkZTpmaXJzdC1jaGlsZCwuRmlsZURpZmZb
bGVmdHNpZGV3aWR0aD0iOTAiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0LnJlbW92ZSB7d2lk
dGg6OTAlO30uRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iOTAiXSAuTGluZVNpZGU6bGFzdC1jaGls
ZCwuRmlsZURpZmZbbGVmdHNpZGV3aWR0aD0iOTAiXS5zaWRlYnlzaWRlIC5EaWZmQmxvY2tQYXJ0
LmFkZCB7d2lkdGg6MTAlO308L3N0eWxlPjwvaGVhZD4KPGJvZHkgc3R5bGU9Im1hcmdpbi1ib3R0
b206IDBweDsiPjxkaXYgaWQ9ImNvbW1lbnRfZm9ybSIgY2xhc3M9ImluYWN0aXZlIj48ZGl2IGNs
YXNzPSJ3aW50ZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImxpZ2h0Ym94Ij48aWZyYW1lIGlkPSJyZXZp
ZXdmb3JtIiBzcmM9ImF0dGFjaG1lbnQuY2dpP2lkPTE4NzQwNSZhbXA7YWN0aW9uPXJldmlld2Zv
cm0iPjwvaWZyYW1lPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im1lc3NhZ2UiPjxkaXYgY2xhc3M9Imhl
bHAiPlNlbGVjdCBsaW5lIG51bWJlcnMgdG8gYWRkIGEgY29tbWVudC4gU2Nyb2xsIHRob3VnaCBk
aWZmcyB3aXRoIHRoZSAiaiIgYW5kICJrIiBrZXlzLjxkaXYgY2xhc3M9IkRpZmZMaW5rcyBMaW5r
Q29udGFpbmVyIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJsaW5lLW51bWJlci1vbi1jb3B5
Ij48bGFiZWwgZm9yPSJsaW5lLW51bWJlci1vbi1jb3B5Ij5Ta2lwIGxpbmUgbnVtYmVycyBvbiBj
b3B5PC9sYWJlbD48YSBocmVmPSJqYXZhc2NyaXB0OiIgY2xhc3M9InVuaWZ5LWxpbmsiPnVuaWZp
ZWQ8L2E+PGEgaHJlZj0iamF2YXNjcmlwdDoiIGNsYXNzPSJzaWRlLWJ5LXNpZGUtbGluayI+c2lk
ZS1ieS1zaWRlPC9hPjwvZGl2PjxhIGhyZWY9ImphdmFzY3JpcHQ6IiBjbGFzcz0ibW9yZSI+W21v
cmVdPC9hPjxkaXYgY2xhc3M9Im1vcmUtaGVscCBpbmFjdGl2ZSI+PGRpdiBjbGFzcz0id2ludGVy
Ij48L2Rpdj48ZGl2IGNsYXNzPSJsaWdodGJveCI+PHRhYmxlPjx0Ym9keT48dHI+PHRkPmVudGVy
PC90ZD48dGQ+YWRkL2VkaXQgY29tbWVudCBmb3IgZm9jdXNlZCBpdGVtPC90ZD48L3RyPjx0cj48
dGQ+ZXNjYXBlPC90ZD48dGQ+YWNjZXB0IGN1cnJlbnQgY29tbWVudCAvIGNsb3NlIHByZXZpZXcg
YW5kIGhlbHAgcG9wdXBzPC90ZD48L3RyPjx0cj48dGQ+ajwvdGQ+PHRkPmZvY3VzIG5leHQgZGlm
ZjwvdGQ+PC90cj48dHI+PHRkPms8L3RkPjx0ZD5mb2N1cyBwcmV2aW91cyBkaWZmPC90ZD48L3Ry
Pjx0cj48dGQ+c2hpZnQgKyBqPC90ZD48dGQ+Zm9jdXMgbmV4dCBsaW5lPC90ZD48L3RyPjx0cj48
dGQ+c2hpZnQgKyBrPC90ZD48dGQ+Zm9jdXMgcHJldmlvdXMgbGluZTwvdGQ+PC90cj48dHI+PHRk
Pm48L3RkPjx0ZD5mb2N1cyBuZXh0IGNvbW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD5wPC90ZD48dGQ+
Zm9jdXMgcHJldmlvdXMgY29tbWVudDwvdGQ+PC90cj48dHI+PHRkPnI8L3RkPjx0ZD5mb2N1cyBy
ZXZpZXcgc2VsZWN0IGVsZW1lbnQ8L3RkPjwvdHI+PHRyPjx0ZD5jdHJsICsgc2hpZnQgKyB1cDwv
dGQ+PHRkPmV4dGVuZCBjb250ZXh0IG9mIHRoZSBmb2N1c2VkIGNvbW1lbnQ8L3RkPjwvdHI+PHRy
Pjx0ZD5jdHJsICsgc2hpZnQgKyBkb3duPC90ZD48dGQ+c2hyaW5rIGNvbnRleHQgb2YgdGhlIGZv
Y3VzZWQgY29tbWVudDwvdGQ+PC90cj48L3Rib2R5PjwvdGFibGU+PC9kaXY+PC9kaXY+PC9kaXY+
PC9kaXY+CjxkaXYgY2xhc3M9IkZpbGVEaWZmIj4KPGgxPjxhIGhyZWY9Imh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvYnJvd3Nlci90cnVuay9Ub29scy9DaGFuZ2VMb2cjTDEiIHRhcmdldD0iX2JsYW5r
Ij5Ub29scy9DaGFuZ2VMb2c8L2E+PC9oMT48ZGl2IGNsYXNzPSJGaWxlRGlmZkxpbmtDb250YWlu
ZXIgTGlua0NvbnRhaW5lciIgc3R5bGU9Im9wYWNpdHk6IDE7Ij48YSBocmVmPSJqYXZhc2NyaXB0
OiIgY2xhc3M9InVuaWZ5LWxpbmsiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+dW5pZmllZDwvYT48
YSBocmVmPSJqYXZhc2NyaXB0OiIgY2xhc3M9InNpZGUtYnktc2lkZS1saW5rIiBzdHlsZT0iIj5z
aWRlLWJ5LXNpZGU8L2E+PGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvYnJvd3Nlci90cnVuay9Ub29scy9DaGFuZ2VMb2c/YW5ub3RhdGU9YmxhbWUjTDEiPmFu
bm90YXRlPC9hPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2xvZy90cnVuay9Ub29scy9DaGFuZ2VMb2ciPnJldmlzaW9uIGxvZzwvYT48L2Rpdj4KPGRpdiBj
bGFzcz0iRGlmZlNlY3Rpb24iPgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2siPgo8ZGl2IGNsYXNzPSJE
aWZmQmxvY2tQYXJ0IGFkZCI+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciBhZGQiIGlk
PSJsaW5lMCI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3Bh
biBjbGFzcz0idG8gbGluZU51bWJlciI+MTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+MjAxMy0w
Mi0wOCAgUnlvc3VrZSBOaXdhICAmbHQ7cm5pd2FAd2Via2l0Lm9yZyZndDs8L3NwYW4+CjwvZGl2
Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIgYWRkIiBpZD0ibGluZTEiPgo8c3BhbiBj
bGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9InRvIGxpbmVO
dW1iZXIiPjI8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xh
c3M9IkxpbmUgTGluZUNvbnRhaW5lciBhZGQiIGlkPSJsaW5lMiI+CjxzcGFuIGNsYXNzPSJmcm9t
IGxpbmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+Mzwv
c3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+ICAgICAgICBBZGQgYSBsaW5rIHRvIEVGTCBwZXJmIGJv
dCBvbiBidWlsZC53ZWJraXQub3JnPC9zcGFuPgo8L2Rpdj4KPGRpdiBjbGFzcz0iTGluZSBMaW5l
Q29udGFpbmVyIGFkZCIgaWQ9ImxpbmUzIj4KPHNwYW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+
Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVyIj40PC9zcGFuPjxzcGFuIGNs
YXNzPSJ0ZXh0Ij4gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDkzNDI8L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIgYWRk
IiBpZD0ibGluZTQiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4mbmJzcDs8L3NwYW4+
PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjU8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPjwv
c3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciBhZGQiIGlkPSJsaW5l
NSI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48c3BhbiBjbGFz
cz0idG8gbGluZU51bWJlciI+Njwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+ICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS48L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExp
bmVDb250YWluZXIgYWRkIiBpZD0ibGluZTYiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVy
Ij4mbmJzcDs8L3NwYW4+PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjc8L3NwYW4+PHNwYW4g
Y2xhc3M9InRleHQiPjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5l
ciBhZGQiIGlkPSJsaW5lNyI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPiZuYnNwOzwv
c3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+ODwvc3Bhbj48c3BhbiBjbGFzcz0idGV4
dCI+ICAgICAgICBBZGRlZC48L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250
YWluZXIgYWRkIiBpZD0ibGluZTgiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4mbmJz
cDs8L3NwYW4+PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjk8L3NwYW4+PHNwYW4gY2xhc3M9
InRleHQiPjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciBhZGQi
IGlkPSJsaW5lOSI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPiZuYnNwOzwvc3Bhbj48
c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+MTA8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy90ZW1wbGF0
ZXMvcm9vdC5odG1sOjwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5l
ciBhZGQiIGlkPSJsaW5lMTAiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4mbmJzcDs8
L3NwYW4+PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjExPC9zcGFuPjxzcGFuIGNsYXNzPSJ0
ZXh0Ij48L3NwYW4+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJjbGVhcl9mbG9hdCI+PC9kaXY+
PC9kaXY+CjxkaXYgY2xhc3M9IkRpZmZCbG9jayI+CjxkaXYgY2xhc3M9IkRpZmZCbG9ja1BhcnQg
c2hhcmVkIj4KPGRpdiBjbGFzcz0iTGluZSBMaW5lQ29udGFpbmVyIiBpZD0ibGluZTExIj4KPHNw
YW4gY2xhc3M9ImZyb20gbGluZU51bWJlciI+MTwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51
bWJlciI+MTI8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPjIwMTMtMDItMDggIERlYW4gSmFja3Nv
biAgJmx0O2Rpbm9AYXBwbGUuY29tJmd0Ozwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUg
TGluZUNvbnRhaW5lciIgaWQ9ImxpbmUxMiI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIi
PjI8L3NwYW4+PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjEzPC9zcGFuPjxzcGFuIGNsYXNz
PSJ0ZXh0Ij48L3NwYW4+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIiIGlk
PSJsaW5lMTMiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4zPC9zcGFuPjxzcGFuIGNs
YXNzPSJ0byBsaW5lTnVtYmVyIj4xNDwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+ICAgICAgICBS
ZW1vdmUgdXNlIG9mIHBsdWdJblN0YXJ0TGFiZWxJbWFnZTwvc3Bhbj4KPC9kaXY+CjwvZGl2Pjxk
aXYgY2xhc3M9ImNsZWFyX2Zsb2F0Ij48L2Rpdj48L2Rpdj4KPC9kaXY+CjxzcGFuIGNsYXNzPSJy
ZXZpc2lvbiI+MTQyMzQ3PC9zcGFuPjwvZGl2Pgo8ZGl2IGNsYXNzPSJGaWxlRGlmZiI+CjxoMT48
YSBocmVmPSJodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvdGVtcGxhdGVzL3Jvb3QuaHRtbCNM
MjQiIHRhcmdldD0iX2JsYW5rIj5Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy90ZW1wbGF0ZXMvcm9vdC5odG1sPC9hPjwvaDE+PGRpdiBjbGFzcz0iRmlsZURp
ZmZMaW5rQ29udGFpbmVyIExpbmtDb250YWluZXIiIHN0eWxlPSJvcGFjaXR5OiAwOyI+PGEgaHJl
Zj0iamF2YXNjcmlwdDoiIGNsYXNzPSJ1bmlmeS1saW5rIiBzdHlsZT0iZGlzcGxheTogbm9uZTsi
PnVuaWZpZWQ8L2E+PGEgaHJlZj0iamF2YXNjcmlwdDoiIGNsYXNzPSJzaWRlLWJ5LXNpZGUtbGlu
ayIgc3R5bGU9IiI+c2lkZS1ieS1zaWRlPC9hPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvdGVtcGxhdGVzL3Jvb3QuaHRtbD9hbm5vdGF0ZT1ibGFt
ZSNMMjQiPmFubm90YXRlPC9hPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vdHJhYy53
ZWJraXQub3JnL2xvZy90cnVuay9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy90ZW1wbGF0ZXMvcm9vdC5odG1sIj5yZXZpc2lvbiBsb2c8L2E+PC9kaXY+PGRp
diBjbGFzcz0iRXhwYW5kQmFyIj48ZGl2IGNsYXNzPSJFeHBhbmRBcmVhIEV4cGFuZGFib3ZlIj48
L2Rpdj48ZGl2IGNsYXNzPSJFeHBhbmRMaW5rQ29udGFpbmVyIExpbmtDb250YWluZXIiIHN0eWxl
PSJvcGFjaXR5OiAwOyI+PHNwYW4gY2xhc3M9IkV4cGFuZFRleHQiPmV4cGFuZDogPC9zcGFuPjxh
IGNsYXNzPSJFeHBhbmRMaW5rIiBocmVmPSJqYXZhc2NyaXB0OiIgZGF0YS1kaXJlY3Rpb249ImFs
bCIgZGF0YS1hbW91bnQ9InVuZGVmaW5lZCI+YWxsPC9hPjxhIGNsYXNzPSJFeHBhbmRMaW5rIiBo
cmVmPSJqYXZhc2NyaXB0OiIgZGF0YS1kaXJlY3Rpb249ImJlbG93IiBkYXRhLWFtb3VudD0iMjAi
PjIwIGJlbG93PC9hPjxhIGNsYXNzPSJFeHBhbmRMaW5rIiBocmVmPSJqYXZhc2NyaXB0OiIgZGF0
YS1kaXJlY3Rpb249ImJlbG93IiBkYXRhLWFtb3VudD0iMTAwIj4xMDAgYmVsb3c8L2E+PC9kaXY+
PGRpdiBjbGFzcz0iRXhwYW5kQXJlYSBFeHBhbmRiZWxvdyI+PC9kaXY+PC9kaXY+CjxkaXYgY2xh
c3M9IkRpZmZTZWN0aW9uIj4KPGRpdiBjbGFzcz0iRGlmZkJsb2NrIj4KPGRpdiBjbGFzcz0iRGlm
ZkJsb2NrUGFydCBzaGFyZWQiPgo8ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIiIGlkPSJs
aW5lMTQiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4yNDwvc3Bhbj48c3BhbiBjbGFz
cz0idG8gbGluZU51bWJlciI+MjQ8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiAgJmx0O2xpJmd0
OyZsdDthIGhyZWY9InJlc3VsdHMiJmd0O1Rlc3QgUmVzdWx0cyZsdDsvYSZndDsmbHQ7L2xpJmd0
Ozwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciIgaWQ9ImxpbmUx
NSI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjI1PC9zcGFuPjxzcGFuIGNsYXNzPSJ0
byBsaW5lTnVtYmVyIj4yNTwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+ICAmbHQ7bGkmZ3Q7Jmx0
O2EgaHJlZj0iTGVha3NWaWV3ZXIiJmd0O0xlYWtzIFZpZXdlciZsdDsvYSZndDsmbHQ7L2xpJmd0
Ozwvc3Bhbj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciIgaWQ9ImxpbmUx
NiI+CjxzcGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjI2PC9zcGFuPjxzcGFuIGNsYXNzPSJ0
byBsaW5lTnVtYmVyIj4yNjwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+ICAmbHQ7bGkmZ3Q7Jmx0
O2EgaHJlZj0iVGVzdEZhaWx1cmVzIiZndDtUZXN0IEZhaWx1cmVzJmx0Oy9hJmd0OyZsdDsvbGkm
Z3Q7PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJfZmxvYXQiPjwvZGl2Pjwv
ZGl2Pgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2siPgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2tQYXJ0IHJl
bW92ZSI+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciByZW1vdmUiIGlkPSJsaW5lMTci
Pgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4yNzwvc3Bhbj48c3BhbiBjbGFzcz0idG8g
bGluZU51bWJlciI+Jm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0Ij4gICZsdDtsaSZndDsm
bHQ7YSBocmVmPSJodHRwOi8vd2Via2l0LXBlcmYuYXBwc3BvdC5jb20vIiZndDtQZXJmLW8tbWF0
aWMmbHQ7L2EmZ3Q7IChleHRlcm5hbCB3ZWJzaXRlKSByZXN1bHRzIHN1Ym1pdHRlZCBieSAmbHQ7
YSBocmVmPSJodHRwOi8vYnVpbGQud2Via2l0Lm9yZy93YXRlcmZhbGw/c2hvdz1BcHBsZSUyMExp
b24lMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1BcHBsZSUyME1vdW50YWluTGlvbiUy
MFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIwQW5kcm9pZCUyMFJlbGVh
c2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIwTGludXglMjBSZWxlYXNlJTIwJTI4
UGVyZiUyOSZhbXA7c2hvdz1DaHJvbWl1bSUyME1hYyUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFt
cDtzaG93PUNocm9taXVtJTIwV2luJTIwUmVsZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9UXQl
MjBMaW51eCUyMDY0LWJpdCUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PVF0JTIwTGlu
dXglMjA2NC1iaXQlMjBSZWxlYXNlJTIwJTI4V2ViS2l0MiUyMFBlcmYlMjkiJmd0O3BlcmZvcm1h
bmNlIGJvdHMmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDs8L3NwYW4+CjwvZGl2Pgo8L2Rpdj48ZGl2IGNs
YXNzPSJEaWZmQmxvY2tQYXJ0IGFkZCI+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciBh
ZGQiIGlkPSJsaW5lMTgiPgo8c3BhbiBjbGFzcz0iZnJvbSBsaW5lTnVtYmVyIj4mbmJzcDs8L3Nw
YW4+PHNwYW4gY2xhc3M9InRvIGxpbmVOdW1iZXIiPjI3PC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXh0
Ij4gICZsdDtsaSZndDsmbHQ7YSBocmVmPSJodHRwOi8vd2Via2l0LXBlcmYuYXBwc3BvdC5jb20v
IiZndDtQZXJmLW8tbWF0aWMmbHQ7L2EmZ3Q7IChleHRlcm5hbCB3ZWJzaXRlKSByZXN1bHRzIHN1
Ym1pdHRlZCBieSAmbHQ7YSBocmVmPSJodHRwOi8vYnVpbGQud2Via2l0Lm9yZy93YXRlcmZhbGw/
c2hvdz1BcHBsZSUyMExpb24lMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1BcHBsZSUy
ME1vdW50YWluTGlvbiUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIw
QW5kcm9pZCUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIwTGludXgl
MjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1DaHJvbWl1bSUyME1hYyUyMFJlbGVhc2Ul
MjAlMjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIwV2luJTIwUmVsZWFzZSUyMCUyOFBlcmYl
MjkmYW1wO3Nob3c9UXQlMjBMaW51eCUyMDY0LWJpdCUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFt
cDtzaG93PVF0JTIwTGludXglMjA2NC1iaXQlMjBSZWxlYXNlJTIwJTI4V2ViS2l0MiUyMFBlcmYl
Mjk8aW5zPiZhbXA7c2hvdz1FRkwlMjBMaW51eCUyMDY0LWJpdCUyMFJlbGVhc2UlMjBXSzIlMjAl
MjhQZXJmJTI5PC9pbnM+IiZndDtwZXJmb3JtYW5jZSBib3RzJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7
PC9zcGFuPgo8L2Rpdj4KPC9kaXY+PGRpdiBjbGFzcz0iY2xlYXJfZmxvYXQiPjwvZGl2PjwvZGl2
Pgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2siPgo8ZGl2IGNsYXNzPSJEaWZmQmxvY2tQYXJ0IHNoYXJl
ZCI+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciIgaWQ9ImxpbmUxOSI+CjxzcGFuIGNs
YXNzPSJmcm9tIGxpbmVOdW1iZXIiPjI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5lTnVtYmVy
Ij4yODwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+Jmx0Oy91bCZndDs8L3NwYW4+CjwvZGl2Pgo8
ZGl2IGNsYXNzPSJMaW5lIExpbmVDb250YWluZXIiIGlkPSJsaW5lMjAiPgo8c3BhbiBjbGFzcz0i
ZnJvbSBsaW5lTnVtYmVyIj4yOTwvc3Bhbj48c3BhbiBjbGFzcz0idG8gbGluZU51bWJlciI+Mjk8
L3NwYW4+PHNwYW4gY2xhc3M9InRleHQiPiZsdDsvYm9keSZndDsgJmx0Oy9odG1sJmd0Ozwvc3Bh
bj4KPC9kaXY+CjxkaXYgY2xhc3M9IkxpbmUgTGluZUNvbnRhaW5lciIgaWQ9ImxpbmUyMSI+Cjxz
cGFuIGNsYXNzPSJmcm9tIGxpbmVOdW1iZXIiPjMwPC9zcGFuPjxzcGFuIGNsYXNzPSJ0byBsaW5l
TnVtYmVyIj4zMDwvc3Bhbj48c3BhbiBjbGFzcz0idGV4dCI+PC9zcGFuPgo8L2Rpdj4KPC9kaXY+
PGRpdiBjbGFzcz0iY2xlYXJfZmxvYXQiPjwvZGl2PjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJF
eHBhbmRCYXIiPjxkaXYgY2xhc3M9IkV4cGFuZEFyZWEgRXhwYW5kYWJvdmUiPjwvZGl2PjxkaXYg
Y2xhc3M9IkV4cGFuZExpbmtDb250YWluZXIgTGlua0NvbnRhaW5lciIgc3R5bGU9Im9wYWNpdHk6
IDA7Ij48c3BhbiBjbGFzcz0iRXhwYW5kVGV4dCI+ZXhwYW5kOiA8L3NwYW4+PGEgY2xhc3M9IkV4
cGFuZExpbmsiIGhyZWY9ImphdmFzY3JpcHQ6IiBkYXRhLWRpcmVjdGlvbj0iYWJvdmUiIGRhdGEt
YW1vdW50PSIxMDAiPjEwMCBhYm92ZTwvYT48YSBjbGFzcz0iRXhwYW5kTGluayIgaHJlZj0iamF2
YXNjcmlwdDoiIGRhdGEtZGlyZWN0aW9uPSJhYm92ZSIgZGF0YS1hbW91bnQ9IjIwIj4yMCBhYm92
ZTwvYT48YSBjbGFzcz0iRXhwYW5kTGluayIgaHJlZj0iamF2YXNjcmlwdDoiIGRhdGEtZGlyZWN0
aW9uPSJhbGwiIGRhdGEtYW1vdW50PSJ1bmRlZmluZWQiPmFsbDwvYT48L2Rpdj48ZGl2IGNsYXNz
PSJFeHBhbmRBcmVhIEV4cGFuZGJlbG93Ij48L2Rpdj48L2Rpdj4KPHNwYW4gY2xhc3M9InJldmlz
aW9uIj4xNDIzNDc8L3NwYW4+PC9kaXY+Cgo8ZGl2IGlkPSJ0b29sYmFyIiBzdHlsZT0icG9zaXRp
b246IC13ZWJraXQtc3RpY2t5OyI+PGRpdiBjbGFzcz0ib3ZlcmFsbENvbW1lbnRzIj48dGV4dGFy
ZWEgcGxhY2Vob2xkZXI9Ik92ZXJhbGwgY29tbWVudHMiPjwvdGV4dGFyZWE+PC9kaXY+PGRpdj48
c3BhbiBpZD0ic3RhdHVzQnViYmxlQ29udGFpbmVyIj48aWZyYW1lIGNsYXNzPSJzdGF0dXNCdWJi
bGUiIHNyYz0iaHR0cHM6Ly93ZWJraXQtY29tbWl0LXF1ZXVlLmFwcHNwb3QuY29tL3N0YXR1cy1i
dWJibGUvMTg3NDA1IiBzY3JvbGxpbmc9Im5vIiBzdHlsZT0iaGVpZ2h0OiAxOXB4OyB3aWR0aDog
NTg2cHg7Ij48L2lmcmFtZT48L3NwYW4+PHNwYW4gY2xhc3M9ImFjdGlvbnMiPjxzcGFuIGNsYXNz
PSJsaW5rcyI+PHNwYW4gY2xhc3M9ImJ1Z0xpbmsiPjxhIGhyZWY9Ii9zaG93X2J1Zy5jZ2k/aWQ9
MTA5MzQyIiB0YXJnZXQ9Il9ibGFuayI+QnVnIDEwOTM0MjwvYT48L3NwYW4+PC9zcGFuPjxzcGFu
IGlkPSJmbGFnQ29udGFpbmVyIj48c3BhbiBjbGFzcz0icmV2aWV3Ij4gKGd5dXlvdW5nLmtpbSkg
cjogPHNlbGVjdD48b3B0aW9uPjwvb3B0aW9uPjxvcHRpb24+Pzwvb3B0aW9uPjxvcHRpb24+Kzwv
b3B0aW9uPjxvcHRpb24+LTwvb3B0aW9uPjwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29t
bWl0UXVldWUiPiAocm5pd2EpIGNxOiA8c2VsZWN0PjxvcHRpb24+PC9vcHRpb24+PG9wdGlvbj4/
PC9vcHRpb24+PG9wdGlvbj4rPC9vcHRpb24+PG9wdGlvbj4tPC9vcHRpb24+PC9zZWxlY3Q+PC9z
cGFuPjwvc3Bhbj48YnV0dG9uIGlkPSJwcmV2aWV3X2NvbW1lbnRzIj5QcmV2aWV3PC9idXR0b24+
PGJ1dHRvbiBpZD0icG9zdF9jb21tZW50cyI+UHVibGlzaDwvYnV0dG9uPiA8L3NwYW4+PGRpdiBj
bGFzcz0iY2xlYXJfZmxvYXQiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImF1dG9zYXZlLXN0YXRl
Ij48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPll0ZXh0L2h0bWxVVVRGLThQXxA+aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MTg3NDA1JmFjdGlvbj1yZXZpZXeiHTXT
AQIDHikuoh8k1AYHCQogISIjTxEg3C8qIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgYXJlIHN1
YmplY3QgdG8gdGhlIE1vemlsbGEgUHVibGljCiAgKiBMaWNlbnNlIFZlcnNpb24gMS4xICh0aGUg
IkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZQogICogZXhjZXB0IGluIGNvbXBs
aWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mCiAgKiB0aGUg
TGljZW5zZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC8KICAqCiAgKiBTb2Z0d2FyZSBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMKICAq
IElTIiBiYXNpcywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IKICAqIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZwogICogcmlnaHRzIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4K
ICAqCiAgKiBUaGUgT3JpZ2luYWwgQ29kZSBpcyB0aGUgQnVnemlsbGEgQnVnIFRyYWNraW5nIFN5
c3RlbS4KICAqCiAgKiBUaGUgSW5pdGlhbCBEZXZlbG9wZXIgb2YgdGhlIE9yaWdpbmFsIENvZGUg
aXMgTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMKICAqIENvcnBvcmF0aW9uLiBQb3J0aW9ucyBjcmVh
dGVkIGJ5IE5ldHNjYXBlIGFyZQogICogQ29weXJpZ2h0IChDKSAxOTk4IE5ldHNjYXBlIENvbW11
bmljYXRpb25zIENvcnBvcmF0aW9uLiBBbGwKICAqIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBD
b250cmlidXRvcihzKTogQnlyb24gSm9uZXMgPGJ1Z3ppbGxhQGdsb2IuY29tLmF1PgogICogICAg
ICAgICAgICAgICAgIENocmlzdGlhbiBSZWlzIDxraWtvQGFzeW5jLmNvbS5icj4KICAqICAgICAg
ICAgICAgICAgICBWaXRhbHkgSGFyaXNvdiA8dml0YWx5QHJhdGhlZGcuY29tPgogICogICAgICAg
ICAgICAgICAgIFN2ZXRsYW5hIEhhcmlzb3ZhIDxsaWdodEByYXRoZWRnLmNvbT4KICAqICAgICAg
ICAgICAgICAgICBNYXJjIFNjaHVtYW5uIDx3dXJibHphcEBnbWFpbC5jb20+CiAgKi8KCi8qIGds
b2JhbCAoYmVnaW4pICovCiAgICBib2R5IHsKICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJp
ZjsKICAgICAgICBjb2xvcjogIzAwMDsKICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgiZ2xv
YmFsL2JvZHktYmFjay5naWYiKSByZXBlYXQteDsKICAgIH0KICAgIGJvZHksIHRkLCB0aCwgaW5w
dXQgewogICAgICAgIGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBzYW5zLXNlcmlmOwogICAgICAgIGZv
bnQtc2l6ZTogc21hbGw7CiAgICB9CiAgICAvKiBtb25vc3BhY2UgaXMgbXVjaCBzbWFsbGVyIHRo
YW4gVmVyZGFuYSBieSBkZWZhdWx0LCBzbyB3ZSBtYWtlIGl0IGEgYml0IGJpZ2dlci4gKi8KICAg
IHByZSwgY29kZSwga2JkIHsKICAgICAgICBmb250LXNpemU6IG1lZGl1bTsKICAgIH0KLyogZ2xv
YmFsIChlbmQpICovCgovKiBoZWFkZXIgKGJlZ2luKSAqLwogICAgI2hlYWRlciB7CiAgICAgICAg
bWFyZ2luLWJvdHRvbTogMWVtOwogICAgICAgIHBhZGRpbmctYm90dG9tOiAycHg7CiAgICB9Cgog
ICAgI2hlYWRlciBmb3JtIHsKICAgICAgICBmb250LXNpemU6IDg1JTsKICAgICAgICBkaXNwbGF5
OiBpbmxpbmU7CiAgICB9CgogICAgI2hlYWRlciAubGlua3MgewogICAgICAgIGZvbnQtc2l6ZTog
ODUlOwogICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgc2lsdmVyOwogICAgICAgIGJvcmRl
ci1yaWdodDogMXB4IHNvbGlkIHNpbHZlcjsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29s
aWQgc2lsdmVyOwogICAgICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiA1cHg7CiAg
ICAgICAgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OiA1cHg7CiAgICAgICAgcGFkZGlu
ZzogMC41ZW07CiAgICB9CgogICAgI21lc3NhZ2UgewogICAgICAgIGJvcmRlcjogMXB4IHNvbGlk
IHJlZDsKICAgICAgICBtYXJnaW46IDAuM2VtIDBlbTsKICAgICAgICBwYWRkaW5nOiAwLjNlbTsK
ICAgICAgICBjb2xvcjogZ3JlZW47CiAgICB9CgovKiBoZWFkZXIgKGVuZCkgICAqLwoKLyogYmFu
bmVyIChiZWdpbikgKi8KICAgICNiYW5uZXIgewogICAgfQoKLyogYmFubmVyIChlbmQpICovCgov
KiB0aXRsZXMgKGJlZ2luKSAqLwogICAgI3RpdGxlcyB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQwNEQ2QzsKICAgICAgICBjb2xvcjogI2ZmZjsKICAg
ICAgICAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDogNXB4OwogICAgICAgIC1tb3otYm9yZGVy
LXJhZGl1cy10b3ByaWdodDogNXB4OwogICAgICAgIGZvbnQtc2l6ZTogMTEwJTsKICAgICAgICBt
YXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMC41ZW07CiAgICAgICAgdmVydGljYWwtYWxpZ246
IGJvdHRvbTsKICAgIH0KCiAgICAjdGl0bGVzIGEgewogICAgICAgIGNvbG9yOiAjZmZmOwogICAg
fQoKICAgICN0aXRsZXMgcCB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6IDA7
CiAgICB9CgogICAgI3RpdGxlcyAjdGl0bGUgewogICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwog
ICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CgogICAgI3RpdGxlcyAjc3VidGl0bGUg
ewogICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAg
ICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgICN0aXRsZXMgI2luZm9ybWF0aW9uIHsK
ICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOwogICAgICAgIHRleHQtYWxpZ246IHJpZ2h0Owog
ICAgICAgIGZvbnQtc2l6ZTogOTAlOwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9
CgovKiB0aXRsZXMgKGVuZCkgKi8KCi8qIGZvb3RlciAoYmVnaW4pICovCiAgICAjZm9vdGVyIHsK
ICAgICAgICBjbGVhcjogYm90aDsKICAgICAgICBtYXJnaW4tdG9wOiA1cHg7CiAgICAgICAgd2lk
dGg6IDEwMCU7CiAgICAgICAgYmFja2dyb3VuZDogI2VkZjJmMjsKICAgICAgICBib3JkZXItdG9w
OiAxcHggc29saWQgI2RkZDsKICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDsK
ICAgIH0KCiAgICAjZm9vdGVyIGZvcm0gewogICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgIH0K
CiAgICAjZm9vdGVyIC5idG4sCiAgICAjZm9vdGVyIC50eHQgewogICAgICAgIGZvbnQtc2l6ZTog
ODAlOwogICAgfQoKICAgICNmb290ZXIgI3VzZWZ1bC1saW5rcyB7CiAgICAgICAgZGlzcGxheTog
dGFibGU7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZXg7CiAgICAgICAgcGFkZGluZy1yaWdodDog
MWV4OwogICAgfQoKICAgICNmb290ZXIgI2xpbmtzLWFjdGlvbnMsCiAgICAjZm9vdGVyICNsaW5r
cy1zYXZlZCwKICAgICNmb290ZXIgI2xpbmtzLXNwZWNpYWwgewogICAgICAgIGRpc3BsYXk6IHRh
YmxlLXJvdzsKICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICB9CgogICAgI2Zvb3Rl
ciAubGFiZWwgewogICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7CiAgICAgICAgd2hpdGUtc3Bh
Y2U6IG5vd3JhcDsKICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgfQoKICAgICNmb290
ZXIgLmxpbmtzIHsKICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsOwogICAgICAgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7CiAgICB9Ci8qIGZvb3RlciAoZW5kKSAqLwoKLyogbGluayBsaXN0cyAoYmVn
aW4pICovCiAgICB1bC5saW5rcyB7CiAgICAgICAgbWFyZ2luOiAwOwogICAgICAgIHBhZGRpbmc6
IDA7CiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgfQoKICAgIHVsLmxpbmtzIGxp
IHsKICAgICAgICBkaXNwbGF5OiBpbmxpbmU7CiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
ICAgIH0KLyogbGluayBsaXN0cyAoZW5kKSAqLwoKLyogdGFicyAoYmVnaW4pICovCiAgICAudGFi
cyB0ZCB7CiAgICAgICAgYmFja2dyb3VuZDogI2VlZTsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50
ZXI7CiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgICAgICBib3JkZXItY29sb3I6IGJs
YWNrOwogICAgICAgIGJvcmRlci13aWR0aDogMHB4IDBweCAycHggMHB4OwogICAgfQogICAgICAg
IAogICAgLnRhYnMgdGQuc2VsZWN0ZWQgewogICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAg
ICAgIGJvcmRlci13aWR0aDogMnB4IDJweCAwcHggMnB4OwogICAgfQoKICAgIC50YWJzIHRkLnNw
YWNlciB7CiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICB9Ci8qIHRhYnMgKGVuZCkgKi8K
Ci8qIGdlbmVyaWMgKGJlZ2luKSAqLwogICAgOmxpbmsgewogICAgICAgIGNvbG9yOiAjMDM5Owog
ICAgfQoKICAgIDp2aXNpdGVkIHsKICAgICAgICBjb2xvcjogIzYzNjsKICAgIH0KCiAgICA6bGlu
azpob3ZlciwgOnZpc2l0ZWQ6aG92ZXIgewogICAgICAgIGNvbG9yOiAjMzMzOwogICAgfQoKICAg
IDpsaW5rOmFjdGl2ZSwgOmxpbms6YWN0aXZlIHsKICAgICAgICBjb2xvcjogIzAwMDsKICAgIH0K
CiAgICAuY2xpY2thYmxlX2FyZWEgewogICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIH0KLyog
Z2VuZXJpYyAoZW5kKSAqLwoKZGl2I2RvY3NsaW5rcyB7CiAgICBmbG9hdDogcmlnaHQ7CiAgICBi
b3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAgIHBhZGRpbmc6IDFleDsKICAgIGZvbnQtc2l6ZTog
ODAlOwp9CgojZG9jc2xpbmtzIGgyIHsKICAgIG1hcmdpbjogMDsKfQoKLmJ6X29ic29sZXRlIHsK
ICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwp9Ci5iel9pbmFjdGl2ZSB7CiAgICB0
ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsKfQouYnpfY2xvc2VkLAouYnpfQ0xPU0VEIHRk
IHsKICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwp9Ci5iel9wcml2YXRlIHsKICAg
IGNvbG9yOiBkYXJrcmVkOwogICAgYmFja2dyb3VuZDogI2YzZWVlZTsKfQouYnpfZGlzYWJsZWQg
ewogICAgY29sb3I6ICNhMGEwYTA7Cn0KCi5iel9jb21tZW50IHsKICAgIG1hcmdpbi1ib3R0b206
IDJlbTsKfQoKLyogVGhlIHJ1bGVzIGZvciB0aGVzZSBjbGFzc2VzIG1ha2UgaW50ZXJuYXRpb25h
bCB0ZXh0IHdyYXAgY29ycmVjdGx5LAogICBldmVuIGZvciBsYW5ndWFnZXMgbGlrZSBKYXBhbmVz
ZSB0aGF0IGhhdmUgbm8gc3BhY2VzLiAqLwouYnpfY29tbWVudF90ZXh0LCAudW5lZGl0YWJsZV90
ZXh0YXJlYSB7CiAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKICAgIC8qIE5vdGUgdGhhdCB0
aGVzZSBtdXN0IGFsbCBiZSBvbiBzZXBhcmF0ZSBsaW5lcyBvciB0aGV5IHN0b3AKICAgICAgIHdv
cmtpbmcgaW4gS29ucXVlcm9yLiAqLwogICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgICAgICAv
KiBDU1MgMyAmIDIuMSAqLwogICAgIHdoaXRlLXNwYWNlOiAtbW96LXByZS13cmFwOyAvKiBHZWNr
byAqLwogICAgIHdoaXRlLXNwYWNlOiAtcHJlLXdyYXA7ICAgICAvKiBPcGVyYSA0LTYgKi8KICAg
ICB3aGl0ZS1zcGFjZTogLW8tcHJlLXdyYXA7ICAgLyogT3BlcmEgNyAqLwp9CgouYnpfY29tbWVu
dF90ZXh0IHsKICAgICB3aWR0aDogNTBlbTsKfQoKLmJ6X2ZpcnN0X2NvbW1lbnQgewp9CgouYnpf
Y29tbWVudF9oZWFkLCAuYnpfZmlyc3RfY29tbWVudF9oZWFkIHsKICAgIGJhY2tncm91bmQtY29s
b3I6ICNlMGUwZTA7Cn0KLmJ6X2NvbW1lbnRfaGlsaXRlIHByZSB7CiAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBsaWdodGdyZWVuOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMWVtIDA7Cn0KCnNw
YW4ucXVvdGUgewogICAgY29sb3I6ICM2NTM3OWM7CiAgICAvKiBNYWtlIHF1b3RlZCB0ZXh0IG5v
dCB3cmFwLiAqLwogICAgd2hpdGUtc3BhY2U6IHByZTsKfQoKdGFibGUjZmxhZ3MgdGgsCnRhYmxl
I2ZsYWdzIHRkIHsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB0ZXh0LWFsaWduOiBs
ZWZ0Owp9CgouZmxhZ19zZWxlY3QgewogICAgbWluLXdpZHRoOiAzZW07Cn0KCiNlcnJvcl9tc2cg
ewogICAgZm9udC1zaXplOiB4LWxhcmdlOwp9CgoudGhyb3dfZXJyb3IgewogICAgYmFja2dyb3Vu
ZC1jb2xvcjogI2ZmMDAwMDsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTIwJTsK
ICAgIG1hcmdpbjogMWVtOwogICAgcGFkZGluZzogMC41ZW0gMWVtOwp9CgpkdCB7CiAgICBmb250
LXdlaWdodDogYm9sZGVyOwp9CmJvZHkgPiBkbCA+IGR0IHsKICAgIGJvcmRlci10b3A6IGRvdHRl
ZCBncmF5IHRoaW47Cn0KZGwgZGwgPiBkdCB7CiAgICBib3JkZXItdG9wOiBub25lOwp9CgojYWRt
aW5fdGFibGUgdGggewogICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50Owp9CgovKiBT
dHlsZSBvZiB0aGUgYXR0YWNobWVudCB0YWJsZSBhbmQgdGltZSB0cmFja2luZyB0YWJsZSAqLwoj
YXR0YWNobWVudF90YWJsZSB7CiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogICAgd2lk
dGg6IDQwZW07CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzMzMzMzOwp9CgojYXR0YWNobWVudF90
YWJsZSB0aCwgLmJ6X2F0dGFjaF9mb290ZXIsIC5iel90aW1lX3RyYWNraW5nX3RhYmxlIHRoIHsK
ICAgIGJhY2tncm91bmQtY29sb3I6ICNFMEUwRTA7CiAgICBjb2xvcjogYmxhY2s7Cn0KCiNhdHRh
Y2htZW50X3RhYmxlIHRkLCAuYnpfdGltZV90cmFja2luZ190YWJsZSB0aCwgLmJ6X3RpbWVfdHJh
Y2tpbmdfdGFibGUgdGQgewogICAgYm9yZGVyOiAxcHggc29saWQgIzMzMzMzMzsKfQoKLmJ6X2F0
dGFjaF9leHRyYV9pbmZvIHsKICAgIGZvbnQtc2l6ZTogc21hbGxlcjsKfQoKLmJ6X2F0dGFjaF9m
bGFncywgLmJ6X2F0dGFjaF9mb290ZXIgewogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLmJ6
X2F0dGFjaF92aWV3X2hpZGUgewogICAgZmxvYXQ6IHJpZ2h0OwogICAgcGFkZGluZy1sZWZ0OiAx
ZW07Cn0KCnRhYmxlLmF0dGFjaG1lbnRfaW5mbyB0aCB7CiAgICB0ZXh0LWFsaWduOiByaWdodDsK
ICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cn0KCnRhYmxlLmF0dGFjaG1lbnRfaW5mbyB0ZCB7CiAg
ICB0ZXh0LWFsaWduOiBsZWZ0OwogICAgdmVydGljYWwtYWxpZ246IHRvcDsKfQoKLyogVGV4dCBk
aXNwbGF5ZWQgd2hlbiB0aGUgYXR0YWNobWVudCBpcyBub3Qgdmlld2FibGUgYnkgdGhlIHdlYiBi
cm93c2VyICovCiNub3ZpZXcgewogICAgdGV4dC1hbGlnbjogbGVmdDsKICAgIHZlcnRpY2FsLWFs
aWduOiBtaWRkbGU7Cn0KCi8qIEZvciBidWcgZmllbGRzICovCi51bmVkaXRhYmxlX3RleHRhcmVh
IHsKICAgIHdpZHRoOiAzMGVtOwogICAgZm9udC1zaXplOiBtZWRpdW07Cn0KCmRpdi51c2VyX21h
dGNoIHsKICAgIG1hcmdpbi1ib3R0b206IDFlbTsKfQoKLmJveCB7CiAgICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKICAgIGNvbG9yOiBibGFjazsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmM7
CiAgICBtYXJnaW46IDFlbTsKICAgIHBhZGRpbmc6IDAuNWVtIDFlbTsKfQoKLmNvbGxhcHNlZCB7
CiAgICBkaXNwbGF5OiBub25lOwp9CgovKiBSdWxlcyBzcGVjaWZpYyBmb3IgcHJpbnRpbmcgKi8K
QG1lZGlhIHByaW50IHsKICAgICNoZWFkZXIsICNmb290ZXIgewogICAgICAgIGRpc3BsYXk6IG5v
bmU7CiAgICB9CgogICAgYm9keSB7CiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsKICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgfQp9CgouZmllbGRfbGFiZWwgewogICAg
dGV4dC1hbGlnbjogcmlnaHQ7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgZm9udC13ZWln
aHQ6IGJvbGQ7Cn0KLmZpZWxkX3ZhbHVlLCBmb3JtI0NyZWF0ZSB0aCwgZm9ybSNDcmVhdGUgdGQg
ewogICAgdmVydGljYWwtYWxpZ246IHRvcDsKfQoKLmNhbGVuZGFyX2J1dHRvbiB7CiAgICBiYWNr
Z3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoImdsb2JhbC9jYWxlbmRhci5wbmciKSBuby1yZXBlYXQ7
CiAgICB3aWR0aDogMjBweDsKICAgIGhlaWdodDogMjBweDsKICAgIHZlcnRpY2FsLWFsaWduOiBt
aWRkbGU7Cn0KLmNhbGVuZGFyX2J1dHRvbiBzcGFuIHsgZGlzcGxheTogbm9uZSB9Ci8qIFRoZXNl
IGNsYXNzZXMgYXJlIHNldCBieSBZVUkuICovCi55dWktY2FsY29udGFpbmVyIHsKICAgIGRpc3Bs
YXk6IG5vbmU7IAogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IAogICAgcGFkZGluZzogMTBw
eDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM0MDRENkM7Cn0KCmZvcm0jQ3JlYXRlIHRoIHsKICAg
IHRleHQtYWxpZ246IHJpZ2h0Owp9Cgpmb3JtI0NyZWF0ZSAuY29tbWVudCB7CiAgICB2ZXJ0aWNh
bC1hbGlnbjogdG9wOwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICBjb2xvcjogZ3JlZW47CiAgICBt
YXJnaW46IDAgMC41ZW07CiAgICBwYWRkaW5nOiAwLjNlbTsKICAgIGhlaWdodDogOGV4Owp9Clh0
ZXh0L2Nzc18QMWh0dHBzOi8vYnVncy53ZWJraXQub3JnL3NraW5zL3N0YW5kYXJkL2dsb2JhbC5j
c3NPEQS3YnBsaXN0MDDUAQIDBAUGcnNYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoK8QIgcIIigpMCExMkxNTk9QUVJTVFVWV1hZWltcXV5fYGRlaW1VJG51bGzdCQoLDA0ODxAR
EhMUFRYXGBkaGxwdHh8XICFSJDZTJDEwUiQyUiQ3UiQzUyQxMVIkOFYkY2xhc3NSJDRSJDlSJDBS
JDVSJDGABxAIEAeACIACEACAHoAhgAWAH4AGEAHTIxAkJSYnV05TLmJhc2VbTlMucmVsYXRpdmWA
AIAEgANfEDFodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9za2lucy9zdGFuZGFyZC9nbG9iYWwuY3Nz
0iorLC1aJGNsYXNzbmFtZVgkY2xhc3Nlc1VOU1VSTKIuL1VOU1VSTFhOU09iamVjdCNBtsYX44W3
nhDI0zM0EDVAS1dOUy5rZXlzWk5TLm9iamVjdHOqNjc4OTo7PD0+P4AJgAqAC4AMgA2ADoAPgBCA
EYASqkFCQ0RFRkdISUqAE4AUgBWAFoAXgBiAGYAagBuAHIAdVlNlcnZlcl8QG0FjY2Vzcy1Db250
cm9sLUFsbG93LU9yaWdpblpDb25uZWN0aW9uXUxhc3QtTW9kaWZpZWRfEBlTdHJpY3QtVHJhbnNw
b3J0LVNlY3VyaXR5XENvbnRlbnQtVHlwZV1BY2NlcHQtUmFuZ2VzVERhdGVeQ29udGVudC1MZW5n
dGhURXRhZ1pBcGFjaGUvMi4yUSpVY2xvc2VfEB1GcmksIDAzIEp1bCAyMDA5IDAyOjE0OjI3IEdN
VF8QD21heC1hZ2U9Nzc3NjAwMFh0ZXh0L2Nzc1VieXRlc18QHVNhdCwgMDkgRmViIDIwMTMgMDU6
Mzc6NTAgR01UVDg0MTJfEBsiMTgwNTdhLTIwZGMtNDZkYzNiNzNiMjZjMCLSKithYl8QE05TTXV0
YWJsZURpY3Rpb25hcnmjYWMvXE5TRGljdGlvbmFyeREg3NIQZmdoWU5TLnN0cmluZ4AgWHRleHQv
Y3Nz0ioramtfEA9OU011dGFibGVTdHJpbmejamwvWE5TU3RyaW5n0iorbm9fEBFOU0hUVFBVUkxS
ZXNwb25zZaNwcS9fEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlXxAPTlNLZXllZEFy
Y2hpdmVy0XR1XxATV2ViUmVzb3VyY2VSZXNwb25zZYABAAgAEQAaACMALQAyADcAXABiAH0AgACE
AIcAigCNAJEAlACbAJ4AoQCkAKcAqgCsAK4AsACyALQAtgC4ALoAvAC+AMAAwgDJANEA3QDfAOEA
4wEXARwBJwEwATYBOQE/AUgBUQFTAVoBYgFtAXgBegF8AX4BgAGCAYQBhgGIAYoBjAGXAZkBmwGd
AZ8BoQGjAaUBpwGpAasBrQG0AdIB3QHrAgcCFAIiAicCNgI7AkYCSAJOAm4CgAKJAo8CrwK0AtIC
1wLtAvEC/gMBAwYDEAMSAxsDIAMyAzYDPwNEA1gDXANwA34DkAOTA6kAAAAAAAACAQAAAAAAAAB2
AAAAAAAAAAAAAAAAAAADq9QGBwkKJSYnKE8RDJRib2R5IHsKCWZvbnQtZmFtaWx5OiBWZXJkYW5h
LCBBcmlhbCwgSGVsdmV0aWNhOwoJZm9udC1zaXplOiAxMnB4OwoJcGFkZGluZzogMCA1cHggMCA1
cHg7CgltYXJnaW46IDA7Cn0KCmEgaW1nIHsKCWJvcmRlcjogMDsKfQoKdGFibGUgewoJYm9yZGVy
LWNvbGxhcHNlOiBjb2xsYXBzZTsKfQoKdGggewoJcGFkZGluZy1yaWdodDogMTBweDsKfQoKaHIg
ewoJYm9yZGVyOiAxcHggZG90dGVkICNhYWE7Cglib3JkZXItYm90dG9tOiAwcHg7Cn0KCiNoZWFk
ZXIgewogICAgICAgIHBhZGRpbmctdG9wOiA1cHg7Cn0KCiN0aXRsZXMgewogICAgICAgIGhlaWdo
dDogMzJweDsKCS13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDsKCS13ZWJraXQt
Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEwcHg7CgktbW96LWJvcmRlci10b3AtbGVmdC1yYWRp
dXM6IDEwcHg7CgktbW96LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4Owp9CgojdGl0bGUg
ewogICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7
CiAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDsKICAgICAgICBmb250LXNpemU6IDIwcHg7CiAg
ICAgICAgdGV4dC1zaGFkb3c6ICMwMDAgMXB4IDFweCA1cHg7Cn0KCiNidWdfdGl0bGUgewogICAg
ICAgIHRleHQtYWxpZ246IGNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6ICNkZGQ7CiAgICAgICAg
cGFkZGluZzogNXB4OwogICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7Cn0KCiNoZWFkZXIg
PiAubGlua3MgewoJLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxMHB4OwoJLXdl
YmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMTBweDsKCS1tb3otYm9yZGVyLWJvdG9t
LWxlZnQtcmFkaXVzOiAxMHB4OwoJLW1vei1ib3JkZXItYm90b20tcmlnaHQtcmFkaXVzOiAxMHB4
Owp9CgojaGVhZGVyIGgxLCAjaGVhZGVyIGgyLCAjaGVhZGVyIGgzIHsKICAgICAgICBmb250LWZh
bWlseTogVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYTsKCXBhZGRpbmc6IDA7CgltYXJnaW46IDA7
Cn0KCiNoZWFkZXIgaDEsICNoZWFkZXIgaDMgewoJZm9udC13ZWlnaHQ6IG5vcm1hbDsKfQoKZGl2
I2hlYWRlciBoMiB7Cglmb250LXdlaWdodDogYm9sZDsKCWZvbnQtc2l6ZTogMTRweDsKCXRleHQt
YWxpZ246IGNlbnRlcjsKfQoKZGl2I25hdmlnYXRlIHsKCXRleHQtYWxpZ246IGNlbnRlcjsKLyoJ
YmFja2dyb3VuZC1jb2xvcjogI2RkZDsgKi8KICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6
IDEwcHg7CiAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4OyAgICAgCglwYWRkaW5nOiAx
MHB4IDAgMTBweCAwOwp9Cgp0YWJsZSNidWdfZGV0YWlscyB7Cgl3aWR0aDogOTglOwoJcGFkZGlu
ZzogMTBweDsKCW1hcmdpbjogMTBweCAwIDEwcHggMDsKfQoKdGFibGUjYnVnX2RldGFpbHMgc2Vs
ZWN0IHsKCXdpZHRoOiAxNTBweDsKfQoKdGFibGUjYnVnX2RldGFpbHMgI2ZsYWdzIHsKICAgICAg
ICBtYXJnaW4tdG9wOiAxLjVlbTsKfQoKdGFibGUjYnVnX2RldGFpbHMgI2ZsYWdzIHNlbGVjdCB7
CiAgICAgICAgd2lkdGg6IGF1dG87Cn0KCnRhYmxlI2J1Z19kZXRhaWxzICNmbGFncyB0aCB7CiAg
ICAgICAgZGlzcGxheTogbm9uZTsKfQoKdGFibGUjYnVnX2RldGFpbHMgI2ZsYWdzIHRkIHsKICAg
ICAgICBmb250LXdlaWdodDogYm9sZDsKfQoKI2F0dGFjaG1lbnRfdGFibGUgewogICAgICAgIHdp
ZHRoOiBhdXRvOwp9Cgojc3VtbWFyeV9maWVsZHMgaW5wdXQgewogIHdpZHRoOiA1MGVtOwp9Cgoj
Y29tbWVudCwgI2Rlc2NyaXB0aW9uIHsKICB3aWR0aDogOTglOwp9CgpzcGFuLmJ6X2NvbW1lbnQg
ewoJZGlzcGxheTogYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwoJYm9yZGVyLWJvdHRv
bTogMXB4IGRvdHRlZCAjYmJiOwoJcGFkZGluZzogMnB4IDAgMnB4IDA7Cn0KCi5iel9jb21tZW50
X3RleHQgewogICAgLyogRG8gbm90IHNwZWNpZnkgYSBoYXJkIHdpZHRoLiAgT3RoZXJ3aXNlLCBj
b21tZW50IGxpbmVzIHdpbGwgInByZS13cmFwIgogICAgICAgdG8gdGhlIHNwZWNpZmllZCB3aWR0
aCByYXRoZXIgdGhhbiB0byB0aGUgd2luZG93IHdpZHRoLiAqLwogICAgd2lkdGg6IGF1dG87Cn0K
Ci5iel9jb21tZW50X3RleHQgPiBzcGFuLnF1b3RlIHsKICAgIC8qIFByZXZlbnQgc3Bhbi5xdW90
ZSdzICJ3aGl0ZS1zcGFjZTogcHJlIiBmcm9tIHN0eWxpbmcgcXVvdGVkIGxpbmVzCiAgICAgICBp
bnNpZGUgY29tbWVudHMuICBPdGhlcndpc2UsIGEgc2luZ2xlIHF1b3RlZCBsaW5lIHRoYXQgZXh0
ZW5kcwogICAgICAgYmV5b25kIHRoZSB3aW5kb3cgd2lkdGggd2lsbCBjYXVzZSBhbGwgbm9uLXF1
b3RlZCBsb25nIGxpbmVzIHRvCiAgICAgICBleHRlbmQgYmV5b25kIHRoZSB3aW5kb3cgd2lkdGgg
YXMgd2VsbC4gKi8KICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0Owp9CgojZm9vdGVyIGZvcm0gewoJ
Ym9yZGVyLXRvcDogMXB4IGRvdHRlZCAjYWFhOwoJYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZCAj
YWFhOwoJYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgY2VudGVyOwoJYmFja2dyb3VuZC1yZXBl
YXQ6IG5vLXJlcGVhdDsKCW1pbi1oZWlnaHQ6IDEwMHB4Owp9CgojZm9vdGVyIC5sYWJlbCB7Cgl3
aWR0aDogMTAwcHg7Cglmb250LXdlaWdodDogYm9sZDsKfQoKZGl2LmxpbmtzIHsKCW1hcmdpbi1i
b3R0b206IDZweDsKfQoKLmJ6X3RyX29ic29sZXRlLAouYnpfb2Jzb2xldGUsIHRyLmJ6X29ic29s
ZXRlIHRkLCB0ci5iel9vYnNvbGV0ZSBhIHsKCWNvbG9yOiAjYWFhOwoJdGV4dC1kZWNvcmF0aW9u
OiBub25lOwp9CgouYnpfdHJfb2Jzb2xldGU6aG92ZXIsCi5iel9vYnNvbGV0ZTpob3ZlciwgdHIu
Ynpfb2Jzb2xldGUgdGQ6aG92ZXIsIHRyLmJ6X29ic29sZXRlIHRkOmhvdmVyIGEsIHRyLmJ6X29i
c29sZXRlIHRkOmhvdmVyIGE6aG92ZXIgewoJYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKCWNvbG9y
OiAjMTExOwp9CgouYnpfcGF0Y2ggewoKfQoKLmJ6X2FsaWFzX3Nob3J0X2Rlc2NfY29udGFpbmVy
IHsKICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICAtbW96LWJvcmRl
ci1yYWRpdXM6IDVweDsgICAgIAp9CgouY29tbWVudF9ydWxlIHsKICAgICAgICB2aXNpYmlsaXR5
OiBjb2xsYXBzZTsKfQoKLmZsYWdfc2VsZWN0IHsKICAgICAgICBtaW4td2lkdGg6IDQwcHg7Cn0K
WHRleHQvY3NzXxAvaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2tpbnMvY3VzdG9tL2dsb2JhbC5j
c3NPEQS0YnBsaXN0MDDUAQIDBAUGcnNYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoK8QIgcIIigpMCExMkxNTk9QUVJTVFVWV1hZWltcXV5fYGRlaW1VJG51bGzdCQoLDA0ODxAR
EhMUFRYXGBkaGxwdHh8XICFSJDZTJDEwUiQyUiQ3UiQzUyQxMVIkOFYkY2xhc3NSJDRSJDlSJDBS
JDVSJDGABxAIEAeACIACEACAHoAhgAWAH4AGEAHTIxAkJSYnV05TLmJhc2VbTlMucmVsYXRpdmWA
AIAEgANfEC9odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9za2lucy9jdXN0b20vZ2xvYmFsLmNzc9Iq
KywtWiRjbGFzc25hbWVYJGNsYXNzZXNVTlNVUkyiLi9VTlNVUkxYTlNPYmplY3QjQbbGF+OEyi4Q
yNMzNBA1QEtXTlMua2V5c1pOUy5vYmplY3RzqjY3ODk6Ozw9Pj+ACYAKgAuADIANgA6AD4AQgBGA
EqpBQkNERUZHSElKgBOAFIAVgBaAF4AYgBmAGoAbgByAHVZTZXJ2ZXJfEBtBY2Nlc3MtQ29udHJv
bC1BbGxvdy1PcmlnaW5aQ29ubmVjdGlvbl1MYXN0LU1vZGlmaWVkXxAZU3RyaWN0LVRyYW5zcG9y
dC1TZWN1cml0eVxDb250ZW50LVR5cGVdQWNjZXB0LVJhbmdlc1REYXRlXkNvbnRlbnQtTGVuZ3Ro
VEV0YWdaQXBhY2hlLzIuMlEqVWNsb3NlXxAdU3VuLCAwOSBNYXkgMjAxMCAwNjo1MDo0MyBHTVRf
EA9tYXgtYWdlPTc3NzYwMDBYdGV4dC9jc3NVYnl0ZXNfEB1TYXQsIDA5IEZlYiAyMDEzIDA1OjM3
OjUwIEdNVFQzMjIwXxAaIjE4MDU1MS1jOTQtNDg2MjNiNjBiMTZjMCLSKithYl8QE05TTXV0YWJs
ZURpY3Rpb25hcnmjYWMvXE5TRGljdGlvbmFyeREMlNIQZmdoWU5TLnN0cmluZ4AgWHRleHQvY3Nz
0ioramtfEA9OU011dGFibGVTdHJpbmejamwvWE5TU3RyaW5n0iorbm9fEBFOU0hUVFBVUkxSZXNw
b25zZaNwcS9fEBFOU0hUVFBVUkxSZXNwb25zZV1OU1VSTFJlc3BvbnNlXxAPTlNLZXllZEFyY2hp
dmVy0XR1XxATV2ViUmVzb3VyY2VSZXNwb25zZYABAAgAEQAaACMALQAyADcAXABiAH0AgACEAIcA
igCNAJEAlACbAJ4AoQCkAKcAqgCsAK4AsACyALQAtgC4ALoAvAC+AMAAwgDJANEA3QDfAOEA4wEV
ARoBJQEuATQBNwE9AUYBTwFRAVgBYAFrAXYBeAF6AXwBfgGAAYIBhAGGAYgBigGVAZcBmQGbAZ0B
nwGhAaMBpQGnAakBqwGyAdAB2wHpAgUCEgIgAiUCNAI5AkQCRgJMAmwCfgKHAo0CrQKyAs8C1ALq
Au4C+wL+AwMDDQMPAxgDHQMvAzMDPANBA1UDWQNtA3sDjQOQA6YAAAAAAAACAQAAAAAAAAB2AAAA
AAAAAAAAAAAAAAADqNUGBwgWCSoYKywtTxEptjxodG1sPjxoZWFkPjxsaW5rIGhyZWY9InNraW5z
L3N0YW5kYXJkL2dsb2JhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPgo8
bGluayBocmVmPSJza2lucy9jdXN0b20vZ2xvYmFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBl
PSJ0ZXh0L2NzcyI+CjxzdHlsZT4KKiB7IGZvbnQtc2l6ZTogc21hbGw7IH0KI2NvbW1lbnQgeyB3
aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDAlOyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9CiNmb3Jt
LWNvbnRyb2xzIHsgaGVpZ2h0OiA0MHB4OyB9CiNmb3JtLWNvbnRyb2xzIHRkIHsgd2lkdGg6IDI1
JTsgdGV4dC1hbGlnbjogY2VudGVyOyB9Cjwvc3R5bGU+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CiAgPCEtLQogIHZhciB2aWV3aW5nX2Zvcm1hdHRlZF9kaWZmID0gdHJ1ZTsKICBm
dW5jdGlvbiB2aWV3UHJldHR5UGF0Y2goKQogICAgewogICAgICB2aWV3aW5nX2Zvcm1hdHRlZF9k
aWZmID0gIXZpZXdpbmdfZm9ybWF0dGVkX2RpZmY7CiAgICAgIHZhciBzcmMgPSAiYXR0YWNobWVu
dC5jZ2k/aWQ9MTg3NDA1IjsKICAgICAgdmFyIGJ1dHRvblRleHQgPSAiVmlldyBGb3JtYXR0ZWQg
RGlmZiI7CiAgICAgIGlmICh2aWV3aW5nX2Zvcm1hdHRlZF9kaWZmKSB7CiAgICAgICAgc3JjICs9
ICImYWN0aW9uPXByZXR0eXBhdGNoIgogICAgICAgIGJ1dHRvblRleHQgPSAiVmlldyBQbGFpbiBE
aWZmIjsKICAgICAgfQoKICAgICAgdG9wLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWV3RnJh
bWUnKS5zcmMgPSBzcmM7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWV3UHJldHR5
UGF0Y2hCdXR0b24nKS5pbm5lckhUTUwgPSBidXR0b25UZXh0OwogICAgfQogICAgZnVuY3Rpb24g
b25TdWJtaXRDb21tZW50cygpCiAgICB7CiAgICAgICAgIC8vIElmIHNvbWVvbmUganVzdCBsZWZ0
IHRoZSBlbnRpcmUgY29tbWVudCBhbG9uZSwgdGhlbiB1cGxvYWQgdGhlIGZvcm0KICAgICAgICAg
Ly8gd2l0aCBubyBjb21tZW50IGF0IGFsbC4KICAgICAgICAgdmFyIHRleHRhcmVhID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbW1lbnQiKTsKICAgICAgICAgaWYgKHRleHRhcmVhLmRlZmF1
bHRWYWx1ZSA9PT0gdGV4dGFyZWEudmFsdWUpCiAgICAgICAgICAgICB0ZXh0YXJlYS52YWx1ZSA9
ICIiOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAvLy0tPgo8L3NjcmlwdD4KCjwvaGVh
ZD48Ym9keT48Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iYXR0YWNobWVudC5jZ2kiIHRhcmdl
dD0iIiBvbnN1Ym1pdD0icmV0dXJuIG9uU3VibWl0Q29tbWVudHMoKTsiPgogIDxpbnB1dCB0eXBl
PSJoaWRkZW4iIG5hbWU9ImlkIiB2YWx1ZT0iMTg3NDA1Ij4KICA8aW5wdXQgdHlwZT0iaGlkZGVu
IiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ1cGRhdGUiPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h
bWU9ImNvbnRlbnR0eXBlbWV0aG9kIiB2YWx1ZT0ibWFudWFsIj4KICA8aW5wdXQgdHlwZT0iaGlk
ZGVuIiBuYW1lPSJkZWx0YV90cyIgdmFsdWU9IjIwMTMtMDItMDggMjE6MzY6MjMiPgogICAgPGlu
cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idG9rZW4iIHZhbHVlPSIxMzYwMzg4MjcwLTBjMzA4ZTBj
M2I0MmIzM2NlN2FjYjM3ZDY2MWIwYjcwIj4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJk
ZXNjcmlwdGlvbiIgdmFsdWU9IkFkZHMgdGhlIGxpbmsiPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4i
IG5hbWU9ImZpbGVuYW1lIiB2YWx1ZT0iYnVnLTEwOTM0Mi0yMDEzMDIwODIxMDQ1My5wYXRjaCI+
CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29udGVudHR5cGVlbnRyeSIgdmFsdWU9InRl
eHQvcGxhaW4iPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcGF0Y2giIHZhbHVlPSIx
Ij4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc29ic29sZXRlIiB2YWx1ZT0iMCI+Cgo8
dGFibGUgc3R5bGU9IndpZHRoOjEwMCU7IGhlaWdodDo5MCUiIGNlbGxwYWRkaW5nPSIwIiBjZWxs
c3BhY2luZz0iMCI+Cjx0Ym9keT48dHIgaWQ9ImZvcm0tY29udHJvbHMiPgo8dGQ+CiAgICA8YnV0
dG9uIGlkPSJzdWJtaXRCdG4iIHR5cGU9InN1Ym1pdCI+U3VibWl0PC9idXR0b24+CjwvdGQ+Cjx0
ZD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CjwhLS0gCiAgLy8gRW5hYmxlcyBvciBk
aXNhYmxlcyBhIHJlcXVlc3RlZSBmaWVsZCBkZXBlbmRpbmcgb24gd2hldGhlciBvciBub3QKICAv
LyB0aGUgdXNlciBpcyByZXF1ZXN0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGZsYWcuCiAgZnVuY3Rp
b24gdG9nZ2xlUmVxdWVzdGVlRmllbGQoZmxhZ0ZpZWxkLCBub19mb2N1cykKICB7CiAgICAvLyBD
b252ZXJ0IHRoZSBJRCBvZiB0aGUgZmxhZyBmaWVsZCBpbnRvIHRoZSBJRCBvZiBpdHMgY29ycmVz
cG9uZGluZwogICAgLy8gcmVxdWVzdGVlIGZpZWxkIGFuZCB0aGVuIHVzZSB0aGUgSUQgdG8gZ2V0
IHRoZSBmaWVsZC4KICAgIHZhciBpZCA9IGZsYWdGaWVsZC5uYW1lLnJlcGxhY2UoL2ZsYWcoX3R5
cGUpPy0oXGQrKS8sICJyZXF1ZXN0ZWUkMS0kMiIpOwogICAgdmFyIHJlcXVlc3RlZUZpZWxkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgaWYgKCFyZXF1ZXN0ZWVGaWVsZCkgcmV0
dXJuOwogICAgCiAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSB0aGUgcmVxdWVzdGVlIGZpZWxkIGJh
c2VkIG9uIHRoZSB2YWx1ZQogICAgLy8gb2YgdGhlIGZsYWcgZmllbGQuCiAgICBpZiAoZmxhZ0Zp
ZWxkLnZhbHVlID09ICI/IikgewogICAgICAgIHJlcXVlc3RlZUZpZWxkLmRpc2FibGVkID0gZmFs
c2U7CiAgICAgICAgaWYgKCFub19mb2N1cykgcmVxdWVzdGVlRmllbGQuZm9jdXMoKTsKICAgIH0g
ZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICByZXF1ZXN0ZWVGaWVsZC5kaXNh
YmxlZCA9IHRydWU7CiAgfQogIAogIC8vIERpc2FibGVzIHJlcXVlc3RlZSBmaWVsZHMgd2hlbiB0
aGUgd2luZG93IGlzIGxvYWRlZCBzaW5jZSB0aGV5IHNob3VsZG4ndAogIC8vIGJlIGVuYWJsZWQg
dW50aWwgdGhlIHVzZXIgcmVxdWVzdHMgdGhhdCBmbGFnIHR5cGUuCiAgZnVuY3Rpb24gZGlzYWJs
ZVJlcXVlc3RlZUZpZWxkcygpCiAgewogICAgdmFyIGlucHV0RWxlbWVudHMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTsKICAgIHZhciBzZWxlY3RFbGVtZW50cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzZWxlY3QiKTsKICAgIC8vWW91IGNhbm5vdCB1
cGRhdGUgTm9kZSBsaXN0cywgc28geW91IG11c3QgY3JlYXRlIGFuIGFycmF5IHRvIGNvbWJpbmUg
dGhlIE5vZGVMaXN0cwogICAgdmFyIGFsbEVsZW1lbnRzID0gW107CiAgICBmb3IoIHZhciBpPTA7
IGkgPCBpbnB1dEVsZW1lbnRzLmxlbmd0aDsgaSsrICkgewogICAgICAgIGFsbEVsZW1lbnRzW2Fs
bEVsZW1lbnRzLmxlbmd0aF0gPSBpbnB1dEVsZW1lbnRzLml0ZW0oaSk7CiAgICB9CiAgICBmb3Io
IHZhciBpPTA7IGkgPCBzZWxlY3RFbGVtZW50cy5sZW5ndGg7IGkrKyApIHsgLy9Db21iaW5lIGlu
cHV0cyB3aXRoIHNlbGVjdHMKICAgICAgICBhbGxFbGVtZW50c1thbGxFbGVtZW50cy5sZW5ndGhd
ID0gc2VsZWN0RWxlbWVudHMuaXRlbShpKTsKICAgIH0KICAgIHZhciBpbnB1dEVsZW1lbnQsIGlk
LCBmbGFnRmllbGQ7CiAgICBmb3IgKCB2YXIgaT0wIDsgaTxhbGxFbGVtZW50cy5sZW5ndGggOyBp
KysgKQogICAgewogICAgICBpbnB1dEVsZW1lbnQgPSBhbGxFbGVtZW50c1tpXTsKICAgICAgaWYg
KGlucHV0RWxlbWVudC5uYW1lLnNlYXJjaCgvXnJlcXVlc3RlZShfdHlwZSk/LShcZCspJC8pICE9
IC0xKQogICAgICB7CiAgICAgICAgLy8gQ29udmVydCB0aGUgSUQgb2YgdGhlIHJlcXVlc3RlZSBm
aWVsZCBpbnRvIHRoZSBJRCBvZiBpdHMgY29ycmVzcG9uZGluZwogICAgICAgIC8vIGZsYWcgZmll
bGQgYW5kIHRoZW4gdXNlIHRoZSBJRCB0byBnZXQgdGhlIGZpZWxkLgogICAgICAgIGlkID0gaW5w
dXRFbGVtZW50Lm5hbWUucmVwbGFjZSgvcmVxdWVzdGVlKF90eXBlKT8tKFxkKykvLCAiZmxhZyQx
LSQyIik7CiAgICAgICAgZmxhZ0ZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwog
ICAgICAgIGlmIChmbGFnRmllbGQgJiYgZmxhZ0ZpZWxkLnZhbHVlICE9ICI/IikKICAgICAgICAg
ICAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgICAgfQogICAgfQogIH0KICB3aW5k
b3cub25sb2FkID0gZGlzYWJsZVJlcXVlc3RlZUZpZWxkczsKLy8gLS0+Cjwvc2NyaXB0PgoKCgoK
PHRhYmxlIGlkPSJmbGFncyI+CiAgICA8dGJvZHk+PHRyPgogICAgICA8dGggY29sc3Bhbj0iMyI+
CiAgICAgICAgRmxhZ3M6CiAgICAgIDwvdGg+CiAgICA8L3RyPgoKICAKICAgIAogICAgCgogICAg
ICAgIDx0cj4KCiAgICAgICAgPHRkPmd5dXlvdW5nLmtpbToKICAgICAgICA8L3RkPgogICAgICAg
IDx0ZD4KICAgICAgICAgIDxsYWJlbCB0aXRsZT0iUmVxdWVzdCBmb3IgcGF0Y2ggcmV2aWV3LiIg
Zm9yPSJmbGFnLTIwNzIwOCI+cmV2aWV3PC9sYWJlbD4KICAgICAgICA8L3RkPgogICAgICAgIDx0
ZD4KICAgICAgICAgIDxzZWxlY3QgaWQ9ImZsYWctMjA3MjA4IiBuYW1lPSJmbGFnLTIwNzIwOCIg
dGl0bGU9IlJlcXVlc3QgZm9yIHBhdGNoIHJldmlldy4iIG9uY2hhbmdlPSJ0b2dnbGVSZXF1ZXN0
ZWVGaWVsZCh0aGlzKTsiIGNsYXNzPSJmbGFnX3NlbGVjdCI+CiAgICAgICAgICAgIAogICAgICAg
ICAgICAgIDxvcHRpb24gdmFsdWU9IlgiPjwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlv
biB2YWx1ZT0iPyI+Pzwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKyIg
c2VsZWN0ZWQ9IiI+Kzwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iLSI+
LTwvb3B0aW9uPgogICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgPC90ZD4KICAgICAgPC90cj4K
ICAgIAogICAgCiAgICAKICAgIAoKICAgICAgICA8dHI+CgogICAgICAgIDx0ZD5ybml3YToKICAg
ICAgICA8L3RkPgogICAgICAgIDx0ZD4KICAgICAgICAgIDxsYWJlbCB0aXRsZT0iUmVxdWVzdCB0
aGF0IGEgcGF0Y2ggYmUgYWRkZWQgdG8gdGhlIGNvbW1pdC1xdWV1ZSBmb3IgYXV0b21hdGljIGNv
bW1pdHRpbmcuICBjb21taXQtcXVldWUgc2hvdWxkIG9ubHkgYmUgc2V0IHRvIGNvbW1pdC1xdWV1
ZSsgYnkgd2Via2l0IGNvbW1pdHRlcnMuICBBbnlvbmUgbWF5IHNldCB0aGlzIGZsYWcgdG8gJz8n
IHRvIHJlcXVlc3QgYXBwcm92YWwgb2YgYXV0b21hdGljIGNvbW1pdC4gIFNlY3VyaXR5IGJ1Z3Mg
Y2Fubm90IGhhdmUgY29tbWl0LXF1ZXVlIHNldCBvbiB0aGVtIGF0IHByZXNlbnQuIiBmb3I9ImZs
YWctMjA3MjA5Ij5jb21taXTigJFxdWV1ZTwvbGFiZWw+CiAgICAgICAgPC90ZD4KICAgICAgICA8
dGQ+CiAgICAgICAgICA8c2VsZWN0IGlkPSJmbGFnLTIwNzIwOSIgbmFtZT0iZmxhZy0yMDcyMDki
IHRpdGxlPSJSZXF1ZXN0IHRoYXQgYSBwYXRjaCBiZSBhZGRlZCB0byB0aGUgY29tbWl0LXF1ZXVl
IGZvciBhdXRvbWF0aWMgY29tbWl0dGluZy4gIGNvbW1pdC1xdWV1ZSBzaG91bGQgb25seSBiZSBz
ZXQgdG8gY29tbWl0LXF1ZXVlKyBieSB3ZWJraXQgY29tbWl0dGVycy4gIEFueW9uZSBtYXkgc2V0
IHRoaXMgZmxhZyB0byAnPycgdG8gcmVxdWVzdCBhcHByb3ZhbCBvZiBhdXRvbWF0aWMgY29tbWl0
LiAgU2VjdXJpdHkgYnVncyBjYW5ub3QgaGF2ZSBjb21taXQtcXVldWUgc2V0IG9uIHRoZW0gYXQg
cHJlc2VudC4iIG9uY2hhbmdlPSJ0b2dnbGVSZXF1ZXN0ZWVGaWVsZCh0aGlzKTsiIGNsYXNzPSJm
bGFnX3NlbGVjdCI+CiAgICAgICAgICAgIAogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ilgi
Pjwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iPyIgc2VsZWN0ZWQ9IiI+
Pzwvb3B0aW9uPgogICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iKyI+Kzwvb3B0aW9uPgog
ICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iLSI+LTwvb3B0aW9uPgogICAgICAgICAgPC9z
ZWxlY3Q+CiAgICAgICAgPC90ZD4KICAgICAgPC90cj4KICAgIAogICAgCiAgICAKICAgIAogICAg
CiAgICAKCiAgICAgICAgPHRyIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgoKICAgICAgICA8dGQ+Jm5i
c3A7PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICA8bGFiZWwgdGl0bGU9IlBhdGNoIGhhcyBi
ZWVuIHVwbG9hZGVkIHRvIHRoZSByaWV0dmVsZCBwYXRjaCByZXZpZXcgc3lzdGVtLiAgVGhpcyBm
bGFnIGlzIGV4cGVyaW1lbnRhbCBhbmQgbWF5IGJlIHJlbW92ZWQuICBTZWN1cml0eSBidWdzIG1h
eSBub3QgYmUgdXBsb2FkZWQgdG8gcmlldHZlbGQgZm9yIHJldmlldy4iIGZvcj0iZmxhZ190eXBl
LTQiPmlu4oCRcmlldHZlbGQ8L2xhYmVsPgogICAgICAgIDwvdGQ+CiAgICAgICAgPHRkPgogICAg
ICAgICAgPHNlbGVjdCBpZD0iZmxhZ190eXBlLTQiIG5hbWU9ImZsYWdfdHlwZS00IiB0aXRsZT0i
UGF0Y2ggaGFzIGJlZW4gdXBsb2FkZWQgdG8gdGhlIHJpZXR2ZWxkIHBhdGNoIHJldmlldyBzeXN0
ZW0uICBUaGlzIGZsYWcgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgcmVtb3ZlZC4gIFNlY3Vy
aXR5IGJ1Z3MgbWF5IG5vdCBiZSB1cGxvYWRlZCB0byByaWV0dmVsZCBmb3IgcmV2aWV3LiIgb25j
aGFuZ2U9InRvZ2dsZVJlcXVlc3RlZUZpZWxkKHRoaXMpOyIgY2xhc3M9ImZsYWdfc2VsZWN0Ij4K
ICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iWCI+PC9vcHRpb24+CiAgICAgICAgICAgICAgPG9w
dGlvbiB2YWx1ZT0iPyI+Pzwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iisi
Pis8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSItIj4tPC9vcHRpb24+CiAg
ICAgICAgICA8L3NlbGVjdD4KICAgICAgICA8L3RkPgogICAgICA8L3RyPgoKICAKCjwvdGJvZHk+
PC90YWJsZT48YnI+CjwvdGQ+Cjx0ZD4KICAgIDx0YWJsZT4KICAgIDx0Ym9keT48dHI+PHRoIHN0
eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+Qm90IFN0YXR1czo8L3RoPjwvdHI+CiAgICA8dHI+CiAg
ICA8dGQ+CiAgICAgIDxkaXYgY2xhc3M9InN0YXR1c0J1YmJsZSIgc3R5bGU9Im1hcmdpbi1sZWZ0
OiAzMHB4OyI+CiAgICAgICAgPGlmcmFtZSBzcmM9Imh0dHBzOi8vd2Via2l0LWNvbW1pdC1xdWV1
ZS5hcHBzcG90LmNvbS9zdGF0dXMtYnViYmxlLzE4NzQwNSIgc3R5bGU9IndpZHRoOiA0NTBweDsg
aGVpZ2h0OiAyMHB4OyBib3JkZXI6IG5vbmU7IiBzY3JvbGxpbmc9Im5vIj4KICAgICAgICA8L2lm
cmFtZT4KICAgICAgPC9kaXY+CiAgICA8L3RkPgogICAgPC90cj4KICAgIDwvdGJvZHk+PC90YWJs
ZT4KPC90ZD4KPHRkPgogICAgPGRpdj5CYWNrIHRvIDxhIGhyZWY9InNob3dfYnVnLmNnaT9pZD0x
MDkzNDIiIHRhcmdldD0iX3RvcCI+QnVnICMxMDkzNDI8L2E+PC9kaXY+CiAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICA8IS0tCiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBkb2N1bWVudC53cml0
ZSgnPHA+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJ2aWV3UHJldHR5UGF0Y2hCdXR0b24iIG9u
Y2xpY2s9InZpZXdQcmV0dHlQYXRjaCgpOyI+VmlldyBQbGFpbiBEaWZmPC9idXR0b24+PC9wPicp
OwogICAgICAgIH0KICAgIC8vLS0+CiAgICA8L3NjcmlwdD48cD48YnV0dG9uIHR5cGU9ImJ1dHRv
biIgaWQ9InZpZXdQcmV0dHlQYXRjaEJ1dHRvbiIgb25jbGljaz0idmlld1ByZXR0eVBhdGNoKCk7
Ij5WaWV3IFBsYWluIERpZmY8L2J1dHRvbj48L3A+CjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNw
YW49IjQiPgpFbnRlciBjb21tZW50cyBiZWxvdzo8YnI+Cjx0ZXh0YXJlYSBpZD0iY29tbWVudCIg
bmFtZT0iY29tbWVudCIgd3JhcD0ic29mdCI+Jmd0OyBJbmRleDogVG9vbHMvQ2hhbmdlTG9nCiZn
dDsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQomZ3Q7IC0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjM0NykK
Jmd0OyArKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCiZndDsgQEAgLTEsMyArMSwx
NCBAQAomZ3Q7ICsyMDEzLTAyLTA4ICBSeW9zdWtlIE5pd2EgICZsdDtybml3YUB3ZWJraXQub3Jn
Jmd0OwomZ3Q7ICsKJmd0OyArICAgICAgICBBZGQgYSBsaW5rIHRvIEVGTCBwZXJmIGJvdCBvbiBi
dWlsZC53ZWJraXQub3JnCiZndDsgKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTM0MgomZ3Q7ICsKJmd0OyArICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KJmd0OyArCiZndDsgKyAgICAgICAgQWRkZWQuCiZndDsgKwomZ3Q7ICsgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvdGVtcGxhdGVz
L3Jvb3QuaHRtbDoKJmd0OyArCiZndDsgIDIwMTMtMDItMDggIERlYW4gSmFja3NvbiAgJmx0O2Rp
bm9AYXBwbGUuY29tJmd0OwomZ3Q7ICAKJmd0OyAgICAgICAgICBSZW1vdmUgdXNlIG9mIHBsdWdJ
blN0YXJ0TGFiZWxJbWFnZQomZ3Q7IEluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy90ZW1wbGF0ZXMvcm9vdC5odG1sCiZndDsgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQom
Z3Q7IC0tLSBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy90
ZW1wbGF0ZXMvcm9vdC5odG1sCShyZXZpc2lvbiAxNDIzNDcpCiZndDsgKysrIFRvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3RlbXBsYXRlcy9yb290Lmh0bWwJ
KHdvcmtpbmcgY29weSkKJmd0OyBAQCAtMjQsNyArMjQsNyBAQAomZ3Q7ICAgICZsdDtsaSZndDsm
bHQ7YSBocmVmPSJyZXN1bHRzIiZndDtUZXN0IFJlc3VsdHMmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsK
Jmd0OyAgICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0iTGVha3NWaWV3ZXIiJmd0O0xlYWtzIFZpZXdl
ciZsdDsvYSZndDsmbHQ7L2xpJmd0OwomZ3Q7ICAgICZsdDtsaSZndDsmbHQ7YSBocmVmPSJUZXN0
RmFpbHVyZXMiJmd0O1Rlc3QgRmFpbHVyZXMmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmd0OyAtICAm
bHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0iaHR0cDovL3dlYmtpdC1wZXJmLmFwcHNwb3QuY29tLyImZ3Q7
UGVyZi1vLW1hdGljJmx0Oy9hJmd0OyAoZXh0ZXJuYWwgd2Vic2l0ZSkgcmVzdWx0cyBzdWJtaXR0
ZWQgYnkgJmx0O2EgaHJlZj0iaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvd2F0ZXJmYWxsP3Nob3c9
QXBwbGUlMjBMaW9uJTIwUmVsZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9QXBwbGUlMjBNb3Vu
dGFpbkxpb24lMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1DaHJvbWl1bSUyMEFuZHJv
aWQlMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1DaHJvbWl1bSUyMExpbnV4JTIwUmVs
ZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9Q2hyb21pdW0lMjBNYWMlMjBSZWxlYXNlJTIwJTI4
UGVyZiUyOSZhbXA7c2hvdz1DaHJvbWl1bSUyMFdpbiUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFt
cDtzaG93PVF0JTIwTGludXglMjA2NC1iaXQlMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hv
dz1RdCUyMExpbnV4JTIwNjQtYml0JTIwUmVsZWFzZSUyMCUyOFdlYktpdDIlMjBQZXJmJTI5IiZn
dDtwZXJmb3JtYW5jZSBib3RzJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiZndDsgKyAgJmx0O2xpJmd0
OyZsdDthIGhyZWY9Imh0dHA6Ly93ZWJraXQtcGVyZi5hcHBzcG90LmNvbS8iJmd0O1BlcmYtby1t
YXRpYyZsdDsvYSZndDsgKGV4dGVybmFsIHdlYnNpdGUpIHJlc3VsdHMgc3VibWl0dGVkIGJ5ICZs
dDthIGhyZWY9Imh0dHA6Ly9idWlsZC53ZWJraXQub3JnL3dhdGVyZmFsbD9zaG93PUFwcGxlJTIw
TGlvbiUyMFJlbGVhc2UlMjAlMjhQZXJmJTI5JmFtcDtzaG93PUFwcGxlJTIwTW91bnRhaW5MaW9u
JTIwUmVsZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9Q2hyb21pdW0lMjBBbmRyb2lkJTIwUmVs
ZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9Q2hyb21pdW0lMjBMaW51eCUyMFJlbGVhc2UlMjAl
MjhQZXJmJTI5JmFtcDtzaG93PUNocm9taXVtJTIwTWFjJTIwUmVsZWFzZSUyMCUyOFBlcmYlMjkm
YW1wO3Nob3c9Q2hyb21pdW0lMjBXaW4lMjBSZWxlYXNlJTIwJTI4UGVyZiUyOSZhbXA7c2hvdz1R
dCUyMExpbnV4JTIwNjQtYml0JTIwUmVsZWFzZSUyMCUyOFBlcmYlMjkmYW1wO3Nob3c9UXQlMjBM
aW51eCUyMDY0LWJpdCUyMFJlbGVhc2UlMjAlMjhXZWJLaXQyJTIwUGVyZiUyOSZhbXA7c2hvdz1F
RkwlMjBMaW51eCUyMDY0LWJpdCUyMFJlbGVhc2UlMjBXSzIlMjAlMjhQZXJmJTI5IiZndDtwZXJm
b3JtYW5jZSBib3RzJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiZndDsgICZsdDsvdWwmZ3Q7CiZndDsg
ICZsdDsvYm9keSZndDsgJmx0Oy9odG1sJmd0OwomZ3Q7ICAKCjwvdGV4dGFyZWE+PGJyPgoKPC90
ZD48L3RyPgo8L3Rib2R5PjwvdGFibGU+Cgo8L2Zvcm0+PC9ib2R5PjwvaHRtbD5VVVRGLThacmV2
aWV3Zm9ybV8QQmh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTE4NzQw
NSZhY3Rpb249cmV2aWV3Zm9ybaEv0QIw1QYHCBYJMRgyMzRPEQqyPCFET0NUWVBFIGh0bWw+PGh0
bWw+PGhlYWQ+CjxzdHlsZT4KYm9keSB7CiAgICBmb250LWZhbWlseTogVmVyZGFuYSwgc2Fucy1z
ZXJpZjsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzogMHB4Owp9CiNidWJibGVDb250YWlu
ZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
fQouc3RhdHVzIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZmxvYXQ6IGxlZnQ7CiAgICBtYXJn
aW46IDFweDsKICAgIHBhZGRpbmc6IDFweCAycHg7CiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDVw
eDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4OwogICAgYm9yZGVyLXJhZGl1czogNXB4
OwogICAgYm9yZGVyOiAxcHggc29saWQgI0FBQTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRl
OwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdGV4dC1kZWNv
cmF0aW9uOiBub25lOwogICAgY29sb3I6IGJsYWNrOwp9Ci5zdGF0dXM6aG92ZXIgewogICAgYm9y
ZGVyLWNvbG9yOiAjNjY2Owp9Ci5ub25lIHsKICAgIGN1cnNvcjogYXV0bzsKfQoubm9uZTpob3Zl
ciB7CiAgICBib3JkZXItY29sb3I6ICNBQUE7Cn0KLnBhc3MgewogICAgYmFja2dyb3VuZC1jb2xv
cjogIzhGREY1RjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM0Rjg1MzA7Cn0KLmZhaWwgewogICAg
YmFja2dyb3VuZC1jb2xvcjogI0U5ODA4MDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNBNzcyNzI7
Cn0KLnBlbmRpbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkM2QzsKICAgIGJvcmRlcjog
MXB4IHNvbGlkICNDNUM1NkQ7Cn0KLmVycm9yIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTBCMEZG
OwogIGJvcmRlcjogMXB4IHNvbGlkICNBQ0EwQjM7Cn0KLnF1ZXVlX3Bvc2l0aW9uIHsKICAgIGZv
bnQtc2l6ZTogOXB4Owp9CmZvcm0gewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Cjwvc3R5
bGU+CjxzY3JpcHQ+CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24o
ZSkgewogIGlmIChlLmRhdGEgPT0gJ2NvbnRhaW5lck1ldHJpY3MnKSB7CiAgICBlLnNvdXJjZS5w
b3N0TWVzc2FnZSh7J3dpZHRoJzogYnViYmxlQ29udGFpbmVyLm9mZnNldFdpZHRoLCAnaGVpZ2h0
JzogYnViYmxlQ29udGFpbmVyLm9mZnNldEhlaWdodH0sCiAgICAgICAgZS5vcmlnaW4pOwogIH0g
ZWxzZQogICAgY29uc29sZS5sb2coIlVua25vd24gcG9zdE1lc3NhZ2U6ICIgKyBlLmRhdGEpOwp9
LCBmYWxzZSk7Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJidWJibGVDb250YWlu
ZXIiPgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRw
Oi8vcXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRsZT0iMjMgbWludXRlcyBhZ28i
PgogICAgc3R5bGUKICAgIAogIDwvYT4KICAKICA8YSBjbGFzcz0ic3RhdHVzIG5vbmUiIHRhcmdl
dD0iX3RvcCI+CiAgICBjci1saW51eAogICAgCiAgICA8c3BhbiBjbGFzcz0icXVldWVfcG9zaXRp
b24iPiM1Mzwvc3Bhbj4KICAgIAogIDwvYT4KICAKICA8YSBjbGFzcz0ic3RhdHVzIHBhc3MiIHRh
cmdldD0iX3RvcCIgaHJlZj0iaHR0cDovL3F1ZXVlcy53ZWJraXQub3JnL3BhdGNoLzE4NzQwNSIg
dGl0bGU9IjI0IG1pbnV0ZXMgYWdvIj4KICAgIGNyLWxpbnV4LWRlYnVnCiAgICAKICA8L2E+CiAg
CiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90b3AiPgogICAgY3ItYW5kcm9pZAog
ICAgCiAgICA8c3BhbiBjbGFzcz0icXVldWVfcG9zaXRpb24iPiMxPC9zcGFuPgogICAgCiAgPC9h
PgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8v
cXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRsZT0iMjIgbWludXRlcyBhZ28iPgog
ICAgcXQKICAgIAogIDwvYT4KICAKICA8YSBjbGFzcz0ic3RhdHVzIHBhc3MiIHRhcmdldD0iX3Rv
cCIgaHJlZj0iaHR0cDovL3F1ZXVlcy53ZWJraXQub3JnL3BhdGNoLzE4NzQwNSIgdGl0bGU9IjIw
IG1pbnV0ZXMgYWdvIj4KICAgIHF0LXdrMgogICAgCiAgPC9hPgogIAogIDxhIGNsYXNzPSJzdGF0
dXMgcGFzcyIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vcXVldWVzLndlYmtpdC5vcmcvcGF0
Y2gvMTg3NDA1IiB0aXRsZT0iMjMgbWludXRlcyBhZ28iPgogICAgZ3RrCiAgICAKICA8L2E+CiAg
CiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90b3AiPgogICAgbWFjCiAgICAKICAg
IDxzcGFuIGNsYXNzPSJxdWV1ZV9wb3NpdGlvbiI+IzE0PC9zcGFuPgogICAgCiAgPC9hPgogIAog
IDxhIGNsYXNzPSJzdGF0dXMgbm9uZSIgdGFyZ2V0PSJfdG9wIj4KICAgIG1hYy13azIKICAgIAog
ICAgPHNwYW4gY2xhc3M9InF1ZXVlX3Bvc2l0aW9uIj4jMzY8L3NwYW4+CiAgICAKICA8L2E+CiAg
CiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90b3AiPgogICAgd2luCiAgICAKICAg
IDxzcGFuIGNsYXNzPSJxdWV1ZV9wb3NpdGlvbiI+IzkyPC9zcGFuPgogICAgCiAgPC9hPgogIAog
IDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8vcXVldWVz
LndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRsZT0iMjMgbWludXRlcyBhZ28iPgogICAgZWZs
CiAgICAKICA8L2E+CiAgCgoKPC9kaXY+CgoKPC9ib2R5PjwvaHRtbD5VVVRGLThfECs8IS0tZnJh
bWVQYXRoIC8vcmV2aWV3Zm9ybS88IS0tZnJhbWUwLS0+LS0+XxA8aHR0cHM6Ly93ZWJraXQtY29t
bWl0LXF1ZXVlLmFwcHNwb3QuY29tL3N0YXR1cy1idWJibGUvMTg3NDA10QI21QYHCBYJNxg4OTpP
EQqyPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+CjxzdHlsZT4KYm9keSB7CiAgICBmb250LWZh
bWlseTogVmVyZGFuYSwgc2Fucy1zZXJpZjsKICAgIG1hcmdpbjogMHB4OwogICAgcGFkZGluZzog
MHB4Owp9CiNidWJibGVDb250YWluZXIgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAg
d2hpdGUtc3BhY2U6IG5vd3JhcDsKfQouc3RhdHVzIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAg
ZmxvYXQ6IGxlZnQ7CiAgICBtYXJnaW46IDFweDsKICAgIHBhZGRpbmc6IDFweCAycHg7CiAgICAt
bW96LWJvcmRlci1yYWRpdXM6IDVweDsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4Owog
ICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgYm9yZGVyOiAxcHggc29saWQgI0FBQTsKICAgIGJh
Y2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgZm9udC1zaXplOiAxMXB4OwogICAgY3Vyc29yOiBw
b2ludGVyOwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgY29sb3I6IGJsYWNrOwp9Ci5z
dGF0dXM6aG92ZXIgewogICAgYm9yZGVyLWNvbG9yOiAjNjY2Owp9Ci5ub25lIHsKICAgIGN1cnNv
cjogYXV0bzsKfQoubm9uZTpob3ZlciB7CiAgICBib3JkZXItY29sb3I6ICNBQUE7Cn0KLnBhc3Mg
ewogICAgYmFja2dyb3VuZC1jb2xvcjogIzhGREY1RjsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM0
Rjg1MzA7Cn0KLmZhaWwgewogICAgYmFja2dyb3VuZC1jb2xvcjogI0U5ODA4MDsKICAgIGJvcmRl
cjogMXB4IHNvbGlkICNBNzcyNzI7Cn0KLnBlbmRpbmcgewogICAgYmFja2dyb3VuZC1jb2xvcjog
I0ZGRkM2QzsKICAgIGJvcmRlcjogMXB4IHNvbGlkICNDNUM1NkQ7Cn0KLmVycm9yIHsKICBiYWNr
Z3JvdW5kLWNvbG9yOiAjRTBCMEZGOwogIGJvcmRlcjogMXB4IHNvbGlkICNBQ0EwQjM7Cn0KLnF1
ZXVlX3Bvc2l0aW9uIHsKICAgIGZvbnQtc2l6ZTogOXB4Owp9CmZvcm0gewogICAgZGlzcGxheTog
aW5saW5lLWJsb2NrOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+CndpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgewogIGlmIChlLmRhdGEgPT0gJ2NvbnRhaW5lck1ldHJp
Y3MnKSB7CiAgICBlLnNvdXJjZS5wb3N0TWVzc2FnZSh7J3dpZHRoJzogYnViYmxlQ29udGFpbmVy
Lm9mZnNldFdpZHRoLCAnaGVpZ2h0JzogYnViYmxlQ29udGFpbmVyLm9mZnNldEhlaWdodH0sCiAg
ICAgICAgZS5vcmlnaW4pOwogIH0gZWxzZQogICAgY29uc29sZS5sb2coIlVua25vd24gcG9zdE1l
c3NhZ2U6ICIgKyBlLmRhdGEpOwp9LCBmYWxzZSk7Cjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8
ZGl2IGlkPSJidWJibGVDb250YWluZXIiPgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFy
Z2V0PSJfdG9wIiBocmVmPSJodHRwOi8vcXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0
aXRsZT0iMjMgbWludXRlcyBhZ28iPgogICAgc3R5bGUKICAgIAogIDwvYT4KICAKICA8YSBjbGFz
cz0ic3RhdHVzIG5vbmUiIHRhcmdldD0iX3RvcCI+CiAgICBjci1saW51eAogICAgCiAgICA8c3Bh
biBjbGFzcz0icXVldWVfcG9zaXRpb24iPiM1Mzwvc3Bhbj4KICAgIAogIDwvYT4KICAKICA8YSBj
bGFzcz0ic3RhdHVzIHBhc3MiIHRhcmdldD0iX3RvcCIgaHJlZj0iaHR0cDovL3F1ZXVlcy53ZWJr
aXQub3JnL3BhdGNoLzE4NzQwNSIgdGl0bGU9IjI0IG1pbnV0ZXMgYWdvIj4KICAgIGNyLWxpbnV4
LWRlYnVnCiAgICAKICA8L2E+CiAgCiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90
b3AiPgogICAgY3ItYW5kcm9pZAogICAgCiAgICA8c3BhbiBjbGFzcz0icXVldWVfcG9zaXRpb24i
PiMxPC9zcGFuPgogICAgCiAgPC9hPgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0
PSJfdG9wIiBocmVmPSJodHRwOi8vcXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRs
ZT0iMjIgbWludXRlcyBhZ28iPgogICAgcXQKICAgIAogIDwvYT4KICAKICA8YSBjbGFzcz0ic3Rh
dHVzIHBhc3MiIHRhcmdldD0iX3RvcCIgaHJlZj0iaHR0cDovL3F1ZXVlcy53ZWJraXQub3JnL3Bh
dGNoLzE4NzQwNSIgdGl0bGU9IjIwIG1pbnV0ZXMgYWdvIj4KICAgIHF0LXdrMgogICAgCiAgPC9h
PgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0PSJfdG9wIiBocmVmPSJodHRwOi8v
cXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRsZT0iMjMgbWludXRlcyBhZ28iPgog
ICAgZ3RrCiAgICAKICA8L2E+CiAgCiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90
b3AiPgogICAgbWFjCiAgICAKICAgIDxzcGFuIGNsYXNzPSJxdWV1ZV9wb3NpdGlvbiI+IzE0PC9z
cGFuPgogICAgCiAgPC9hPgogIAogIDxhIGNsYXNzPSJzdGF0dXMgbm9uZSIgdGFyZ2V0PSJfdG9w
Ij4KICAgIG1hYy13azIKICAgIAogICAgPHNwYW4gY2xhc3M9InF1ZXVlX3Bvc2l0aW9uIj4jMzY8
L3NwYW4+CiAgICAKICA8L2E+CiAgCiAgPGEgY2xhc3M9InN0YXR1cyBub25lIiB0YXJnZXQ9Il90
b3AiPgogICAgd2luCiAgICAKICAgIDxzcGFuIGNsYXNzPSJxdWV1ZV9wb3NpdGlvbiI+IzkyPC9z
cGFuPgogICAgCiAgPC9hPgogIAogIDxhIGNsYXNzPSJzdGF0dXMgcGFzcyIgdGFyZ2V0PSJfdG9w
IiBocmVmPSJodHRwOi8vcXVldWVzLndlYmtpdC5vcmcvcGF0Y2gvMTg3NDA1IiB0aXRsZT0iMjMg
bWludXRlcyBhZ28iPgogICAgZWZsCiAgICAKICA8L2E+CiAgCgoKPC9kaXY+CgoKPC9ib2R5Pjwv
aHRtbD5VVVRGLThfECA8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPl8QPGh0dHBzOi8v
d2Via2l0LWNvbW1pdC1xdWV1ZS5hcHBzcG90LmNvbS9zdGF0dXMtYnViYmxlLzE4NzQwNQAAAAgA
AAAPAAAAIQAAADMAAABJAAAATAAAAFcAAABpAAAAfwAAAJ0AAACsAAAAwgABGrYAARrIAAEazgAB
GxEAASBQAAEgWQACNjgAAjZKAAI2fgACO08AAjtaAAI7cQAC2qUAAtqvAALatQAC2rYAAtr3AALa
+gAC2wEAAtsEAALbDQAC++0AAvv2AAL8KgADAOUAAwDuAAMNhgADDY8AAw3BAAMSeQADEoQAAzw+
AAM8RAADPE8AAzyUAAM8lgADPJkAAzykAANHWgADR2AAA0eOAANHzQADR9AAA0fbAANSkQADUpcA
A1K6AAAAAAAABAEAAAAAAAAAOwAAAAAAAAAAAAAAAAADUvk=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187411</attachid>
            <date>2013-02-08 21:51:33 -0800</date>
            <delta_ts>2013-02-08 21:51:46 -0800</delta_ts>
            <desc>Screenshot of the bar when it moves vertically</desc>
            <filename>Screen Shot 2013-02-08 at 9.44.53 PM.png</filename>
            <type>image/png</type>
            <size>19035</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">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
7GztSuze2svZH7DvdSA4eDpccfjmqO+Y5TjpJOoU69TjTO/s7lzjvO5i6JLrMr1HZs/BPY9dOV0D
XdvcsG7OblVua3uN9ubvnXdXck9zH9snsi9h3yMPTo8Qj9ue9J5kzyYvtJeL1xWvH2QbciV5zdvM
u9R7hWJAKaQs+ej65Pks+mr55vou+Gn55fq989fyP+O/GKATUBCwHGgQWBz4Ocg06HzQerBNcHXw
TohLSH0oVahX6M0wprDgsHvhvOEJ4cMREhFpEdOR6pH5kStRFlFV0VD0vui2GGb4INMfKxp7LHYm
TjuuJG4j3jm+KYExISyhP1E88WTiQpJx0qX9qP2U/T0HiAcOH5g5qHew4hB0yPtQT7Jg8tHk+RST
lMuHcYeDDw+kyqbmpn494nKk/SjP0ZSjc8dMjtWm0aVFpY0f1zh+/gTqROCJwZMKJ8+e/Jnuk96X
IZtRkPHjFOVU32m500WndzL9MgezlLPOZWOyw7LHcnRyLucy5iblzp2xOtOax5+Xnvc13zP/UYFi
wflCXGFs4XSRZVHbWaGz2Wd/FAcUj5bol9SXcpeeLF0v8yl7ek73XN15nvMZ5zfLA8snKkwqWitJ
lQUXMBfiLry96Hyx95LqpZoqzqqMqu3qsOrpy/aX79Wo1NRc4b6SVYuoja1dvOp+deia4bW2Oqm6
inrW+owG0BDb8P661/WxRovGnibVprpm4ebSFkJLeivUmti6ciPgxnSba9vwTfObPe0a7S0d0h3V
t4i3Sm6z3M66g7tz9M5OZ1LnWldE13K3f/dcj2fP5N09d5/ds7s3eN/i/sMHxg/u9ur1dj7Uenjr
kfqjm32qfTceKz9u7VfqbxlQGmgZVB5sfaLypG1Ibah9WHP4zlOdp90jhiMPnpk9ezxqPTo85jQ2
Me4+Pj3hM/Huecjzzy/iXmxNprxEv0yfYpgqeMX9qvK12Ov6aeXp2zOGM/2zDrOTc5S5pTfRb37M
H32Lf1uwwLdQ807+3a1F48Wh93vfzy9FLG0tp31g/FD6UfRj8yfdT/0re1bmP0d93vlyapVjtfqr
4teeNdu1V99Cv22tp29wbFz+rvq9d9Nlc2Er/gf2R9G22Hb7T4ufL3dCd3YiyFHkX2cBJNwj/PwA
+FINAN4VAAJ8/sXR/T7//uKAj8cQzANjZ0gaWkKUIT1QYmgs+jNmETtO9Zp6BrdOi8aT6CzoYxjK
GccJNMzaLEms9WwLHOKcZK5C7ie8aD4lfl9ipkCj4FOhjySECJ0ovRgNvPN9l/ggOSM1In1XpkX2
oly2/EGFIEVnJV1lcRWCyg/VebV+9WaNUs0jWkHa9jraupJ6fPqsBgyG1EYoo23jdZMV03dm0+YT
FoOW961uWTfZXLO9Yldjf8XhmmO903XnJpemPc2uzW5Nexvdr++r96j3bPRqI3d791Oe+7z1/eq3
E0ATyBokECwRohSqE2YW7hThGxkfdTq6KqYzdiLucwJ1In+Syn7rA5SDCYfSkwtTyg9XpJ4/UnQ0
61ha2v7jkSf8TrqlW2fonVI6LZrJncWUTZNDnUtzhiGPPZ9YIFGoWKR11qjYqsSpdG8Z5Vzw+Zjy
lIrsyooLLRf7Lr2u+nqZqob7ikyt/lWna/51CfUnGgquVzbWNjU1t7d0tt6/8aht4OZw+2jHxK3J
26/vvOlc6lrrQd5luSd6X/OBbS/lYfyj9L7Sx/X93QPDg9NPPgytDW8+/TGy9WxjdG3s8/gH2Nrm
XryanHj5dGrg1cPX96cfzPTNPp2berM4v7YAvaNdZH8vuCS9rPbB4KPZJ4sVw8/yX9i+fFnt/Xp2
Lfib5jrd+uuN+u8pm3ZbxK3PP7q3c3567cju7PwP/Uuj+dGrsP7fU81Sf6bB0QrjjegC6LMYehhX
CVLMnixnWZ+x4zmsOI9xdXF/45Xg8+Q/RWwWGBP8KkxP4hYhiRLF2MVpxDckZiUHpdqlL8icko2T
85I3U5BVZFPcVnqj3KdSr5qnlqTuoaGvSdKi0lrSHtZp072gl6OfahBvGGLkbexsYmGqbSZnLmjB
Yom13LB6b/3SZtj2oV2P/R2HDsc2pxbnBpfaPVWuFW7Fe/PcT+877pHqmeyVTE71Tqec8Sn1rfZr
8G8L6Ap8GPQkeDTkZeibsOXwjUhMFFu0ZIx+7J64sPgjCYWJV5M69z898ObgWjIiBXeYLpX2CObI
z6Nfjy2mTR0fPnH/ZFt6bca5U9mnUzPjs0Kz/XP8c4POROUl5R8pyCg8U1RytrK4pqShtKXs1rme
84/LxyreVK5dxFxirxKv1rxsXeN5JaI25Wr2tfK6+vrbDX3XRxtfN71rXmnZaN1pw9zEtzN3cN7i
v026I9mp0KXVbd7jejfkXvL9Mw+qe9sfDjya7vvSjxpgHSQ9URrSH7Z86jDi8sxt1H3MY9xzwuu5
1wvyJPkleYr8ivyaMh0wEzF7YC79TfF87duOhf53U4sf3v9Ypv3A+ZH0SXpF5rMIbAE7qzNfu9fK
vx1ad99Q/87+/dvmyFbDj9PbQT+NdwT/l/7/3f8HCThmTZZo2P8/wf5P4SrhfsaL59PkDyYWCtwR
nBX6SWIUIYqKi4mJi0gQJTmlGKSpZYDMquyC3IT8Q4VWxSqlfOUjKpGq+9Qs1FU0BDXpNDe05rSH
dLp0m/Qu65cblBjmG2UaHzdJMU0wizD3t/CwdLQys9a2UbaVsROzJzkIOQo4EZ35XLj3cLiyujHt
pXXH7oP2bXt891z32iBvURA+VL70fqz+3AHEQFKQeLBMiHyoUphauE6ESaRdlGd0RExKbE5cRfz1
hK7EJ0lT+5cObBxCJONSaA9Tp0JwFH1z9NmxnrT642Un0k/GppMzrE6pnhbMpM/czvqQPZvzMnfi
zHjeRP7zgonCiaLxs2PFz0pGSofLnpwbOD9YPlwxVjkFR7qVS5vVqMv4GpYrvLWkq9LXFOvU63Ua
DK4bNho1GTbrt+i2at1Qb1O5qdAu0yFxi3Rb4A5vJ1cXVzdvj9BdqXsq9/UfWPW6PPR+FNIX9zi5
/8RAzmDRk3NDFcOVT8tHSp8VjuaMZYwfnTj4PP5F+GTAS68p11cOr22n7WZcZr3nIt+kzue/vbzQ
8W5gcfr9l2XUB+aPQp/kV7Q+G34xXjX+arCm801jXXlD7rvEJmmL/wfHNuEnfgezq//fdZDdmICB
c8qLcJxwOg6AZQ4A5zQAIOHgEgMdALZ4ABzVAEI/CyAUFABC9sLf+AEBFKAGDIAdEIEEUIHzYzvg
CcJBMpxTVoIW8AhMgVUIBxEhdcgRCofSoWroATSPwCBEEZZwrlcE53fLSA6kKTIJWY98hxKCM7WL
qHdoaTgX68HQY7wwTVgqrBe2g4qdKoHqBbUOdTWcJx3CfaDxpBmmNaS9gRfHn6NjoTtNT0V/jAHN
cJyRlvEMEw9TDUGF0MvswrzAkshKw1rOpsI2xB7CgeOo5bTm/MpVym3CvcpTzmvFu8lXze9ERBNb
BYIEiYIvhPKF7UkE0qhIsaiXmIjYB/EmiURJHSmM1BPpEpkAWVU5GrnX8q0K2YohSpbK8iq8qgQ1
OnUGDTZNopaMto6Og26Q3lH9CoNuwzljrIm4qYVZoPkxi3LLDqsJ63VbDjste1+HLMcOpyXYlm1c
U92a987vY/Uw9oz3qiVPUzh8HHxz/IYDCIF7gsqDl0M1wjLDFyKNoqpj8LHxcW8SHBN792sdaD0k
n9xwWC618ajCsevHpU5UpfNmFJ0mZOZkM+bkneHMqyyQKuw4a1U8V5p8TvD8UMWxC3qXkFWPLude
8bwqW4esf3G9uSmnJfKG3U3ZDppbs3dautJ69tyTfIDonXzU+jh/IO6J27D+iOyo6Lj8c6fJoqmt
6bjZH/PH37G9v/rB+NObL8fXZNZfbmZuG/7aP/7on+2X/pVh/dvCFYZQcBBkgnLQBNcQJsEKXDHg
hVQgWygYSoMuwJWAaQSEEEQYI4IRuYgOxFskAamPjEVeQb5BEVFk1CXUMloRnYwewPBgwjH3sNzY
OOwInEvnUX2n9qLuw6ngqmg4aE7TImmTaD/jA/EzdHvpxumd6ccZ9jLMMgYzrjMdI7ASapi1mUdY
All2WAvZ5NgGYO3TcTRy7uFCcNVxu/PgeTp5o/iE+Sb404laxC8ClwXJQjxCk8IlJA8RIZEl0Rax
FHFLCTaJOck6qURpYxlmmXnZNrlMeV8FXUVuxS2lKeW7cDyrUCtWL9Go1KzTug3vZ291d/S5DNQN
3Y0OG9eYDJt+N+e10LH0tDpoXWZzx3bWntpB3tHD6bTzHZdVVzE3770l7iMeOE89rwTyde8lH1Ff
f78a/w+BikGHgvtCOcKCw7siOaLiosdjNeMuJtAnHkz6eIB8cCLZLmUg1fLIwDHbtKcn7E8OZ1if
6ss0zerNMcsdzHPKf1UYXLRZfKqUWNZx3rX8Z2XtRY8qtupnNfm1bteIdcsNNxvTmz1aFdvwNxc6
Om/ndfp2K94F9wYelD4M7dPtZxtYedI/XDuSORo37v/cfzJpqvr10qzem8oF3GLs0vxHt5WnqzZr
QxvOm6+34RMnvG380f+/+/+rX/4v8Mv/w375/33Y/9EIEbjiE4EoRHQi3sM1HSNkPLIWOYviQbnB
NZqXaCJcjWlA/8CYY0own7BG2DK4ouJE1ULNRn2Aeg5nhWunEaUpoqWCLWAZ74l/RmdJ94Ben76b
QZ/hAaMl4ygTmekT4RAzHXM5izzLA1Z31q9sWeyS7P0cYZwEzg4uX24m7i6eCF5+3iG+w/zy/G+J
JQIOgnSCj4UyhK1IjKTnIpWioWJq4mjxYYkyyUApFWms9HOZOtljch7y6gocCpuKr5R6lVtUalUv
q9Wpd2j0a85obeqw6irp7dE/ZFBtOGKMNFEwpZhlm7dbzFpRW8vZuNket7thv+jI6+TinOsy5Mrg
5rC3wH3Cg9Nzr1cp+RVF0CfIt9kfCrANrAxaD7EJrQ3HRYRGjkbrxzTGicSXJ3InlRzgPliZLJ7S
kmpw5NmxgLQfJ7LTiRkNp7UyH2U757w9k5BPW3CxSPvsZMn+Mt5z98rDK/kujF3Kr3arEb6ydvVh
3fmGxEaXZpVWrjbEzeWO8dvdndXdaXc978v1Qg+H+sr7owZNhviGv4+MjbaOFz8/PBk25f3ac8Z/
LnH+zELT4sQy+Cix4vbl1Neeb1vfVbbitm/u6j/aT0F+N3oAiFYfLj++2tlZJQGAzQVgO2dnZ6ty
Z2f7ApxsvASgK+R3bX2XGcMAQC6JVQAh2e80tUv4H+2/AEm/UG3YczjEAAABnWlUWHRYTUw6Y29t
LmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0
az0iWE1QIENvcmUgNS4xLjIiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJk
ZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4
aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj40NDg8L2V4aWY6UGl4ZWxY
RGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTU3PC9leGlmOlBpeGVs
WURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94Onht
cG1ldGE+CsEBpqYAADHzSURBVHgB7Z0HnFXFFcZ3l7eFIoIUWZosKqBoQEURuzEiNqJYYuymGkw0
JsZoYk+sMRp7SSyJGmONgiXW2DEW7GClSO9KkbIsm/97Z/e82fvuva+/fbt77g/unjlzZubMN3O/
OzP33nml9fX1JXYYAoaAIWAINEVg2rRpAwcObKprCJ1zzjlDhw5t165dmW+0KQ0BQ8AQMASSImAE
mhQiMzAEDAFDwB8BI1B/XExrCBgChkBSBIxAk0JkBoaAIWAI+CMQYaHUP8a0hoAhYAgYAqEIRPr0
6RNqYJGGgCFgCLRFBObMmZO02jaFTwqRGRgChoAh4I+AEag/LqY1BAwBQyApAkagSSEyA0PAEDAE
/BEwAvXHxbSGgCFgCCRFwAg0KURmYAgYAoaAPwJGoP64mNYQMAQMgaQIGIEmhcgMDAFDwBDwR8AI
1B8X0xoChoAhkBQBI9CkEJmBIWAIGAL+CBiB+uNiWkPAEDAEkiJgBJoUIjMwBAwBQ8AfASNQf1xM
awgYAoZAUgSMQJNCZAaGgCFgCPgjYATqj4tpDQFDwBBIioARaFKIzMAQMAQMAX8EjED9cTGtIWAI
GAJJEYiksmlo0lzMwBAwBAyBNohAJOiHj9sgFlZlQ8AQMATSQsCm8GnBZcaGgCFgCMQRMAKNY2GS
IWAIGAJpIWAEmhZcZmwIGAKGQBwBI9A4FiYZAoaAIZAWAkagacFlxoaAIWAIxBEwAo1jYZIhYAgY
AmkhYASaFlxmbAgYAoZAHAEj0DgWJhkChoAhkBYCRqBpwWXGhoAhYAjEETACjWNhkiFgCBgCaSFg
BJoWXGZsCBgChkAcASPQOBYmGQKGgCGQFgJGoGnBZcaGgCFgCMQRMAKNY2GSIWAIGAJpIWAEmhZc
ZmwIGAKGQBwBI9A4FiYZAoaAIZAWAkagacFlxoaAIWAIxBEwAo1jYZIhYAgYAmkhYASaFlxmbAgY
AoZAHIFIXDTJEDAE/BCor6/3U+dXV1pamt8CLPdcIGAEmgsULY/WhUAIY4ZEZY+BS5qegtyo7Auy
HHKFgBForpC0fFo8AspZtbW1a9asqYsdbq3UQJWJGo1KRUikRY+mXeyoqqoqLy+XDD0GqZRiNvlD
wAg0f9hazi0GAZcHoc5Vq1ZtvPHGkUik2dkKx9avX//111937NgRGgVQcbXZHWsxTZtnR+0hUp4B
tuyLHgGXPRl7wp5dunRhxFcMJIUPeII/eIVviqXrsypNKDwCRqCFx9xKLCIElIkQOL755hsZexaR
iyUljIXxCt/ESfENuaicbJvOGIG2zXa3WkcRUA4SgTPzZVYdixAdvMI39VM8VP+L0OE24pKtgbaR
hrZqehFQ9kEQmTMkVQwzd6+vJSV4pQQqseInPhenw4lVaJUaG4G2yma1SiVBQBgTIwSRReBcnHyE
V+qh67bISWpr0XlDwAg0b9BaxsWKgDAm3gklqUBww4YNxep1Cb4ZhxZb6xiBFluLmD8FQsBDo8pN
qi+QH6kV47onsqQrTm9Tq1NrsLI10NbQilaH1BFwGcfDSgzxeHeerFyb1HPOtyW+4WFZWZNBjy44
4LPK+fbE8lcEItOmTdOACYZAq0dAyFGoUyqrU2OExYsX9+/fvzhBmDFjxsqVKyFQiJJDmVSC+IxQ
nJ63Aq8GDhzoW4tI165dfSNMaQi0SgRcAkUW9qSmCBx8hlS0te7UqRNvg8KbQp3CocKeQp1GoHlq
u2XLlgXlbFP4IGRM32oRkOGnOwgVJoVAEYq22uIk7glpIrjeGns2S8M1WU9pFg+sUEOgYAi4jEOh
BOUQ6kRGKJgz6RbkOtnoeBO6R5lunmafJQJGoFkCaMlbKgIu3QgfwVDyEKk4qyQPkcRV9dCthSpN
KBgCRqAFg9oKKgoEXAIS9pGRHWc5isJLPycaHYyuMyBjouzpVsovqenyhYARaL6QtXyLDQGlGxxT
xhFBz0JMxea5+INv6qfHf3UYvcomFACByH2Tbt5uwK5b9BpaVhon0w31Gz6f/9E7M159d8Zr87+a
XQA/KKJXl77DB+ySK2eCcqOHsbviotjB9jaFqVpQKR06dOgRO3i66j4EKIyT3/nOd4Icazt6YRzO
HMpQblsUCRTqIY/gkfGKcxH6WSRwFcyNyOyN3njpuUd36jf6hD1P11LveumaN2Y9PXB49eD9uw0p
7ab6vAr0itmzc+ZMUG6ffPIJBLrtttvuuOOOzd7/uAbmzp37wQcfQKBDhgxReAvjZMjLGepJWxCE
m4SVinwESnO43raF1inyOpZ177fx9vtt+cbspz+c9Zb4ikAQJVGFfDOXsnLojG9uS5YsgT332Wef
Pn36NDt7gjY+4Mm3v/1tvMI3wb/YnCzyHpyZe0pDHqHICdTjrQYzA8FSZY9AdNoeqWhXM6z6scn3
SHYIA4dVo8w+9wxyoFxKz5Uzntz4loOxp/68TAbu5SNJRUUFXuGbZF6cTuaj4s2SJ6TjlitBZSJP
rGvZ7LLHSY+rnmCze9tGHGh4kb57386TJn0sdZ6+8ONRe8ank7kC4p2J04cdMKCsnfdrs9XL161f
V7dR9/ZaULdMnfEtws2NgV7v3r21oOIR8Or1118Xf4rWyeKBK0tPhIk0E5eYGIEec9lXGlVUwg92
bPIQSX0T/4thRqUutR2hgUBBf936tVJthPCZ+y0nPvvj2/ZJpMJw1O4989Wh+/Sr6NBQohhfe/iT
8z79qqpjpFP39kf8cef+w7qjz9gZ3yLc3Lg8irOf4ZVOHovWyfD2bYmxMmqTM/4LE8lvtxVhdcQ9
cUw9L87+XITo5cml+JP31Av49JW59RuazINST+ux3OOkrS5+56jzJx2x7eh+/731I09sKsEcOpNK
canYTJgwATM5i/0777zz8ssvi7x69epLL730+OOPv+aaa3TdM5VszSYfCCgTCT1xXl+X5b+S/j1L
h/YsKc82H68b6qH6nA9ALM+0ECi7YsyElUsCN1D49NV5l+37yIWjHrj+e/+55YRnyHrCJW9tqKu/
8qCJiQnffmTaE39+B5t1q9f/6YCJq5ZFh7TP3vABetenNx74/K5fvlxXG30TePiBDZP6gSM2nTF5
oWuWKH/yytzLRz96wagHrjsyiTNuEYn5oKELbr311ueff/5mm222+eabP/LIIz/+8Y+ZR48ePfrj
jxuWMvbdd1+J3W+//ebNmyf5vPLKK6NGjRowYMD222//0ksv+Wb+/PPPT506VZOce+65Y8aMeffd
d8V4xYoV3bp1Q8nvLOKAbw6izJOT99xzzznnnBNSbiuOEurxVNBVIq9bX5LFv9Lf/qrDhce2P+PY
Drf+pv0hPbPJypvW46enFgRdg8RY0+QDgbIz/zO2U7fo700nHiuXrvn7KS8ccs6O5712xNjfjVg8
cwU2CEzez3js4MSEvbfq+t6TM7GZ+sKc5Qu/EfnDZ2dVD4lv+PS/+z+b9K9PD79oZLvyJoPfNx/+
Yut9+iX6oJoVi1bfOf7FQ87b8YJJSZwJKkKzEgGOg0O/+OKLiy+++IQTTjjyyCNnz56911573Xbb
bWJwww03zJw5E4Phw4dfeeWVKBcsWHDwwQfDfdOnT7///vt5+OPJ8x//+AdZvfnmm6eddtozzzzz
2GOPYfCHP/zBJcqePXv+5Cc/2XLLLb/3ve9NmjTJk4MnmA8nv/Wtbz300EOegtpsUEkHQeT1dSUh
//bYp+q+szvefmx5gE393f/45vg/rjrsijUzS8rG7BwJMAsrIigJbaROitxmW614Kt5kRdLj1rQ3
FvQYuPGQPfugb9/ZSxYoF37x9U3HRYelHD+7e9/qwV3XrFjHePbdx2ccecmol++cuuO4zb+evwq9
2Lx+/2c85zn5H/tWdiwXjZyfu/nDOVOW/vy+Ma7SI3/x5oLqQV0G7xZ9BNRhYx9nxD6oCE9uEoTC
EEaMGLHJJpsw3kTm5dDLLrtMYufMmXP55ZczIJ0/f/5OO+2E8r///e+gQYMOOOAA5C1ih1jqmYk5
40rGdzfddNNVV12lel/hiiuuOPHEE32jXGX2TlIFRtaSJ7TOE3+eUy1cuLDY3kZwa10YWRiTslRA
ZvgZeNSUn7JTu5IltafeVrsuwOijmbHVraro69MrVkTHszk/1FsVcl6EZZgiAmEE2q6iXVVTpvNk
2qOm82+fGitK4cRBu/ae+uKcr+at2nZ0/6eve5/h58CRvfSR1Ccvz/16/jdfL/im58CNNaunr3//
4xfnjL9ndFWnJqyqBiK036giUpn8zSrfIjxZeYL6aQd6fjxWHua89dZbjCXvvfde6PXhhx+WBc11
69axJ6MnuQZhpbvuugtjujUTdgawp5xyisZ6BMak8NcvfvELjz4omI2TkD7v6kvOG220EQLfIP3n
P/9hNB1UXFvQJ7KPaNYF78d01oHcuTf85aZ1s4NtotBVtLv+9MqquetOmVAXxLOZIezrsz1HygzM
nKRqMo/25Ljlzr1mT1myaPpy9DPfW6yx3fpttHzRaoKlZaVVG1XIP2Q0g3evfuov7w79dnQyPvyA
zR6/4u3Bu1VrwuOv2/PQ83e65YRnl85eibJu/YZ//vqV+Z9+Nf7u0R26VKqZr7D5yE3nfbJs6n9n
s7T63hPRhQI51BkJeopotEr7L5P3wYMH77rrrpWVlVOmTJH0rH4y6eYzIYI8C/r000/dfPkuk1fi
+/btW11dzbv6yG6syuypA7FCiNdff70qMxNSdJKy+NJJDmTKYrh9wQUXZFZo604FQyUugA7uXVrF
wmjv8r27l0x/fu2j33hXJz1Jxo6r3HJt7WHX136Z1XKqt5RE9mzdbdEialf2p/0nLF+4mrZhgCce
I0hT8crRbscNuXy/R3mI9NGzs7Q+u5+01c3HPSMJVSkCI1DIcfhBAwgOP6hmyayVg2KTbomFYhmZ
jjl9+E3HPc049Ku5q1j6/HzS/It2f+i8ne7n3+evz8fS1xleiT/huj1funPqTcc+zaujOhr1OOMp
wpObO44Tl4LOjM7YnJznS9Do//73PzFj4fK6667beeedmelvtdVW+rhJYmVGvNtuuzHlP/zwwzEQ
PTN61lXvuOOO8847D83TTz/NY5wXXnhh79jBp5woqbJQG3JenRSXGIHqe/uisbMiUFtX4v7rsE3F
tSd3uO+n5afszQyp7vanNrixfnLpttWlX82oW9I0Hz/LJgUlNVAPTSgeBEov/eBo5s6LZn29/ouN
z/ru1Xh22aOnRzb/uke/hlk2j9TbRcqgxVtPevb3L4wT19evrVtfuyF80p1xJUOckTx5PDV5wvST
btorFWfc3N5++214ja8nU/QNduMnT9q3j7/kT0Lm+Cwgdu/ePRIJWwBJsQgxY72V50U77LADwYI5
2da+hecupQeNKAcTAo71jQcPEs97bg9P2x18aNV5u0aXjxa9veaAe6O/Ohd+jBjarnrVhokzcvOq
n5Z10T4vMb+h18nBchMHt1s5mMjroUlMyAkCXCme30RiVDR06FDwj0CCfAg07d154/ccL4UdtP0x
N714btdNO8nXnBXtfWiCAaCOAXPiomYS4kz0ParS0khF2dqVtYecG32qI0eIM57ceP2I1UD2P0p8
gN6YWZO/vp8t0V979erVxC67AEureMVDKcmmOJ3MrootKfW6BIZ86ME1owZ13LdH/VNP1SXGJtSt
9KfHVw2fvvahG/Lw/CihMFM0LwIRBmiw58h+o7fpN0JcQWBzpjeeerpmeDWfeHJbQ9+1d8eTbt47
r74yOlg8e/n0YGeOuXr3RdOWd+ndEWeSeuKbGy9gso8d72nyJBpylKolzSp/BjipuzHhmxRUbE7m
r/rFkzMNgTNyXuf3kcipd6597Udl/1pQn8JDofrv/yq6xJ+Pw/UzH/lbnukiUHrT45fkagvOdMv2
2Aft4JnZ5qRBudEFeVxu+4ECflvbD5Sm16NxBh/9DQ+O2tpaOTOFP+0J7xTe01GbK3jNAdEpPEvt
zBzlbFP4wrRFyBS+dOnSpYVxwkoxBJoXAZc9kd01UJdAxz9WpAR640GBBMpcipUlWwPNUwcLIVCf
9c08OWHZGgLFiQBk6jpW2yTkxhSR7PG5iDxrY64YgbaxBrfqJkNg7spm/qGXIAdX19bXbagP+9ok
KKXp84aAEWjeoLWMWyYCdX/vnvTpYuyRUwlnHQkWYNh62311PdZuiJTXt0v+RV7LhL4Feh1Juq8E
H9jw1g6r17z9E1JBvgFnpQCzEBuLUgTAilcPwyFV43CBB2I8+uDt/Xz/Rl7x94TsUU1KnbSFy54F
4M1YedFipy9c2b1XXXn5Bt4/1oEPrU/Ts80Nn8aJ86lUIbxH5SQ2pLcUrMemVZEQh0PyifzoRz8K
iSaKp0zTpk3jNW/kkAv+jDPO4LPxH/7wh+G5tfRYth3561//ethhh3kqwktRZ599durftrMT6NFH
H80moXwq6skqrSB9kabh0wC2jMK3tNKma5y/npAuekGe5wrVoPwb9PUNY89CsCdF8hphrMR5S1d8
Nm9FVUV5VUV9ZWwmv3jxYr4nZtQybNgwvuyAOuVI4n9BooN6SyF7bFoVDXI4PJOwb+ElJZclzMj3
3SEf/7GBGzsVHXvsseGFteLYQw45hD07Uq8gr81vs8022X8OT6PQNDRQvtmTquWvJ6SLXhDOuUJV
J+aJBUGa0X9iEWNQ+C3v/0qjRfAB0pyl3yxeVbeqcb8TNkNgdsgHbAVo/UQowjVBvaWQPTbcQ09s
kMMeM08wOYFKArqm7hDsyYLgJZdcctxxx2U5mErMtgVpbrzxRvZdTsthtnC++uqrv/oqq1/goVH0
E6a0Ss/YOB89IQP0gvzPHlVeb4ryY9PDv7gYr0XZE0H/NfBpfen6ZR+980Vdo57NdkL+xZM32rsa
Kb1T+8oVa+tWrN3A0yTRMHlnuwZ/34pDm9hbCt9j00Ii0eHw5F4Cpff4JoCe2UrdN+qzzz578cUX
2T5DY9kNk5e0x44d+7e//W3ixImynTD7CnuWC37605/y4xak+u53v4uZJmcXTjYtJhiShNibb755
991379evH2U9+eSTmjwoNwxwkpEyG82xcTIbgjDpZiFSE/q6rbGJwlNPPUVZbA5CFDuBahUoha2U
2XZkzz33ZFMS9KzNUVnmWQcddNAbb7whWbG3U8eOHf/1r38l5nzMMcew3dztt9/OxiVffvklSyjj
x4/XHwVx7WmUPI0+su8JnlqEgK/o/e53vzvrrLOkgrNmzQJeGkWCH330EUE2DSDIa5vox40bxxdl
J510EpuzKCYhqEKJNAo7bJHq17/+NdMmTcWyzKGHHorDPBKQ90MxJtZlUTWO6t0AlNc4CI2pGxOt
mXLcjnevahLlJmsix3Og3Ng/1ShBV1VGd3Gu21CyvvFbqZUrV7JXQ5OMiiyQyBtZ9lj4V3Y3dyvq
q3QNkFOxwSzRYU8+nmCZdBc58xTiV7/6FWdXqbJ0KU96gu+//z5fROidELpkqzT27IAvYMDf/OY3
7DyEGSs17JXJBu+SA5u6P/DAA/379ycINciFIVEs6nG1hCe56KKL2Nxo//33ZxDH3Jmu/+CDD0ry
oNyIfe211/Dnn//851FHHcW2Sbfccgs/TCSpgtyW2MQzRMx2yKw8yl7Fzz77rC5xUApEcPfdd+Me
X2py22BwCh3gJLuQULSyNp4L/3ry5xc62Y/5zDPP5PbAViYs7cGzCp1rTKNoA+VQyElP8NQiBHxF
j+1WwU3w4ddTaEo6idSXD3DZSFB2J6D1//jHP/KDK9xouQmx9Ozeh4JQpYlJxU6Dp556Kp2WhpAm
+9Of/kQv4l7FLn/PPfdcI/9F/7pQpyQ30G5sDFtRVbNXl+jOZinnE7ONnzwluvmw1kksmqBGZzrI
/hfQK12UzW2DzEL0DID4hYUQgxSjXLez95kLinunp2hXybaNrGx4DAi6NomxrsbjsKcVPMEIKVXF
khx9lDM0qkoRpME8SgmyqxvkyAINQR4Hw0oMIk4//XSCnBnoiUO0x29/+9vHH3+c7kvUE088wY4e
jMgkE99zUBLBAn7hyRUJGdpwwbM/Cs92QvyUIuB6LkVZbcBz+hb6ELd9HePahg0h0AsvvNDXACLA
ho9DDjzwQMahPOCjvlhyX2GfZqiQXfII0sUhCD4ixCtPPtxFGKvKHjDsgowc9AQPeAVhTw4SpH3B
PN29k7PvCVK6Wws0vuC7brPDH+OLDz/8kMse/uWuzDYrvOABS4InsdK+RNGL6E6kPeKII6BmNBCi
ZOWLKk3MMJMOSSrgoqtst912TFxYfmWnQQaktCYDW/npAdclZP9OBbtGScxzoFrx+KVnPTRnQ/tV
Cya8MO3kUz7psGpB/0MuPvvQIR5T36A2pU+hfnyOPU1MT+NMEjkkZ2rHAIXNZ4GU25JvcSFKdgfn
CnX5IcQ4KAp/EqPwmSNRjyapz5LQ45WrZLrWuXNnjwE5uza+RYvS1+EQ+7Lol8Cxg7s9fRT+5ozc
qI7+xZugCpM1NDRgwAApg/2G2VuIPi1BxsMwiMjskQGVcDFLkEkuWw5TnAR9z0FJ8HDt2rXujsVc
Wgzu3GGsb4YomQbqWu2QIUMYCKMMcTsxH7YH/f73v8/lJ+sPiQZoGJbSpxEYQnKWXwFBYEdRzoxG
OXNAEOw6yuM/Cbpnkgh7ouSHdlmaCcKKpqGB3PZyZYBihOVqkso56QlSF7cWaHzBd2vN7Za7BWyI
kkZhaAmM3DzwGaW2OD9MAg9Stc8///zf//43KyRwn+bji6o0sTYEQzNWYLivoCcf5u+SvEuXLppP
AxvFKCDF6ypmW7XD4T87Y/ypp40/Yq9v7f2TU0/9+ZnnHjYq+et9tCOHlt4kKOoAMvJtffIBNNCj
kzMqQuZnELlVcAun4suXL+eRL0sZLBkzHKFLA4V0DBbld9llF7oloyhWn1B6jJkzcbMRY5bC7rzz
TmRoi4tClHoO4g2qlorPTES4XiidDBn0aP4kZ34G5zBy4l4rxaEUASqgRsjYsFzDo1rqqzYsizFB
2WOPPRilitI9BzmsjZIoxKfwLB6xAMRthzMyebkH/iUmFg3NoztsQg3Qk8yzJHbTTTfVhCxaMeKD
6XiVgRUo7bVqIAJVUo1vEioPp9D8alZTU4PMModqVHBzQ+muGekNNtxtzUoEFnZhdiri2VDZNdNa
C40y2XRjVRY9XUQ1KtDvVQ4XpDu6jeWRSe7RhAdz0hPEZ08tfMF3a8c8hnVtrmde0IEcWd3msofj
mHGz3se1IcbvvfceCyPcnBgwsmIuW1lrPr6o0mcgQS4eNePiZObEEjM9lgZFn8iSaOTQVCkIkepB
/FzhoEHb1nQuGfCtwYOHDh0+qFenFBJGHeAQT0SIp4pef/Uy5nWjglofazbNgQGZ8DKgocVBgN+R
ZfDBfYjfqmFwM3nyZC4cOIXxPiN91s0w49cSWXxjrsC7paxXovEY89Cf0Q+vnTK94CUqisCG1Tla
CsFz+PJG6j6zxgKNkiezEGgRgbQ4xmBCdoBkWUaU1FeKppqM4bBn/RAq4xfFYXmxYRbCAxuYh4E5
63hi7zn7OhxvhQQpAhAJSq+CNq2oqPRqG8M0J5woIaZaeM+IQHokSurTaFjCaJTbGpNZkkBeLBFq
lCtAZ3ql+SahFEYN9A/efZOE8usaSltBuaF3O5+ahbutZiJwJ+SiHTlyJHVhQO2boa/Skw9BFjfp
qVzGiVGpawB83bq1iTc47sD0GPoHTPSzn/2MDOlJrIqknnOiZeo9ITEtmlRg4fJmyMx4Ex7kTgyf
QqBMyuRVRzKhRrzywY+bctFy5bNaAs+6OfuiylIy1wbDK+0ksAOp0NOXYGduyYk+k8TN2WsAqUF3
PPWJPUci1r38SutKS7uVxp9RehP7hN3kWnRs5BJt3g08P0o4aHv2g2YvEfzUQ6x+8IMf0OJ/+ctf
WO7nMidDlry42SDzwICK//KXv4SVuFpZD4FkWfHkuQK/nvDnP/8ZG3BmXO9rzP2BZwDc1XiiQGOB
HvMAmBpj18Gg3hLUY0nr8RkNY2Fuq7QR/pA/QZoeb6kOZ5qedkRJUEpHIEhC3u1jhZDfiJRlGUnI
c2OimM9x4/R4iz7IYaKCDv2ioYQuy1oJIyYcBWjW1IPSePQ1NTXwuiiRqcCrr74qFyrVZv5F75dY
BCospMMkV3+gDb1OY7l1sERI5UOSMHagFFa+lA64l0LZMhAOyc3juQbD3VYzEbjC8VzeEOD5bzZv
v3KDpWhdUvAUlGWQ3kMX4RrgJszCK7kFraJ6CspJT/DkmXoQeOl+9913HxNJUjELY0GWyx69ZIJ7
3Bh4lQJeQEMFmQPJmrIY+KIqY2HSsoyAGVcdIymWCJjvE2QwxQAKgX7lnqEk0SCgT/2I2nfa8aFn
4tt+h6eVUrBBEFlKjMlNi07ZE9Y96V1uuTIfQsP7T8ztBEC5c7CCzIyQgxEfP3ztpko05kEcT9v4
5URGr4xAmSNzpQ8YMMBNlZns+iw4hOSDAVeiPH1JNGMozXya1Qae6MpFqjOVdFszMXPVxF9j2mWX
UQz3ZNUSWS2SCvKqjSxC0cthN8jlkUce4QZ18sknc4tzc6DZWGJjKsHdQ/U0GMCRhIEka97yEFZj
E5NIKTw5ZawK3fMMl7Ss5sijmPDcNFtXCHeboVziwy7pf8wgGO+4WaUlMzznZp40CWsFOMD6elJL
14DpKqM20GB8jcDhLq24lh45Jz3Bk2fqQa5DLnumKUKgjPRpYt6TUwKFK7nl0OhctNxr+fiNwQVP
EbUIX1SZ/rP8d+2110Kv8C8XFeMg5kCsy1Mij/VZDWcthRU9uW71jCCH5u8j6CjRiZOrNIfXqpN3
tiIMyBoU9wzgpWOQHZctX2T8/Oc/Z3TvyT3RGI38Ti1TQIDlXQh91OFJm00Q6FiSZl2OES7jaM2K
IC1IkNd75NfINUoFGhcagT0ZI0M4qs+5ECdQlhfgaXonZ2S3pPBOwH2MdUaZqnM3YHGBryNYohoz
ZgwJeVrNBay5ocSGJQz9pXKioCEqzOidhuGW4nIrsYlJIEo6OtcMbc+o88gjj6QUee6fNDf1xBXC
3WYKzGjXtReZiTwDGfmpuMTYVDRc/6kQKKXgAEs/QXmGN1BQqiB9TnpCUOap6OFKOEsIlPERQ0W6
EM+XJC1TDdqa5yGsgdL3ABD6YxykDeGLKoMvpqhcVOTD/IaHHgxseUzHUhIvh8LFPF9iuYAFMikl
XUibXDCpVNJjExtXUigHrooQM2k6/PSkEotYWr+YQB1vsFBxniLwEoIyJoNQoOPJjCdZojEJQUzI
i1UC7km+r3lQC09WGgyJUhsE3p5mxgBXuHTB4gPrBrQX318wRHPtVWbUzMyd2rGAyzvUqg8XUvTK
zYQNlZsMoCKR8vXr4w80xbSsrB1w8/BERsJuepHpeaDv/gw6gwIGzDAdA0Pm1KyqaCrue1RMu7vo
GWXQeFwSvktRvklgbaiNASCXkPvwlAzDc1NPEoUQtxONs9TgPPNTHpgwAso4K0bu3Ku4/fAcPuNM
fBPmqif4Zp69ktUJBuY0vSyAcMFAsjzBD0FVBpIsftEzWc2gk3DQizgAkHUA7qOQF0MqLiRlMVLJ
dSVniJJZfiyraCWgiKYkkUikXgv/ukfTNaTlj5NnVIwVWHL2dffPq+244+A+QzZtP3jT9lxcvAPH
dwT4jwnu6eFfRIKW5TIqoitpCfFNFGkZS0pf3ki3xzLedD2kslyktDWjCvRUuYmXTQMsDDKlbqoL
C/k6TAKWifWVGEmvPyoXH4FKRCJ7iotkAfEHFc4YnrVnbu/0TuaJrAzCgzQw93nWSmSOIGmZeTH8
ZmjtyYr+yiTClz2DkpA/42XGKR72JOeQ3DzlSjCp276pslTywiwD52zYEwdoFJoGIbwnZeBqlj0h
gxLTSkLFeZNMl4+Z9MCe5JAUVW7S+hxJS6TDsOIhn3UokiJwlkONXQGya6C9Bq3neo4FxSj8HE2O
cdS+MYuGYEPGJSVra2sjZaWRspJ2fBMaO7he5FNgPFSz1AVoyOWm8IRpGZOVuJTIG+n2WI+HXPV4
Qv40d9Jap8WeQQ6HwxIJd4I7MelxmhUi+mhQXgywmbmzassOQywOsjbPcJX1EZ4gcT9HSULuBpix
JMoTYempQbmpPoMkmjYtAX+C3E4rn9SNGTGxzMc7Jakn8bWkUWgablGMQriIeMEufgH6JvBXNiUB
P5sMeoJfNvnV5QRVuSLcs7/TUFaME3kE3/TwhpvGJg35JI+OeUtKVq5e16lr2UaVZe3LG2y4EzB9
5lWExmFywzi0aRliTAY+OTdaZhnbmE3j35De4tdjG5PF/2bvczyvBInKeo8Qh72mTcOljISbarwh
3haikSA+hnvcvb3RjWFuNdjwW8koGNCxvsuYn6k3C1jMjFAyS+J7Oyb7NTU1jYmS/M0gSZIcQ6N9
3Q5NkXkkC5oA676WmFlePEZj7smon5Fs0Jv2meWcmCqDnpCYSV414ajG5t0NJ5m/6xSeyRNzQ85M
j+SlKAhUODTRYaGzWEaJkXnRxPiz5IcX/nXIoC2HDezRt0vVxh2i62M8YGHJgscAXFPMw8TnILfz
4llwpkG9pZA9Ntg7n5gghzGF3IKm8KU8l/TJzFEx5ObFK8ZotJNQoRNpYjMjwDXP91dQP6/iJr7X
llvnWnpPSJFAeTYiHBTERNEBTJTSyC86MIz9jyLtM7CJqrM6GIk1Zlv/u2v+OXL4kL6bdOjasbwy
9oABDxh00wH47oDWD3c7Kz/STxzUWwrZY9PyOshhMgkh0Ii+ShlUGMtD8KYcQTamby4EaBdubEzl
6JeMp/LqRhvpCdCQMFEQmFFS48mQvD0PibJyEjOVaWdQqoz1jdmWbtGrc3XnCqbw7RpXPGl9Jh+8
fsTwGTIVz8Odz9iNdBMG9ZZC9ti0fA5yODyTCI/Iwy0stsgRsHtb4RuokUNZV4zyWyPH5c+R6Fh3
087lnSrLeI7kFkPrc+VzKHsWCYG6Tnrk1tRj418ieSppQUPAEAhBoDDEGXUgOr6Njnjbl3vZM8Q9
iyoMAkaghcHZSmmdCDQZDTZWMbo4qkf2A8JYGW6WmrcJzY6AEWizN4E50KoQWDPtidN+fW9ZbPul
+lULNjuUnUC3alU1tMo4CER4wOQETTQEWi0CDAzloIbyApO8zMQTGA6ewnFO+lZfUnSqem536nmb
lVSIYW15t8A3/5Jm5THAN1614e0l1hA5c8jqpwgY6zKoJ6EF84dAxPN+U/5KspwNgeZFoJE/o3+V
QGPkGWVPOfAw2zl3p+qh21XnvKZ4xQN33iaUJzAuhwqBKntm63/OXW/VGdoUvlU3r1UuUwSKioZg
/EzrYenyi4D3W/j8lma5GwItAYGiYk8AKzZ/WkIbFshHI9ACAW3FGAKGQOtDwAi09bWp1ShVBBjZ
uYM7V041i8LauR5GXW/8JKmwXlhpcQSMQONYmNSmEHDZR2UVihAK9U0FnHTlIvS51btkBNrqm9gq
GEcghG40qjif2KhX6me8Vo1SSFSjif3NMQJGoDkG1LJr0QjwShC/7qVsVSR1wR+8wrci8cfcUASM
QBUKE9ooAu7AjZ+uyf5d+nzgiFf4pjm7PqvShMIjYARaeMytxGJBABoSJhKBc4cOHfipJdiqeAah
eII/eIVv6icIilwsULZVP4xA22rLt/l6Q0CCgQjCR+yqy4/tTJ48mR8r5NukZgcJH/AEf/AK35Q0
Pc43u59t1gH7EqnNNn3brbjQkI4xJahn+bWyqVOn8rvZ/KhMwzeesf2q5btPEiIAH4IcmUGpJZKc
9U2CnDn4wl2/12TazsCTH0eTX6DUJAhaqCg1aEIhETACLSTaVlbzIwDdwHrqhzCRcJCeGevx08c8
t4EoIVDhTc76BT05IGfDnuIAJepeyAjCnjEWjZ7kg3c8QVDfRCA5gtYiMehGmZw/BIxA84et5Vy8
CHj4yA3KFkdCZ1AkRKZEKZzFGQ0Gqs+4np5yKcstXXxQjWvskTN2wBJmiYARaJYAWvIWjAA0hPdK
RkpVCCgliAFEKWZylk3wsmdPcpMMtSwE4VDOIrieiD/qraSN5WGnZkPACLTZoLeCiwEB+Ag3lJVE
gKrgLyiSuTNTeJlBM4UnFvbkjEFuCVTyFIqMkWfDSqh4wlkc07P4XAwAtnEfjEDbeAdoQ9WHfWQs
SZ2FiQgqJYkghIUBRAmRIQiHShIZe3IW9syeQ93ShT31TLnijJxlQOraI2tFEOQQZWPI/uYdASPQ
vENsBRQVAkIxwqQiw1AE5YwgY0xhTzwXG6VOYU/ORLkEKhmmWFOlOQSRKR2Bsx7CmJw5YlbxWLEU
pZToyin6YGY5QcAINCcwWiYtDwFIR1lPCAjyQgNhuZVBSayHQJU6NQc3SeoyOWMspXNW9kQQ3ozS
Z+MhsWKsRUgOGjShwAgYgRYYcCuuORGAblzKE/bhDDehV0FdRKNLn8KhQp3uWY0zEMjfcyiHooc5
hUlFQBZjFQi6hXqCbpTJeULACDRPwFq2xYuASzTCm/gKKyV6LFSFjYc9dQqfmCRdjTjjciKyBOFN
YpVGRS9RkoqzHumWa/Y5QcAINCcwWiYtEgHYBz4SNkRw6yDERBSCEKiMOtEgYOme3YRpyWSOvZ6V
HEXg7HuIb0RJwrRKNOPcImAEmls8LbeWgYBQj5Cg0hACrCQVQJYDDaTJWQhUz1pPyUSDqQvkr8aN
pcX/Cj9y9ghqIWklqPmYUGAEjEALDLgV18wIwDhKeciuN1CVRiEINyGIHsE93ITZy1JW4lnYEz2C
yq6ZFo1SZRMKhoARaMGgtoKKCwEYB0LEJw/1CE/JVF1slDcxFlmEXNVHHODsChKUcwh1SpJceWL5
pIuAEWi6iJl9i0cA0nGpE9lDQxokCialwi5vSlpRZo+FloUgsgrCmxSBwFn0GquCRGXvieWQAQJG
oBmAZklaPAKwj/AgApVBFoGzMCacJUq1JMghNU8UMkNECiWtK4jM2SMojYq9xLppM/PBUmWDgBFo
NuhZ2haMAAQkPKhMJJUR6kQWAzXzJU1VZgaEW7TKInjOBD0aKVGUmZVuqbJHIDJt2rTsc7EcDIEW
ioAyoAgalOoQVI0KRLlyTiru8qDKCCpLKRJUpQo58cEyyQCBSNeuXTNIZkkMgVaDgMuGIqvGI2gw
f3UPokiPHgeMPfPXCuE5L1u2TA1sCq9QmNBGEYCJlBmDWEn0apY/pDwOaFAFKdoTzJ8/lnM4Akag
4fhYbJtAQPhI+bEZ6clTtCdIYyRq2kQLFVklaQU5IhdffHGR+WbuGALJEfj973+f3ChNCy4JSRHE
pBhoVJp5p2SuDiRah0QlGpumYAhErrzyyoIVZgUZAjlB4NZbb81JPkGZeNjKJU1PVFAO2esLVlD2
rrblHGwK35Zb3+qeEgItiMsWLVo0e/bs+fPn85vMKdWtUEb8OHOvXr369u3bo0cPT5nF6XOIw67/
RqAuGia3SAT+MO7fsz9dqq533Liy7+BNjjhzZL8h3VSZK+H1CZ+v+nrtPscNdTNcNn/V5GdmfDll
cc2wniP2q+nUtUpjp7w2593nZq5ZtW6rUX2G7d2/Q+dKjXr/hS+nTJqzdlXt0N37Dd21T/tOFRql
wsNXvVlSWjLu9B1VM+PDRWQ459NlXTbtsMPomiE799YomIifs+/Tp8/w4cP5KXnVF4OwdOlS3pjE
PZxxObRofQ5yWMDkniqHEWgx9C7zIVsE+m/dbcwPh5FL3foNi2Ytf/mBT6449rHLnz/KJaxsyygp
WftN7cQbJ282tLtLoLDnBd99iII227rbxBsmv/LgJ2fceWBVp3KKe/6ej+6/7PWOXar6Ddnk7+e+
XLNtjzP+fmC7SPS7zOfu+uj+y18fsE2Pzt3b3/n7F0vqS866d2zfQU1Y751nZzx1+/tDd+2rnkPH
N/7ima69OvYd3O2tJ6e9/MDHR5+76x5HDhGDGTNmVFdXjxgxQu2LR4DQOfjKCyddAi1an4McFkgr
KxtuhEagxdPHzJPMEejSo+MO+9Vo+kEjqq888fEpk+YyHlRlNsKMDxa9PvFzxoxL5q6EQN2s7rno
VRjt7HvHVnYoXzpv5UXj/v3IdW8ddfaolcvWPHLN23h14sV7lle2Wzhz+fljH3zi1ncPHr89e4o+
eu1b3zl+G4bJZLVkzspzDrgfSj3hD7trzsuXrL77wlc9N4CHr35zwLY9Tv/b/rBw7dq6y4+ZiGaX
Q7aMVER/hmTevHnFyZ5aqS222GLixIkaLH6fEx3G5zvuuKN3794yAm2yiaxbMZMNgZaLAMM6nK+o
bPh1o6t+8ARTbK0Oo8gHr3xDgzDXpUdNuOqkJ164dwpmD/05HqU2i+euhAF71XSpbB9pfFYfjVyx
bM0HL83a++itYU+Cm1R3GrJT9TvPzOCj+S/eXciIdddxg2FPonpu1nnLHXp9/Ppc5DmfLF27ev3I
g7ZA5ujWp9PAYT1XLl0jQTnffcErzPoHDu/JFF4OGJOZ+6ixW8oYlmxHHrT56hXrFsxcLgYrVqxg
3NRgXZR/cA8nXdey9Jl7RuJjcF+lWyhyKjaYJTpMcZ07d+7SpYtkWDpu3DhP1hY0BAwBQ6AVIMAg
UWohgu7GIoNH9yy/noIGGw4E0UiQs/ywSvv27bt37w6rigZlZOjQJsvhrQA1q4IhYAgYAiAAzQkO
ECKCnhE8h1gKLUoUsu+hVCs5RzASyc6GgCFgCLQmBKBCqY4IehaKdM+YwYQhBmKMmdiIgMyCTuMS
ixRlZ0PAEDAEWgUCSm4i6BnBcwh7ytkTpUEgQZazKo1AW0VPsUoYAoZAAgLCd6iV+ERW+nOFVNjT
tZc8jUATUDeFIWAItAoEhOOoigh6RvAcyp4qeAyCgrYG2ip6ilXCEDAEEhCA9USnAsEgKkxXL1nZ
CDQBdVMYAoZAq0BAeVMEPbtcSUU9o05PUI199UagraKnWCUMAUMgAQFhTNRKnSInciLkGBQlxr7s
SZRN4RNQN4UhYAi0CgSEN6mKCHpGSGRMlJ4jkTRdjcj/B+pDXU2kR+uNAAAAAElFTkSuQmCC
</data>

          </attachment>
      

    </bug>

</bugzilla>