<?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>214437</bug_id>
          
          <creation_ts>2020-07-16 18:30:07 -0700</creation_ts>
          <short_desc>[JSC] Clean up Intl option parsing code by introducing intlOption&lt;&gt;</short_desc>
          <delta_ts>2020-07-16 23:09:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1672347</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 18:30:07 -0700</bug_when>
    <thetext>[JSC] Clean up Intl option parsing code by introducing intlOption&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672348</commentid>
    <comment_count>1</comment_count>
      <attachid>404508</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 18:31:11 -0700</bug_when>
    <thetext>Created attachment 404508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672352</commentid>
    <comment_count>2</comment_count>
      <attachid>404510</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 18:37:44 -0700</bug_when>
    <thetext>Created attachment 404510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672359</commentid>
    <comment_count>3</comment_count>
      <attachid>404510</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-07-16 18:56:27 -0700</bug_when>
    <thetext>Comment on attachment 404510
Patch

r=me, this is great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672392</commentid>
    <comment_count>4</comment_count>
      <attachid>404534</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 21:10:56 -0700</bug_when>
    <thetext>Created attachment 404534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672397</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 21:53:40 -0700</bug_when>
    <thetext>compositing/repaint/iframes/compositing-iframe-scroll-repaint.html is failing without this patch recently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672405</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 23:03:01 -0700</bug_when>
    <thetext>OK, failing tests are failing in buildbot too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672406</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-07-16 23:08:11 -0700</bug_when>
    <thetext>Committed r264500: &lt;https://trac.webkit.org/changeset/264500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672407</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-16 23:09:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/65709681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404508</attachid>
            <date>2020-07-16 18:31:11 -0700</date>
            <delta_ts>2020-07-16 18:37:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214437-20200716183111.patch</filename>
            <type>text/plain</type>
            <size>35157</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NWMxN2JiNjE0MjY4ZTZkOTE0YjZhY2U0MDIzMDZjNDA1OWYyMDE1Li5hMDc1MTc4NDUzOTYzMjI0
ZmJjNzY0MWVhZDExOGJjYWE2NjA4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIEludGwgb3B0aW9uIHBhcnNpbmcgY29kZSBieSBp
bnRyb2R1Y2luZyBpbnRsT3B0aW9uPD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBpbnRsT3B0aW9uPD4oLi4uKSBm
dW5jdGlvbiBhbmQgcmVtb3ZlIHJlZHVuZGFudCBzdHJpbmcgY29tcGFyaXNvbnMuCisgICAgICAg
IFRoaXMgbWFrZXMgb3B0aW9uIGhhbmRsaW5nIGVmZmljaWVudCwgYW5kIGl0IG1ha2VzIGNvZGUg
Y2xlYW4uCisKKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvci5jcHA6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKToKKyAgICAgICAgKiBydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0Ojppbml0aWFsaXpl
TnVtYmVyRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpyZXNvbHZlTG9jYWxlKToKKyAgICAgICAgKEpTQzo6c3VwcG9ydGVkTG9jYWxlcyk6
CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9JbnRs
T2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjppbnRsT3B0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHA6CisgICAgICAgIChKU0M6OkludGxQbHVyYWxSdWxl
czo6aW5pdGlhbGl6ZVBsdXJhbFJ1bGVzKToKKyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2
ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojpp
bml0aWFsaXplUmVsYXRpdmVUaW1lRm9ybWF0KToKKwogMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSB1bnZhbGlkYXRlZEdl
dCBpbnN0ZWFkIG9mIGdldCB0byBhY2Nlc3MgVW5saW5rZWRDb2RlQmxvY2sgZnJvbSBDb2RlQmxv
Y2sgZGVzdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvci5jcHAKaW5kZXggYmM3NDk3NzRkMGNmMmMxZDEwMGI1NTQ3YzQ3OWYxMDczM2IyZmJiZi4u
NWEwMmI3YjY3MWY3ZDE2NTQ0ODZkNmYyNjY3MTJkNWRkOTk3NmQ3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50bENvbGxhdG9yLmgiCiAKLSNpbmNs
dWRlICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAiSW50bE9iamVjdElubGluZXMuaCIKICNpbmNs
dWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKQEAgLTE3OCwyMiArMTc4LDE1IEBAIHZvaWQgSW50bENv
bGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBsb2NhCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CiAgICAgfQogCi0gICAgU3RyaW5nIHVzYWdlU3RyaW5nID0gaW50bFN0cmluZ09wdGlvbihnbG9i
YWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnVzYWdlLCB7ICJzb3J0IiwgInNl
YXJjaCIgfSwgInVzYWdlIG11c3QgYmUgZWl0aGVyIFwic29ydFwiIG9yIFwic2VhcmNoXCIiLCAi
c29ydCIpOworICAgIG1fdXNhZ2UgPSBpbnRsT3B0aW9uPFVzYWdlPihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnVzYWdlLCB7IHsgInNvcnQiX3MsIFVzYWdlOjpTb3J0
IH0sIHsgInNlYXJjaCJfcywgVXNhZ2U6OlNlYXJjaCB9IH0sICJ1c2FnZSBtdXN0IGJlIGVpdGhl
ciBcInNvcnRcIiBvciBcInNlYXJjaFwiIl9zLCBVc2FnZTo6U29ydCk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAodXNhZ2VTdHJpbmcgPT0gInNvcnQi
KQotICAgICAgICBtX3VzYWdlID0gVXNhZ2U6OlNvcnQ7Ci0gICAgZWxzZSBpZiAodXNhZ2VTdHJp
bmcgPT0gInNlYXJjaCIpCi0gICAgICAgIG1fdXNhZ2UgPSBVc2FnZTo6U2VhcmNoOwotICAgIGVs
c2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBhdXRvIGxvY2FsZURhdGEg
PSAobV91c2FnZSA9PSBVc2FnZTo6U29ydCkgPyBzb3J0TG9jYWxlRGF0YSA6IHNlYXJjaExvY2Fs
ZURhdGE7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBvcHQ7CiAKLSAgICBTdHJpbmcg
bWF0Y2hlciA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2Nh
bGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJl
c3QgZml0Iik7CisgICAgTG9jYWxlTWF0Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxM
b2NhbGVNYXRjaGVyPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxv
Y2FsZU1hdGNoZXIsIHsgeyAibG9va3VwIl9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAi
YmVzdCBmaXQiX3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBt
dXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hl
cjo6QmVzdEZpdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICBvcHQuYWRkKCJsb2NhbGVNYXRjaGVyIl9zLCBtYXRjaGVyKTsKIAogICAgIFRyaVN0YXRlIG51
bWVyaWMgPSBpbnRsQm9vbGVhbk9wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPm51bWVyaWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7CkBAIC0yMDYsNyArMTk5LDcgQEAgdm9pZCBJbnRsQ29sbGF0b3I6OmluaXRpYWxpemVDb2xs
YXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGxvY2EKICAgICAgICAg
b3B0LmFkZCgia2YiX3MsIGNhc2VGaXJzdE9wdGlvbik7CiAKICAgICBhdXRvJiBhdmFpbGFibGVM
b2NhbGVzID0gaW50bENvbGxhdG9yQXZhaWxhYmxlTG9jYWxlcygpOwotICAgIGF1dG8gcmVzdWx0
ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3Rl
ZExvY2FsZXMsIG9wdCwgSW50bENvbGxhdG9ySW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5
cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsQ29sbGF0b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNp
b25LZXlzKSwgbG9jYWxlRGF0YSk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGds
b2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0
Y2hlciwgb3B0LCBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBX
VEZfQVJSQVlfTEVOR1RIKEludGxDb2xsYXRvckludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktl
eXMpLCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxlID0gcmVzdWx0LmdldCgibG9jYWxlIl9z
KTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CkBAIC0yMjYsMTYgKzIxOSw4IEBAIHZv
aWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgZWxzZQogICAgICAgICBtX2Nhc2VGaXJzdCA9IENh
c2VGaXJzdDo6RmFsc2U7CiAKLSAgICBTdHJpbmcgc2Vuc2l0aXZpdHlTdHJpbmcgPSBpbnRsU3Ry
aW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+c2Vuc2l0
aXZpdHksIHsgImJhc2UiLCAiYWNjZW50IiwgImNhc2UiLCAidmFyaWFudCIgfSwgInNlbnNpdGl2
aXR5IG11c3QgYmUgZWl0aGVyIFwiYmFzZVwiLCBcImFjY2VudFwiLCBcImNhc2VcIiwgb3IgXCJ2
YXJpYW50XCIiLCBudWxscHRyKTsKKyAgICBtX3NlbnNpdGl2aXR5ID0gaW50bE9wdGlvbjxTZW5z
aXRpdml0eT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5zZW5zaXRp
dml0eSwgeyB7ICJiYXNlIl9zLCBTZW5zaXRpdml0eTo6QmFzZSB9LCB7ICJhY2NlbnQiX3MsIFNl
bnNpdGl2aXR5OjpBY2NlbnQgfSwgeyAiY2FzZSJfcywgU2Vuc2l0aXZpdHk6OkNhc2UgfSwgeyAi
dmFyaWFudCJfcywgU2Vuc2l0aXZpdHk6OlZhcmlhbnQgfSB9LCAic2Vuc2l0aXZpdHkgbXVzdCBi
ZSBlaXRoZXIgXCJiYXNlXCIsIFwiYWNjZW50XCIsIFwiY2FzZVwiLCBvciBcInZhcmlhbnRcIiJf
cywgU2Vuc2l0aXZpdHk6OlZhcmlhbnQpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7Ci0gICAgaWYgKHNlbnNpdGl2aXR5U3RyaW5nID09ICJiYXNlIikKLSAgICAgICAg
bV9zZW5zaXRpdml0eSA9IFNlbnNpdGl2aXR5OjpCYXNlOwotICAgIGVsc2UgaWYgKHNlbnNpdGl2
aXR5U3RyaW5nID09ICJhY2NlbnQiKQotICAgICAgICBtX3NlbnNpdGl2aXR5ID0gU2Vuc2l0aXZp
dHk6OkFjY2VudDsKLSAgICBlbHNlIGlmIChzZW5zaXRpdml0eVN0cmluZyA9PSAiY2FzZSIpCi0g
ICAgICAgIG1fc2Vuc2l0aXZpdHkgPSBTZW5zaXRpdml0eTo6Q2FzZTsKLSAgICBlbHNlCi0gICAg
ICAgIG1fc2Vuc2l0aXZpdHkgPSBTZW5zaXRpdml0eTo6VmFyaWFudDsKIAogICAgIFRyaVN0YXRl
IGlnbm9yZVB1bmN0dWF0aW9uID0gaW50bEJvb2xlYW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRp
b25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5pZ25vcmVQdW5jdHVhdGlvbik7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDdkZmJjMzY3Y2Y0ZmI0Mjk4
YWRmNjExZDEyYzZhZTJmNDY3NjEzODUuLjgyZTY3ZWVlODhlOTAwMzNkNmY0M2RkMTViYzlmZGU2
ODI5YTAwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtNDIxLDkgKzQyMSw4IEBAIHZvaWQgSW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG9wdDsKIAotICAgIFN0cmluZyBs
b2NhbGVNYXRjaGVyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZt
LnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgImxvb2t1cCIsICJiZXN0IGZpdCIgfSwg
ImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIi
LCAiYmVzdCBmaXQiKTsKKyAgICBMb2NhbGVNYXRjaGVyIGxvY2FsZU1hdGNoZXIgPSBpbnRsT3B0
aW9uPExvY2FsZU1hdGNoZXI+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1l
cy0+bG9jYWxlTWF0Y2hlciwgeyB7ICJsb29rdXAiX3MsIExvY2FsZU1hdGNoZXI6Okxvb2t1cCB9
LCB7ICJiZXN0IGZpdCJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCB9IH0sICJsb2NhbGVNYXRj
aGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIl9zLCBMb2NhbGVN
YXRjaGVyOjpCZXN0Rml0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwotICAgIG9wdC5hZGQodm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlci5zdHJpbmcoKSwg
bG9jYWxlTWF0Y2hlcik7CiAKICAgICBTdHJpbmcgY2FsZW5kYXIgPSBpbnRsU3RyaW5nT3B0aW9u
KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Y2FsZW5kYXIsIHsgfSwg
bnVsbHB0ciwgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKQEAgLTQ2MCw3ICs0NTksNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIG9w
dC5hZGQoImhjIl9zLCBTdHJpbmcoKSk7CiAKICAgICBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2
YWlsYWJsZUxvY2FsZXMgPSBpbnRsRGF0ZVRpbWVGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2Jh
bE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgb3B0LCBJbnRsRGF0
ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVO
R1RIKEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBs
b2NhbGVEYXRhKTsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29s
dmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVz
LCBsb2NhbGVNYXRjaGVyLCBvcHQsIEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFu
dEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bERhdGVUaW1lRm9ybWF0SW50ZXJu
YWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogCiAgICAgbV9sb2NhbGUg
PSByZXNvbHZlZC5nZXQodm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlLnN0cmluZygpKTsKICAgICBp
ZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CkBAIC00OTYsMTEwICs0OTUsMTQ4IEBAIHZvaWQgSW50
bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBtX3RpbWVab25lID0gdHo7CiAKICAgICBTdHJpbmdCdWlsZGVy
IHNrZWxldG9uQnVpbGRlcjsKLSAgICBhdXRvIG5hcnJvd1Nob3J0TG9uZyA9IHsgIm5hcnJvdyIs
ICJzaG9ydCIsICJsb25nIiB9OwotICAgIGF1dG8gdHdvRGlnaXROdW1lcmljID0geyAiMi1kaWdp
dCIsICJudW1lcmljIiB9OwotICAgIGF1dG8gdHdvRGlnaXROdW1lcmljTmFycm93U2hvcnRMb25n
ID0geyAiMi1kaWdpdCIsICJudW1lcmljIiwgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIiB9Owot
ICAgIGF1dG8gc2hvcnRMb25nID0geyAic2hvcnQiLCAibG9uZyIgfTsKIAotICAgIFN0cmluZyB3
ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtkYXkgbXVzdCBiZSBcIm5h
cnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CisgICAgV2Vla2RheSB3
ZWVrZGF5ID0gaW50bE9wdGlvbjxXZWVrZGF5PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPndlZWtkYXksIHsgeyAibmFycm93Il9zLCBXZWVrZGF5OjpOYXJyb3cgfSwg
eyAic2hvcnQiX3MsIFdlZWtkYXk6OlNob3J0IH0sIHsgImxvbmciX3MsIFdlZWtkYXk6Okxvbmcg
fSB9LCAid2Vla2RheSBtdXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIi
X3MsIFdlZWtkYXk6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7Ci0gICAgaWYgKCF3ZWVrZGF5LmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICh3ZWVrZGF5ID09
ICJuYXJyb3ciKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVF
RUVFIik7Ci0gICAgICAgIGVsc2UgaWYgKHdlZWtkYXkgPT0gInNob3J0IikKLSAgICAgICAgICAg
IHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRUUiKTsKLSAgICAgICAgZWxzZSBpZiAo
d2Vla2RheSA9PSAibG9uZyIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiRUVFRSIpOworICAgIHN3aXRjaCAod2Vla2RheSkgeworICAgIGNhc2UgV2Vla2RheTo6
TmFycm93OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRUVFRUUiKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWVrZGF5OjpTaG9ydDoKKyAgICAgICAgc2tlbGV0
b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVFRSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlZWtkYXk6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJF
RUVFIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vla2RheTo6Tm9uZToKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIGVyYSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5lcmEsIG5hcnJvd1Nob3J0TG9uZywg
ImVyYSBtdXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIiLCBudWxscHRy
KTsKKyAgICBFcmEgZXJhID0gaW50bE9wdGlvbjxFcmE+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+ZXJhLCB7IHsgIm5hcnJvdyJfcywgRXJhOjpOYXJyb3cgfSwgeyAi
c2hvcnQiX3MsIEVyYTo6U2hvcnQgfSwgeyAibG9uZyJfcywgRXJhOjpMb25nIH0gfSwgImVyYSBt
dXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIiX3MsIEVyYTo6Tm9uZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIWVyYS5p
c051bGwoKSkgewotICAgICAgICBpZiAoZXJhID09ICJuYXJyb3ciKQotICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkdHR0dHIik7Ci0gICAgICAgIGVsc2UgaWYgKGVy
YSA9PSAic2hvcnQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwo
IkdHRyIpOwotICAgICAgICBlbHNlIGlmIChlcmEgPT0gImxvbmciKQotICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkdHR0ciKTsKKyAgICBzd2l0Y2ggKGVyYSkgewor
ICAgIGNhc2UgRXJhOjpOYXJyb3c6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJHR0dHRyIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVyYTo6U2hvcnQ6CisgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJHR0ciKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBFcmE6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJHR0dHIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJhOjpOb25lOgorICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBTdHJpbmcgeWVhciA9IGludGxTdHJpbmdPcHRpb24oZ2xv
YmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT55ZWFyLCB0d29EaWdpdE51bWVy
aWMsICJ5ZWFyIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsK
KyAgICBZZWFyIHllYXIgPSBpbnRsT3B0aW9uPFllYXI+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+eWVhciwgeyB7ICIyLWRpZ2l0Il9zLCBZZWFyOjpUd29EaWdpdCB9
LCB7ICJudW1lcmljIl9zLCBZZWFyOjpOdW1lcmljIH0gfSwgInllYXIgbXVzdCBiZSBcIjItZGln
aXRcIiBvciBcIm51bWVyaWNcIiJfcywgWWVhcjo6Tm9uZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIXllYXIuaXNOdWxsKCkpIHsKLSAgICAgICAg
aWYgKHllYXIgPT0gIjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInl5Iik7Ci0gICAgICAgIGVsc2UgaWYgKHllYXIgPT0gIm51bWVyaWMiKQotICAg
ICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgneScpOworICAgIHN3aXRjaCAoeWVhcikg
eworICAgIGNhc2UgWWVhcjo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJ5eSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFllYXI6Ok51bWVyaWM6
CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ3knKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBZZWFyOjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBTdHJpbmcg
bW9udGggPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+bW9udGgsIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZywgIm1vbnRoIG11
c3QgYmUgXCIyLWRpZ2l0XCIsIFwibnVtZXJpY1wiLCBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9y
IFwibG9uZ1wiIiwgbnVsbHB0cik7CisgICAgTW9udGggbW9udGggPSBpbnRsT3B0aW9uPE1vbnRo
PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1vbnRoLCB7IHsgIjIt
ZGlnaXQiX3MsIE1vbnRoOjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBNb250aDo6TnVtZXJp
YyB9LCB7ICJuYXJyb3ciX3MsIE1vbnRoOjpOYXJyb3cgfSwgeyAic2hvcnQiX3MsIE1vbnRoOjpT
aG9ydCB9LCB7ICJsb25nIl9zLCBNb250aDo6TG9uZyB9IH0sICJtb250aCBtdXN0IGJlIFwiMi1k
aWdpdFwiLCBcIm51bWVyaWNcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBvciBcImxvbmdcIiJf
cywgTW9udGg6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgaWYgKCFtb250aC5pc051bGwoKSkgewotICAgICAgICBpZiAobW9udGggPT0gIjItZGln
aXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIk1NIik7Ci0g
ICAgICAgIGVsc2UgaWYgKG1vbnRoID09ICJudW1lcmljIikKLSAgICAgICAgICAgIHNrZWxldG9u
QnVpbGRlci5hcHBlbmQoJ00nKTsKLSAgICAgICAgZWxzZSBpZiAobW9udGggPT0gIm5hcnJvdyIp
Ci0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NTU0iKTsKLSAg
ICAgICAgZWxzZSBpZiAobW9udGggPT0gInNob3J0IikKLSAgICAgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTU0iKTsKLSAgICAgICAgZWxzZSBpZiAobW9udGggPT0gImxv
bmciKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIk1NTU0iKTsK
LSAgICB9Ci0KLSAgICBTdHJpbmcgZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmRheSwgdHdvRGlnaXROdW1lcmljLCAiZGF5IG11
c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKKyAgICBzd2l0Y2gg
KG1vbnRoKSB7CisgICAgY2FzZSBNb250aDo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vbnRo
OjpOdW1lcmljOgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdNJyk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTW9udGg6Ok5hcnJvdzoKKyAgICAgICAgc2tlbGV0b25CdWlsZGVy
LmFwcGVuZExpdGVyYWwoIk1NTU1NIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9udGg6
OlNob3J0OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NIik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9udGg6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTU1NIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9u
dGg6Ok5vbmU6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIERheSBkYXkgPSBpbnRsT3B0
aW9uPERheT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5kYXksIHsg
eyAiMi1kaWdpdCJfcywgRGF5OjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBEYXk6Ok51bWVy
aWMgfSB9LCAiZGF5IG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiX3MsIERheTo6
Tm9uZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAo
IWRheS5pc051bGwoKSkgewotICAgICAgICBpZiAoZGF5ID09ICIyLWRpZ2l0IikKLSAgICAgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkZCIpOwotICAgICAgICBlbHNlIGlm
IChkYXkgPT0gIm51bWVyaWMiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgn
ZCcpOworICAgIHN3aXRjaCAoZGF5KSB7CisgICAgY2FzZSBEYXk6OlR3b0RpZ2l0OgorICAgICAg
ICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZGQiKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBEYXk6Ok51bWVyaWM6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ2Qn
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXk6Ok5vbmU6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAotICAgIFN0cmluZyBob3VyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmhvdXIsIHR3b0RpZ2l0TnVtZXJpYywgImhvdXIg
bXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNcIiIsIG51bGxwdHIpOworICAgIEhvdXIg
aG91ciA9IGludGxPcHRpb248SG91cj4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0
eU5hbWVzLT5ob3VyLCB7IHsgIjItZGlnaXQiX3MsIEhvdXI6OlR3b0RpZ2l0IH0sIHsgIm51bWVy
aWMiX3MsIEhvdXI6Ok51bWVyaWMgfSB9LCAiaG91ciBtdXN0IGJlIFwiMi1kaWdpdFwiIG9yIFwi
bnVtZXJpY1wiIl9zLCBIb3VyOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIGlmIChob3VyID09ICIyLWRpZ2l0IikgeworICAgIHN3aXRjaCAoaG91
cikgeworICAgIGNhc2UgSG91cjo6VHdvRGlnaXQ6CiAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVm
aW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJqaiIpOwogICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3Rh
dGU6OlRydWUpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaGgi
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVy
YWwoIkhIIik7Ci0gICAgfSBlbHNlIGlmIChob3VyID09ICJudW1lcmljIikgeworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEhvdXI6Ok51bWVyaWM6CiAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVm
aW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmQoJ2onKTsKICAgICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVl
KQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgnaCcpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdIJyk7Ci0gICAgfSBlbHNlCisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSG91cjo6Tm9uZToKICAgICAgICAgbV9ob3VyQ3ljbGUg
PSBTdHJpbmcoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgU3RyaW5nIG1pbnV0ZSA9
IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVz
LT5taW51dGUsIHR3b0RpZ2l0TnVtZXJpYywgIm1pbnV0ZSBtdXN0IGJlIFwiMi1kaWdpdFwiIG9y
IFwibnVtZXJpY1wiIiwgbnVsbHB0cik7CisgICAgTWludXRlIG1pbnV0ZSA9IGludGxPcHRpb248
TWludXRlPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwg
eyB7ICIyLWRpZ2l0Il9zLCBNaW51dGU6OlR3b0RpZ2l0IH0sIHsgIm51bWVyaWMiX3MsIE1pbnV0
ZTo6TnVtZXJpYyB9IH0sICJtaW51dGUgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNc
IiJfcywgTWludXRlOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwotICAgIGlmICghbWludXRlLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChtaW51dGUgPT0g
IjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIm1t
Iik7Ci0gICAgICAgIGVsc2UgaWYgKG1pbnV0ZSA9PSAibnVtZXJpYyIpCi0gICAgICAgICAgICBz
a2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdtJyk7CisgICAgc3dpdGNoIChtaW51dGUpIHsKKyAgICBj
YXNlIE1pbnV0ZTo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJtbSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1pbnV0ZTo6TnVtZXJpYzoKKyAg
ICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgnbScpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1pbnV0ZTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIHNl
Y29uZCA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0
eU5hbWVzLT5zZWNvbmQsIHR3b0RpZ2l0TnVtZXJpYywgInNlY29uZCBtdXN0IGJlIFwiMi1kaWdp
dFwiIG9yIFwibnVtZXJpY1wiIiwgbnVsbHB0cik7CisgICAgU2Vjb25kIHNlY29uZCA9IGludGxP
cHRpb248U2Vjb25kPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnNl
Y29uZCwgeyB7ICIyLWRpZ2l0Il9zLCBTZWNvbmQ6OlR3b0RpZ2l0IH0sIHsgIm51bWVyaWMiX3Ms
IFNlY29uZDo6TnVtZXJpYyB9IH0sICJzZWNvbmQgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51
bWVyaWNcIiJfcywgU2Vjb25kOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIGlmICghc2Vjb25kLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChzZWNv
bmQgPT0gIjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVy
YWwoInNzIik7Ci0gICAgICAgIGVsc2UgaWYgKHNlY29uZCA9PSAibnVtZXJpYyIpCi0gICAgICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdzJyk7CisgICAgc3dpdGNoIChzZWNvbmQpIHsK
KyAgICBjYXNlIFNlY29uZDo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJzcyIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY29uZDo6TnVtZXJp
YzoKKyAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgncycpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFNlY29uZDo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3Ry
aW5nIHRpbWVab25lTmFtZSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25z
LCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIHNob3J0TG9uZywgInRpbWVab25lTmFt
ZSBtdXN0IGJlIFwic2hvcnRcIiBvciBcImxvbmdcIiIsIG51bGxwdHIpOworICAgIFRpbWVab25l
TmFtZSB0aW1lWm9uZU5hbWUgPSBpbnRsT3B0aW9uPD4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2
bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIHsgeyAic2hvcnQiX3MsIFRpbWVab25lTmFt
ZTo6U2hvcnQgfSwgeyAibG9uZyJfcywgVGltZVpvbmVOYW1lOjpMb25nIH0gfSwgInRpbWVab25l
TmFtZSBtdXN0IGJlIFwic2hvcnRcIiBvciBcImxvbmdcIiJfcywgVGltZVpvbmVOYW1lOjpOb25l
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGlmICghdGlt
ZVpvbmVOYW1lLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICh0aW1lWm9uZU5hbWUgPT0gInNob3J0
IikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ3onKTsKLSAgICAgICAgZWxz
ZSBpZiAodGltZVpvbmVOYW1lID09ICJsb25nIikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJ6enp6Iik7CisgICAgc3dpdGNoICh0aW1lWm9uZU5hbWUpIHsKKyAg
ICBjYXNlIFRpbWVab25lTmFtZTo6U2hvcnQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmQoJ3onKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUaW1lWm9uZU5hbWU6Okxvbmc6Cisg
ICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ6enp6Iik7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVGltZVpvbmVOYW1lOjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9
CiAKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMiLCAiYmVzdCBmaXQiIH0sICJmb3JtYXRN
YXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBvciBcImJlc3QgZml0XCIiLCAiYmVzdCBm
aXQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZv
cm1hdC5jcHAKaW5kZXggMWNiNDU1NjRmYTk0NTRmMzEyYzc5MjY0ODFmZmVhMDUwMjVkODBiYy4u
YjY0NmQ1MmQ1YjM1MTI0NWE5NDI5YjBmYjk1N2I5ZDhmNTMzZDBlZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5jcHAKQEAgLTMwLDcg
KzMwLDcgQEAKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAKICNpbmNsdWRlICJFcnJv
ci5oIgotI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNsdWRlICJJbnRsT2JqZWN0SW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgpAQCAtMTczLDkgKzE3Myw4IEBAIHZv
aWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBvcHQ7
CiAKLSAgICBTdHJpbmcgbWF0Y2hlciA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBv
cHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVz
dCBmaXQiIH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJi
ZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CisgICAgTG9jYWxlTWF0Y2hlciBsb2NhbGVNYXRjaGVy
ID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgeyAibG9va3VwIl9zLCBMb2NhbGVNYXRjaGVy
OjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQgfSB9LCAi
bG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiJf
cywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKLSAgICBvcHQuYWRkKCJsb2NhbGVNYXRjaGVyIl9zLCBtYXRjaGVyKTsKIAog
ICAgIFN0cmluZyBudW1iZXJpbmdTeXN0ZW0gPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVj
dCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bnVtYmVyaW5nU3lzdGVtLCB7IH0sIG51bGxw
dHIsIG51bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CkBA
IC0xODgsNyArMTg3LDcgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojppbml0aWFsaXplTnVtYmVy
Rm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmEKICAgICB9CiAKICAgICBh
dXRvJiBhdmFpbGFibGVMb2NhbGVzID0gaW50bE51bWJlckZvcm1hdEF2YWlsYWJsZUxvY2FsZXMo
KTsKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFi
bGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxOdW1iZXJGb3JtYXRJbnRlcm5h
bDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxOdW1iZXJGb3Jt
YXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CisgICAgYXV0
byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywg
cmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0Y2hlciwgb3B0LCBJbnRsTnVtYmVyRm9ybWF0SW50
ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsTnVtYmVy
Rm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogCiAg
ICAgbV9sb2NhbGUgPSByZXN1bHQuZ2V0KCJsb2NhbGUiX3MpOwogICAgIGlmIChtX2xvY2FsZS5p
c0VtcHR5KCkpIHsKQEAgLTE5OCwxNiArMTk3LDggQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojpp
bml0aWFsaXplTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmEK
IAogICAgIG1fbnVtYmVyaW5nU3lzdGVtID0gcmVzdWx0LmdldCgibnUiX3MpOwogCi0gICAgU3Ry
aW5nIHN0eWxlU3RyaW5nID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMs
IHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7ICJkZWNpbWFsIiwgInBlcmNlbnQiLCAiY3VycmVu
Y3kiIH0sICJzdHlsZSBtdXN0IGJlIGVpdGhlciBcImRlY2ltYWxcIiwgXCJwZXJjZW50XCIsIG9y
IFwiY3VycmVuY3lcIiIsICJkZWNpbWFsIik7CisgICAgbV9zdHlsZSA9IGludGxPcHRpb248U3R5
bGU+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+c3R5bGUsIHsgeyAi
ZGVjaW1hbCJfcywgU3R5bGU6OkRlY2ltYWwgfSwgeyAicGVyY2VudCJfcywgU3R5bGU6OlBlcmNl
bnQgfSwgeyAiY3VycmVuY3kiX3MsIFN0eWxlOjpDdXJyZW5jeSB9IH0sICJzdHlsZSBtdXN0IGJl
IGVpdGhlciBcImRlY2ltYWxcIiwgXCJwZXJjZW50XCIsIG9yIFwiY3VycmVuY3lcIiJfcywgU3R5
bGU6OkRlY2ltYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0g
ICAgaWYgKHN0eWxlU3RyaW5nID09ICJkZWNpbWFsIikKLSAgICAgICAgbV9zdHlsZSA9IFN0eWxl
OjpEZWNpbWFsOwotICAgIGVsc2UgaWYgKHN0eWxlU3RyaW5nID09ICJwZXJjZW50IikKLSAgICAg
ICAgbV9zdHlsZSA9IFN0eWxlOjpQZXJjZW50OwotICAgIGVsc2UgaWYgKHN0eWxlU3RyaW5nID09
ICJjdXJyZW5jeSIpCi0gICAgICAgIG1fc3R5bGUgPSBTdHlsZTo6Q3VycmVuY3k7Ci0gICAgZWxz
ZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIFN0cmluZyBjdXJyZW5jeSA9
IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiY3VycmVuY3kiKSwgeyB9LCBudWxscHRyLCBudWxscHRyKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtMjMwLDE4ICsyMjEsOCBAQCB2b2lk
IEludGxOdW1iZXJGb3JtYXQ6OmluaXRpYWxpemVOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYQogICAgICAgICBjdXJyZW5jeURpZ2l0cyA9IGNvbXB1dGVDdXJy
ZW5jeURpZ2l0cyhjdXJyZW5jeSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGN1cnJlbmN5RGlzcGxh
eVN0cmluZyA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3lEaXNwbGF5IiksIHsgImNvZGUiLCAic3ltYm9s
IiwgIm5hbWUiIH0sICJjdXJyZW5jeURpc3BsYXkgbXVzdCBiZSBlaXRoZXIgXCJjb2RlXCIsIFwi
c3ltYm9sXCIsIG9yIFwibmFtZVwiIiwgInN5bWJvbCIpOworICAgIG1fY3VycmVuY3lEaXNwbGF5
ID0gaW50bE9wdGlvbjxDdXJyZW5jeURpc3BsYXk+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1cnJlbmN5RGlzcGxheSIpLCB7IHsgImNvZGUiX3Ms
IEN1cnJlbmN5RGlzcGxheTo6Q29kZSB9LCB7ICJzeW1ib2wiX3MsIEN1cnJlbmN5RGlzcGxheTo6
U3ltYm9sIH0sIHsgIm5hbWUiX3MsIEN1cnJlbmN5RGlzcGxheTo6TmFtZSB9IH0sICJjdXJyZW5j
eURpc3BsYXkgbXVzdCBiZSBlaXRoZXIgXCJjb2RlXCIsIFwic3ltYm9sXCIsIG9yIFwibmFtZVwi
Il9zLCBDdXJyZW5jeURpc3BsYXk6OlN5bWJvbCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKLSAgICBpZiAobV9zdHlsZSA9PSBTdHlsZTo6Q3VycmVuY3kpIHsKLSAg
ICAgICAgaWYgKGN1cnJlbmN5RGlzcGxheVN0cmluZyA9PSAiY29kZSIpCi0gICAgICAgICAgICBt
X2N1cnJlbmN5RGlzcGxheSA9IEN1cnJlbmN5RGlzcGxheTo6Q29kZTsKLSAgICAgICAgZWxzZSBp
ZiAoY3VycmVuY3lEaXNwbGF5U3RyaW5nID09ICJzeW1ib2wiKQotICAgICAgICAgICAgbV9jdXJy
ZW5jeURpc3BsYXkgPSBDdXJyZW5jeURpc3BsYXk6OlN5bWJvbDsKLSAgICAgICAgZWxzZSBpZiAo
Y3VycmVuY3lEaXNwbGF5U3RyaW5nID09ICJuYW1lIikKLSAgICAgICAgICAgIG1fY3VycmVuY3lE
aXNwbGF5ID0gQ3VycmVuY3lEaXNwbGF5OjpOYW1lOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CiAKICAgICB1bnNpZ25lZCBtaW5pbXVtSW50
ZWdlckRpZ2l0cyA9IGludGxOdW1iZXJPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWluaW11bUludGVnZXJEaWdpdHMiKSwgMSwgMjEsIDEp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IGE0NDg0N2VjZThjZjg4MTE5
NTE1Mjg3MDZkZjQ1Njg5M2E3N2JmOTYuLjBlNjg3OTdhZmQ3N2M4ZmE2MmY2NDIzMzA0MTdjN2Rl
OTM4MWE4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3Qu
Y3BwCkBAIC02MjksMTMgKzYyOSwxMiBAQCBzdGF0aWMgdm9pZCB1bmljb2RlRXh0ZW5zaW9uU3Vi
VGFncyhjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgVmVjdG9yPFN0cmluZz4mIHN1YgogICAgIHN1
YnRhZ3MuYXBwZW5kKGV4dGVuc2lvbi5zdWJzdHJpbmcodmFsdWVTdGFydCwgZXh0ZW5zaW9uTGVu
Z3RoIC0gdmFsdWVTdGFydCkpOwogfQogCi1IYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZl
TG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEhhc2hTZXQ8U3RyaW5n
PiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2Fs
ZXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBvcHRpb25zLCBjb25zdCBjaGFyKiBj
b25zdCByZWxldmFudEV4dGVuc2lvbktleXNbXSwgc2l6ZV90IHJlbGV2YW50RXh0ZW5zaW9uS2V5
Q291bnQsIFZlY3RvcjxTdHJpbmc+ICgqbG9jYWxlRGF0YSkoY29uc3QgU3RyaW5nJiwgc2l6ZV90
KSkKK0hhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVMb2NhbGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgTG9jYWxlTWF0Y2hlciBsb2Nh
bGVNYXRjaGVyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgb3B0aW9ucywgY29uc3Qg
Y2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzW10sIHNpemVfdCByZWxldmFudEV4dGVu
c2lvbktleUNvdW50LCBWZWN0b3I8U3RyaW5nPiAoKmxvY2FsZURhdGEpKGNvbnN0IFN0cmluZyYs
IHNpemVfdCkpCiB7CiAgICAgLy8gUmVzb2x2ZUxvY2FsZSAoYXZhaWxhYmxlTG9jYWxlcywgcmVx
dWVzdGVkTG9jYWxlcywgb3B0aW9ucywgcmVsZXZhbnRFeHRlbnNpb25LZXlzLCBsb2NhbGVEYXRh
KQogICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLXJlc29sdmVsb2Nh
bGUKIAotICAgIGNvbnN0IFN0cmluZyYgbWF0Y2hlciA9IG9wdGlvbnMuZ2V0KCJsb2NhbGVNYXRj
aGVyIl9zKTsKLSAgICBNYXRjaGVyUmVzdWx0IG1hdGNoZXJSZXN1bHQgPSAobWF0Y2hlciA9PSAi
bG9va3VwIikKKyAgICBNYXRjaGVyUmVzdWx0IG1hdGNoZXJSZXN1bHQgPSBsb2NhbGVNYXRjaGVy
ID09IExvY2FsZU1hdGNoZXI6Okxvb2t1cAogICAgICAgICA/IGxvb2t1cE1hdGNoZXIoZ2xvYmFs
T2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzKQogICAgICAgICA6IGJl
c3RGaXRNYXRjaGVyKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9j
YWxlcyk7CiAKQEAgLTc0NCwxMyArNzQzLDEwIEBAIEpTVmFsdWUgc3VwcG9ydGVkTG9jYWxlcyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIFN0cmluZyBtYXRj
aGVyOwogCi0gICAgaWYgKCFvcHRpb25zLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgbWF0Y2hl
ciA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5h
bWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2NhbGVNYXRj
aGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0
Iik7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1hdGNoZXIgPSAiYmVzdCBmaXQiX3M7CisgICAgTG9jYWxlTWF0Y2hl
ciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgeyAibG9va3VwIl9z
LCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExvY2FsZU1hdGNoZXI6
OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9y
IFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAotICAgIEpTQXJyYXkqIHN1cHBvcnRlZExv
Y2FsZXMgPSAobWF0Y2hlciA9PSAiYmVzdCBmaXQiKQorICAgIEpTQXJyYXkqIHN1cHBvcnRlZExv
Y2FsZXMgPSBsb2NhbGVNYXRjaGVyID09IExvY2FsZU1hdGNoZXI6OkJlc3RGaXQKICAgICAgICAg
PyBiZXN0Rml0U3VwcG9ydGVkTG9jYWxlcyhnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMs
IHJlcXVlc3RlZExvY2FsZXMpCiAgICAgICAgIDogbG9va3VwU3VwcG9ydGVkTG9jYWxlcyhnbG9i
YWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggNjgxOGJmOTY2ZDI0YjcwYzUwNjRhY2NhZDM2MDM5
NDA2NmQwZDUwMC4uMDU3MDBlZjRmY2VjNjBmMWQyN2VjZjI2OTIyMWZlZDZjM2E5ZjljNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApAQCAtMzQsNiArMzQs
MTEgQEAgc3RydWN0IFVGaWVsZFBvc2l0aW9uSXRlcmF0b3I7CiAKIG5hbWVzcGFjZSBKU0Mgewog
CitlbnVtIGNsYXNzIExvY2FsZU1hdGNoZXIgeworICAgIExvb2t1cCwKKyAgICBCZXN0Rml0LAor
fTsKKwogY2xhc3MgSW50bE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsKQEAgLTcxLDcgKzc2
LDcgQEAgdW5zaWduZWQgaW50bERlZmF1bHROdW1iZXJPcHRpb24oSlNHbG9iYWxPYmplY3QqLCBK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmUKIFZlY3RvcjxjaGFyLCAzMj4gbG9jYWxlSURC
dWZmZXJGb3JMYW5ndWFnZVRhZyhjb25zdCBDU3RyaW5nJik7CiBTdHJpbmcgbGFuZ3VhZ2VUYWdG
b3JMb2NhbGVJRChjb25zdCBjaGFyKiwgYm9vbCBpc0ltbW9ydGFsID0gZmFsc2UpOwogVmVjdG9y
PFN0cmluZz4gY2Fub25pY2FsaXplTG9jYWxlTGlzdChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUg
bG9jYWxlcyk7Ci1IYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlTG9jYWxlKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4mIG9wdGlvbnMsIGNvbnN0IGNoYXIqIGNvbnN0IHJlbGV2YW50RXh0ZW5zaW9uS2V5c1td
LCBzaXplX3QgcmVsZXZhbnRFeHRlbnNpb25LZXlDb3VudCwgVmVjdG9yPFN0cmluZz4gKCpsb2Nh
bGVEYXRhKShjb25zdCBTdHJpbmcmLCBzaXplX3QpKTsKK0hhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IHJlc29sdmVMb2NhbGUoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2
YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXF1ZXN0ZWRMb2NhbGVzLCBM
b2NhbGVNYXRjaGVyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgb3B0aW9ucywgY29u
c3QgY2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzW10sIHNpemVfdCByZWxldmFudEV4
dGVuc2lvbktleUNvdW50LCBWZWN0b3I8U3RyaW5nPiAoKmxvY2FsZURhdGEpKGNvbnN0IFN0cmlu
ZyYsIHNpemVfdCkpOwogSlNWYWx1ZSBzdXBwb3J0ZWRMb2NhbGVzKEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zKTsKIFN0cmluZyByZW1vdmVV
bmljb2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbG9jYWxlKTsKIFN0cmluZyBiZXN0
QXZhaWxhYmxlTG9jYWxlKGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywg
Y29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRMb2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKaW5kZXggNTVlYWM0NjYxNDJhMDU1Y2Vl
NjRlNmZhNDA4MjcxZDA0NDMxYmY5OS4uZDViMDMxNDdhZTlkZDhmNGUyYjkwOWRjYTU1YjI0ODcx
OWMxY2ViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2Jq
ZWN0SW5saW5lcy5oCkBAIC04MSw0ICs4MSwzOSBAQCBKU1ZhbHVlIGNvbnN0cnVjdEludGxJbnN0
YW5jZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZmFjdG9yeSh2bSkpOwogfQogCit0ZW1wbGF0
ZTx0eXBlbmFtZSBSZXN1bHRUeXBlPgorUmVzdWx0VHlwZSBpbnRsT3B0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0aW9ucywgUHJvcGVydHlOYW1lIHByb3BlcnR5
LCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPEFTQ0lJTGl0ZXJhbCwgUmVzdWx0VHlw
ZT4+IHZhbHVlcywgQVNDSUlMaXRlcmFsIG5vdEZvdW5kTWVzc2FnZSwgUmVzdWx0VHlwZSBmYWxs
YmFjaykKK3sKKyAgICAvLyBHZXRPcHRpb24gKG9wdGlvbnMsIHByb3BlcnR5LCB0eXBlPSJzdHJp
bmciLCB2YWx1ZXMsIGZhbGxiYWNrKQorICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNt
YTQwMi8jc2VjLWdldG9wdGlvbgorCisgICAgQVNTRVJUKHZhbHVlcy5zaXplKCkgPiAwKTsKKwor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAob3B0aW9ucy5pc1VuZGVmaW5lZCgpKQorICAg
ICAgICByZXR1cm4gZmFsbGJhY2s7CisKKyAgICBKU09iamVjdCogb3B0cyA9IG9wdGlvbnMudG9P
YmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OworCisgICAgSlNWYWx1ZSB2YWx1ZSA9IG9wdHMtPmdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisgICAgaWYgKCF2YWx1
ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIFN0cmluZyBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRv
V1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6IHZhbHVlcykgewor
ICAgICAgICAgICAgaWYgKGVudHJ5LmZpcnN0ID09IHN0cmluZ1ZhbHVlKQorICAgICAgICAgICAg
ICAgIHJldHVybiBlbnRyeS5zZWNvbmQ7CisgICAgICAgIH0KKyAgICAgICAgdGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9iYWxPYmplY3QsIG5v
dEZvdW5kTWVzc2FnZSkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIHJldHVy
biBmYWxsYmFjazsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcAppbmRleCBjNDk5YWRhMTlmM2Fk
NGMyZjgzMGFkYzNjNTNiOGQ1YTZjMWY1NzZmLi4yZDU3ZTY4ZmY2OWQwZTA5Y2NiYzFmNzBhOGU0
NTE2Yjg0NmMyZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUGx1cmFsUnVsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxQbHVyYWxSdWxlcy5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJbnRsUGx1cmFsUnVsZXMuaCIKIAotI2luY2x1ZGUgIkludGxPYmplY3QuaCIK
KyNpbmNsdWRlICJJbnRsT2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
ICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCkBAIC0xMDksMjEgKzEwOSwxOSBAQCB2
b2lkIEludGxQbHVyYWxSdWxlczo6aW5pdGlhbGl6ZVBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogICAgIH0KIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IGxvY2FsZU9wdDsKLSAgICBTdHJpbmcgbG9jYWxlTWF0Y2hlciA9IGludGxTdHJpbmdPcHRp
b24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVy
LCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVy
IFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CisgICAgTG9jYWxlTWF0
Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgeyAibG9va3Vw
Il9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExvY2FsZU1hdGNo
ZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1cFwi
IG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBsb2NhbGVPcHQuYWRkKHZtLnByb3Bl
cnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIuc3RyaW5nKCksIGxvY2FsZU1hdGNoZXIpOwogCiAgICAg
Y29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzID0gaW50bFBsdXJhbFJ1bGVz
QXZhaWxhYmxlTG9jYWxlcygpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVk
ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3Rl
ZExvY2FsZXMsIGxvY2FsZU9wdCwgbnVsbHB0ciwgMCwgbG9jYWxlRGF0YSk7CisgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwg
YXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0Y2hlciwgbG9jYWxl
T3B0LCBudWxscHRyLCAwLCBsb2NhbGVEYXRhKTsKICAgICBtX2xvY2FsZSA9IHJlc29sdmVkLmdl
dCh2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGUuc3RyaW5nKCkpOwogICAgIGlmIChtX2xvY2FsZS5p
c0VtcHR5KCkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
ImZhaWxlZCB0byBpbml0aWFsaXplIFBsdXJhbFJ1bGVzIGR1ZSB0byBpbnZhbGlkIGxvY2FsZSJf
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgdHlwZVN0cmluZyA9IGlu
dGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT50
eXBlLCB7ICJjYXJkaW5hbCIsICJvcmRpbmFsIiB9LCAidHlwZSBtdXN0IGJlIFwiY2FyZGluYWxc
IiBvciBcIm9yZGluYWxcIiIsICJjYXJkaW5hbCIpOworICAgIG1fdHlwZSA9IGludGxPcHRpb248
VHlwZT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT50eXBlLCB7IHsg
ImNhcmRpbmFsIl9zLCBUeXBlOjpDYXJkaW5hbCB9LCB7ICJvcmRpbmFsIl9zLCBUeXBlOjpPcmRp
bmFsIH0gfSwgInR5cGUgbXVzdCBiZSBcImNhcmRpbmFsXCIgb3IgXCJvcmRpbmFsXCIiX3MsIFR5
cGU6OkNhcmRpbmFsKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwot
ICAgIG1fdHlwZSA9IHR5cGVTdHJpbmcgPT0gIm9yZGluYWwiID8gVHlwZTo6T3JkaW5hbCA6IFR5
cGU6OkNhcmRpbmFsOwogCiAgICAgdW5zaWduZWQgbWluaW11bUludGVnZXJEaWdpdHMgPSBpbnRs
TnVtYmVyT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgIm1pbmltdW1JbnRlZ2VyRGlnaXRzIiksIDEsIDIxLCAxKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcAppbmRleCA5MWIxYmZhMTQy
NTg5MWY3YzNjODU0NGEyYjc0OTgwMzBmN2M0NmU3Li45ZTA0YTYyYjg1NjdhZTkwMGQxMDM2MmZj
YzZjMTUzM2NkMGQxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2lu
Y2x1ZGUgIkludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaCIKIAogI2luY2x1ZGUgIkludGxOdW1iZXJG
b3JtYXQuaCIKLSNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAiSW50bE9iamVjdElu
bGluZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3Ry
dWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9pY3UvSUNVSGVscGVycy5oPgpAQCAtMTA4
LDkgKzEwOCw4IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZVJlbGF0
aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfQogCiAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gb3B0OwotICAgIFN0cmluZyBsb2NhbGVNYXRjaGVyID0gaW50bFN0
cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2Fs
ZU1hdGNoZXIsIHsgImxvb2t1cCIsICJiZXN0IGZpdCIgfSwgImxvY2FsZU1hdGNoZXIgbXVzdCBi
ZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKKyAgICBM
b2NhbGVNYXRjaGVyIGxvY2FsZU1hdGNoZXIgPSBpbnRsT3B0aW9uPExvY2FsZU1hdGNoZXI+KGds
b2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlciwgeyB7
ICJsb29rdXAiX3MsIExvY2FsZU1hdGNoZXI6Okxvb2t1cCB9LCB7ICJiZXN0IGZpdCJfcywgTG9j
YWxlTWF0Y2hlcjo6QmVzdEZpdCB9IH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwi
bG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIl9zLCBMb2NhbGVNYXRjaGVyOjpCZXN0Rml0KTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIG9wdC5hZGQodm0ucHJv
cGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlci5zdHJpbmcoKSwgbG9jYWxlTWF0Y2hlcik7CiAKICAg
ICBTdHJpbmcgbnVtYmVyaW5nU3lzdGVtID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm51bWJlcmluZ1N5c3RlbSwgeyB9LCBudWxscHRy
LCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAt
MTIzLDcgKzEyMiw3IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZVJl
bGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfQogCiAgICAgY29u
c3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzID0gaW50bFJlbGF0aXZlVGltZUZv
cm1hdEF2YWlsYWJsZUxvY2FsZXMoKTsKLSAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNv
bHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1
ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZh
bnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRJ
bnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CisgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwg
YXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0Y2hlciwgb3B0LCBJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RG
X0FSUkFZX0xFTkdUSChJbnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0
ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogICAgIG1fbG9jYWxlID0gcmVzb2x2ZWQuZ2V0KHZt
LnByb3BlcnR5TmFtZXMtPmxvY2FsZS5zdHJpbmcoKSk7CiAgICAgaWYgKG1fbG9jYWxlLmlzRW1w
dHkoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFp
bGVkIHRvIGluaXRpYWxpemUgUmVsYXRpdmVUaW1lRm9ybWF0IGR1ZSB0byBpbnZhbGlkIGxvY2Fs
ZSJfcyk7CkBAIC0xMzMsMjQgKzEzMiwyMyBAQCB2b2lkIEludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6
OmluaXRpYWxpemVSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAg
IG1fbnVtYmVyaW5nU3lzdGVtID0gcmVzb2x2ZWQuZ2V0KCJudSJfcyk7CiAgICAgQ1N0cmluZyBk
YXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMgPSBtYWtlU3RyaW5nKHJlc29sdmVkLmdldCgiZGF0YUxv
Y2FsZSJfcyksICItdS1udS0iLCBtX251bWJlcmluZ1N5c3RlbSkudXRmOCgpOwogCi0gICAgU3Ry
aW5nIHN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPnN0eWxlLCB7ICJsb25nIiwgInNob3J0IiwgIm5hcnJvdyIgfSwgInN0eWxl
IG11c3QgYmUgZWl0aGVyIFwibG9uZ1wiLCBcInNob3J0XCIsIG9yIFwibmFycm93XCIiLCAibG9u
ZyIpOworICAgIG1fc3R5bGUgPSBpbnRsT3B0aW9uPFN0eWxlPihnbG9iYWxPYmplY3QsIG9wdGlv
bnMsIHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7IHsgImxvbmciX3MsIFN0eWxlOjpMb25nIH0s
IHsgInNob3J0Il9zLCBTdHlsZTo6U2hvcnQgfSwgeyAibmFycm93Il9zLCBTdHlsZTo6TmFycm93
IH0gfSwgInN0eWxlIG11c3QgYmUgZWl0aGVyIFwibG9uZ1wiLCBcInNob3J0XCIsIG9yIFwibmFy
cm93XCIiX3MsIFN0eWxlOjpMb25nKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwogICAgIFVEYXRlUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlclN0eWxlIGljdVN0eWxl
OwotICAgIGlmIChzdHlsZSA9PSAibG9uZyIpIHsKKyAgICBzd2l0Y2ggKG1fc3R5bGUpIHsKKyAg
ICBjYXNlIFN0eWxlOjpMb25nOgogICAgICAgICBpY3VTdHlsZSA9IFVEQVRfU1RZTEVfTE9ORzsK
LSAgICAgICAgbV9zdHlsZSA9IFN0eWxlOjpMb25nOwotICAgIH0gZWxzZSBpZiAoc3R5bGUgPT0g
InNob3J0IikgeworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0eWxlOjpTaG9ydDoKICAgICAg
ICAgaWN1U3R5bGUgPSBVREFUX1NUWUxFX1NIT1JUOwotICAgICAgICBtX3N0eWxlID0gU3R5bGU6
OlNob3J0OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChzdHlsZSA9PSAibmFycm93Iik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3R5bGU6Ok5hcnJvdzoKICAgICAgICAgaWN1U3R5
bGUgPSBVREFUX1NUWUxFX05BUlJPVzsKLSAgICAgICAgbV9zdHlsZSA9IFN0eWxlOjpOYXJyb3c7
CisgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFN0cmluZyBudW1lcmljID0gaW50bFN0cmlu
Z09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm51bWVyaWMs
IHsgImFsd2F5cyIsICJhdXRvIiB9LCAibnVtZXJpYyBtdXN0IGJlIGVpdGhlciBcImFsd2F5c1wi
IG9yIFwiYXV0b1wiIiwgImFsd2F5cyIpOworICAgIG1fbnVtZXJpYyA9IGludGxPcHRpb248Ym9v
bD4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5udW1lcmljLCB7IHsg
ImFsd2F5cyJfcywgdHJ1ZSB9LCB7ICJhdXRvIl9zLCBmYWxzZSB9IH0sICJudW1lcmljIG11c3Qg
YmUgZWl0aGVyIFwiYWx3YXlzXCIgb3IgXCJhdXRvXCIiX3MsIHRydWUpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgbV9udW1lcmljID0gKG51bWVyaWMgPT0g
ImFsd2F5cyIpOwogCiAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CiAgICAg
bV9udW1iZXJGb3JtYXQgPSBzdGQ6OnVuaXF1ZV9wdHI8VU51bWJlckZvcm1hdCwgVU51bWJlckZv
cm1hdERlbGV0ZXI+KHVudW1fb3BlbihVTlVNX0RFQ0lNQUwsIG51bGxwdHIsIDAsIGRhdGFMb2Nh
bGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIG51bGxwdHIsICZzdGF0dXMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404510</attachid>
            <date>2020-07-16 18:37:44 -0700</date>
            <delta_ts>2020-07-16 18:56:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214437-20200716183743.patch</filename>
            <type>text/plain</type>
            <size>35169</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NWMxN2JiNjE0MjY4ZTZkOTE0YjZhY2U0MDIzMDZjNDA1OWYyMDE1Li5hMDc1MTc4NDUzOTYzMjI0
ZmJjNzY0MWVhZDExOGJjYWE2NjA4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIEludGwgb3B0aW9uIHBhcnNpbmcgY29kZSBieSBp
bnRyb2R1Y2luZyBpbnRsT3B0aW9uPD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDQzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBpbnRsT3B0aW9uPD4oLi4uKSBm
dW5jdGlvbiBhbmQgcmVtb3ZlIHJlZHVuZGFudCBzdHJpbmcgY29tcGFyaXNvbnMuCisgICAgICAg
IFRoaXMgbWFrZXMgb3B0aW9uIGhhbmRsaW5nIGVmZmljaWVudCwgYW5kIGl0IG1ha2VzIGNvZGUg
Y2xlYW4uCisKKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvci5jcHA6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9yKToKKyAgICAgICAgKiBydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1i
ZXJGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsTnVtYmVyRm9ybWF0Ojppbml0aWFsaXpl
TnVtYmVyRm9ybWF0KToKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAg
ICAoSlNDOjpyZXNvbHZlTG9jYWxlKToKKyAgICAgICAgKEpTQzo6c3VwcG9ydGVkTG9jYWxlcyk6
CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9JbnRs
T2JqZWN0SW5saW5lcy5oOgorICAgICAgICAoSlNDOjppbnRsT3B0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHA6CisgICAgICAgIChKU0M6OkludGxQbHVyYWxSdWxl
czo6aW5pdGlhbGl6ZVBsdXJhbFJ1bGVzKToKKyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2
ZVRpbWVGb3JtYXQuY3BwOgorICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojpp
bml0aWFsaXplUmVsYXRpdmVUaW1lRm9ybWF0KToKKwogMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSB1bnZhbGlkYXRlZEdl
dCBpbnN0ZWFkIG9mIGdldCB0byBhY2Nlc3MgVW5saW5rZWRDb2RlQmxvY2sgZnJvbSBDb2RlQmxv
Y2sgZGVzdHJ1Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xs
YXRvci5jcHAKaW5kZXggYmM3NDk3NzRkMGNmMmMxZDEwMGI1NTQ3YzQ3OWYxMDczM2IyZmJiZi4u
NWEwMmI3YjY3MWY3ZDE2NTQ0ODZkNmYyNjY3MTJkNWRkOTk3NmQ3MiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCkBAIC0yOCw3ICsyOCw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW50bENvbGxhdG9yLmgiCiAKLSNpbmNs
dWRlICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAiSW50bE9iamVjdElubGluZXMuaCIKICNpbmNs
dWRlICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKQEAgLTE3OCwyMiArMTc4LDE1IEBAIHZvaWQgSW50bENv
bGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBsb2NhCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CiAgICAgfQogCi0gICAgU3RyaW5nIHVzYWdlU3RyaW5nID0gaW50bFN0cmluZ09wdGlvbihnbG9i
YWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnVzYWdlLCB7ICJzb3J0IiwgInNl
YXJjaCIgfSwgInVzYWdlIG11c3QgYmUgZWl0aGVyIFwic29ydFwiIG9yIFwic2VhcmNoXCIiLCAi
c29ydCIpOworICAgIG1fdXNhZ2UgPSBpbnRsT3B0aW9uPFVzYWdlPihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnVzYWdlLCB7IHsgInNvcnQiX3MsIFVzYWdlOjpTb3J0
IH0sIHsgInNlYXJjaCJfcywgVXNhZ2U6OlNlYXJjaCB9IH0sICJ1c2FnZSBtdXN0IGJlIGVpdGhl
ciBcInNvcnRcIiBvciBcInNlYXJjaFwiIl9zLCBVc2FnZTo6U29ydCk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAodXNhZ2VTdHJpbmcgPT0gInNvcnQi
KQotICAgICAgICBtX3VzYWdlID0gVXNhZ2U6OlNvcnQ7Ci0gICAgZWxzZSBpZiAodXNhZ2VTdHJp
bmcgPT0gInNlYXJjaCIpCi0gICAgICAgIG1fdXNhZ2UgPSBVc2FnZTo6U2VhcmNoOwotICAgIGVs
c2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBhdXRvIGxvY2FsZURhdGEg
PSAobV91c2FnZSA9PSBVc2FnZTo6U29ydCkgPyBzb3J0TG9jYWxlRGF0YSA6IHNlYXJjaExvY2Fs
ZURhdGE7CiAKICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBvcHQ7CiAKLSAgICBTdHJpbmcg
bWF0Y2hlciA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2Nh
bGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJl
c3QgZml0Iik7CisgICAgTG9jYWxlTWF0Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxM
b2NhbGVNYXRjaGVyPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxv
Y2FsZU1hdGNoZXIsIHsgeyAibG9va3VwIl9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAi
YmVzdCBmaXQiX3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBt
dXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hl
cjo6QmVzdEZpdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICBvcHQuYWRkKCJsb2NhbGVNYXRjaGVyIl9zLCBtYXRjaGVyKTsKIAogICAgIFRyaVN0YXRlIG51
bWVyaWMgPSBpbnRsQm9vbGVhbk9wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPm51bWVyaWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7CkBAIC0yMDYsNyArMTk5LDcgQEAgdm9pZCBJbnRsQ29sbGF0b3I6OmluaXRpYWxpemVDb2xs
YXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGxvY2EKICAgICAgICAg
b3B0LmFkZCgia2YiX3MsIGNhc2VGaXJzdE9wdGlvbik7CiAKICAgICBhdXRvJiBhdmFpbGFibGVM
b2NhbGVzID0gaW50bENvbGxhdG9yQXZhaWxhYmxlTG9jYWxlcygpOwotICAgIGF1dG8gcmVzdWx0
ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3Rl
ZExvY2FsZXMsIG9wdCwgSW50bENvbGxhdG9ySW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5
cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsQ29sbGF0b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNp
b25LZXlzKSwgbG9jYWxlRGF0YSk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGds
b2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0
Y2hlciwgb3B0LCBJbnRsQ29sbGF0b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBX
VEZfQVJSQVlfTEVOR1RIKEludGxDb2xsYXRvckludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktl
eXMpLCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxlID0gcmVzdWx0LmdldCgibG9jYWxlIl9z
KTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CkBAIC0yMjYsMTYgKzIxOSw4IEBAIHZv
aWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgZWxzZQogICAgICAgICBtX2Nhc2VGaXJzdCA9IENh
c2VGaXJzdDo6RmFsc2U7CiAKLSAgICBTdHJpbmcgc2Vuc2l0aXZpdHlTdHJpbmcgPSBpbnRsU3Ry
aW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+c2Vuc2l0
aXZpdHksIHsgImJhc2UiLCAiYWNjZW50IiwgImNhc2UiLCAidmFyaWFudCIgfSwgInNlbnNpdGl2
aXR5IG11c3QgYmUgZWl0aGVyIFwiYmFzZVwiLCBcImFjY2VudFwiLCBcImNhc2VcIiwgb3IgXCJ2
YXJpYW50XCIiLCBudWxscHRyKTsKKyAgICBtX3NlbnNpdGl2aXR5ID0gaW50bE9wdGlvbjxTZW5z
aXRpdml0eT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5zZW5zaXRp
dml0eSwgeyB7ICJiYXNlIl9zLCBTZW5zaXRpdml0eTo6QmFzZSB9LCB7ICJhY2NlbnQiX3MsIFNl
bnNpdGl2aXR5OjpBY2NlbnQgfSwgeyAiY2FzZSJfcywgU2Vuc2l0aXZpdHk6OkNhc2UgfSwgeyAi
dmFyaWFudCJfcywgU2Vuc2l0aXZpdHk6OlZhcmlhbnQgfSB9LCAic2Vuc2l0aXZpdHkgbXVzdCBi
ZSBlaXRoZXIgXCJiYXNlXCIsIFwiYWNjZW50XCIsIFwiY2FzZVwiLCBvciBcInZhcmlhbnRcIiJf
cywgU2Vuc2l0aXZpdHk6OlZhcmlhbnQpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7Ci0gICAgaWYgKHNlbnNpdGl2aXR5U3RyaW5nID09ICJiYXNlIikKLSAgICAgICAg
bV9zZW5zaXRpdml0eSA9IFNlbnNpdGl2aXR5OjpCYXNlOwotICAgIGVsc2UgaWYgKHNlbnNpdGl2
aXR5U3RyaW5nID09ICJhY2NlbnQiKQotICAgICAgICBtX3NlbnNpdGl2aXR5ID0gU2Vuc2l0aXZp
dHk6OkFjY2VudDsKLSAgICBlbHNlIGlmIChzZW5zaXRpdml0eVN0cmluZyA9PSAiY2FzZSIpCi0g
ICAgICAgIG1fc2Vuc2l0aXZpdHkgPSBTZW5zaXRpdml0eTo6Q2FzZTsKLSAgICBlbHNlCi0gICAg
ICAgIG1fc2Vuc2l0aXZpdHkgPSBTZW5zaXRpdml0eTo6VmFyaWFudDsKIAogICAgIFRyaVN0YXRl
IGlnbm9yZVB1bmN0dWF0aW9uID0gaW50bEJvb2xlYW5PcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRp
b25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5pZ25vcmVQdW5jdHVhdGlvbik7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDdkZmJjMzY3Y2Y0ZmI0Mjk4
YWRmNjExZDEyYzZhZTJmNDY3NjEzODUuLjFlNjljOGU3YzUxYWE4ZTg0N2QwMjMyY2Q4NzRmMDMy
YTFjZDA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxE
YXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtNDIxLDkgKzQyMSw4IEBAIHZvaWQgSW50bERhdGVUaW1l
Rm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG9wdDsKIAotICAgIFN0cmluZyBs
b2NhbGVNYXRjaGVyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZt
LnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgImxvb2t1cCIsICJiZXN0IGZpdCIgfSwg
ImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIi
LCAiYmVzdCBmaXQiKTsKKyAgICBMb2NhbGVNYXRjaGVyIGxvY2FsZU1hdGNoZXIgPSBpbnRsT3B0
aW9uPExvY2FsZU1hdGNoZXI+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1l
cy0+bG9jYWxlTWF0Y2hlciwgeyB7ICJsb29rdXAiX3MsIExvY2FsZU1hdGNoZXI6Okxvb2t1cCB9
LCB7ICJiZXN0IGZpdCJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCB9IH0sICJsb2NhbGVNYXRj
aGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIl9zLCBMb2NhbGVN
YXRjaGVyOjpCZXN0Rml0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwotICAgIG9wdC5hZGQodm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlci5zdHJpbmcoKSwg
bG9jYWxlTWF0Y2hlcik7CiAKICAgICBTdHJpbmcgY2FsZW5kYXIgPSBpbnRsU3RyaW5nT3B0aW9u
KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+Y2FsZW5kYXIsIHsgfSwg
bnVsbHB0ciwgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKQEAgLTQ2MCw3ICs0NTksNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIG9w
dC5hZGQoImhjIl9zLCBTdHJpbmcoKSk7CiAKICAgICBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2
YWlsYWJsZUxvY2FsZXMgPSBpbnRsRGF0ZVRpbWVGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0g
ICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2Jh
bE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgb3B0LCBJbnRsRGF0
ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVO
R1RIKEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBs
b2NhbGVEYXRhKTsKKyAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29s
dmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVz
LCBsb2NhbGVNYXRjaGVyLCBvcHQsIEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFu
dEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bERhdGVUaW1lRm9ybWF0SW50ZXJu
YWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogCiAgICAgbV9sb2NhbGUg
PSByZXNvbHZlZC5nZXQodm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlLnN0cmluZygpKTsKICAgICBp
ZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CkBAIC00OTYsMTEwICs0OTUsMTQ4IEBAIHZvaWQgSW50
bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKICAgICBtX3RpbWVab25lID0gdHo7CiAKICAgICBTdHJpbmdCdWlsZGVy
IHNrZWxldG9uQnVpbGRlcjsKLSAgICBhdXRvIG5hcnJvd1Nob3J0TG9uZyA9IHsgIm5hcnJvdyIs
ICJzaG9ydCIsICJsb25nIiB9OwotICAgIGF1dG8gdHdvRGlnaXROdW1lcmljID0geyAiMi1kaWdp
dCIsICJudW1lcmljIiB9OwotICAgIGF1dG8gdHdvRGlnaXROdW1lcmljTmFycm93U2hvcnRMb25n
ID0geyAiMi1kaWdpdCIsICJudW1lcmljIiwgIm5hcnJvdyIsICJzaG9ydCIsICJsb25nIiB9Owot
ICAgIGF1dG8gc2hvcnRMb25nID0geyAic2hvcnQiLCAibG9uZyIgfTsKIAotICAgIFN0cmluZyB3
ZWVrZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3Bl
cnR5TmFtZXMtPndlZWtkYXksIG5hcnJvd1Nob3J0TG9uZywgIndlZWtkYXkgbXVzdCBiZSBcIm5h
cnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CisgICAgV2Vla2RheSB3
ZWVrZGF5ID0gaW50bE9wdGlvbjxXZWVrZGF5PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnBy
b3BlcnR5TmFtZXMtPndlZWtkYXksIHsgeyAibmFycm93Il9zLCBXZWVrZGF5OjpOYXJyb3cgfSwg
eyAic2hvcnQiX3MsIFdlZWtkYXk6OlNob3J0IH0sIHsgImxvbmciX3MsIFdlZWtkYXk6Okxvbmcg
fSB9LCAid2Vla2RheSBtdXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIi
X3MsIFdlZWtkYXk6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7Ci0gICAgaWYgKCF3ZWVrZGF5LmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICh3ZWVrZGF5ID09
ICJuYXJyb3ciKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVF
RUVFIik7Ci0gICAgICAgIGVsc2UgaWYgKHdlZWtkYXkgPT0gInNob3J0IikKLSAgICAgICAgICAg
IHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRUUiKTsKLSAgICAgICAgZWxzZSBpZiAo
d2Vla2RheSA9PSAibG9uZyIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiRUVFRSIpOworICAgIHN3aXRjaCAod2Vla2RheSkgeworICAgIGNhc2UgV2Vla2RheTo6
TmFycm93OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRUVFRUUiKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWVrZGF5OjpTaG9ydDoKKyAgICAgICAgc2tlbGV0
b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVFRSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlZWtkYXk6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJF
RUVFIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vla2RheTo6Tm9uZToKKyAgICAgICAg
YnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIGVyYSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5lcmEsIG5hcnJvd1Nob3J0TG9uZywg
ImVyYSBtdXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIiLCBudWxscHRy
KTsKKyAgICBFcmEgZXJhID0gaW50bE9wdGlvbjxFcmE+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+ZXJhLCB7IHsgIm5hcnJvdyJfcywgRXJhOjpOYXJyb3cgfSwgeyAi
c2hvcnQiX3MsIEVyYTo6U2hvcnQgfSwgeyAibG9uZyJfcywgRXJhOjpMb25nIH0gfSwgImVyYSBt
dXN0IGJlIFwibmFycm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIiX3MsIEVyYTo6Tm9uZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIWVyYS5p
c051bGwoKSkgewotICAgICAgICBpZiAoZXJhID09ICJuYXJyb3ciKQotICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkdHR0dHIik7Ci0gICAgICAgIGVsc2UgaWYgKGVy
YSA9PSAic2hvcnQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwo
IkdHRyIpOwotICAgICAgICBlbHNlIGlmIChlcmEgPT0gImxvbmciKQotICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkdHR0ciKTsKKyAgICBzd2l0Y2ggKGVyYSkgewor
ICAgIGNhc2UgRXJhOjpOYXJyb3c6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJHR0dHRyIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVyYTo6U2hvcnQ6CisgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJHR0ciKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBFcmE6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJHR0dHIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJhOjpOb25lOgorICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBTdHJpbmcgeWVhciA9IGludGxTdHJpbmdPcHRpb24oZ2xv
YmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT55ZWFyLCB0d29EaWdpdE51bWVy
aWMsICJ5ZWFyIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsK
KyAgICBZZWFyIHllYXIgPSBpbnRsT3B0aW9uPFllYXI+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+eWVhciwgeyB7ICIyLWRpZ2l0Il9zLCBZZWFyOjpUd29EaWdpdCB9
LCB7ICJudW1lcmljIl9zLCBZZWFyOjpOdW1lcmljIH0gfSwgInllYXIgbXVzdCBiZSBcIjItZGln
aXRcIiBvciBcIm51bWVyaWNcIiJfcywgWWVhcjo6Tm9uZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIXllYXIuaXNOdWxsKCkpIHsKLSAgICAgICAg
aWYgKHllYXIgPT0gIjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVu
ZExpdGVyYWwoInl5Iik7Ci0gICAgICAgIGVsc2UgaWYgKHllYXIgPT0gIm51bWVyaWMiKQotICAg
ICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgneScpOworICAgIHN3aXRjaCAoeWVhcikg
eworICAgIGNhc2UgWWVhcjo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJ5eSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFllYXI6Ok51bWVyaWM6
CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ3knKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBZZWFyOjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBTdHJpbmcg
bW9udGggPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+bW9udGgsIHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZywgIm1vbnRoIG11
c3QgYmUgXCIyLWRpZ2l0XCIsIFwibnVtZXJpY1wiLCBcIm5hcnJvd1wiLCBcInNob3J0XCIsIG9y
IFwibG9uZ1wiIiwgbnVsbHB0cik7CisgICAgTW9udGggbW9udGggPSBpbnRsT3B0aW9uPE1vbnRo
PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1vbnRoLCB7IHsgIjIt
ZGlnaXQiX3MsIE1vbnRoOjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBNb250aDo6TnVtZXJp
YyB9LCB7ICJuYXJyb3ciX3MsIE1vbnRoOjpOYXJyb3cgfSwgeyAic2hvcnQiX3MsIE1vbnRoOjpT
aG9ydCB9LCB7ICJsb25nIl9zLCBNb250aDo6TG9uZyB9IH0sICJtb250aCBtdXN0IGJlIFwiMi1k
aWdpdFwiLCBcIm51bWVyaWNcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBvciBcImxvbmdcIiJf
cywgTW9udGg6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgaWYgKCFtb250aC5pc051bGwoKSkgewotICAgICAgICBpZiAobW9udGggPT0gIjItZGln
aXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIk1NIik7Ci0g
ICAgICAgIGVsc2UgaWYgKG1vbnRoID09ICJudW1lcmljIikKLSAgICAgICAgICAgIHNrZWxldG9u
QnVpbGRlci5hcHBlbmQoJ00nKTsKLSAgICAgICAgZWxzZSBpZiAobW9udGggPT0gIm5hcnJvdyIp
Ci0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NTU0iKTsKLSAg
ICAgICAgZWxzZSBpZiAobW9udGggPT0gInNob3J0IikKLSAgICAgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTU0iKTsKLSAgICAgICAgZWxzZSBpZiAobW9udGggPT0gImxv
bmciKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIk1NTU0iKTsK
LSAgICB9Ci0KLSAgICBTdHJpbmcgZGF5ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmRheSwgdHdvRGlnaXROdW1lcmljLCAiZGF5IG11
c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiLCBudWxscHRyKTsKKyAgICBzd2l0Y2gg
KG1vbnRoKSB7CisgICAgY2FzZSBNb250aDo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vbnRo
OjpOdW1lcmljOgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdNJyk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTW9udGg6Ok5hcnJvdzoKKyAgICAgICAgc2tlbGV0b25CdWlsZGVy
LmFwcGVuZExpdGVyYWwoIk1NTU1NIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9udGg6
OlNob3J0OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NIik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9udGg6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJNTU1NIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9u
dGg6Ok5vbmU6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIERheSBkYXkgPSBpbnRsT3B0
aW9uPERheT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5kYXksIHsg
eyAiMi1kaWdpdCJfcywgRGF5OjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBEYXk6Ok51bWVy
aWMgfSB9LCAiZGF5IG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiX3MsIERheTo6
Tm9uZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAo
IWRheS5pc051bGwoKSkgewotICAgICAgICBpZiAoZGF5ID09ICIyLWRpZ2l0IikKLSAgICAgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJkZCIpOwotICAgICAgICBlbHNlIGlm
IChkYXkgPT0gIm51bWVyaWMiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgn
ZCcpOworICAgIHN3aXRjaCAoZGF5KSB7CisgICAgY2FzZSBEYXk6OlR3b0RpZ2l0OgorICAgICAg
ICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiZGQiKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBEYXk6Ok51bWVyaWM6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ2Qn
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEYXk6Ok5vbmU6CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAotICAgIFN0cmluZyBob3VyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmhvdXIsIHR3b0RpZ2l0TnVtZXJpYywgImhvdXIg
bXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNcIiIsIG51bGxwdHIpOworICAgIEhvdXIg
aG91ciA9IGludGxPcHRpb248SG91cj4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0
eU5hbWVzLT5ob3VyLCB7IHsgIjItZGlnaXQiX3MsIEhvdXI6OlR3b0RpZ2l0IH0sIHsgIm51bWVy
aWMiX3MsIEhvdXI6Ok51bWVyaWMgfSB9LCAiaG91ciBtdXN0IGJlIFwiMi1kaWdpdFwiIG9yIFwi
bnVtZXJpY1wiIl9zLCBIb3VyOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIGlmIChob3VyID09ICIyLWRpZ2l0IikgeworICAgIHN3aXRjaCAoaG91
cikgeworICAgIGNhc2UgSG91cjo6VHdvRGlnaXQ6CiAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVm
aW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCJqaiIpOwogICAgICAgICBlbHNlIGlmIChob3VyMTIgPT0gVHJpU3Rh
dGU6OlRydWUpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiaGgi
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVy
YWwoIkhIIik7Ci0gICAgfSBlbHNlIGlmIChob3VyID09ICJudW1lcmljIikgeworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEhvdXI6Ok51bWVyaWM6CiAgICAgICAgIGlmIChpc0hvdXIxMlVuZGVm
aW5lZCAmJiBtX2hvdXJDeWNsZS5pc051bGwoKSkKICAgICAgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmQoJ2onKTsKICAgICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVl
KQogICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgnaCcpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdIJyk7Ci0gICAgfSBlbHNlCisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSG91cjo6Tm9uZToKICAgICAgICAgbV9ob3VyQ3ljbGUg
PSBTdHJpbmcoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgU3RyaW5nIG1pbnV0ZSA9
IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVz
LT5taW51dGUsIHR3b0RpZ2l0TnVtZXJpYywgIm1pbnV0ZSBtdXN0IGJlIFwiMi1kaWdpdFwiIG9y
IFwibnVtZXJpY1wiIiwgbnVsbHB0cik7CisgICAgTWludXRlIG1pbnV0ZSA9IGludGxPcHRpb248
TWludXRlPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1pbnV0ZSwg
eyB7ICIyLWRpZ2l0Il9zLCBNaW51dGU6OlR3b0RpZ2l0IH0sIHsgIm51bWVyaWMiX3MsIE1pbnV0
ZTo6TnVtZXJpYyB9IH0sICJtaW51dGUgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNc
IiJfcywgTWludXRlOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lk
KCkpOwotICAgIGlmICghbWludXRlLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChtaW51dGUgPT0g
IjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIm1t
Iik7Ci0gICAgICAgIGVsc2UgaWYgKG1pbnV0ZSA9PSAibnVtZXJpYyIpCi0gICAgICAgICAgICBz
a2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdtJyk7CisgICAgc3dpdGNoIChtaW51dGUpIHsKKyAgICBj
YXNlIE1pbnV0ZTo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRl
cmFsKCJtbSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1pbnV0ZTo6TnVtZXJpYzoKKyAg
ICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgnbScpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1pbnV0ZTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIHNl
Y29uZCA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0
eU5hbWVzLT5zZWNvbmQsIHR3b0RpZ2l0TnVtZXJpYywgInNlY29uZCBtdXN0IGJlIFwiMi1kaWdp
dFwiIG9yIFwibnVtZXJpY1wiIiwgbnVsbHB0cik7CisgICAgU2Vjb25kIHNlY29uZCA9IGludGxP
cHRpb248U2Vjb25kPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnNl
Y29uZCwgeyB7ICIyLWRpZ2l0Il9zLCBTZWNvbmQ6OlR3b0RpZ2l0IH0sIHsgIm51bWVyaWMiX3Ms
IFNlY29uZDo6TnVtZXJpYyB9IH0sICJzZWNvbmQgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51
bWVyaWNcIiJfcywgU2Vjb25kOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIGlmICghc2Vjb25kLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmIChzZWNv
bmQgPT0gIjItZGlnaXQiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVy
YWwoInNzIik7Ci0gICAgICAgIGVsc2UgaWYgKHNlY29uZCA9PSAibnVtZXJpYyIpCi0gICAgICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdzJyk7CisgICAgc3dpdGNoIChzZWNvbmQpIHsK
KyAgICBjYXNlIFNlY29uZDo6VHdvRGlnaXQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmRMaXRlcmFsKCJzcyIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY29uZDo6TnVtZXJp
YzoKKyAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgncycpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFNlY29uZDo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3Ry
aW5nIHRpbWVab25lTmFtZSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25z
LCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIHNob3J0TG9uZywgInRpbWVab25lTmFt
ZSBtdXN0IGJlIFwic2hvcnRcIiBvciBcImxvbmdcIiIsIG51bGxwdHIpOworICAgIFRpbWVab25l
TmFtZSB0aW1lWm9uZU5hbWUgPSBpbnRsT3B0aW9uPFRpbWVab25lTmFtZT4oZ2xvYmFsT2JqZWN0
LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT50aW1lWm9uZU5hbWUsIHsgeyAic2hvcnQiX3Ms
IFRpbWVab25lTmFtZTo6U2hvcnQgfSwgeyAibG9uZyJfcywgVGltZVpvbmVOYW1lOjpMb25nIH0g
fSwgInRpbWVab25lTmFtZSBtdXN0IGJlIFwic2hvcnRcIiBvciBcImxvbmdcIiJfcywgVGltZVpv
bmVOYW1lOjpOb25lKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwot
ICAgIGlmICghdGltZVpvbmVOYW1lLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICh0aW1lWm9uZU5h
bWUgPT0gInNob3J0IikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ3onKTsK
LSAgICAgICAgZWxzZSBpZiAodGltZVpvbmVOYW1lID09ICJsb25nIikKLSAgICAgICAgICAgIHNr
ZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ6enp6Iik7CisgICAgc3dpdGNoICh0aW1lWm9u
ZU5hbWUpIHsKKyAgICBjYXNlIFRpbWVab25lTmFtZTo6U2hvcnQ6CisgICAgICAgIHNrZWxldG9u
QnVpbGRlci5hcHBlbmQoJ3onKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUaW1lWm9uZU5h
bWU6Okxvbmc6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ6enp6Iik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVGltZVpvbmVOYW1lOjpOb25lOgorICAgICAgICBi
cmVhazsKICAgICB9CiAKICAgICBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9u
cywgdm0ucHJvcGVydHlOYW1lcy0+Zm9ybWF0TWF0Y2hlciwgeyAiYmFzaWMiLCAiYmVzdCBmaXQi
IH0sICJmb3JtYXRNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwiYmFzaWNcIiBvciBcImJlc3QgZml0
XCIiLCAiYmVzdCBmaXQiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdC5jcHAKaW5kZXggMWNiNDU1NjRmYTk0NTRmMzEyYzc5MjY0ODFmZmVh
MDUwMjVkODBiYy4uYjY0NmQ1MmQ1YjM1MTI0NWE5NDI5YjBmYjk1N2I5ZDhmNTMzZDBlZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdC5j
cHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJJbnRsTnVtYmVyRm9ybWF0LmgiCiAKICNp
bmNsdWRlICJFcnJvci5oIgotI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNsdWRlICJJbnRs
T2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQm91bmRGdW5jdGlvbi5oIgogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgpAQCAtMTczLDkg
KzE3Myw4IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAKICAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiBvcHQ7CiAKLSAgICBTdHJpbmcgbWF0Y2hlciA9IGludGxTdHJpbmdPcHRpb24oZ2xv
YmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJs
b29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9v
a3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CisgICAgTG9jYWxlTWF0Y2hlciBs
b2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgeyAibG9va3VwIl9zLCBM
b2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExvY2FsZU1hdGNoZXI6OkJl
c3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9yIFwi
YmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBvcHQuYWRkKCJsb2NhbGVNYXRjaGVyIl9zLCBt
YXRjaGVyKTsKIAogICAgIFN0cmluZyBudW1iZXJpbmdTeXN0ZW0gPSBpbnRsU3RyaW5nT3B0aW9u
KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bnVtYmVyaW5nU3lzdGVt
LCB7IH0sIG51bGxwdHIsIG51bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7CkBAIC0xODgsNyArMTg3LDcgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0Ojppbml0
aWFsaXplTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmEKICAg
ICB9CiAKICAgICBhdXRvJiBhdmFpbGFibGVMb2NhbGVzID0gaW50bE51bWJlckZvcm1hdEF2YWls
YWJsZUxvY2FsZXMoKTsKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2Jq
ZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxOdW1iZXJG
b3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKElu
dGxOdW1iZXJGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0
YSk7CisgICAgYXV0byByZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxh
YmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0Y2hlciwgb3B0LCBJbnRsTnVt
YmVyRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdU
SChJbnRsTnVtYmVyRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2Fs
ZURhdGEpOwogCiAgICAgbV9sb2NhbGUgPSByZXN1bHQuZ2V0KCJsb2NhbGUiX3MpOwogICAgIGlm
IChtX2xvY2FsZS5pc0VtcHR5KCkpIHsKQEAgLTE5OCwxNiArMTk3LDggQEAgdm9pZCBJbnRsTnVt
YmVyRm9ybWF0Ojppbml0aWFsaXplTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmEKIAogICAgIG1fbnVtYmVyaW5nU3lzdGVtID0gcmVzdWx0LmdldCgibnUiX3Mp
OwogCi0gICAgU3RyaW5nIHN0eWxlU3RyaW5nID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7ICJkZWNpbWFsIiwgInBlcmNl
bnQiLCAiY3VycmVuY3kiIH0sICJzdHlsZSBtdXN0IGJlIGVpdGhlciBcImRlY2ltYWxcIiwgXCJw
ZXJjZW50XCIsIG9yIFwiY3VycmVuY3lcIiIsICJkZWNpbWFsIik7CisgICAgbV9zdHlsZSA9IGlu
dGxPcHRpb248U3R5bGU+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+
c3R5bGUsIHsgeyAiZGVjaW1hbCJfcywgU3R5bGU6OkRlY2ltYWwgfSwgeyAicGVyY2VudCJfcywg
U3R5bGU6OlBlcmNlbnQgfSwgeyAiY3VycmVuY3kiX3MsIFN0eWxlOjpDdXJyZW5jeSB9IH0sICJz
dHlsZSBtdXN0IGJlIGVpdGhlciBcImRlY2ltYWxcIiwgXCJwZXJjZW50XCIsIG9yIFwiY3VycmVu
Y3lcIiJfcywgU3R5bGU6OkRlY2ltYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7Ci0gICAgaWYgKHN0eWxlU3RyaW5nID09ICJkZWNpbWFsIikKLSAgICAgICAgbV9z
dHlsZSA9IFN0eWxlOjpEZWNpbWFsOwotICAgIGVsc2UgaWYgKHN0eWxlU3RyaW5nID09ICJwZXJj
ZW50IikKLSAgICAgICAgbV9zdHlsZSA9IFN0eWxlOjpQZXJjZW50OwotICAgIGVsc2UgaWYgKHN0
eWxlU3RyaW5nID09ICJjdXJyZW5jeSIpCi0gICAgICAgIG1fc3R5bGUgPSBTdHlsZTo6Q3VycmVu
Y3k7Ci0gICAgZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgIFN0cmlu
ZyBjdXJyZW5jeSA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3kiKSwgeyB9LCBudWxscHRyLCBudWxscHRy
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtMjMwLDE4ICsy
MjEsOCBAQCB2b2lkIEludGxOdW1iZXJGb3JtYXQ6OmluaXRpYWxpemVOdW1iZXJGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYQogICAgICAgICBjdXJyZW5jeURpZ2l0cyA9
IGNvbXB1dGVDdXJyZW5jeURpZ2l0cyhjdXJyZW5jeSk7CiAgICAgfQogCi0gICAgU3RyaW5nIGN1
cnJlbmN5RGlzcGxheVN0cmluZyA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRp
b25zLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VycmVuY3lEaXNwbGF5IiksIHsgImNv
ZGUiLCAic3ltYm9sIiwgIm5hbWUiIH0sICJjdXJyZW5jeURpc3BsYXkgbXVzdCBiZSBlaXRoZXIg
XCJjb2RlXCIsIFwic3ltYm9sXCIsIG9yIFwibmFtZVwiIiwgInN5bWJvbCIpOworICAgIG1fY3Vy
cmVuY3lEaXNwbGF5ID0gaW50bE9wdGlvbjxDdXJyZW5jeURpc3BsYXk+KGdsb2JhbE9iamVjdCwg
b3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1cnJlbmN5RGlzcGxheSIpLCB7
IHsgImNvZGUiX3MsIEN1cnJlbmN5RGlzcGxheTo6Q29kZSB9LCB7ICJzeW1ib2wiX3MsIEN1cnJl
bmN5RGlzcGxheTo6U3ltYm9sIH0sIHsgIm5hbWUiX3MsIEN1cnJlbmN5RGlzcGxheTo6TmFtZSB9
IH0sICJjdXJyZW5jeURpc3BsYXkgbXVzdCBiZSBlaXRoZXIgXCJjb2RlXCIsIFwic3ltYm9sXCIs
IG9yIFwibmFtZVwiIl9zLCBDdXJyZW5jeURpc3BsYXk6OlN5bWJvbCk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAobV9zdHlsZSA9PSBTdHlsZTo6Q3Vy
cmVuY3kpIHsKLSAgICAgICAgaWYgKGN1cnJlbmN5RGlzcGxheVN0cmluZyA9PSAiY29kZSIpCi0g
ICAgICAgICAgICBtX2N1cnJlbmN5RGlzcGxheSA9IEN1cnJlbmN5RGlzcGxheTo6Q29kZTsKLSAg
ICAgICAgZWxzZSBpZiAoY3VycmVuY3lEaXNwbGF5U3RyaW5nID09ICJzeW1ib2wiKQotICAgICAg
ICAgICAgbV9jdXJyZW5jeURpc3BsYXkgPSBDdXJyZW5jeURpc3BsYXk6OlN5bWJvbDsKLSAgICAg
ICAgZWxzZSBpZiAoY3VycmVuY3lEaXNwbGF5U3RyaW5nID09ICJuYW1lIikKLSAgICAgICAgICAg
IG1fY3VycmVuY3lEaXNwbGF5ID0gQ3VycmVuY3lEaXNwbGF5OjpOYW1lOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CiAKICAgICB1bnNpZ25l
ZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IGludGxOdW1iZXJPcHRpb24oZ2xvYmFsT2JqZWN0LCBv
cHRpb25zLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWluaW11bUludGVnZXJEaWdpdHMi
KSwgMSwgMjEsIDEpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IGE0NDg0
N2VjZThjZjg4MTE5NTE1Mjg3MDZkZjQ1Njg5M2E3N2JmOTYuLjBlNjg3OTdhZmQ3N2M4ZmE2MmY2
NDIzMzA0MTdjN2RlOTM4MWE4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwCkBAIC02MjksMTMgKzYyOSwxMiBAQCBzdGF0aWMgdm9pZCB1bmljb2Rl
RXh0ZW5zaW9uU3ViVGFncyhjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgVmVjdG9yPFN0cmluZz4m
IHN1YgogICAgIHN1YnRhZ3MuYXBwZW5kKGV4dGVuc2lvbi5zdWJzdHJpbmcodmFsdWVTdGFydCwg
ZXh0ZW5zaW9uTGVuZ3RoIC0gdmFsdWVTdGFydCkpOwogfQogCi1IYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiByZXNvbHZlTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEhh
c2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJl
cXVlc3RlZExvY2FsZXMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBvcHRpb25zLCBj
b25zdCBjaGFyKiBjb25zdCByZWxldmFudEV4dGVuc2lvbktleXNbXSwgc2l6ZV90IHJlbGV2YW50
RXh0ZW5zaW9uS2V5Q291bnQsIFZlY3RvcjxTdHJpbmc+ICgqbG9jYWxlRGF0YSkoY29uc3QgU3Ry
aW5nJiwgc2l6ZV90KSkKK0hhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVMb2NhbGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFi
bGVMb2NhbGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgTG9jYWxl
TWF0Y2hlciBsb2NhbGVNYXRjaGVyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYgb3B0
aW9ucywgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzW10sIHNpemVfdCBy
ZWxldmFudEV4dGVuc2lvbktleUNvdW50LCBWZWN0b3I8U3RyaW5nPiAoKmxvY2FsZURhdGEpKGNv
bnN0IFN0cmluZyYsIHNpemVfdCkpCiB7CiAgICAgLy8gUmVzb2x2ZUxvY2FsZSAoYXZhaWxhYmxl
TG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgb3B0aW9ucywgcmVsZXZhbnRFeHRlbnNpb25LZXlz
LCBsb2NhbGVEYXRhKQogICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2Vj
LXJlc29sdmVsb2NhbGUKIAotICAgIGNvbnN0IFN0cmluZyYgbWF0Y2hlciA9IG9wdGlvbnMuZ2V0
KCJsb2NhbGVNYXRjaGVyIl9zKTsKLSAgICBNYXRjaGVyUmVzdWx0IG1hdGNoZXJSZXN1bHQgPSAo
bWF0Y2hlciA9PSAibG9va3VwIikKKyAgICBNYXRjaGVyUmVzdWx0IG1hdGNoZXJSZXN1bHQgPSBs
b2NhbGVNYXRjaGVyID09IExvY2FsZU1hdGNoZXI6Okxvb2t1cAogICAgICAgICA/IGxvb2t1cE1h
dGNoZXIoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzKQog
ICAgICAgICA6IGJlc3RGaXRNYXRjaGVyKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywg
cmVxdWVzdGVkTG9jYWxlcyk7CiAKQEAgLTc0NCwxMyArNzQzLDEwIEBAIEpTVmFsdWUgc3VwcG9y
dGVkTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoU2V0PFN0
cmluZz4mIGF2CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAg
IFN0cmluZyBtYXRjaGVyOwogCi0gICAgaWYgKCFvcHRpb25zLmlzVW5kZWZpbmVkKCkpIHsKLSAg
ICAgICAgbWF0Y2hlciA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2
bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0s
ICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwi
IiwgImJlc3QgZml0Iik7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFs
dWUoKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1hdGNoZXIgPSAiYmVzdCBmaXQiX3M7CisgICAg
TG9jYWxlTWF0Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihn
bG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsg
eyAibG9va3VwIl9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExv
Y2FsZU1hdGNoZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBc
Imxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7Cisg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAotICAgIEpTQXJyYXkq
IHN1cHBvcnRlZExvY2FsZXMgPSAobWF0Y2hlciA9PSAiYmVzdCBmaXQiKQorICAgIEpTQXJyYXkq
IHN1cHBvcnRlZExvY2FsZXMgPSBsb2NhbGVNYXRjaGVyID09IExvY2FsZU1hdGNoZXI6OkJlc3RG
aXQKICAgICAgICAgPyBiZXN0Rml0U3VwcG9ydGVkTG9jYWxlcyhnbG9iYWxPYmplY3QsIGF2YWls
YWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMpCiAgICAgICAgIDogbG9va3VwU3VwcG9ydGVk
TG9jYWxlcyhnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKaW5kZXggNjgxOGJmOTY2ZDI0YjcwYzUw
NjRhY2NhZDM2MDM5NDA2NmQwZDUwMC4uMDU3MDBlZjRmY2VjNjBmMWQyN2VjZjI2OTIyMWZlZDZj
M2E5ZjljNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaApA
QCAtMzQsNiArMzQsMTEgQEAgc3RydWN0IFVGaWVsZFBvc2l0aW9uSXRlcmF0b3I7CiAKIG5hbWVz
cGFjZSBKU0MgewogCitlbnVtIGNsYXNzIExvY2FsZU1hdGNoZXIgeworICAgIExvb2t1cCwKKyAg
ICBCZXN0Rml0LAorfTsKKwogY2xhc3MgSW50bE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25GaW5hbE9iamVjdDsK
QEAgLTcxLDcgKzc2LDcgQEAgdW5zaWduZWQgaW50bERlZmF1bHROdW1iZXJPcHRpb24oSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUsIHVuc2lnbmUKIFZlY3RvcjxjaGFyLCAz
Mj4gbG9jYWxlSURCdWZmZXJGb3JMYW5ndWFnZVRhZyhjb25zdCBDU3RyaW5nJik7CiBTdHJpbmcg
bGFuZ3VhZ2VUYWdGb3JMb2NhbGVJRChjb25zdCBjaGFyKiwgYm9vbCBpc0ltbW9ydGFsID0gZmFs
c2UpOwogVmVjdG9yPFN0cmluZz4gY2Fub25pY2FsaXplTG9jYWxlTGlzdChKU0dsb2JhbE9iamVj
dCosIEpTVmFsdWUgbG9jYWxlcyk7Ci1IYXNoTWFwPFN0cmluZywgU3RyaW5nPiByZXNvbHZlTG9j
YWxlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2Nh
bGVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgY29uc3QgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4mIG9wdGlvbnMsIGNvbnN0IGNoYXIqIGNvbnN0IHJlbGV2YW50RXh0
ZW5zaW9uS2V5c1tdLCBzaXplX3QgcmVsZXZhbnRFeHRlbnNpb25LZXlDb3VudCwgVmVjdG9yPFN0
cmluZz4gKCpsb2NhbGVEYXRhKShjb25zdCBTdHJpbmcmLCBzaXplX3QpKTsKK0hhc2hNYXA8U3Ry
aW5nLCBTdHJpbmc+IHJlc29sdmVMb2NhbGUoSlNHbG9iYWxPYmplY3QqLCBjb25zdCBIYXNoU2V0
PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXF1ZXN0
ZWRMb2NhbGVzLCBMb2NhbGVNYXRjaGVyLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiYg
b3B0aW9ucywgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzW10sIHNpemVf
dCByZWxldmFudEV4dGVuc2lvbktleUNvdW50LCBWZWN0b3I8U3RyaW5nPiAoKmxvY2FsZURhdGEp
KGNvbnN0IFN0cmluZyYsIHNpemVfdCkpOwogSlNWYWx1ZSBzdXBwb3J0ZWRMb2NhbGVzKEpTR2xv
YmFsT2JqZWN0KiwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcmVxdWVzdGVkTG9jYWxlcywgSlNWYWx1ZSBvcHRpb25zKTsKIFN0
cmluZyByZW1vdmVVbmljb2RlTG9jYWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbG9jYWxlKTsK
IFN0cmluZyBiZXN0QXZhaWxhYmxlTG9jYWxlKGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxh
YmxlTG9jYWxlcywgY29uc3QgU3RyaW5nJiByZXF1ZXN0ZWRMb2NhbGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJbmxpbmVzLmgKaW5kZXggNTVlYWM0
NjYxNDJhMDU1Y2VlNjRlNmZhNDA4MjcxZDA0NDMxYmY5OS4uZDViMDMxNDdhZTlkZDhmNGUyYjkw
OWRjYTU1YjI0ODcxOWMxY2ViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0SW5saW5lcy5oCkBAIC04MSw0ICs4MSwzOSBAQCBKU1ZhbHVlIGNvbnN0
cnVjdEludGxJbnN0YW5jZVdpdGhXb3JrYXJvdW5kRm9yTGVnYWN5SW50bENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZmFjdG9yeSh2bSkpOwog
fQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXN1bHRUeXBlPgorUmVzdWx0VHlwZSBpbnRsT3B0aW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgb3B0aW9ucywgUHJvcGVydHlO
YW1lIHByb3BlcnR5LCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8c3RkOjpwYWlyPEFTQ0lJTGl0ZXJh
bCwgUmVzdWx0VHlwZT4+IHZhbHVlcywgQVNDSUlMaXRlcmFsIG5vdEZvdW5kTWVzc2FnZSwgUmVz
dWx0VHlwZSBmYWxsYmFjaykKK3sKKyAgICAvLyBHZXRPcHRpb24gKG9wdGlvbnMsIHByb3BlcnR5
LCB0eXBlPSJzdHJpbmciLCB2YWx1ZXMsIGZhbGxiYWNrKQorICAgIC8vIGh0dHBzOi8vdGMzOS5n
aXRodWIuaW8vZWNtYTQwMi8jc2VjLWdldG9wdGlvbgorCisgICAgQVNTRVJUKHZhbHVlcy5zaXpl
KCkgPiAwKTsKKworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAob3B0aW9ucy5pc1VuZGVm
aW5lZCgpKQorICAgICAgICByZXR1cm4gZmFsbGJhY2s7CisKKyAgICBKU09iamVjdCogb3B0cyA9
IG9wdGlvbnMudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOworCisgICAgSlNWYWx1ZSB2YWx1ZSA9IG9wdHMtPmdldChnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworCisg
ICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIFN0cmluZyBzdHJpbmdWYWx1
ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbnRyeSA6
IHZhbHVlcykgeworICAgICAgICAgICAgaWYgKGVudHJ5LmZpcnN0ID09IHN0cmluZ1ZhbHVlKQor
ICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5zZWNvbmQ7CisgICAgICAgIH0KKyAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihnbG9i
YWxPYmplY3QsIG5vdEZvdW5kTWVzc2FnZSkpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0K
KworICAgIHJldHVybiBmYWxsYmFjazsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcAppbmRleCBj
NDk5YWRhMTlmM2FkNGMyZjgzMGFkYzNjNTNiOGQ1YTZjMWY1NzZmLi4yZDU3ZTY4ZmY2OWQwZTA5
Y2NiYzFmNzBhOGU0NTE2Yjg0NmMyZGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJJbnRsUGx1cmFsUnVsZXMuaCIKIAotI2luY2x1ZGUgIklu
dGxPYmplY3QuaCIKKyNpbmNsdWRlICJJbnRsT2JqZWN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogCkBAIC0xMDksMjEg
KzEwOSwxOSBAQCB2b2lkIEludGxQbHVyYWxSdWxlczo6aW5pdGlhbGl6ZVBsdXJhbFJ1bGVzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdQogICAgIH0KIAogICAgIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IGxvY2FsZU9wdDsKLSAgICBTdHJpbmcgbG9jYWxlTWF0Y2hlciA9IGlu
dGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
b2NhbGVNYXRjaGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2NhbGVNYXRjaGVyIG11
c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7Cisg
ICAgTG9jYWxlTWF0Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVy
PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIs
IHsgeyAibG9va3VwIl9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3Ms
IExvY2FsZU1hdGNoZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhl
ciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBsb2NhbGVPcHQu
YWRkKHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIuc3RyaW5nKCksIGxvY2FsZU1hdGNo
ZXIpOwogCiAgICAgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzID0gaW50
bFBsdXJhbFJ1bGVzQXZhaWxhYmxlTG9jYWxlcygpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IHJlc29sdmVkID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2Fs
ZXMsIHJlcXVlc3RlZExvY2FsZXMsIGxvY2FsZU9wdCwgbnVsbHB0ciwgMCwgbG9jYWxlRGF0YSk7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGds
b2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0
Y2hlciwgbG9jYWxlT3B0LCBudWxscHRyLCAwLCBsb2NhbGVEYXRhKTsKICAgICBtX2xvY2FsZSA9
IHJlc29sdmVkLmdldCh2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGUuc3RyaW5nKCkpOwogICAgIGlm
IChtX2xvY2FsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFsaXplIFBsdXJhbFJ1bGVzIGR1ZSB0byBpbnZh
bGlkIGxvY2FsZSJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgdHlw
ZVN0cmluZyA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9w
ZXJ0eU5hbWVzLT50eXBlLCB7ICJjYXJkaW5hbCIsICJvcmRpbmFsIiB9LCAidHlwZSBtdXN0IGJl
IFwiY2FyZGluYWxcIiBvciBcIm9yZGluYWxcIiIsICJjYXJkaW5hbCIpOworICAgIG1fdHlwZSA9
IGludGxPcHRpb248VHlwZT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVz
LT50eXBlLCB7IHsgImNhcmRpbmFsIl9zLCBUeXBlOjpDYXJkaW5hbCB9LCB7ICJvcmRpbmFsIl9z
LCBUeXBlOjpPcmRpbmFsIH0gfSwgInR5cGUgbXVzdCBiZSBcImNhcmRpbmFsXCIgb3IgXCJvcmRp
bmFsXCIiX3MsIFR5cGU6OkNhcmRpbmFsKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIG1fdHlwZSA9IHR5cGVTdHJpbmcgPT0gIm9yZGluYWwiID8gVHlwZTo6
T3JkaW5hbCA6IFR5cGU6OkNhcmRpbmFsOwogCiAgICAgdW5zaWduZWQgbWluaW11bUludGVnZXJE
aWdpdHMgPSBpbnRsTnVtYmVyT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgIm1pbmltdW1JbnRlZ2VyRGlnaXRzIiksIDEsIDIxLCAxKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcAppbmRl
eCA5MWIxYmZhMTQyNTg5MWY3YzNjODU0NGEyYjc0OTgwMzBmN2M0NmU3Li45ZTA0YTYyYjg1Njdh
ZTkwMGQxMDM2MmZjYzZjMTUzM2NkMGQxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcApAQCAtMjcsNyAr
MjcsNyBAQAogI2luY2x1ZGUgIkludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaCIKIAogI2luY2x1ZGUg
IkludGxOdW1iZXJGb3JtYXQuaCIKLSNpbmNsdWRlICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAi
SW50bE9iamVjdElubGluZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9pY3UvSUNVSGVscGVy
cy5oPgpAQCAtMTA4LDkgKzEwOCw4IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6aW5p
dGlhbGl6ZVJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfQog
CiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gb3B0OwotICAgIFN0cmluZyBsb2NhbGVNYXRj
aGVyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5
TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgImxvb2t1cCIsICJiZXN0IGZpdCIgfSwgImxvY2FsZU1h
dGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIiLCAiYmVzdCBm
aXQiKTsKKyAgICBMb2NhbGVNYXRjaGVyIGxvY2FsZU1hdGNoZXIgPSBpbnRsT3B0aW9uPExvY2Fs
ZU1hdGNoZXI+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxl
TWF0Y2hlciwgeyB7ICJsb29rdXAiX3MsIExvY2FsZU1hdGNoZXI6Okxvb2t1cCB9LCB7ICJiZXN0
IGZpdCJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCB9IH0sICJsb2NhbGVNYXRjaGVyIG11c3Qg
YmUgZWl0aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIl9zLCBMb2NhbGVNYXRjaGVyOjpC
ZXN0Rml0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIG9w
dC5hZGQodm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlci5zdHJpbmcoKSwgbG9jYWxlTWF0
Y2hlcik7CiAKICAgICBTdHJpbmcgbnVtYmVyaW5nU3lzdGVtID0gaW50bFN0cmluZ09wdGlvbihn
bG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm51bWJlcmluZ1N5c3RlbSwg
eyB9LCBudWxscHRyLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2
b2lkKCkpOwpAQCAtMTIzLDcgKzEyMiw3IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6
aW5pdGlhbGl6ZVJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAg
fQogCiAgICAgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzID0gaW50bFJl
bGF0aXZlVGltZUZvcm1hdEF2YWlsYWJsZUxvY2FsZXMoKTsKLSAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVM
b2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRJbnRl
cm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlfTEVOR1RIKEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGds
b2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0
Y2hlciwgb3B0LCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5z
aW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsUmVsYXRpdmVUaW1lRm9ybWF0SW50ZXJuYWw6
OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOwogICAgIG1fbG9jYWxlID0gcmVz
b2x2ZWQuZ2V0KHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZS5zdHJpbmcoKSk7CiAgICAgaWYgKG1f
bG9jYWxlLmlzRW1wdHkoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxpemUgUmVsYXRpdmVUaW1lRm9ybWF0IGR1ZSB0byBp
bnZhbGlkIGxvY2FsZSJfcyk7CkBAIC0xMzMsMjQgKzEzMiwyMyBAQCB2b2lkIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogICAgIG1fbnVtYmVyaW5nU3lzdGVtID0gcmVzb2x2ZWQuZ2V0KCJudSJfcyk7CiAg
ICAgQ1N0cmluZyBkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMgPSBtYWtlU3RyaW5nKHJlc29sdmVk
LmdldCgiZGF0YUxvY2FsZSJfcyksICItdS1udS0iLCBtX251bWJlcmluZ1N5c3RlbSkudXRmOCgp
OwogCi0gICAgU3RyaW5nIHN0eWxlID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7ICJsb25nIiwgInNob3J0IiwgIm5hcnJv
dyIgfSwgInN0eWxlIG11c3QgYmUgZWl0aGVyIFwibG9uZ1wiLCBcInNob3J0XCIsIG9yIFwibmFy
cm93XCIiLCAibG9uZyIpOworICAgIG1fc3R5bGUgPSBpbnRsT3B0aW9uPFN0eWxlPihnbG9iYWxP
YmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7IHsgImxvbmciX3MsIFN0
eWxlOjpMb25nIH0sIHsgInNob3J0Il9zLCBTdHlsZTo6U2hvcnQgfSwgeyAibmFycm93Il9zLCBT
dHlsZTo6TmFycm93IH0gfSwgInN0eWxlIG11c3QgYmUgZWl0aGVyIFwibG9uZ1wiLCBcInNob3J0
XCIsIG9yIFwibmFycm93XCIiX3MsIFN0eWxlOjpMb25nKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIFVEYXRlUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlclN0
eWxlIGljdVN0eWxlOwotICAgIGlmIChzdHlsZSA9PSAibG9uZyIpIHsKKyAgICBzd2l0Y2ggKG1f
c3R5bGUpIHsKKyAgICBjYXNlIFN0eWxlOjpMb25nOgogICAgICAgICBpY3VTdHlsZSA9IFVEQVRf
U1RZTEVfTE9ORzsKLSAgICAgICAgbV9zdHlsZSA9IFN0eWxlOjpMb25nOwotICAgIH0gZWxzZSBp
ZiAoc3R5bGUgPT0gInNob3J0IikgeworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0eWxlOjpT
aG9ydDoKICAgICAgICAgaWN1U3R5bGUgPSBVREFUX1NUWUxFX1NIT1JUOwotICAgICAgICBtX3N0
eWxlID0gU3R5bGU6OlNob3J0OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChzdHlsZSA9
PSAibmFycm93Iik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3R5bGU6Ok5hcnJvdzoKICAg
ICAgICAgaWN1U3R5bGUgPSBVREFUX1NUWUxFX05BUlJPVzsKLSAgICAgICAgbV9zdHlsZSA9IFN0
eWxlOjpOYXJyb3c7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFN0cmluZyBudW1lcmlj
ID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFt
ZXMtPm51bWVyaWMsIHsgImFsd2F5cyIsICJhdXRvIiB9LCAibnVtZXJpYyBtdXN0IGJlIGVpdGhl
ciBcImFsd2F5c1wiIG9yIFwiYXV0b1wiIiwgImFsd2F5cyIpOworICAgIG1fbnVtZXJpYyA9IGlu
dGxPcHRpb248Ym9vbD4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5u
dW1lcmljLCB7IHsgImFsd2F5cyJfcywgdHJ1ZSB9LCB7ICJhdXRvIl9zLCBmYWxzZSB9IH0sICJu
dW1lcmljIG11c3QgYmUgZWl0aGVyIFwiYWx3YXlzXCIgb3IgXCJhdXRvXCIiX3MsIHRydWUpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgbV9udW1lcmljID0g
KG51bWVyaWMgPT0gImFsd2F5cyIpOwogCiAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9f
RVJST1I7CiAgICAgbV9udW1iZXJGb3JtYXQgPSBzdGQ6OnVuaXF1ZV9wdHI8VU51bWJlckZvcm1h
dCwgVU51bWJlckZvcm1hdERlbGV0ZXI+KHVudW1fb3BlbihVTlVNX0RFQ0lNQUwsIG51bGxwdHIs
IDAsIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIG51bGxwdHIsICZzdGF0dXMpKTsK
</data>
<flag name="review"
          id="419896"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404534</attachid>
            <date>2020-07-16 21:10:56 -0700</date>
            <delta_ts>2020-07-16 21:10:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214437-20200716211055.patch</filename>
            <type>text/plain</type>
            <size>35222</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
OGM0MGY4Njg3ZTQ0NzBjM2JlM2Y4NzM1NjIyZDJjNTJlNzljMDcxLi5jMTc2OTFhMjE2ZTgzNTNk
YjFkZjVhNjYzNTM3NDdkYzcwYmJkNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wNy0xNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENsZWFuIHVwIEludGwgb3B0aW9uIHBhcnNpbmcgY29kZSBieSBp
bnRyb2R1Y2luZyBpbnRsT3B0aW9uPD4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNDQzNworCisgICAgICAgIFJldmlld2VkIGJ5IFJvc3MgS2lyc2xp
bmcuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGludGxPcHRpb248PiguLi4pIGZ1
bmN0aW9uIGFuZCByZW1vdmUgcmVkdW5kYW50IHN0cmluZyBjb21wYXJpc29ucy4KKyAgICAgICAg
VGhpcyBtYWtlcyBvcHRpb24gaGFuZGxpbmcgZWZmaWNpZW50LCBhbmQgaXQgbWFrZXMgY29kZSBj
bGVhbi4KKworICAgICAgICAqIHJ1bnRpbWUvSW50bENvbGxhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6SW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IpOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bERhdGVUaW1lRm9ybWF0LmNwcDoKKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0
Ojppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE51bWJl
ckZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJGb3JtYXQ6OmluaXRpYWxpemVO
dW1iZXJGb3JtYXQpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OnJlc29sdmVMb2NhbGUpOgorICAgICAgICAoSlNDOjpzdXBwb3J0ZWRMb2NhbGVzKToK
KyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxP
YmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OmludGxPcHRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvSW50bFBsdXJhbFJ1bGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bFBsdXJhbFJ1bGVz
Ojppbml0aWFsaXplUGx1cmFsUnVsZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZl
VGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6Omlu
aXRpYWxpemVSZWxhdGl2ZVRpbWVGb3JtYXQpOgorCiAyMDIwLTA3LTE2ICBGdWppaSBIaXJvbm9y
aSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXVEZdIFJlbW92ZSB0aGUg
dW5uZWNlc3NhcnkgaW5uZXIgY2xhc3MgRGVmYXVsdEhhc2g8VD46Okhhc2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3IuY3BwCmluZGV4IGJjNzQ5Nzc0ZDBj
ZjJjMWQxMDBiNTU0N2M0NzlmMTA3MzNiMmZiYmYuLjVhMDJiN2I2NzFmN2QxNjU0NDg2ZDZmMjY2
NzEyZDVkZDk5NzZkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxDb2xsYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bENvbGxhdG9yLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkludGxDb2xsYXRvci5oIgogCi0jaW5jbHVkZSAiSW50bE9iamVjdC5oIgorI2luY2x1
ZGUgIkludGxPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNCb3VuZEZ1bmN0aW9uLmgiCiAj
aW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCkBA
IC0xNzgsMjIgKzE3OCwxNSBAQCB2b2lkIEludGxDb2xsYXRvcjo6aW5pdGlhbGl6ZUNvbGxhdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9jYQogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAgIH0KIAotICAgIFN0cmluZyB1c2Fn
ZVN0cmluZyA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9w
ZXJ0eU5hbWVzLT51c2FnZSwgeyAic29ydCIsICJzZWFyY2giIH0sICJ1c2FnZSBtdXN0IGJlIGVp
dGhlciBcInNvcnRcIiBvciBcInNlYXJjaFwiIiwgInNvcnQiKTsKKyAgICBtX3VzYWdlID0gaW50
bE9wdGlvbjxVc2FnZT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT51
c2FnZSwgeyB7ICJzb3J0Il9zLCBVc2FnZTo6U29ydCB9LCB7ICJzZWFyY2giX3MsIFVzYWdlOjpT
ZWFyY2ggfSB9LCAidXNhZ2UgbXVzdCBiZSBlaXRoZXIgXCJzb3J0XCIgb3IgXCJzZWFyY2hcIiJf
cywgVXNhZ2U6OlNvcnQpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgaWYgKHVzYWdlU3RyaW5nID09ICJzb3J0IikKLSAgICAgICAgbV91c2FnZSA9IFVzYWdl
OjpTb3J0OwotICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJzZWFyY2giKQotICAgICAgICBt
X3VzYWdlID0gVXNhZ2U6OlNlYXJjaDsKLSAgICBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogCiAgICAgYXV0byBsb2NhbGVEYXRhID0gKG1fdXNhZ2UgPT0gVXNhZ2U6OlNvcnQp
ID8gc29ydExvY2FsZURhdGEgOiBzZWFyY2hMb2NhbGVEYXRhOwogCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz4gb3B0OwogCi0gICAgU3RyaW5nIG1hdGNoZXIgPSBpbnRsU3RyaW5nT3B0aW9u
KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlciwg
eyAibG9va3VwIiwgImJlc3QgZml0IiB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBc
Imxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiIsICJiZXN0IGZpdCIpOworICAgIExvY2FsZU1hdGNo
ZXIgbG9jYWxlTWF0Y2hlciA9IGludGxPcHRpb248TG9jYWxlTWF0Y2hlcj4oZ2xvYmFsT2JqZWN0
LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7IHsgImxvb2t1cCJf
cywgTG9jYWxlTWF0Y2hlcjo6TG9va3VwIH0sIHsgImJlc3QgZml0Il9zLCBMb2NhbGVNYXRjaGVy
OjpCZXN0Rml0IH0gfSwgImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBv
ciBcImJlc3QgZml0XCIiX3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgb3B0LmFkZCgibG9jYWxlTWF0Y2hlciJf
cywgbWF0Y2hlcik7CiAKICAgICBUcmlTdGF0ZSBudW1lcmljID0gaW50bEJvb2xlYW5PcHRpb24o
Z2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5udW1lcmljKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtMjA2LDcgKzE5OSw3IEBAIHZv
aWQgSW50bENvbGxhdG9yOjppbml0aWFsaXplQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBsb2NhCiAgICAgICAgIG9wdC5hZGQoImtmIl9zLCBjYXNlRmlyc3RP
cHRpb24pOwogCiAgICAgYXV0byYgYXZhaWxhYmxlTG9jYWxlcyA9IGludGxDb2xsYXRvckF2YWls
YWJsZUxvY2FsZXMoKTsKLSAgICBhdXRvIHJlc3VsdCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2Jq
ZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBvcHQsIEludGxDb2xsYXRv
ckludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bENv
bGxhdG9ySW50ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOworICAg
IGF1dG8gcmVzdWx0ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2Fs
ZXMsIHJlcXVlc3RlZExvY2FsZXMsIGxvY2FsZU1hdGNoZXIsIG9wdCwgSW50bENvbGxhdG9ySW50
ZXJuYWw6OnJlbGV2YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsQ29sbGF0
b3JJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CiAKICAgICBt
X2xvY2FsZSA9IHJlc3VsdC5nZXQoImxvY2FsZSJfcyk7CiAgICAgaWYgKG1fbG9jYWxlLmlzRW1w
dHkoKSkgewpAQCAtMjI2LDE2ICsyMTksOCBAQCB2b2lkIEludGxDb2xsYXRvcjo6aW5pdGlhbGl6
ZUNvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgbG9jYQogICAg
IGVsc2UKICAgICAgICAgbV9jYXNlRmlyc3QgPSBDYXNlRmlyc3Q6OkZhbHNlOwogCi0gICAgU3Ry
aW5nIHNlbnNpdGl2aXR5U3RyaW5nID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9w
dGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnNlbnNpdGl2aXR5LCB7ICJiYXNlIiwgImFjY2VudCIs
ICJjYXNlIiwgInZhcmlhbnQiIH0sICJzZW5zaXRpdml0eSBtdXN0IGJlIGVpdGhlciBcImJhc2Vc
IiwgXCJhY2NlbnRcIiwgXCJjYXNlXCIsIG9yIFwidmFyaWFudFwiIiwgbnVsbHB0cik7CisgICAg
bV9zZW5zaXRpdml0eSA9IGludGxPcHRpb248U2Vuc2l0aXZpdHk+KGdsb2JhbE9iamVjdCwgb3B0
aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+c2Vuc2l0aXZpdHksIHsgeyAiYmFzZSJfcywgU2Vuc2l0
aXZpdHk6OkJhc2UgfSwgeyAiYWNjZW50Il9zLCBTZW5zaXRpdml0eTo6QWNjZW50IH0sIHsgImNh
c2UiX3MsIFNlbnNpdGl2aXR5OjpDYXNlIH0sIHsgInZhcmlhbnQiX3MsIFNlbnNpdGl2aXR5OjpW
YXJpYW50IH0gfSwgInNlbnNpdGl2aXR5IG11c3QgYmUgZWl0aGVyIFwiYmFzZVwiLCBcImFjY2Vu
dFwiLCBcImNhc2VcIiwgb3IgXCJ2YXJpYW50XCIiX3MsIFNlbnNpdGl2aXR5OjpWYXJpYW50KTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGlmIChzZW5zaXRp
dml0eVN0cmluZyA9PSAiYmFzZSIpCi0gICAgICAgIG1fc2Vuc2l0aXZpdHkgPSBTZW5zaXRpdml0
eTo6QmFzZTsKLSAgICBlbHNlIGlmIChzZW5zaXRpdml0eVN0cmluZyA9PSAiYWNjZW50IikKLSAg
ICAgICAgbV9zZW5zaXRpdml0eSA9IFNlbnNpdGl2aXR5OjpBY2NlbnQ7Ci0gICAgZWxzZSBpZiAo
c2Vuc2l0aXZpdHlTdHJpbmcgPT0gImNhc2UiKQotICAgICAgICBtX3NlbnNpdGl2aXR5ID0gU2Vu
c2l0aXZpdHk6OkNhc2U7Ci0gICAgZWxzZQotICAgICAgICBtX3NlbnNpdGl2aXR5ID0gU2Vuc2l0
aXZpdHk6OlZhcmlhbnQ7CiAKICAgICBUcmlTdGF0ZSBpZ25vcmVQdW5jdHVhdGlvbiA9IGludGxC
b29sZWFuT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+aWdu
b3JlUHVuY3R1YXRpb24pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcAppbmRleCA3ZGZiYzM2N2NmNGZiNDI5OGFkZjYxMWQxMmM2YWUyZjQ2NzYxMzg1Li4x
ZTY5YzhlN2M1MWFhOGU4NDdkMDIzMmNkODc0ZjAzMmExY2QwNDhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKQEAgLTQy
MSw5ICs0MjEsOCBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1l
Rm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKICAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiBvcHQ7CiAKLSAgICBTdHJpbmcgbG9jYWxlTWF0Y2hlciA9IGludGxTdHJpbmdP
cHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRj
aGVyLCB7ICJsb29rdXAiLCAiYmVzdCBmaXQiIH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0
aGVyIFwibG9va3VwXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CisgICAgTG9jYWxl
TWF0Y2hlciBsb2NhbGVNYXRjaGVyID0gaW50bE9wdGlvbjxMb2NhbGVNYXRjaGVyPihnbG9iYWxP
YmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsgeyAibG9v
a3VwIl9zLCBMb2NhbGVNYXRjaGVyOjpMb29rdXAgfSwgeyAiYmVzdCBmaXQiX3MsIExvY2FsZU1h
dGNoZXI6OkJlc3RGaXQgfSB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1
cFwiIG9yIFwiYmVzdCBmaXRcIiJfcywgTG9jYWxlTWF0Y2hlcjo6QmVzdEZpdCk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBvcHQuYWRkKHZtLnByb3BlcnR5
TmFtZXMtPmxvY2FsZU1hdGNoZXIuc3RyaW5nKCksIGxvY2FsZU1hdGNoZXIpOwogCiAgICAgU3Ry
aW5nIGNhbGVuZGFyID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZt
LnByb3BlcnR5TmFtZXMtPmNhbGVuZGFyLCB7IH0sIG51bGxwdHIsIG51bGxwdHIpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CkBAIC00NjAsNyArNDU5LDcgQEAgdm9p
ZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LAogICAgICAgICBvcHQuYWRkKCJoYyJfcywgU3RyaW5nKCkpOwog
CiAgICAgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzID0gaW50bERhdGVU
aW1lRm9ybWF0QXZhaWxhYmxlTG9jYWxlcygpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IHJlc29sdmVkID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMs
IHJlcXVlc3RlZExvY2FsZXMsIG9wdCwgSW50bERhdGVUaW1lRm9ybWF0SW50ZXJuYWw6OnJlbGV2
YW50RXh0ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsRGF0ZVRpbWVGb3JtYXRJbnRl
cm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzKSwgbG9jYWxlRGF0YSk7CisgICAgSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZh
aWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcywgbG9jYWxlTWF0Y2hlciwgb3B0LCBJbnRs
RGF0ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJSQVlf
TEVOR1RIKEludGxEYXRlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMp
LCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxlID0gcmVzb2x2ZWQuZ2V0KHZtLnByb3BlcnR5
TmFtZXMtPmxvY2FsZS5zdHJpbmcoKSk7CiAgICAgaWYgKG1fbG9jYWxlLmlzRW1wdHkoKSkgewpA
QCAtNDk2LDExMCArNDk1LDE0OCBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdDo6aW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgbV90aW1l
Wm9uZSA9IHR6OwogCiAgICAgU3RyaW5nQnVpbGRlciBza2VsZXRvbkJ1aWxkZXI7Ci0gICAgYXV0
byBuYXJyb3dTaG9ydExvbmcgPSB7ICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsKLSAgICBh
dXRvIHR3b0RpZ2l0TnVtZXJpYyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIgfTsKLSAgICBhdXRv
IHR3b0RpZ2l0TnVtZXJpY05hcnJvd1Nob3J0TG9uZyA9IHsgIjItZGlnaXQiLCAibnVtZXJpYyIs
ICJuYXJyb3ciLCAic2hvcnQiLCAibG9uZyIgfTsKLSAgICBhdXRvIHNob3J0TG9uZyA9IHsgInNo
b3J0IiwgImxvbmciIH07CiAKLSAgICBTdHJpbmcgd2Vla2RheSA9IGludGxTdHJpbmdPcHRpb24o
Z2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT53ZWVrZGF5LCBuYXJyb3dT
aG9ydExvbmcsICJ3ZWVrZGF5IG11c3QgYmUgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBvciBcImxv
bmdcIiIsIG51bGxwdHIpOworICAgIFdlZWtkYXkgd2Vla2RheSA9IGludGxPcHRpb248V2Vla2Rh
eT4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT53ZWVrZGF5LCB7IHsg
Im5hcnJvdyJfcywgV2Vla2RheTo6TmFycm93IH0sIHsgInNob3J0Il9zLCBXZWVrZGF5OjpTaG9y
dCB9LCB7ICJsb25nIl9zLCBXZWVrZGF5OjpMb25nIH0gfSwgIndlZWtkYXkgbXVzdCBiZSBcIm5h
cnJvd1wiLCBcInNob3J0XCIsIG9yIFwibG9uZ1wiIl9zLCBXZWVrZGF5OjpOb25lKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGlmICghd2Vla2RheS5pc051
bGwoKSkgewotICAgICAgICBpZiAod2Vla2RheSA9PSAibmFycm93IikKLSAgICAgICAgICAgIHNr
ZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJFRUVFRSIpOwotICAgICAgICBlbHNlIGlmICh3
ZWVrZGF5ID09ICJzaG9ydCIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiRUVFIik7Ci0gICAgICAgIGVsc2UgaWYgKHdlZWtkYXkgPT0gImxvbmciKQotICAgICAg
ICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoIkVFRUUiKTsKKyAgICBzd2l0Y2gg
KHdlZWtkYXkpIHsKKyAgICBjYXNlIFdlZWtkYXk6Ok5hcnJvdzoKKyAgICAgICAgc2tlbGV0b25C
dWlsZGVyLmFwcGVuZExpdGVyYWwoIkVFRUVFIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2Vla2RheTo6U2hvcnQ6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJF
RUUiKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWVrZGF5OjpMb25nOgorICAgICAgICBz
a2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiRUVFRSIpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlZWtkYXk6Ok5vbmU6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFN0cmlu
ZyBlcmEgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+ZXJhLCBuYXJyb3dTaG9ydExvbmcsICJlcmEgbXVzdCBiZSBcIm5hcnJvd1wiLCBc
InNob3J0XCIsIG9yIFwibG9uZ1wiIiwgbnVsbHB0cik7CisgICAgRXJhIGVyYSA9IGludGxPcHRp
b248RXJhPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmVyYSwgeyB7
ICJuYXJyb3ciX3MsIEVyYTo6TmFycm93IH0sIHsgInNob3J0Il9zLCBFcmE6OlNob3J0IH0sIHsg
ImxvbmciX3MsIEVyYTo6TG9uZyB9IH0sICJlcmEgbXVzdCBiZSBcIm5hcnJvd1wiLCBcInNob3J0
XCIsIG9yIFwibG9uZ1wiIl9zLCBFcmE6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7Ci0gICAgaWYgKCFlcmEuaXNOdWxsKCkpIHsKLSAgICAgICAgaWYgKGVy
YSA9PSAibmFycm93IikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJHR0dHRyIpOwotICAgICAgICBlbHNlIGlmIChlcmEgPT0gInNob3J0IikKLSAgICAgICAgICAg
IHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJHR0ciKTsKLSAgICAgICAgZWxzZSBpZiAo
ZXJhID09ICJsb25nIikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJHR0dHIik7CisgICAgc3dpdGNoIChlcmEpIHsKKyAgICBjYXNlIEVyYTo6TmFycm93OgorICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiR0dHR0ciKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBFcmE6OlNob3J0OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiR0dHIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJhOjpMb25nOgorICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiR0dHRyIpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEVyYTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3Ry
aW5nIHllYXIgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJv
cGVydHlOYW1lcy0+eWVhciwgdHdvRGlnaXROdW1lcmljLCAieWVhciBtdXN0IGJlIFwiMi1kaWdp
dFwiIG9yIFwibnVtZXJpY1wiIiwgbnVsbHB0cik7CisgICAgWWVhciB5ZWFyID0gaW50bE9wdGlv
bjxZZWFyPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnllYXIsIHsg
eyAiMi1kaWdpdCJfcywgWWVhcjo6VHdvRGlnaXQgfSwgeyAibnVtZXJpYyJfcywgWWVhcjo6TnVt
ZXJpYyB9IH0sICJ5ZWFyIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiX3MsIFll
YXI6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAg
aWYgKCF5ZWFyLmlzTnVsbCgpKSB7Ci0gICAgICAgIGlmICh5ZWFyID09ICIyLWRpZ2l0IikKLSAg
ICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ5eSIpOwotICAgICAgICBl
bHNlIGlmICh5ZWFyID09ICJudW1lcmljIikKLSAgICAgICAgICAgIHNrZWxldG9uQnVpbGRlci5h
cHBlbmQoJ3knKTsKKyAgICBzd2l0Y2ggKHllYXIpIHsKKyAgICBjYXNlIFllYXI6OlR3b0RpZ2l0
OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgieXkiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBZZWFyOjpOdW1lcmljOgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIu
YXBwZW5kKCd5Jyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWWVhcjo6Tm9uZToKKyAgICAg
ICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIG1vbnRoID0gaW50bFN0cmluZ09wdGlvbihn
bG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm1vbnRoLCB0d29EaWdpdE51
bWVyaWNOYXJyb3dTaG9ydExvbmcsICJtb250aCBtdXN0IGJlIFwiMi1kaWdpdFwiLCBcIm51bWVy
aWNcIiwgXCJuYXJyb3dcIiwgXCJzaG9ydFwiLCBvciBcImxvbmdcIiIsIG51bGxwdHIpOworICAg
IE1vbnRoIG1vbnRoID0gaW50bE9wdGlvbjxNb250aD4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2
bS5wcm9wZXJ0eU5hbWVzLT5tb250aCwgeyB7ICIyLWRpZ2l0Il9zLCBNb250aDo6VHdvRGlnaXQg
fSwgeyAibnVtZXJpYyJfcywgTW9udGg6Ok51bWVyaWMgfSwgeyAibmFycm93Il9zLCBNb250aDo6
TmFycm93IH0sIHsgInNob3J0Il9zLCBNb250aDo6U2hvcnQgfSwgeyAibG9uZyJfcywgTW9udGg6
OkxvbmcgfSB9LCAibW9udGggbXVzdCBiZSBcIjItZGlnaXRcIiwgXCJudW1lcmljXCIsIFwibmFy
cm93XCIsIFwic2hvcnRcIiwgb3IgXCJsb25nXCIiX3MsIE1vbnRoOjpOb25lKTsKICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGlmICghbW9udGguaXNOdWxsKCkp
IHsKLSAgICAgICAgaWYgKG1vbnRoID09ICIyLWRpZ2l0IikKLSAgICAgICAgICAgIHNrZWxldG9u
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJNTSIpOwotICAgICAgICBlbHNlIGlmIChtb250aCA9PSAi
bnVtZXJpYyIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdNJyk7Ci0gICAg
ICAgIGVsc2UgaWYgKG1vbnRoID09ICJuYXJyb3ciKQotICAgICAgICAgICAgc2tlbGV0b25CdWls
ZGVyLmFwcGVuZExpdGVyYWwoIk1NTU1NIik7Ci0gICAgICAgIGVsc2UgaWYgKG1vbnRoID09ICJz
aG9ydCIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NIik7
Ci0gICAgICAgIGVsc2UgaWYgKG1vbnRoID09ICJsb25nIikKLSAgICAgICAgICAgIHNrZWxldG9u
QnVpbGRlci5hcHBlbmRMaXRlcmFsKCJNTU1NIik7Ci0gICAgfQotCi0gICAgU3RyaW5nIGRheSA9
IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVz
LT5kYXksIHR3b0RpZ2l0TnVtZXJpYywgImRheSBtdXN0IGJlIFwiMi1kaWdpdFwiIG9yIFwibnVt
ZXJpY1wiIiwgbnVsbHB0cik7CisgICAgc3dpdGNoIChtb250aCkgeworICAgIGNhc2UgTW9udGg6
OlR3b0RpZ2l0OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU0iKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb250aDo6TnVtZXJpYzoKKyAgICAgICAgc2tlbGV0
b25CdWlsZGVyLmFwcGVuZCgnTScpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vbnRoOjpO
YXJyb3c6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJNTU1NTSIpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vbnRoOjpTaG9ydDoKKyAgICAgICAgc2tlbGV0b25C
dWlsZGVyLmFwcGVuZExpdGVyYWwoIk1NTSIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1v
bnRoOjpMb25nOgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiTU1NTSIp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vbnRoOjpOb25lOgorICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICBEYXkgZGF5ID0gaW50bE9wdGlvbjxEYXk+KGdsb2JhbE9iamVjdCwgb3B0
aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+ZGF5LCB7IHsgIjItZGlnaXQiX3MsIERheTo6VHdvRGln
aXQgfSwgeyAibnVtZXJpYyJfcywgRGF5OjpOdW1lcmljIH0gfSwgImRheSBtdXN0IGJlIFwiMi1k
aWdpdFwiIG9yIFwibnVtZXJpY1wiIl9zLCBEYXk6Ok5vbmUpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgaWYgKCFkYXkuaXNOdWxsKCkpIHsKLSAgICAgICAg
aWYgKGRheSA9PSAiMi1kaWdpdCIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiZGQiKTsKLSAgICAgICAgZWxzZSBpZiAoZGF5ID09ICJudW1lcmljIikKLSAgICAg
ICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmQoJ2QnKTsKKyAgICBzd2l0Y2ggKGRheSkgewor
ICAgIGNhc2UgRGF5OjpUd29EaWdpdDoKKyAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZExp
dGVyYWwoImRkIik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRGF5OjpOdW1lcmljOgorICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdkJyk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRGF5OjpOb25lOgorICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBTdHJpbmcgaG91ciA9
IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVz
LT5ob3VyLCB0d29EaWdpdE51bWVyaWMsICJob3VyIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJu
dW1lcmljXCIiLCBudWxscHRyKTsKKyAgICBIb3VyIGhvdXIgPSBpbnRsT3B0aW9uPEhvdXI+KGds
b2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+aG91ciwgeyB7ICIyLWRpZ2l0
Il9zLCBIb3VyOjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBIb3VyOjpOdW1lcmljIH0gfSwg
ImhvdXIgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNcIiJfcywgSG91cjo6Tm9uZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoaG91ciA9
PSAiMi1kaWdpdCIpIHsKKyAgICBzd2l0Y2ggKGhvdXIpIHsKKyAgICBjYXNlIEhvdXI6OlR3b0Rp
Z2l0OgogICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQgJiYgbV9ob3VyQ3ljbGUuaXNOdWxs
KCkpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiamoiKTsKICAg
ICAgICAgZWxzZSBpZiAoaG91cjEyID09IFRyaVN0YXRlOjpUcnVlKQogICAgICAgICAgICAgc2tl
bGV0b25CdWlsZGVyLmFwcGVuZExpdGVyYWwoImhoIik7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJISCIpOwotICAgIH0gZWxzZSBpZiAo
aG91ciA9PSAibnVtZXJpYyIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIb3VyOjpOdW1l
cmljOgogICAgICAgICBpZiAoaXNIb3VyMTJVbmRlZmluZWQgJiYgbV9ob3VyQ3ljbGUuaXNOdWxs
KCkpCiAgICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCdqJyk7CiAgICAgICAgIGVs
c2UgaWYgKGhvdXIxMiA9PSBUcmlTdGF0ZTo6VHJ1ZSkKICAgICAgICAgICAgIHNrZWxldG9uQnVp
bGRlci5hcHBlbmQoJ2gnKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc2tlbGV0b25CdWls
ZGVyLmFwcGVuZCgnSCcpOwotICAgIH0gZWxzZQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEhv
dXI6Ok5vbmU6CiAgICAgICAgIG1faG91ckN5Y2xlID0gU3RyaW5nKCk7CisgICAgICAgIGJyZWFr
OworICAgIH0KIAotICAgIFN0cmluZyBtaW51dGUgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9i
amVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bWludXRlLCB0d29EaWdpdE51bWVyaWMs
ICJtaW51dGUgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNcIiIsIG51bGxwdHIpOwor
ICAgIE1pbnV0ZSBtaW51dGUgPSBpbnRsT3B0aW9uPE1pbnV0ZT4oZ2xvYmFsT2JqZWN0LCBvcHRp
b25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5taW51dGUsIHsgeyAiMi1kaWdpdCJfcywgTWludXRlOjpU
d29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBNaW51dGU6Ok51bWVyaWMgfSB9LCAibWludXRlIG11
c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiX3MsIE1pbnV0ZTo6Tm9uZSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIW1pbnV0ZS5pc051
bGwoKSkgewotICAgICAgICBpZiAobWludXRlID09ICIyLWRpZ2l0IikKLSAgICAgICAgICAgIHNr
ZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJtbSIpOwotICAgICAgICBlbHNlIGlmIChtaW51
dGUgPT0gIm51bWVyaWMiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVuZCgnbScp
OworICAgIHN3aXRjaCAobWludXRlKSB7CisgICAgY2FzZSBNaW51dGU6OlR3b0RpZ2l0OgorICAg
ICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgibW0iKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBNaW51dGU6Ok51bWVyaWM6CisgICAgICAgIHNrZWxldG9uQnVpbGRlci5hcHBl
bmQoJ20nKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNaW51dGU6Ok5vbmU6CisgICAgICAg
IGJyZWFrOwogICAgIH0KIAotICAgIFN0cmluZyBzZWNvbmQgPSBpbnRsU3RyaW5nT3B0aW9uKGds
b2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+c2Vjb25kLCB0d29EaWdpdE51
bWVyaWMsICJzZWNvbmQgbXVzdCBiZSBcIjItZGlnaXRcIiBvciBcIm51bWVyaWNcIiIsIG51bGxw
dHIpOworICAgIFNlY29uZCBzZWNvbmQgPSBpbnRsT3B0aW9uPFNlY29uZD4oZ2xvYmFsT2JqZWN0
LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5zZWNvbmQsIHsgeyAiMi1kaWdpdCJfcywgU2Vj
b25kOjpUd29EaWdpdCB9LCB7ICJudW1lcmljIl9zLCBTZWNvbmQ6Ok51bWVyaWMgfSB9LCAic2Vj
b25kIG11c3QgYmUgXCIyLWRpZ2l0XCIgb3IgXCJudW1lcmljXCIiX3MsIFNlY29uZDo6Tm9uZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIXNlY29u
ZC5pc051bGwoKSkgewotICAgICAgICBpZiAoc2Vjb25kID09ICIyLWRpZ2l0IikKLSAgICAgICAg
ICAgIHNrZWxldG9uQnVpbGRlci5hcHBlbmRMaXRlcmFsKCJzcyIpOwotICAgICAgICBlbHNlIGlm
IChzZWNvbmQgPT0gIm51bWVyaWMiKQotICAgICAgICAgICAgc2tlbGV0b25CdWlsZGVyLmFwcGVu
ZCgncycpOworICAgIHN3aXRjaCAoc2Vjb25kKSB7CisgICAgY2FzZSBTZWNvbmQ6OlR3b0RpZ2l0
OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgic3MiKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBTZWNvbmQ6Ok51bWVyaWM6CisgICAgICAgIHNrZWxldG9uQnVpbGRl
ci5hcHBlbmQoJ3MnKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWNvbmQ6Ok5vbmU6Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFN0cmluZyB0aW1lWm9uZU5hbWUgPSBpbnRsU3Ry
aW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+dGltZVpv
bmVOYW1lLCBzaG9ydExvbmcsICJ0aW1lWm9uZU5hbWUgbXVzdCBiZSBcInNob3J0XCIgb3IgXCJs
b25nXCIiLCBudWxscHRyKTsKKyAgICBUaW1lWm9uZU5hbWUgdGltZVpvbmVOYW1lID0gaW50bE9w
dGlvbjxUaW1lWm9uZU5hbWU+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1l
cy0+dGltZVpvbmVOYW1lLCB7IHsgInNob3J0Il9zLCBUaW1lWm9uZU5hbWU6OlNob3J0IH0sIHsg
ImxvbmciX3MsIFRpbWVab25lTmFtZTo6TG9uZyB9IH0sICJ0aW1lWm9uZU5hbWUgbXVzdCBiZSBc
InNob3J0XCIgb3IgXCJsb25nXCIiX3MsIFRpbWVab25lTmFtZTo6Tm9uZSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBpZiAoIXRpbWVab25lTmFtZS5pc051
bGwoKSkgewotICAgICAgICBpZiAodGltZVpvbmVOYW1lID09ICJzaG9ydCIpCi0gICAgICAgICAg
ICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCd6Jyk7Ci0gICAgICAgIGVsc2UgaWYgKHRpbWVab25l
TmFtZSA9PSAibG9uZyIpCi0gICAgICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgienp6eiIpOworICAgIHN3aXRjaCAodGltZVpvbmVOYW1lKSB7CisgICAgY2FzZSBUaW1lWm9u
ZU5hbWU6OlNob3J0OgorICAgICAgICBza2VsZXRvbkJ1aWxkZXIuYXBwZW5kKCd6Jyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVGltZVpvbmVOYW1lOjpMb25nOgorICAgICAgICBza2VsZXRv
bkJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgienp6eiIpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFRpbWVab25lTmFtZTo6Tm9uZToKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgaW50bFN0
cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmZvcm1h
dE1hdGNoZXIsIHsgImJhc2ljIiwgImJlc3QgZml0IiB9LCAiZm9ybWF0TWF0Y2hlciBtdXN0IGJl
IGVpdGhlciBcImJhc2ljXCIgb3IgXCJiZXN0IGZpdFwiIiwgImJlc3QgZml0Iik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCmluZGV4
IDFjYjQ1NTY0ZmE5NDU0ZjMxMmM3OTI2NDgxZmZlYTA1MDI1ZDgwYmMuLmI2NDZkNTJkNWIzNTEy
NDVhOTQyOWIwZmI5NTdiOWQ4ZjUzM2QwZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5j
bHVkZSAiSW50bE51bWJlckZvcm1hdC5oIgogCiAjaW5jbHVkZSAiRXJyb3IuaCIKLSNpbmNsdWRl
ICJJbnRsT2JqZWN0LmgiCisjaW5jbHVkZSAiSW50bE9iamVjdElubGluZXMuaCIKICNpbmNsdWRl
ICJKU0JvdW5kRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
T2JqZWN0Q29uc3RydWN0b3IuaCIKQEAgLTE3Myw5ICsxNzMsOCBAQCB2b2lkIEludGxOdW1iZXJG
b3JtYXQ6OmluaXRpYWxpemVOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gb3B0OwogCi0gICAgU3RyaW5n
IG1hdGNoZXIgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJv
cGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlciwgeyAibG9va3VwIiwgImJlc3QgZml0IiB9LCAibG9j
YWxlTWF0Y2hlciBtdXN0IGJlIGVpdGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiIsICJi
ZXN0IGZpdCIpOworICAgIExvY2FsZU1hdGNoZXIgbG9jYWxlTWF0Y2hlciA9IGludGxPcHRpb248
TG9jYWxlTWF0Y2hlcj4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5s
b2NhbGVNYXRjaGVyLCB7IHsgImxvb2t1cCJfcywgTG9jYWxlTWF0Y2hlcjo6TG9va3VwIH0sIHsg
ImJlc3QgZml0Il9zLCBMb2NhbGVNYXRjaGVyOjpCZXN0Rml0IH0gfSwgImxvY2FsZU1hdGNoZXIg
bXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIiX3MsIExvY2FsZU1hdGNo
ZXI6OkJlc3RGaXQpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0g
ICAgb3B0LmFkZCgibG9jYWxlTWF0Y2hlciJfcywgbWF0Y2hlcik7CiAKICAgICBTdHJpbmcgbnVt
YmVyaW5nU3lzdGVtID0gaW50bFN0cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZt
LnByb3BlcnR5TmFtZXMtPm51bWJlcmluZ1N5c3RlbSwgeyB9LCBudWxscHRyLCBudWxscHRyKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAtMTg4LDcgKzE4Nyw3
IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJlckZvcm1hdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAgICAgfQogCiAgICAgYXV0byYgYXZhaWxhYmxl
TG9jYWxlcyA9IGludGxOdW1iZXJGb3JtYXRBdmFpbGFibGVMb2NhbGVzKCk7Ci0gICAgYXV0byBy
ZXN1bHQgPSByZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVx
dWVzdGVkTG9jYWxlcywgb3B0LCBJbnRsTnVtYmVyRm9ybWF0SW50ZXJuYWw6OnJlbGV2YW50RXh0
ZW5zaW9uS2V5cywgV1RGX0FSUkFZX0xFTkdUSChJbnRsTnVtYmVyRm9ybWF0SW50ZXJuYWw6OnJl
bGV2YW50RXh0ZW5zaW9uS2V5cyksIGxvY2FsZURhdGEpOworICAgIGF1dG8gcmVzdWx0ID0gcmVz
b2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2Fs
ZXMsIGxvY2FsZU1hdGNoZXIsIG9wdCwgSW50bE51bWJlckZvcm1hdEludGVybmFsOjpyZWxldmFu
dEV4dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bE51bWJlckZvcm1hdEludGVybmFs
OjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRhKTsKIAogICAgIG1fbG9jYWxlID0g
cmVzdWx0LmdldCgibG9jYWxlIl9zKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgpKSB7CkBA
IC0xOTgsMTYgKzE5Nyw4IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdDo6aW5pdGlhbGl6ZU51bWJl
ckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhCiAKICAgICBtX251bWJl
cmluZ1N5c3RlbSA9IHJlc3VsdC5nZXQoIm51Il9zKTsKIAotICAgIFN0cmluZyBzdHlsZVN0cmlu
ZyA9IGludGxTdHJpbmdPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5h
bWVzLT5zdHlsZSwgeyAiZGVjaW1hbCIsICJwZXJjZW50IiwgImN1cnJlbmN5IiB9LCAic3R5bGUg
bXVzdCBiZSBlaXRoZXIgXCJkZWNpbWFsXCIsIFwicGVyY2VudFwiLCBvciBcImN1cnJlbmN5XCIi
LCAiZGVjaW1hbCIpOworICAgIG1fc3R5bGUgPSBpbnRsT3B0aW9uPFN0eWxlPihnbG9iYWxPYmpl
Y3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnN0eWxlLCB7IHsgImRlY2ltYWwiX3MsIFN0
eWxlOjpEZWNpbWFsIH0sIHsgInBlcmNlbnQiX3MsIFN0eWxlOjpQZXJjZW50IH0sIHsgImN1cnJl
bmN5Il9zLCBTdHlsZTo6Q3VycmVuY3kgfSB9LCAic3R5bGUgbXVzdCBiZSBlaXRoZXIgXCJkZWNp
bWFsXCIsIFwicGVyY2VudFwiLCBvciBcImN1cnJlbmN5XCIiX3MsIFN0eWxlOjpEZWNpbWFsKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGlmIChzdHlsZVN0
cmluZyA9PSAiZGVjaW1hbCIpCi0gICAgICAgIG1fc3R5bGUgPSBTdHlsZTo6RGVjaW1hbDsKLSAg
ICBlbHNlIGlmIChzdHlsZVN0cmluZyA9PSAicGVyY2VudCIpCi0gICAgICAgIG1fc3R5bGUgPSBT
dHlsZTo6UGVyY2VudDsKLSAgICBlbHNlIGlmIChzdHlsZVN0cmluZyA9PSAiY3VycmVuY3kiKQot
ICAgICAgICBtX3N0eWxlID0gU3R5bGU6OkN1cnJlbmN5OwotICAgIGVsc2UKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAKICAgICBTdHJpbmcgY3VycmVuY3kgPSBpbnRsU3RyaW5nT3B0
aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1
cnJlbmN5IiksIHsgfSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKQEAgLTIzMCwxOCArMjIxLDggQEAgdm9pZCBJbnRsTnVtYmVyRm9y
bWF0Ojppbml0aWFsaXplTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmEKICAgICAgICAgY3VycmVuY3lEaWdpdHMgPSBjb21wdXRlQ3VycmVuY3lEaWdpdHMoY3Vy
cmVuY3kpOwogICAgIH0KIAotICAgIFN0cmluZyBjdXJyZW5jeURpc3BsYXlTdHJpbmcgPSBpbnRs
U3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImN1cnJlbmN5RGlzcGxheSIpLCB7ICJjb2RlIiwgInN5bWJvbCIsICJuYW1lIiB9LCAi
Y3VycmVuY3lEaXNwbGF5IG11c3QgYmUgZWl0aGVyIFwiY29kZVwiLCBcInN5bWJvbFwiLCBvciBc
Im5hbWVcIiIsICJzeW1ib2wiKTsKKyAgICBtX2N1cnJlbmN5RGlzcGxheSA9IGludGxPcHRpb248
Q3VycmVuY3lEaXNwbGF5PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJjdXJyZW5jeURpc3BsYXkiKSwgeyB7ICJjb2RlIl9zLCBDdXJyZW5jeURpc3Bs
YXk6OkNvZGUgfSwgeyAic3ltYm9sIl9zLCBDdXJyZW5jeURpc3BsYXk6OlN5bWJvbCB9LCB7ICJu
YW1lIl9zLCBDdXJyZW5jeURpc3BsYXk6Ok5hbWUgfSB9LCAiY3VycmVuY3lEaXNwbGF5IG11c3Qg
YmUgZWl0aGVyIFwiY29kZVwiLCBcInN5bWJvbFwiLCBvciBcIm5hbWVcIiJfcywgQ3VycmVuY3lE
aXNwbGF5OjpTeW1ib2wpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
Ci0gICAgaWYgKG1fc3R5bGUgPT0gU3R5bGU6OkN1cnJlbmN5KSB7Ci0gICAgICAgIGlmIChjdXJy
ZW5jeURpc3BsYXlTdHJpbmcgPT0gImNvZGUiKQotICAgICAgICAgICAgbV9jdXJyZW5jeURpc3Bs
YXkgPSBDdXJyZW5jeURpc3BsYXk6OkNvZGU7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbmN5RGlz
cGxheVN0cmluZyA9PSAic3ltYm9sIikKLSAgICAgICAgICAgIG1fY3VycmVuY3lEaXNwbGF5ID0g
Q3VycmVuY3lEaXNwbGF5OjpTeW1ib2w7Ci0gICAgICAgIGVsc2UgaWYgKGN1cnJlbmN5RGlzcGxh
eVN0cmluZyA9PSAibmFtZSIpCi0gICAgICAgICAgICBtX2N1cnJlbmN5RGlzcGxheSA9IEN1cnJl
bmN5RGlzcGxheTo6TmFtZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgfQogCiAgICAgdW5zaWduZWQgbWluaW11bUludGVnZXJEaWdpdHMgPSBp
bnRsTnVtYmVyT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgIm1pbmltdW1JbnRlZ2VyRGlnaXRzIiksIDEsIDIxLCAxKTsKICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBhNDQ4NDdlY2U4Y2Y4ODExOTUxNTI4NzA2ZGY0NTY4
OTNhNzdiZjk2Li4wZTY4Nzk3YWZkNzdjOGZhNjJmNjQyMzMwNDE3YzdkZTkzODFhOGNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtNjI5LDEz
ICs2MjksMTIgQEAgc3RhdGljIHZvaWQgdW5pY29kZUV4dGVuc2lvblN1YlRhZ3MoY29uc3QgU3Ry
aW5nJiBleHRlbnNpb24sIFZlY3RvcjxTdHJpbmc+JiBzdWIKICAgICBzdWJ0YWdzLmFwcGVuZChl
eHRlbnNpb24uc3Vic3RyaW5nKHZhbHVlU3RhcnQsIGV4dGVuc2lvbkxlbmd0aCAtIHZhbHVlU3Rh
cnQpKTsKIH0KIAotSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZUxvY2FsZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxv
Y2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiByZXF1ZXN0ZWRMb2NhbGVzLCBjb25zdCBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPiYgb3B0aW9ucywgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRF
eHRlbnNpb25LZXlzW10sIHNpemVfdCByZWxldmFudEV4dGVuc2lvbktleUNvdW50LCBWZWN0b3I8
U3RyaW5nPiAoKmxvY2FsZURhdGEpKGNvbnN0IFN0cmluZyYsIHNpemVfdCkpCitIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiByZXNvbHZlTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIHJlcXVlc3RlZExvY2FsZXMsIExvY2FsZU1hdGNoZXIgbG9jYWxlTWF0Y2hlciwgY29u
c3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIG9wdGlvbnMsIGNvbnN0IGNoYXIqIGNvbnN0IHJl
bGV2YW50RXh0ZW5zaW9uS2V5c1tdLCBzaXplX3QgcmVsZXZhbnRFeHRlbnNpb25LZXlDb3VudCwg
VmVjdG9yPFN0cmluZz4gKCpsb2NhbGVEYXRhKShjb25zdCBTdHJpbmcmLCBzaXplX3QpKQogewog
ICAgIC8vIFJlc29sdmVMb2NhbGUgKGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMs
IG9wdGlvbnMsIHJlbGV2YW50RXh0ZW5zaW9uS2V5cywgbG9jYWxlRGF0YSkKICAgICAvLyBodHRw
czovL3RjMzkuZ2l0aHViLmlvL2VjbWE0MDIvI3NlYy1yZXNvbHZlbG9jYWxlCiAKLSAgICBjb25z
dCBTdHJpbmcmIG1hdGNoZXIgPSBvcHRpb25zLmdldCgibG9jYWxlTWF0Y2hlciJfcyk7Ci0gICAg
TWF0Y2hlclJlc3VsdCBtYXRjaGVyUmVzdWx0ID0gKG1hdGNoZXIgPT0gImxvb2t1cCIpCisgICAg
TWF0Y2hlclJlc3VsdCBtYXRjaGVyUmVzdWx0ID0gbG9jYWxlTWF0Y2hlciA9PSBMb2NhbGVNYXRj
aGVyOjpMb29rdXAKICAgICAgICAgPyBsb29rdXBNYXRjaGVyKGdsb2JhbE9iamVjdCwgYXZhaWxh
YmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcykKICAgICAgICAgOiBiZXN0Rml0TWF0Y2hlcihn
bG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMpOwogCkBAIC03
NDQsMTMgKzc0MywxMCBAQCBKU1ZhbHVlIHN1cHBvcnRlZExvY2FsZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdgogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBTdHJpbmcgbWF0Y2hlcjsKIAotICAgIGlm
ICghb3B0aW9ucy5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgIG1hdGNoZXIgPSBpbnRsU3RyaW5n
T3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0
Y2hlciwgeyAibG9va3VwIiwgImJlc3QgZml0IiB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVp
dGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiIsICJiZXN0IGZpdCIpOwotICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotICAgIH0gZWxzZQotICAgICAg
ICBtYXRjaGVyID0gImJlc3QgZml0Il9zOworICAgIExvY2FsZU1hdGNoZXIgbG9jYWxlTWF0Y2hl
ciA9IGludGxPcHRpb248TG9jYWxlTWF0Y2hlcj4oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7IHsgImxvb2t1cCJfcywgTG9jYWxlTWF0Y2hl
cjo6TG9va3VwIH0sIHsgImJlc3QgZml0Il9zLCBMb2NhbGVNYXRjaGVyOjpCZXN0Rml0IH0gfSwg
ImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29rdXBcIiBvciBcImJlc3QgZml0XCIi
X3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIEpTVmFsdWUoKSk7CiAKLSAgICBKU0FycmF5KiBzdXBwb3J0ZWRMb2NhbGVzID0gKG1hdGNo
ZXIgPT0gImJlc3QgZml0IikKKyAgICBKU0FycmF5KiBzdXBwb3J0ZWRMb2NhbGVzID0gbG9jYWxl
TWF0Y2hlciA9PSBMb2NhbGVNYXRjaGVyOjpCZXN0Rml0CiAgICAgICAgID8gYmVzdEZpdFN1cHBv
cnRlZExvY2FsZXMoZ2xvYmFsT2JqZWN0LCBhdmFpbGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2Nh
bGVzKQogICAgICAgICA6IGxvb2t1cFN1cHBvcnRlZExvY2FsZXMoZ2xvYmFsT2JqZWN0LCBhdmFp
bGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBKU1ZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9i
amVjdC5oCmluZGV4IDY4MThiZjk2NmQyNGI3MGM1MDY0YWNjYWQzNjAzOTQwNjZkMGQ1MDAuLjhl
ODZmNjMyNDM1MjE2ODI4MTM2Yjc0Njk5OWMxMjJjOTc4ZDI2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmgKQEAgLTM0LDYgKzM0LDExIEBAIHN0cnVjdCBV
RmllbGRQb3NpdGlvbkl0ZXJhdG9yOwogCiBuYW1lc3BhY2UgSlNDIHsKIAorZW51bSBjbGFzcyBM
b2NhbGVNYXRjaGVyIDogdWludDhfdCB7CisgICAgTG9va3VwLAorICAgIEJlc3RGaXQsCit9Owor
CiBjbGFzcyBJbnRsT2JqZWN0IGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwpAQCAtNzEsNyArNzYsNyBA
QCB1bnNpZ25lZCBpbnRsRGVmYXVsdE51bWJlck9wdGlvbihKU0dsb2JhbE9iamVjdCosIEpTVmFs
dWUsIFByb3BlcnR5TmFtZSwgdW5zaWduZQogVmVjdG9yPGNoYXIsIDMyPiBsb2NhbGVJREJ1ZmZl
ckZvckxhbmd1YWdlVGFnKGNvbnN0IENTdHJpbmcmKTsKIFN0cmluZyBsYW5ndWFnZVRhZ0Zvckxv
Y2FsZUlEKGNvbnN0IGNoYXIqLCBib29sIGlzSW1tb3J0YWwgPSBmYWxzZSk7CiBWZWN0b3I8U3Ry
aW5nPiBjYW5vbmljYWxpemVMb2NhbGVMaXN0KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBsb2Nh
bGVzKTsKLUhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVMb2NhbGUoSlNHbG9iYWxPYmpl
Y3QqLCBjb25zdCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiByZXF1ZXN0ZWRMb2NhbGVzLCBjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiYgb3B0aW9ucywgY29uc3QgY2hhciogY29uc3QgcmVsZXZhbnRFeHRlbnNpb25LZXlzW10sIHNp
emVfdCByZWxldmFudEV4dGVuc2lvbktleUNvdW50LCBWZWN0b3I8U3RyaW5nPiAoKmxvY2FsZURh
dGEpKGNvbnN0IFN0cmluZyYsIHNpemVfdCkpOworSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVz
b2x2ZUxvY2FsZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxh
YmxlTG9jYWxlcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHJlcXVlc3RlZExvY2FsZXMsIExvY2Fs
ZU1hdGNoZXIsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBvcHRpb25zLCBjb25zdCBj
aGFyKiBjb25zdCByZWxldmFudEV4dGVuc2lvbktleXNbXSwgc2l6ZV90IHJlbGV2YW50RXh0ZW5z
aW9uS2V5Q291bnQsIFZlY3RvcjxTdHJpbmc+ICgqbG9jYWxlRGF0YSkoY29uc3QgU3RyaW5nJiwg
c2l6ZV90KSk7CiBKU1ZhbHVlIHN1cHBvcnRlZExvY2FsZXMoSlNHbG9iYWxPYmplY3QqLCBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiByZXF1ZXN0ZWRMb2NhbGVzLCBKU1ZhbHVlIG9wdGlvbnMpOwogU3RyaW5nIHJlbW92ZVVuaWNv
ZGVMb2NhbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBsb2NhbGUpOwogU3RyaW5nIGJlc3RBdmFp
bGFibGVMb2NhbGUoY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbGVzLCBjb25z
dCBTdHJpbmcmIHJlcXVlc3RlZExvY2FsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdElubGluZXMuaAppbmRleCA1NWVhYzQ2NjE0MmEwNTVjZWU2NGU2
ZmE0MDgyNzFkMDQ0MzFiZjk5Li5kNWIwMzE0N2FlOWRkOGY0ZTJiOTA5ZGNhNTViMjQ4NzE5YzFj
ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3RJ
bmxpbmVzLmgKQEAgLTgxLDQgKzgxLDM5IEBAIEpTVmFsdWUgY29uc3RydWN0SW50bEluc3RhbmNl
V2l0aFdvcmthcm91bmRGb3JMZWdhY3lJbnRsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmYWN0b3J5KHZtKSk7CiB9CiAKK3RlbXBsYXRlPHR5
cGVuYW1lIFJlc3VsdFR5cGU+CitSZXN1bHRUeXBlIGludGxPcHRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvcHRpb25zLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHksIHN0
ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8QVNDSUlMaXRlcmFsLCBSZXN1bHRUeXBlPj4g
dmFsdWVzLCBBU0NJSUxpdGVyYWwgbm90Rm91bmRNZXNzYWdlLCBSZXN1bHRUeXBlIGZhbGxiYWNr
KQoreworICAgIC8vIEdldE9wdGlvbiAob3B0aW9ucywgcHJvcGVydHksIHR5cGU9InN0cmluZyIs
IHZhbHVlcywgZmFsbGJhY2spCisgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAy
LyNzZWMtZ2V0b3B0aW9uCisKKyAgICBBU1NFUlQodmFsdWVzLnNpemUoKSA+IDApOworCisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKworICAgIGlmIChvcHRpb25zLmlzVW5kZWZpbmVkKCkpCisgICAgICAg
IHJldHVybiBmYWxsYmFjazsKKworICAgIEpTT2JqZWN0KiBvcHRzID0gb3B0aW9ucy50b09iamVj
dChnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisK
KyAgICBKU1ZhbHVlIHZhbHVlID0gb3B0cy0+Z2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBpZiAoIXZhbHVlLmlz
VW5kZWZpbmVkKCkpIHsKKyAgICAgICAgU3RyaW5nIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogdmFsdWVzKSB7CisgICAg
ICAgICAgICBpZiAoZW50cnkuZmlyc3QgPT0gc3RyaW5nVmFsdWUpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGVudHJ5LnNlY29uZDsKKyAgICAgICAgfQorICAgICAgICB0aHJvd0V4Y2VwdGlvbihn
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGdsb2JhbE9iamVjdCwgbm90Rm91
bmRNZXNzYWdlKSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgcmV0dXJuIGZh
bGxiYWNrOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXMuY3BwCmluZGV4IGM0OTlhZGExOWYzYWQ0YzJm
ODMwYWRjM2M1M2I4ZDVhNmMxZjU3NmYuLjJkNTdlNjhmZjY5ZDBlMDljY2JjMWY3MGE4ZTQ1MTZi
ODQ2YzJkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQ
bHVyYWxSdWxlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBs
dXJhbFJ1bGVzLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkludGxQbHVyYWxSdWxlcy5oIgogCi0jaW5jbHVkZSAiSW50bE9iamVjdC5oIgorI2lu
Y2x1ZGUgIkludGxPYmplY3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAKQEAgLTEwOSwyMSArMTA5LDE5IEBAIHZvaWQg
SW50bFBsdXJhbFJ1bGVzOjppbml0aWFsaXplUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1CiAgICAgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
bG9jYWxlT3B0OwotICAgIFN0cmluZyBsb2NhbGVNYXRjaGVyID0gaW50bFN0cmluZ09wdGlvbihn
bG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPmxvY2FsZU1hdGNoZXIsIHsg
Imxvb2t1cCIsICJiZXN0IGZpdCIgfSwgImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJs
b29rdXBcIiBvciBcImJlc3QgZml0XCIiLCAiYmVzdCBmaXQiKTsKKyAgICBMb2NhbGVNYXRjaGVy
IGxvY2FsZU1hdGNoZXIgPSBpbnRsT3B0aW9uPExvY2FsZU1hdGNoZXI+KGdsb2JhbE9iamVjdCwg
b3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0Y2hlciwgeyB7ICJsb29rdXAiX3Ms
IExvY2FsZU1hdGNoZXI6Okxvb2t1cCB9LCB7ICJiZXN0IGZpdCJfcywgTG9jYWxlTWF0Y2hlcjo6
QmVzdEZpdCB9IH0sICJsb2NhbGVNYXRjaGVyIG11c3QgYmUgZWl0aGVyIFwibG9va3VwXCIgb3Ig
XCJiZXN0IGZpdFwiIl9zLCBMb2NhbGVNYXRjaGVyOjpCZXN0Rml0KTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGxvY2FsZU9wdC5hZGQodm0ucHJvcGVydHlO
YW1lcy0+bG9jYWxlTWF0Y2hlci5zdHJpbmcoKSwgbG9jYWxlTWF0Y2hlcik7CiAKICAgICBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMgPSBpbnRsUGx1cmFsUnVsZXNBdmFp
bGFibGVMb2NhbGVzKCk7Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gcmVzb2x2ZWQgPSBy
ZXNvbHZlTG9jYWxlKGdsb2JhbE9iamVjdCwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9j
YWxlcywgbG9jYWxlT3B0LCBudWxscHRyLCAwLCBsb2NhbGVEYXRhKTsKKyAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFp
bGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBsb2NhbGVNYXRjaGVyLCBsb2NhbGVPcHQs
IG51bGxwdHIsIDAsIGxvY2FsZURhdGEpOwogICAgIG1fbG9jYWxlID0gcmVzb2x2ZWQuZ2V0KHZt
LnByb3BlcnR5TmFtZXMtPmxvY2FsZS5zdHJpbmcoKSk7CiAgICAgaWYgKG1fbG9jYWxlLmlzRW1w
dHkoKSkgewogICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFp
bGVkIHRvIGluaXRpYWxpemUgUGx1cmFsUnVsZXMgZHVlIHRvIGludmFsaWQgbG9jYWxlIl9zKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFN0cmluZyB0eXBlU3RyaW5nID0gaW50bFN0
cmluZ09wdGlvbihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnR5cGUs
IHsgImNhcmRpbmFsIiwgIm9yZGluYWwiIH0sICJ0eXBlIG11c3QgYmUgXCJjYXJkaW5hbFwiIG9y
IFwib3JkaW5hbFwiIiwgImNhcmRpbmFsIik7CisgICAgbV90eXBlID0gaW50bE9wdGlvbjxUeXBl
PihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPnR5cGUsIHsgeyAiY2Fy
ZGluYWwiX3MsIFR5cGU6OkNhcmRpbmFsIH0sIHsgIm9yZGluYWwiX3MsIFR5cGU6Ok9yZGluYWwg
fSB9LCAidHlwZSBtdXN0IGJlIFwiY2FyZGluYWxcIiBvciBcIm9yZGluYWxcIiJfcywgVHlwZTo6
Q2FyZGluYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAg
bV90eXBlID0gdHlwZVN0cmluZyA9PSAib3JkaW5hbCIgPyBUeXBlOjpPcmRpbmFsIDogVHlwZTo6
Q2FyZGluYWw7CiAKICAgICB1bnNpZ25lZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA9IGludGxOdW1i
ZXJPcHRpb24oZ2xvYmFsT2JqZWN0LCBvcHRpb25zLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCAibWluaW11bUludGVnZXJEaWdpdHMiKSwgMSwgMjEsIDEpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDkxYjFiZmExNDI1ODkx
ZjdjM2M4NTQ0YTJiNzQ5ODAzMGY3YzQ2ZTcuLjExYzM0MDEyYzM5ZDlhMDViYzAwNjhmMzUwNGRi
MzhiZGY0NTAxZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVk
ZSAiSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oIgogCiAjaW5jbHVkZSAiSW50bE51bWJlckZvcm1h
dC5oIgotI2luY2x1ZGUgIkludGxPYmplY3QuaCIKKyNpbmNsdWRlICJJbnRsT2JqZWN0SW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rv
ci5oIgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL2ljdS9JQ1VIZWxwZXJzLmg+CkBAIC0xMDgsOSAr
MTA4LDggQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojppbml0aWFsaXplUmVsYXRpdmVU
aW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICB9CiAKICAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiBvcHQ7Ci0gICAgU3RyaW5nIGxvY2FsZU1hdGNoZXIgPSBpbnRsU3RyaW5n
T3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bG9jYWxlTWF0
Y2hlciwgeyAibG9va3VwIiwgImJlc3QgZml0IiB9LCAibG9jYWxlTWF0Y2hlciBtdXN0IGJlIGVp
dGhlciBcImxvb2t1cFwiIG9yIFwiYmVzdCBmaXRcIiIsICJiZXN0IGZpdCIpOworICAgIExvY2Fs
ZU1hdGNoZXIgbG9jYWxlTWF0Y2hlciA9IGludGxPcHRpb248TG9jYWxlTWF0Y2hlcj4oZ2xvYmFs
T2JqZWN0LCBvcHRpb25zLCB2bS5wcm9wZXJ0eU5hbWVzLT5sb2NhbGVNYXRjaGVyLCB7IHsgImxv
b2t1cCJfcywgTG9jYWxlTWF0Y2hlcjo6TG9va3VwIH0sIHsgImJlc3QgZml0Il9zLCBMb2NhbGVN
YXRjaGVyOjpCZXN0Rml0IH0gfSwgImxvY2FsZU1hdGNoZXIgbXVzdCBiZSBlaXRoZXIgXCJsb29r
dXBcIiBvciBcImJlc3QgZml0XCIiX3MsIExvY2FsZU1hdGNoZXI6OkJlc3RGaXQpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgb3B0LmFkZCh2bS5wcm9wZXJ0
eU5hbWVzLT5sb2NhbGVNYXRjaGVyLnN0cmluZygpLCBsb2NhbGVNYXRjaGVyKTsKIAogICAgIFN0
cmluZyBudW1iZXJpbmdTeXN0ZW0gPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0
aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+bnVtYmVyaW5nU3lzdGVtLCB7IH0sIG51bGxwdHIsIG51
bGxwdHIpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CkBAIC0xMjMs
NyArMTIyLDcgQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojppbml0aWFsaXplUmVsYXRp
dmVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICB9CiAKICAgICBjb25zdCBI
YXNoU2V0PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsZXMgPSBpbnRsUmVsYXRpdmVUaW1lRm9ybWF0
QXZhaWxhYmxlTG9jYWxlcygpOwotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHJlc29sdmVk
ID0gcmVzb2x2ZUxvY2FsZShnbG9iYWxPYmplY3QsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3Rl
ZExvY2FsZXMsIG9wdCwgSW50bFJlbGF0aXZlVGltZUZvcm1hdEludGVybmFsOjpyZWxldmFudEV4
dGVuc2lvbktleXMsIFdURl9BUlJBWV9MRU5HVEgoSW50bFJlbGF0aXZlVGltZUZvcm1hdEludGVy
bmFsOjpyZWxldmFudEV4dGVuc2lvbktleXMpLCBsb2NhbGVEYXRhKTsKKyAgICBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiByZXNvbHZlZCA9IHJlc29sdmVMb2NhbGUoZ2xvYmFsT2JqZWN0LCBhdmFp
bGFibGVMb2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzLCBsb2NhbGVNYXRjaGVyLCBvcHQsIEludGxS
ZWxhdGl2ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNpb25LZXlzLCBXVEZfQVJS
QVlfTEVOR1RIKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRJbnRlcm5hbDo6cmVsZXZhbnRFeHRlbnNp
b25LZXlzKSwgbG9jYWxlRGF0YSk7CiAgICAgbV9sb2NhbGUgPSByZXNvbHZlZC5nZXQodm0ucHJv
cGVydHlOYW1lcy0+bG9jYWxlLnN0cmluZygpKTsKICAgICBpZiAobV9sb2NhbGUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQg
dG8gaW5pdGlhbGl6ZSBSZWxhdGl2ZVRpbWVGb3JtYXQgZHVlIHRvIGludmFsaWQgbG9jYWxlIl9z
KTsKQEAgLTEzMywyNCArMTMyLDIzIEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6aW5p
dGlhbGl6ZVJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgbV9u
dW1iZXJpbmdTeXN0ZW0gPSByZXNvbHZlZC5nZXQoIm51Il9zKTsKICAgICBDU3RyaW5nIGRhdGFM
b2NhbGVXaXRoRXh0ZW5zaW9ucyA9IG1ha2VTdHJpbmcocmVzb2x2ZWQuZ2V0KCJkYXRhTG9jYWxl
Il9zKSwgIi11LW51LSIsIG1fbnVtYmVyaW5nU3lzdGVtKS51dGY4KCk7CiAKLSAgICBTdHJpbmcg
c3R5bGUgPSBpbnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVy
dHlOYW1lcy0+c3R5bGUsIHsgImxvbmciLCAic2hvcnQiLCAibmFycm93IiB9LCAic3R5bGUgbXVz
dCBiZSBlaXRoZXIgXCJsb25nXCIsIFwic2hvcnRcIiwgb3IgXCJuYXJyb3dcIiIsICJsb25nIik7
CisgICAgbV9zdHlsZSA9IGludGxPcHRpb248U3R5bGU+KGdsb2JhbE9iamVjdCwgb3B0aW9ucywg
dm0ucHJvcGVydHlOYW1lcy0+c3R5bGUsIHsgeyAibG9uZyJfcywgU3R5bGU6OkxvbmcgfSwgeyAi
c2hvcnQiX3MsIFN0eWxlOjpTaG9ydCB9LCB7ICJuYXJyb3ciX3MsIFN0eWxlOjpOYXJyb3cgfSB9
LCAic3R5bGUgbXVzdCBiZSBlaXRoZXIgXCJsb25nXCIsIFwic2hvcnRcIiwgb3IgXCJuYXJyb3dc
IiJfcywgU3R5bGU6OkxvbmcpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7Ci0gICAgVURhdGVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyU3R5bGUgaWN1U3R5bGU7Ci0g
ICAgaWYgKHN0eWxlID09ICJsb25nIikgeworICAgIFVEYXRlUmVsYXRpdmVEYXRlVGltZUZvcm1h
dHRlclN0eWxlIGljdVN0eWxlID0gVURBVF9TVFlMRV9MT05HOworICAgIHN3aXRjaCAobV9zdHls
ZSkgeworICAgIGNhc2UgU3R5bGU6Okxvbmc6CiAgICAgICAgIGljdVN0eWxlID0gVURBVF9TVFlM
RV9MT05HOwotICAgICAgICBtX3N0eWxlID0gU3R5bGU6Okxvbmc7Ci0gICAgfSBlbHNlIGlmIChz
dHlsZSA9PSAic2hvcnQiKSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3R5bGU6OlNob3J0
OgogICAgICAgICBpY3VTdHlsZSA9IFVEQVRfU1RZTEVfU0hPUlQ7Ci0gICAgICAgIG1fc3R5bGUg
PSBTdHlsZTo6U2hvcnQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKHN0eWxlID09ICJu
YXJyb3ciKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdHlsZTo6TmFycm93OgogICAgICAg
ICBpY3VTdHlsZSA9IFVEQVRfU1RZTEVfTkFSUk9XOwotICAgICAgICBtX3N0eWxlID0gU3R5bGU6
Ok5hcnJvdzsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgU3RyaW5nIG51bWVyaWMgPSBp
bnRsU3RyaW5nT3B0aW9uKGdsb2JhbE9iamVjdCwgb3B0aW9ucywgdm0ucHJvcGVydHlOYW1lcy0+
bnVtZXJpYywgeyAiYWx3YXlzIiwgImF1dG8iIH0sICJudW1lcmljIG11c3QgYmUgZWl0aGVyIFwi
YWx3YXlzXCIgb3IgXCJhdXRvXCIiLCAiYWx3YXlzIik7CisgICAgbV9udW1lcmljID0gaW50bE9w
dGlvbjxib29sPihnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHZtLnByb3BlcnR5TmFtZXMtPm51bWVy
aWMsIHsgeyAiYWx3YXlzIl9zLCB0cnVlIH0sIHsgImF1dG8iX3MsIGZhbHNlIH0gfSwgIm51bWVy
aWMgbXVzdCBiZSBlaXRoZXIgXCJhbHdheXNcIiBvciBcImF1dG9cIiJfcywgdHJ1ZSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICBtX251bWVyaWMgPSAobnVt
ZXJpYyA9PSAiYWx3YXlzIik7CiAKICAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJP
UjsKICAgICBtX251bWJlckZvcm1hdCA9IHN0ZDo6dW5pcXVlX3B0cjxVTnVtYmVyRm9ybWF0LCBV
TnVtYmVyRm9ybWF0RGVsZXRlcj4odW51bV9vcGVuKFVOVU1fREVDSU1BTCwgbnVsbHB0ciwgMCwg
ZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgbnVsbHB0ciwgJnN0YXR1cykpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>