<?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>85970</bug_id>
          
          <creation_ts>2012-05-09 02:22:00 -0700</creation_ts>
          <short_desc>ElementShadow should minimize the usage of &quot;ShadowRoot&quot; name</short_desc>
          <delta_ts>2012-05-10 22:34:36 -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>DOM</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>85263</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619301</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-09 02:22:00 -0700</bug_when>
    <thetext>Since ElementShadow exists for encapsulate the shadow dom concept, it doesn&apos;t makes sense to have these names in API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620277</commentid>
    <comment_count>1</comment_count>
      <attachid>141091</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-09 23:23:33 -0700</bug_when>
    <thetext>Created attachment 141091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620278</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-09 23:24:30 -0700</bug_when>
    <thetext>Hi Dimitri, could you take a look at this cleanup exercise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620293</commentid>
    <comment_count>3</comment_count>
      <attachid>141091</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-09 23:50:43 -0700</bug_when>
    <thetext>Comment on attachment 141091
Patch

Attachment 141091 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12648773</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620295</commentid>
    <comment_count>4</comment_count>
      <attachid>141091</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-09 23:53:01 -0700</bug_when>
    <thetext>Comment on attachment 141091
Patch

Attachment 141091 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12644953</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620326</commentid>
    <comment_count>5</comment_count>
      <attachid>141099</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 00:31:49 -0700</bug_when>
    <thetext>Created attachment 141099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620328</commentid>
    <comment_count>6</comment_count>
      <attachid>141091</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-10 00:36:17 -0700</bug_when>
    <thetext>Comment on attachment 141091
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=141091&amp;action=review

Looks reasonable.

&gt; Source/WebCore/dom/ElementShadow.cpp:93
&gt;      // Dont protect this ref count.

This comment can be improved by explaining why.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:4077
&gt; +    ElementShadow* shadow = this-&gt;shadow();

Should we name this variable elementShadow so that you don&apos;t have to use this pointer?

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1234
&gt; +        ElementShadow* shadow = element-&gt;shadow();
&gt; +        if (shadow) {

You should declare shadow inside the if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620329</commentid>
    <comment_count>7</comment_count>
      <attachid>141099</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-10 00:37:10 -0700</bug_when>
    <thetext>Comment on attachment 141099
Patch

Please address the comment I posted above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620355</commentid>
    <comment_count>8</comment_count>
      <attachid>141099</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-10 01:00:43 -0700</bug_when>
    <thetext>Comment on attachment 141099
Patch

Attachment 141099 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12664249</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620386</commentid>
    <comment_count>9</comment_count>
      <attachid>141111</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 01:59:39 -0700</bug_when>
    <thetext>Created attachment 141111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621149</commentid>
    <comment_count>10</comment_count>
      <attachid>141298</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 17:22:40 -0700</bug_when>
    <thetext>Created attachment 141298
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621150</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 17:23:37 -0700</bug_when>
    <thetext>Ryosuke, Dimitri, thanks for reviewing!
The landing patch addresses Ryosuke&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621163</commentid>
    <comment_count>12</comment_count>
      <attachid>141300</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 17:49:47 -0700</bug_when>
    <thetext>Created attachment 141300
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621170</commentid>
    <comment_count>13</comment_count>
      <attachid>141303</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-10 18:01:19 -0700</bug_when>
    <thetext>Created attachment 141303
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621273</commentid>
    <comment_count>14</comment_count>
      <attachid>141303</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 22:34:31 -0700</bug_when>
    <thetext>Comment on attachment 141303
Patch for landing

Clearing flags on attachment: 141303

Committed r116730: &lt;http://trac.webkit.org/changeset/116730&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621274</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 22:34:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141091</attachid>
            <date>2012-05-09 23:23:33 -0700</date>
            <delta_ts>2012-05-10 01:59:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85970-20120510152332.patch</filename>
            <type>text/plain</type>
            <size>42494</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZkYjlhOWQ5NGU4OTIy
NmE4ZGM4NmU2YTUzNzEwMTRkYTM5MDI4Ni4uMTEwMjA2MTFjOTA4NTdiOTc2NjU3MjM0ZDdlYjYy
MTU5ZWMxZTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA1LTA5ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjbGVhbnMg
dHdvIG91dCBkYXRlZCBhc3N1bXB0aW9ucyB3aGljaCBicm91Z2h0IGluIGF0CisgICAgICAgIGVh
cmx5IHN0YWdlIG9mIFNoYWRvdyBET00gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgLSBSZW1v
dmVkIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKTogc2hhZG93IGV4aXN0ZW5jZSBjYW4gYmUgY2hl
Y2tlZCBieSBFbGVtZW50OjpzaGFkb3coKS4KKyAgICAgICAgLSBNYWRlIEVsZW1lbnRTaGFkb3c6
OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkgcHJpdmF0ZTogd2Ugbm8gbG9uZ2VyIGFsbG93IFNoYWRv
d1Jvb3QgcmVtb3ZhbC4KKyAgICAgICAgICBJdCBjYW4gb25seSBoYXBwZW5zIGF0IHRoZSBFbGVt
ZW50U2hhZG93IGRlc3RydWN0aW9uLgorCisgICAgICAgIE1vc3Qgb2YgY2hhbmdlcyBpbiBlbGVt
ZW50IGltcGxlbWVudGF0aW9ucyBhcmUgYmFzaWNhbGx5IHNpbXBsZQorICAgICAgICByZXBsYWNl
bWVudCBmcm9tIGhhc1NoYWRvd1Jvb3QoKSB0byBzaGFkb3coKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpidWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9F
bGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93
SG9zdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuaDoKKyAgICAgICAgKEVsZW1lbnRTaGFkb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aG9zdCk6CisgICAgICAgICogZG9tL0V2
ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2Rl
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAg
ICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
ZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAgICAgICAgKiBodG1sL0hUTUxN
ZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3Jl
YXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAg
ICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwv
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVzdHJveVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAg
KiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Rmll
bGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJF
bGVtZW50T2YpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUpOgorICAgICAgICAq
IHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9uKToKKyAgICAgICAgKiBzdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVw
ZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50Ojpk
ZXRhY2hUYXJnZXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6
CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxMi0wNS0wOSAgT2xpIExhbiAgPG9saWxhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QWRkIGlkZW50aWZ5aW5nIG1ldGhvZHMgZm9yIGRhdGUvdGltZSBpbnB1dCB0eXBlcy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggNWE2
OTM2YzhjMjIxZmVjYTMzZTc4NmI4NDQ5M2E2MTUyOGNlODU1MC4uZDFhODg5ZTY3OGRmOGEyMzI3
ZmY2ZDM2ZmUzNzEwMDliNThkNjZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTM1LDExICszNSw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBu
b2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0Vs
ZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogc3RhdGljIGlubGluZSBFbGVtZW50
U2hhZG93KiBzaGFkb3dGb3IoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBpZiAobm9kZSAmJiBu
b2RlLT5pc0VsZW1lbnROb2RlKCkpCkBAIC05OSw3ICs5NCw3IEBAIE5vZGUqIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxE
aXJlY3RpCiAgICAgQVNTRVJUKG5vZGUpOwogICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnko
KSkgewogICAgICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBzaGFkb3dGb3Iobm9kZSk7Ci0g
ICAgICAgIHJldHVybiAoc2hhZG93ICYmIHNoYWRvdy0+aGFzU2hhZG93Um9vdCgpKSA/IHRyYXZl
cnNlTGlnaHRDaGlsZHJlbihzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24p
CisgICAgICAgIHJldHVybiBzaGFkb3cgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93LT55
b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKQogICAgICAgICAgICAgOiB0cmF2ZXJzZUxp
Z2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKICAgICB9CiAgICAgaWYgKGlzU2hhZG93SG9z
dChub2RlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1MGFjZTg2YzAwNjk1NGEzYjhj
MWIxY2M3YjVlYTM3OTg4MWVlODIuLjI1M2NmNjkyM2YwZGU4NjVlOTNhMzIyMjA1MmEzMmU2MWJm
NTIzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzEyLDggKzcxMiw4IEBAIHZvaWQg
RG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRyZWVTY29wZSogc2NvcGUpCiAgICAgICAgIGlm
ICghYWNjZXNzS2V5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tl
eS5zZXQoYWNjZXNzS2V5LmltcGwoKSwgZWxlbWVudCk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQt
Pmhhc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
ZWxlbWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9v
dC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cg
PSBlbGVtZW50LT5zaGFkb3coKSkgeworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290
ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVy
U2hhZG93Um9vdCgpKQogICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDEzY2IwNmU0NjMxYTQ1
YjZiZmY2ODM0ZDk1ZjBlZDQxM2M3ZDU1MjguLmM5MTgzZjQwOWZkYWZjMDU1NzZlNzU4ZmE2MzIx
NDUyZGM3MDBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNDYsOCArMTE0Niw3IEBA
IHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIFN0eWxl
UmVzb2x2ZXJQYXJlbnRQdXNoZXIgcGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5l
Y2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKLSAgICAg
ICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCk7CisgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNoYWRvdygpKSB7CiAgICAgICAgIGlmIChjaGFuZ2Ug
Pj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+
bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwog
ICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTdHlsZShjaGFuZ2UpOwpAQCAtMTE4NSwxMyArMTE4
NCw2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAg
ICAgICBkaWRSZWNhbGNTdHlsZShjaGFuZ2UpOwogfQogCi1ib29sIEVsZW1lbnQ6Omhhc1NoYWRv
d1Jvb3QoKSBjb25zdAotewotICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5z
aGFkb3coKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvdy0+aGFzU2hhZG93Um9vdCgpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogRWxlbWVudFNoYWRvdyogRWxlbWVudDo6c2hhZG93KCkgY29uc3QK
IHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCkBAIC0xMjExLDggKzEyMDMsOCBAQCBFbGVtZW50
U2hhZG93KiBFbGVtZW50OjplbnN1cmVTaGFkb3coKQogCiBTaGFkb3dSb290KiBFbGVtZW50Ojpl
bnN1cmVTaGFkb3dSb290KCkKIHsKLSAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICBy
ZXR1cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRv
dyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVz
dFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hh
ZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KS5nZXQoKTsKIH0KQEAgLTEzNDcs
MTAgKzEzMzksOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRC
eVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZgogICAgIGVsc2UKICAgICAgICAg
Y2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBi
ZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogCi0gICAgaWYgKGhh
c1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAg
IHNoYWRvdygpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgfQorICAgIGlmIChFbGVtZW50
U2hhZG93ICogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHNoYWRvdy0+aG9zdENo
aWxkcmVuQ2hhbmdlZCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmJlZ2luUGFyc2luZ0NoaWxkcmVu
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFjY2ZmNGQ2MDUxNjNmNjRkNWIxYTJkZmE0MjEyODEz
NTlkYTgzNzcuLjk5NGY5YmRhOWQ1ZGI2NWUwNDk3MWVkMzNlNjc0NjVlNzMzOTUwOTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtMjYxLDcgKzI2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwog
ICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKLSAgICBib29s
IGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3coKSBjb25z
dDsKICAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVTaGFkb3coKTsKIApAQCAtNzE1LDYgKzcxNCwx
MSBAQCBpbmxpbmUgYm9vbCBOb2RlOjpoYXNDbGFzcygpIGNvbnN0CiAgICAgcmV0dXJuIGlzRWxl
bWVudE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcyktPmhhc0NsYXNzKCk7CiB9CiAKK2lubGluZSBi
b29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpOworfQor
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNw
cAppbmRleCA3Y2MyMmU5NDYzY2ExNjFmY2M4YWVmM2U3ZjU5NGRlZmRhZGM2MTUwLi5mNDE3Mjg4
Yzc3ZjRiMDI3MTgxOTQ5MGQzZjdiMmY2MWQyMWE5ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuY3BwCkBAIC00Niw4ICs0Niw3IEBAIEVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFk
b3coKQogCiBFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdygpCiB7Ci0gICAgaWYgKGhhc1No
YWRvd1Jvb3QoKSkKLSAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKKyAgICByZW1vdmVB
bGxTaGFkb3dSb290cygpOwogfQogCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9j
dW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBl
YykKQEAgLTkxLDkgKzkwLDYgQEAgdm9pZCBFbGVtZW50U2hhZG93OjphZGRTaGFkb3dSb290KEVs
ZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2gKIAogdm9pZCBFbGVt
ZW50U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cygpCiB7Ci0gICAgaWYgKCFoYXNTaGFkb3dS
b290KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIERvbnQgcHJvdGVjdCB0aGlzIHJlZiBj
b3VudC4KICAgICBFbGVtZW50KiBzaGFkb3dIb3N0ID0gaG9zdCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRTaGFkb3cuaAppbmRleCA4MDQ4MGI4MDJhNThjNjEwNmJkMjNiNjE5ZDE4YjE0N2Y0ZmUw
OTcwLi4xMjExMjJmMjMzM2RhM2NlODZkNGNhOGI4ZWU1MDZiMmIyYWUyM2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50U2hhZG93LmgKQEAgLTUwLDEzICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgfkVs
ZW1lbnRTaGFkb3coKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKLQotICAgIGJvb2wg
aGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9v
dCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKIAog
ICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290
cygpOwogCiAgICAgdm9pZCB3aWxsUmVtb3ZlKCk7CiAKQEAgLTg0LDYgKzgxLDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygpOwogCiAgICAgRG91Ymx5TGlu
a2VkTGlzdDxTaGFkb3dSb290PiBtX3NoYWRvd1Jvb3RzOwogICAgIEhUTUxDb250ZW50U2VsZWN0
b3IgbV9zZWxlY3RvcjsKQEAgLTkxLDExICs4OSw2IEBAIHByaXZhdGU6CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRWxlbWVudFNoYWRvdyk7CiB9OwogCi1pbmxpbmUgYm9vbCBFbGVtZW50U2hh
ZG93OjpoYXNTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMu
aXNFbXB0eSgpOwotfQotCiBpbmxpbmUgU2hhZG93Um9vdCogRWxlbWVudFNoYWRvdzo6eW91bmdl
c3RTaGFkb3dSb290KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7
CkBAIC0xMjMsNyArMTE2LDcgQEAgaW5saW5lIHZvaWQgRWxlbWVudFNoYWRvdzo6Y2xlYXJOZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKIAogaW5saW5lIEVsZW1lbnQqIEVsZW1l
bnRTaGFkb3c6Omhvc3QoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCghbV9zaGFkb3dSb290cy5pc0VtcHR5KCkpOwogICAgIHJldHVybiB5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKS0+aG9zdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNo
ZXIuY3BwCmluZGV4IDU4NjZlNjA2OGQ2ZjU5YmE2MjFkMzIxYzU0NGY0ZjI4MzYzYmNlYjkuLjE2
ODllMDZiOGNhNGJmMGFiNTgzYzhmMzkxYmY5OTg5MGE5NzViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMTYsMTEgKzExNiw2IEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RXZl
bnQ+IHVuZGVyCiAgICAgZ05vZGVzRGlzcGF0Y2hpbmdTaW11bGF0ZWRDbGlja3MtPnJlbW92ZShu
b2RlKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQot
ewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5o
YXNTaGFkb3dSb290KCk7Ci19Ci0KIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0
Y2hlcjo6YWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRh
cmdldCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5jZXN0b3JzKQogewogICAg
IFZlY3RvcjxFdmVudENvbnRleHQ+Ojpjb25zdF9pdGVyYXRvciBsb3dlc3RDb21tb25Cb3VuZGFy
eSA9IG1fYW5jZXN0b3JzLmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDBiMDJjZThmY2I0MDA1
ODc2NTI2M2FhZWU5NDE5NDBmOWUzNmU5ZjEuLmUwYTE1MDgyNTk4MDI1YTg2Y2Q5NDFmOWI3ZDU0
YjM2Y2VlM2VkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTgzNiw3ICs4MzYsMTEgQEAgYm9vbCBO
b2RlOjpoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3QKIAogaW5saW5lIHN0YXRpYyBTaGFk
b3dSb290KiBvbGRlc3RTaGFkb3dSb290Rm9yKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0
dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jv
b3QoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSA6IDA7
CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiAwOworICAg
IGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKQor
ICAgICAgICByZXR1cm4gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIDA7
CiB9CiAKIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBj
aGFuZ2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggMjcxZjVjYWQwYmUxMGM0YmMyYzIxZTY5NjA4MGYyMjQ1YTAzOTlkYy4uNTg5ODQxOWE2
YTVkNDNlMDQxZmYwYjllZmJhNDc0MjY2MTg0MDRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGlm
IChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSB8fCBwYXJlbnQtPmlzU2hhZG93Um9vdCgpKSB7Ci0g
ICAgICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQocGFyZW50KS0+
aGFzU2hhZG93Um9vdCgpKQorICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkpCiAg
ICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdyA9IHRvRWxlbWVudChwYXJlbnQpLT5zaGFk
b3coKTsKICAgICAgICAgZWxzZSBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAg
ICAgIG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9TaGFkb3dSb290KHBhcmVudCktPm93bmVyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggNzcyNjEzZjcxNzhlNThjNWNkZDI1MDk1
OGQxMzMyYjg2ZWUxNzQwNy4uODMwMjc2OWE0YzhmYjJiYmZmNzBhZGI4MzNiZjA5Y2I0ZmEwYzc1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIFBhc3NS
ZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNo
YWRvd1Jvb3RDcmVhdGlvblB1CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICBB
U1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5ob3N0KCkpOwotICAgIEFTU0VSVChlbGVtZW50
LT5oYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50LT5zaGFkb3coKSk7CiAgICAg
cmV0dXJuIHNoYWRvd1Jvb3QucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCmluZGV4IDRlYjM5MjJkZDE4MWE2NDBmYTZjODNiNTJmNTgxMWNkODM4N2U5
MjMuLjFlY2VjYzJiNjQxZjg0MTU2NTM0MjVjMWU5NGUwNjdjZmUzODY3ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgQ29sb3IgQ29s
b3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNvbnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRv
d1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDQ0YmQxM2ZmMmJhMzYx
Y2UwODFlNzQ5NjhiNWEyMzAyNDUzZmY4ZmEuLjI5Nzg4N2RhYzQ1Yjc2ZDc4YzhlMjg0MjFiMGVm
NjBmNmU5NGE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjky
LDE0ICsyOTIsMTQgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAog
CiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VS
VChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hh
ZG93KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGVsZW1lbnQoKS0+c2hhZG93
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgp
ID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1
bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5n
ZWQoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNT
RVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRv
biA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvdygp
LT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAg
ICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9u
Q2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGU0ZTRh
OTI0ODEzNDQ2N2RmZmQ5OGZkMGQ1Yjg1ZTQ0MDgzZDBiZDMuLjYxMDE1MDFlZjlmN2E2OGU3MmJk
M2JiMmRiYjM2ZTBjYWQ3NmFhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxEZXRhaWxz
RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZQog
CiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAg
QVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogCiAgICAg
UmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93
Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRDaGls
ZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VY
Q0VQVElPTiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApp
bmRleCA5MWJmMzBkMzgxZGQ3ZmI5NTVjOGI0MWQ1ZDdhYjk1ODlkMmNkZDhjLi4zNTM0NjM3OWUz
NDdlOGViZjI5ZjIwOGU4NGM5YTViOGRlMzc5YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBQYXNzUmVmUHRyPEhUTUxJbnB1
dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewot
ICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAg
ICBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRT
aGFkb3dSb290LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIG1faW5wdXRUeXBlLT5jcmVh
dGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
Y3BwCmluZGV4IGIxMDk5ZjE5N2UzMWRiZGJiOGQyZjE0MTk1ZWIxMjk2ZGFmNDNiNTMuLmRiNGQy
ODNmZDM5MWQ1YThjZDc2OWIxOTMyNzdhNTJjM2QxZGFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGlubGluZSBIVE1MS2V5
Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lCiAgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3Vt
ZW50LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KIAotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgp
KTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9
IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNo
YWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMx
LDcgKzEzMSw2IEBAIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVj
dEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAg
IEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwogICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0aGlzLT5z
aGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVybiByb290ID8gdG9IVE1MU2Vs
ZWN0RWxlbWVudChyb290LT5maXJzdENoaWxkKCkpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGFkOGZiMmIwYzRhZGRhNTI2YzRkNTI3N2ZiODc5
OGRhNjIyNDFiNzIuLmY4OWExMDIyYjZlM2NjY2MzYmZkZWQ0ZjY3ZmZlZmE4YjgyZjRlZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDA3NCwxMCArNDA3
NCwxMSBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKCkK
IAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICBpZiAo
IWhhc1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFk
b3coKTsKKyAgICBpZiAoIXNoYWRvdykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTm9k
ZSogbm9kZSA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAg
ICBOb2RlKiBub2RlID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsK
ICAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc01lZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggY2U5MTBlMWE0Y2ZmYTRlNzJl
MzIzMmUzYzJkNzk3NDU1MjFkMzU5Yi4uNjg0ZWI1YmEzZWVhZDM3MjBmYTAxN2IwYmM0MThiYzc5
OWJlMmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0y
MjgsNyArMjI4LDcgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFu
Z2UoKQogCiB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewot
ICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAog
ICAgIFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAK
aW5kZXggNjAwYjE4NWQwYmIyNDZkMDU5MGY3NDdkOTYyYzc3OTAzNTRhOTcwZC4uYWY4MTkxZjNl
NGQ5NDM0ODYyZjc0ZjIxMTk0M2UwNThjNmM4MGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxQcm9ncmVz
c0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93
Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0Jh
ckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwog
ICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDEzMzE5NjNm
NGUxNGI1NzIwMzhhMGIxZmQ2YmRhMTQ3MjBmYTU4ZGQuLmY3Y2FlYjZhZjM4YTdlYjlkZDA3YjA1
NDc1Mjk3MWE0NWY2NzQ0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGMKIAogdm9p
ZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VS
VCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8
U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpD
cmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFp
bHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04s
IHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDYzNjYzYTk3ZmNjN2IwY2Jm
ZmVmOTFmNTliNDdmNWU0ZTE0ZmIyNGQuLjgyNTdkMGY5M2MzZDEzNTUyYzA0MjQwZjgyYjBmZDVh
NmRiYTcyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cApAQCAtODUsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogCiB2b2lkIEhUTUxU
ZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFz
U2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93
Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGlu
Z1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9s
SW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4NGUwZWIwZTZhYWU0MjBjMzgz
OGYzOTM1OTg2NGRhZWU3NWE0Y2Y2Li4yODgyOTUxZWY4MzMxYzkyYTJmOTdlYzA4NmJlNWU4MTk1
ZTM0MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0zOTQsMTEgKzM5NCwxMSBA
QCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRv
d1Jvb3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBlbGVtZW50KCktPnNoYWRvdygp
OworICAgIGlmICghc2hhZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBTaGFkb3dSb290KiBy
b290ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwotICAgIEFTU0VS
VChyb290KTsKKyAgICBTaGFkb3dSb290KiByb290ID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290
KCk7CiAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIAogICAgIC8vIEl0J3Mgb2sgdG8g
Y2xlYXIgY29udGVudHMgb2YgYWxsIG90aGVyIFNoYWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0
IGhhdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNDk0OWIwYTRl
NGE2NjAzNGQwNzE5YTA0ZGE3Njc4YTE4MGZhMjFlOS4uNmYxZDE5MjRiY2VlMmMxMWVjOGM1ZjVk
ZjliNWRiNzM2NGZiZjk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAK
QEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25F
dmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICBOb2RlKiB0YXJnZXROb2RlID0gZXZlbnQtPnRh
cmdldCgpLT50b05vZGUoKTsKICAgICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24g
fHwgIXRhcmdldE5vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5o
YXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBp
ZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9m
KGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVy
bjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2Yo
ZWxlbWVudCgpKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5k
bGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1No
YWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1M
RGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCBkNjNmN2VmOGFj
MzNjNDQyODEzNjQwOGM0YTRkODY1OGU2ZThlNjY2Li45YTNiMjVhYmE3MjU1YmUyZDMzYjVjZmY2
MzEwMTFhYmMwMTczOWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVs
ZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3Vs
ZEhhdmVTcGluQnV0dG9uKCkgY29uc3QKIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0
ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3Qo
KSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgQVNTRVJUKCFtX2lu
bmVyVGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggZmVlOTkxZDkxYjg0
M2Q3MDIwZWQwZGEzNTE5MjNlNDI4NmQ5YWYzNC4uN2YxZjFkNWMwZDcwNDc0M2I5YWFiODk5NWQ5
ODE1MTMxNDMzZDYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlk
ZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0zNTgsNyArMzU4LDcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0
ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NF
UlQobm9kZSk7Ci0gICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jv
b3QoKSk7CisgICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvdygpKTsKICAg
ICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+
b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0
ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA2MTAzMDc3MGYxNzJlODhm
ZTRlYTlkNzVmMTk0MWFiZWM0ZjZmMDQxLi5jMDZlMTQ5Y2NkMGVjMjBmZjQ4ZmQyMTMyY2U5YjQx
MGQwNDM5YTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKQEAgLTM0MCw5ICszNDAsMTIgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5i
aW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKICAgICAgICAgICAgIHVuYmlu
ZChjb250ZW50RG9jdW1lbnQsIG5vZGVzTWFwKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS0+aXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAg
ICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPnlv
dW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkp
Ci0gICAgICAgICAgICB1bmJpbmQocm9vdCwgbm9kZXNNYXApOworICAgIGlmIChub2RlLT5pc0Vs
ZW1lbnROb2RlKCkpIHsKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdG9FbGVtZW50
KG5vZGUpLT5zaGFkb3coKTsKKyAgICAgICAgaWYgKHNoYWRvdykgeworICAgICAgICAgICAgZm9y
IChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsg
cm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgICAgIHVuYmluZChy
b290LCBub2Rlc01hcCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBub2Rlc01hcC0+cmVtb3Zl
KG5vZGUpOwpAQCAtMTIyNiw5ICsxMjI5LDExIEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRP
TTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBuCiAg
ICAgICAgICAgICBpZiAoZG9jKQogICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRDb250ZW50RG9j
dW1lbnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvYywgMCwgbm9kZXNNYXApKTsKICAgICAgICAgfQot
ICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisKKyAgICAgICAgRWxlbWVu
dFNoYWRvdyogc2hhZG93ID0gZWxlbWVudC0+c2hhZG93KCk7CisgICAgICAgIGlmIChzaGFkb3cp
IHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRP
TTo6Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
RE9NOjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9v
dCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBzaGFkb3dSb290cy0+YWRkSXRlbShidWls
ZE9iamVjdEZvck5vZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKICAgICAgICAgICAgIHZhbHVlLT5z
ZXRTaGFkb3dSb290cyhzaGFkb3dSb290cyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5MjkyYWIxMGQ1OTkzODI5ZTFkYWQ4MTA3MGMwOWM3
ZTk4YzhkNjc3Li40MWY5Nzk1MjM5NjA4Y2EzZDU1MDhiNDBkZWMzZTYzNTBkYTliMzYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC02NSwxMSArNjUsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2Rl
KiBub2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0
b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogc3RhdGljIGlubGluZSBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbShjb25zdCBOb2RlKiBub2RlKQogewogICAg
IHJldHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBmZDYyNjMwYThj
MTlhNTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdhLi5kYjRlNmM1Y2RjNzQwM2FmM2EyNmFjMTdl
ZjVmNTM0ZmVmODY4ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCBIVE1MSW5wdXRF
bGVtZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9uKCkgY29uc3QKIHsK
ICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihub2RlKCkpOwogCi0gICAgQVNTRVJUKGlucHV0LT5oYXNTaGFkb3dSb290KCkpOworICAg
IEFTU0VSVChpbnB1dC0+c2hhZG93KCkpOwogCiAgICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0
LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJu
IGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIGJ1dHRvbk5vZGUt
Pmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1
dHRvbk5vZGUpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IGQ3
NzRlNWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYuLjQ1NWU4Mjc4ZDFmZWI0Yjhm
YTkyMGY4NzcwM2Y4ZDRlNzQwMTFlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50
LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVy
ZW5jZWRUZXh0KCkKICAgICBpZiAoRWxlbWVudCogdGFyZ2V0ID0gU1ZHVVJJUmVmZXJlbmNlOjp0
YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhocmVmKCksIGRvY3VtZW50KCkpKQogICAgICAgICB0
ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAotICAgIEFTU0VSVChoYXNTaGFk
b3dSb290KCkpOworICAgIEFTU0VSVChzaGFkb3coKSk7CiAgICAgU2hhZG93Um9vdCogcm9vdCA9
IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgaWYgKCFyb290LT5maXJzdENoaWxk
KCkpCiAgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1
bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtMTgwLDcgKzE4
MCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgU3RyaW5nIGVt
cHR5Q29udGVudDsKICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9IDA7CiAKLSAgICBBU1NFUlQo
aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93KCkpOwogICAgIE5vZGUqIGNvbnRh
aW5lciA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBp
ZiAoY29udGFpbmVyKQogICAgICAgICBjb250YWluZXItPnNldFRleHRDb250ZW50KGVtcHR5Q29u
dGVudCwgaWdub3JlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2Nzgz
OWY2Y2EyZTQyMGRlYjdjNDIwMWYwZGM2ZjJhNzFkY2M5M2U5Li5kYjdkYTg4ZDE5NDIxMGY2MWQ1
MThjNTYyZDM1YzZlYmM4NjZlNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC0zMDIsOCArMzAyLDggQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFi
bGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3QoRWxlbWUKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAg
cmV0dXJuIGhvc3QtPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFk
b3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0
ZShob3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjIsMTAgKzMyMiw5IEBAIEludGVybmFsczo6U2hh
ZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRv
d1Jvb3QoRWxlCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICghaG9zdC0+aGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBob3N0LT5zaGFk
b3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRv
dyA9IGhvc3QtPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hhZG93LT55b3VuZ2VzdFNoYWRv
d1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFk
b3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCog
aG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zMzUsMTAgKzMzNCw5IEBAIEludGVybmFsczo6
U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFk
b3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICghaG9zdC0+
aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBob3N0LT5z
aGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFk
b3cgPSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvdy0+b2xkZXN0U2hhZG93
Um9vdCgpOworICAgIHJldHVybiAwOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRv
d0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNoYWRvd1Jvb3QoTm9kZSogc2hh
ZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2MSwxNyArMzU5LDYgQEAgSW50ZXJuYWxzOjpT
aGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVyU2hhZG93
Um9vdChOb2RlKgogICAgIHJldHVybiB0b1NoYWRvd1Jvb3Qoc2hhZG93KS0+b2xkZXJTaGFkb3dS
b290KCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhv
c3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghaG9zdCkgewotICAgICAgICBlYyA9
IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICho
b3N0LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAgIGhvc3QtPnNoYWRvdygpLT5yZW1vdmVBbGxT
aGFkb3dSb290cygpOwotfQotCiBFbGVtZW50KiBJbnRlcm5hbHM6OmluY2x1ZGVyRm9yKE5vZGUq
IG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghbm9kZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMzkxZDM3NWZhMDNlYjdkMDFiNTAzOTg0MzFhYWFhYjk3
MmUwYzFlZS4uNGJlMTJhYWI3YTIwY2ZjYjEyNzczNDMxMDFkMDlkOTFiM2U4NTMzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03NSw3ICs3NSw2IEBAIHB1YmxpYzoKICAgICBT
aGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1l
bnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFi
bGVkT3JOb2RlKiB5b3VuZ2VyU2hhZG93Um9vdChOb2RlKiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlclNoYWRvd1Jv
b3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVTaGFkb3dS
b290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRl
ckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
Q29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggMDVmNmQzNGY4ODg3MTFmOGU5ZTBkYTYyZjZhMzM2MDZi
YjIxODJmYi4uMTg2YzRlNzU0ZTIwNWZmZDAzMDkyMjY4MTA1ZjhmM2Q5OGIxNTRmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDksNyArNDksNiBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgTm9kZSB5b3VuZ2VyU2hhZG93Um9vdChpbiBOb2RlIHJvb3QpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVtZW50IGluY2x1ZGVyRm9yKGlu
IE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHJlbW92ZVNo
YWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1
bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0
RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcg
aWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4ZGFlNmZiZDVkYzllYmIzMDUzZGFj
YmRhYjAxNjZhNTAyMmNjNGUuLjQ4ZDk2MDNiNmUyZTZiZWMxMTg1MDRjNjQ4NDE3N2IzODFlOGY4
NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wNS0wOSAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBtaW5pbWl6
ZSB0aGUgdXNhZ2Ugb2YgIlNoYWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0ZXN0cyBjYXNlcyB3aGljaCBleGVyY2lz
ZSBzaGFkb3cgcm9vdCByZW1vdmFscy4KKyAgICAgICAgU3VjaCBmdW5jdGlvbmFsaXR5IHdhcyBv
bmx5IGF2YWlsYWJsZSBmcm9tIEludGVybmFscyBvYmplY3QKKyAgICAgICAgYW5kIGl0IG1hZGUg
bGl0dGxlIHNlbnNlIHRvIHRlc3QgaXQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9k
eW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1h
Y2Nlc3Mtc2hhZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNo
YWRvd3Jvb3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBs
ZS1zaGFkb3dyb290Lmh0bWw6CisKIDIwMTItMDUtMDkgIENocmlzdG9waGUgRHVtZXogIDxjaHJp
c3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBodHRwL3Rlc3RzL2xvYWRp
bmcvcGRmLWNvbW1pdC1sb2FkLWNhbGxiYWNrcy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUt
ZXhwZWN0ZWQudHh0CmluZGV4IDA0ZWZiOGJlYzEwYWVkZmRmOWQ2ZDAxNzMwNzI1YmJiMmQ1MWE2
YTQuLjY0ODQ5OGMwNTVhOTJlNDk3MDNlMDBmOGM2ZDE4NWQwM2I4MTU3OTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1t
b3ZlLWV4cGVjdGVkLnR4dApAQCAtNiwxMCArNiw2IEBAIHRlc3RSZW1vdmVDb250ZW50VG9SZWNh
bGMyCiBQQVNTCiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRyZW4KIFBBU1MK
LXRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDEKLVBBU1MKLXRlc3RSZW1vdmVD
b250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIKLVBBU1MKIHRlc3RBcHBlbmRDb250ZW50MQogUEFT
UwogdGVzdEFwcGVuZENvbnRlbnQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS5odG1sCmluZGV4IGM1NDU1ZjRjMzBjOTdjZDFjYjQz
OTY3N2RjYjQzMzdiNjI4ZjBlMzIuLmY3YmM5YmJmZmRmNDMwNDJhNDllN2U3NWJmYmJhNWM0ZDI0
NzdiYTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtbW92ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtbW92ZS5odG1sCkBAIC0xMjYsODYgKzEyNiw2IEBAIGZ1bmN0aW9uIHRlc3RSZW1v
dmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbihjYWxsSWZEb25lKSB7CiAgICAgc2V0VGlt
ZW91dChmLCAwKTsKIH0KIAotZnVuY3Rpb24gdGVzdFJlbW92ZVNoYWRvd1Jvb3QoY2FsbElmRG9u
ZSkgewotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAg
ICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdI
VDwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50
ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnRkFMTEJBQ0snKTsKLSAgICB2YXIg
c3IgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICBzci5hcHBlbmRDaGls
ZChjcmVhdGVTcGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250
ZW50KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwot
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRD
aGlsZChyb290KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJ
ZkRvbmUpIHsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaW50ZXJu
YWxzLnJlbW92ZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkxJR0hU
PC9zcGFuPjwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0g
ICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDAp
OwotfQotCi1mdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxKGNh
bGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNw
YW4+TElHSFQ8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIg
Y29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0g
ICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBw
ZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hp
bGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRF
UiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50
LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAg
IGNvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250ZW50KTsKLSAgICAgICAgICAgIGlu
dGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3QpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5M
SUdIVDwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9
OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChm
LCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVTaGFkb3dSb290
MihjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0g
IjxzcGFuPkxJR0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAyPC9zcGFuPiI7Ci0K
LSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250
ZW50V2l0aFNlbGVjdCgnLmMxJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJuYWxz
LmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3Iu
YXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0K
LSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAg
ICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNvbnRlbnQucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZChjb250ZW50KTsKLSAgICAgICAgICAgIGludGVybmFscy5yZW1vdmVTaGFkb3dS
b290KHJvb3QpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1j
b250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJ
R0hUIDI8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAg
fTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQo
ZiwgMCk7Ci19Ci0KIGZ1bmN0aW9uIHRlc3RBcHBlbmRDb250ZW50MShjYWxsSWZEb25lKSB7CiAg
ICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIApAQCAtMzg2LDgg
KzMwNiw2IEBAIHZhciB0ZXN0RnVuY3MgPSBbCiAgICAgdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2Fs
YzEsCiAgICAgdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzIsCiAgICAgdGVzdFJlbW92ZUNvbnRl
bnRBbmRSZW1vdmVMaWdodENoaWxkcmVuLAotICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3Zl
U2hhZG93Um9vdDEsCi0gICAgdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVTaGFkb3dSb290MiwK
ICAgICB0ZXN0QXBwZW5kQ29udGVudDEsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQyLAogICAgIHRl
c3RBcHBlbmRDb250ZW50MywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBl
Y3RlZC5odG1sCmluZGV4IDhiMjEwZGI0NDE0YTQ4NjEzNGNlZTkyODA2YzdhNTMzMjJkNThkNzku
LmM3MDM3YTY1MTcyMDg3NjhmZTRmMWU2N2EzMjBiOWQ5N2EwMjgxMTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290
LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNh
bGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbApAQCAtNSw2ICs1LDUgQEAgVGhp
cyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVu
ZGVyZWQgY29ycmVjdGx5LgogQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXY+
U2hhZG93IHNob3VsZCBiZSByZW5kZXJlZC48L2Rpdj4KLTxkaXY+TGlnaHQgY2hpbGRyZW4gc2hv
dWxkIGJlIHJlbmRlcmVkIGFmdGVyIGEgc2hhZG93IHJvb3QgaXMgcmVtb3ZlZC48L2Rpdj4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9k
eW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC5odG1sCmluZGV4IDQ1NTgy
YzIyZTJiNjEzODM1ZjliMDFjN2FhMjk3NmI4ZWZjMzk2MjIuLjc0NjNhNjk1OTYzZTAwM2MyMzFm
YzVkNWYwYjk0NzlhNzA2NDQ4OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbApA
QCAtNSwxNyArNSwxMSBAQCBUaGlzIHRlc3RzIHRoYXQgZHluYW1pY2FsbHkgY3JlYXRlZCBTaGFk
b3dSb290IHNob3VsZCBiZSByZW5kZXJlZCBjb3JyZWN0bHkuCiBDYW4gb25seSBydW4gd2l0aGlu
IERSVC4KIDwvZGl2PgogPGRpdiBpZD0iaG9zdDEiPkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBub3Qg
YmUgcmVuZGVyZWQuPC9kaXY+Ci08ZGl2IGlkPSJob3N0MiI+TGlnaHQgY2hpbGRyZW4gc2hvdWxk
IGJlIHJlbmRlcmVkIGFmdGVyIGEgc2hhZG93IHJvb3QgaXMgcmVtb3ZlZC48L2Rpdj4KIDxzY3Jp
cHQ+CiBpZiAod2luZG93LmludGVybmFscykgewogICAgIHZhciBob3N0MSA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoJyNob3N0MScpOwogICAgIHZhciBzaGFkb3dSb290ID0gd2luZG93LmludGVy
bmFscy5lbnN1cmVTaGFkb3dSb290KGhvc3QxKTsKICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTaGFkb3cgc2hvdWxkIGJlIHJlbmRlcmVkLicpKTsK
LQotICAgIHZhciBob3N0MiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3N0MicpOwotICAg
IHZhciBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGhvc3Qy
KTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdT
aGFkb3cgc2hvdWxkIG5vdCBiZSByZW5kZXJlZC4nKSk7Ci0gICAgd2luZG93LmludGVybmFscy5y
ZW1vdmVTaGFkb3dSb290KGhvc3QyKTsKIH0KIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNo
YWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRl
c3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAppbmRleCAwY2VjZTFlYTgwMGQ0OWJi
N2QzNzFiODMxOWQyNWM2ZWExNmJjYjY1Li41N2ViMzlmY2MzZmU2OTYzMjFiYjI4YzRhODk0ODdl
NjI5NmVlNTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0
LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4
dApAQCAtNiw3ICs2LDYgQEAgUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZB
TElEX0FDQ0VTU19FUlIKIFBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgbnVsbAogUEFT
UyBzaGFkb3cubm9kZU5hbWUgaXMgIiNzaGFkb3ctcm9vdCIKIFBBU1Mgc2hhZG93ID09PSBpbnRl
cm5hbHMuc2hhZG93Um9vdChwKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGtl
eWdlbikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRl
c3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
bGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwKaW5kZXggMzliYTliOGMyZmFhNDYy
YWYzZTU3ZjgyMjIxM2VkZjU0NmI0NmU2MS4uZWM3NjU3OWMzNjMwMGUwZGY4NWI5OWU1Mzc3ODEz
NDJmOGU5NTRlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91
dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbApAQCAtMzUsMTAgKzM1
LDYgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBzaGFkb3cgPSBpbnRlcm5hbHMuZW5z
dXJlU2hhZG93Um9vdChwKTsKICAgICBzaG91bGRCZSgnc2hhZG93Lm5vZGVOYW1lJywgJyIjc2hh
ZG93LXJvb3QiJyk7CiAgICAgc2hvdWxkQmUoJ3NoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jv
b3QocCknLCAndHJ1ZScpOwotCi0gICAgLy8gQ2FuIHN0cmlwIGVsZW1lbnRzIG9mIHNoYWRvd3MK
LSAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChrZXlnZW4pOwotICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMuc2hhZG93Um9vdChrZXlnZW4pJywgJ251bGwnKTsKIH0KIDwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jv
b3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNo
YWRvd3Jvb3QtZXhwZWN0ZWQudHh0CmluZGV4IGFhM2RlZGRjODU1NmNkN2NlMmJkNzViNjE1NTNm
YzUwZTU4Nzc1ZjMuLjIyY2MyZmE4NWY1OWU3ZGUzYzdmNTdiZTc1Zjg4NzM0NDZiNTEzMjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUt
c2hhZG93cm9vdC1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDYgQEAgUEFTUyBpbnRlcm5hbHMu
c2hhZG93Um9vdChkaXYpIGlzIHNoYWRvd1Jvb3QyCiBQQVNTIGludGVybmFscy5vbGRlclNoYWRv
d1Jvb3Qoc2hhZG93Um9vdDIpIGlzIHNoYWRvd1Jvb3QxCiBQQVNTIGludGVybmFscy5zaGFkb3dS
b290KGRpdikgaXMgc2hhZG93Um9vdDMKIFBBU1MgaW50ZXJuYWxzLm9sZGVyU2hhZG93Um9vdChz
aGFkb3dSb290MykgaXMgc2hhZG93Um9vdDIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2
KSBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFk
b3dyb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93
cm9vdC5odG1sCmluZGV4IDA0YmY4MzNlYzk4OTQ3NmIyNjI5OTZiYTIzZDM5NmFjZWNlN2UxMjIu
LjJhNmI1MjgwZWRkMWE4N2IyNDcwMjgxNzVkZDlhNjg2M2Q0MjYxMmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbApAQCAt
MjEsOSArMjEsNiBAQCB2YXIgc2hhZG93Um9vdDMgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYp
Owogc2hvdWxkQmUoImludGVybmFscy5zaGFkb3dSb290KGRpdikiLCAic2hhZG93Um9vdDMiKTsK
IHNob3VsZEJlKCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QzKSIsICJzaGFk
b3dSb290MiIpOwogCi1pbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChkaXYpOwotc2hvdWxkQmUo
ImludGVybmFscy5zaGFkb3dSb290KGRpdikiLCAibnVsbCIpOwotCiB2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141099</attachid>
            <date>2012-05-10 00:31:49 -0700</date>
            <delta_ts>2012-05-10 01:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85970-20120510163148.patch</filename>
            <type>text/plain</type>
            <size>46650</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZkYjlhOWQ5NGU4OTIy
NmE4ZGM4NmU2YTUzNzEwMTRkYTM5MDI4Ni4uYmE1NGY4MzM3MTkyYjI5ZTY0NzY0MjYxNmM5YjZj
NTMwNzIyMDI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDEyLTA1LTEwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjbGVhbnMg
dHdvIG91dCBkYXRlZCBhc3N1bXB0aW9ucyB3aGljaCBicm91Z2h0IGluIGF0CisgICAgICAgIGVh
cmx5IHN0YWdlIG9mIFNoYWRvdyBET00gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgLSBSZW1v
dmVkIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKTogc2hhZG93IGV4aXN0ZW5jZSBjYW4gYmUgY2hl
Y2tlZCBieSBFbGVtZW50OjpzaGFkb3coKS4KKyAgICAgICAgLSBNYWRlIEVsZW1lbnRTaGFkb3c6
OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkgcHJpdmF0ZTogd2Ugbm8gbG9uZ2VyIGFsbG93IFNoYWRv
d1Jvb3QgcmVtb3ZhbC4KKyAgICAgICAgICBJdCBjYW4gb25seSBoYXBwZW5zIGF0IHRoZSBFbGVt
ZW50U2hhZG93IGRlc3RydWN0aW9uLgorCisgICAgICAgIE1vc3Qgb2YgY2hhbmdlcyBpbiBlbGVt
ZW50IGltcGxlbWVudGF0aW9ucyBhcmUgYmFzaWNhbGx5IHNpbXBsZQorICAgICAgICByZXBsYWNl
bWVudCBmcm9tIGhhc1NoYWRvd1Jvb3QoKSB0byBzaGFkb3coKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
U2hhZG93Ojp+RWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuaDoK
KyAgICAgICAgKEVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6aG9zdCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICog
ZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6Y3JlYXRl
KToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBs
ZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAq
IGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdl
bkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXln
ZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRs
ZU1vdXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2YpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6dW5iaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWls
ZE9iamVjdEZvck5vZGUpOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBs
b2FkQnV0dG9uKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hh
ZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wNS0wOSAgT2xpIExhbiAgPG9saWxh
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGlkZW50aWZ5aW5nIG1ldGhvZHMgZm9yIGRh
dGUvdGltZSBpbnB1dCB0eXBlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkNDA2NzMyMDhlZGViOTZlZWJjOGM5
NWEwZmIxNmFiY2FmYTljNjdjLi45NThiMDczNGU1ZjExNmNiNjg5ODIxYTRlZTlkZDQ3OTViMmIz
NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTAgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQg
bWluaW1pemUgdGhlIHVzYWdlIG9mICJTaGFkb3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBs
b25nZXIgZXhpc3RzCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA1LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggZTZjMjkzZTkyOTc0NDNiMzc2M2ZmYzc4ZGVkMzY2Mjc4MWJjMDI3NS4uYTIyZTdmYTgx
ZGYxNjQ5N2U3OTFjY2UwMTFjMTM2MzVlZjhkNDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTE0ODQsNyArMTQ4NCw2IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50NnNo
YWRvd0V2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlm
aWVkTmFtZUUKLV9fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CiBfX1pOSzdX
ZWJDb3JlN0ludFJlY3QxMGludGVyc2VjdHNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdDhj
b250YWluc0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y2Q0dSZWN0RXYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggNWE2OTM2
YzhjMjIxZmVjYTMzZTc4NmI4NDQ5M2E2MTUyOGNlODU1MC4uZDFhODg5ZTY3OGRmOGEyMzI3ZmY2
ZDM2ZmUzNzEwMDliNThkNjZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTM1LDExICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2Rl
KQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1l
bnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogc3RhdGljIGlubGluZSBFbGVtZW50U2hh
ZG93KiBzaGFkb3dGb3IoY29uc3QgTm9kZSogbm9kZSkKIHsKICAgICBpZiAobm9kZSAmJiBub2Rl
LT5pc0VsZW1lbnROb2RlKCkpCkBAIC05OSw3ICs5NCw3IEBAIE5vZGUqIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJl
Y3RpCiAgICAgQVNTRVJUKG5vZGUpOwogICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkg
ewogICAgICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBzaGFkb3dGb3Iobm9kZSk7Ci0gICAg
ICAgIHJldHVybiAoc2hhZG93ICYmIHNoYWRvdy0+aGFzU2hhZG93Um9vdCgpKSA/IHRyYXZlcnNl
TGlnaHRDaGlsZHJlbihzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisg
ICAgICAgIHJldHVybiBzaGFkb3cgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93LT55b3Vu
Z2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKQogICAgICAgICAgICAgOiB0cmF2ZXJzZUxpZ2h0
Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKICAgICB9CiAgICAgaWYgKGlzU2hhZG93SG9zdChu
b2RlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1MGFjZTg2YzAwNjk1NGEzYjhjMWIx
Y2M3YjVlYTM3OTg4MWVlODIuLjI1M2NmNjkyM2YwZGU4NjVlOTNhMzIyMjA1MmEzMmU2MWJmNTIz
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzEyLDggKzcxMiw4IEBAIHZvaWQgRG9j
dW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRyZWVTY29wZSogc2NvcGUpCiAgICAgICAgIGlmICgh
YWNjZXNzS2V5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tleS5z
ZXQoYWNjZXNzS2V5LmltcGwoKSwgZWxlbWVudCk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c1NoYWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxl
bWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+
b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBl
bGVtZW50LT5zaGFkb3coKSkgeworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
c2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hh
ZG93Um9vdCgpKQogICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOwogICAg
ICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDEzY2IwNmU0NjMxYTQ1YjZi
ZmY2ODM0ZDk1ZjBlZDQxM2M3ZDU1MjguLmM5MTgzZjQwOWZkYWZjMDU1NzZlNzU4ZmE2MzIxNDUy
ZGM3MDBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNDYsOCArMTE0Niw3IEBAIHZv
aWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIFN0eWxlUmVz
b2x2ZXJQYXJlbnRQdXNoZXIgcGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gRklYTUU6IFRo
aXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vz
c2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAg
RWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCk7CisgICAgaWYgKEVsZW1lbnRT
aGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNoYWRvdygpKSB7CiAgICAgICAgIGlmIChjaGFuZ2UgPj0g
SW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVl
ZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAg
ICAgICAgICAgc2hhZG93LT5yZWNhbGNTdHlsZShjaGFuZ2UpOwpAQCAtMTE4NSwxMyArMTE4NCw2
IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAg
ICBkaWRSZWNhbGNTdHlsZShjaGFuZ2UpOwogfQogCi1ib29sIEVsZW1lbnQ6Omhhc1NoYWRvd1Jv
b3QoKSBjb25zdAotewotICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFk
b3coKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvdy0+aGFzU2hhZG93Um9vdCgpOwotICAgIHJldHVy
biBmYWxzZTsKLX0KLQogRWxlbWVudFNoYWRvdyogRWxlbWVudDo6c2hhZG93KCkgY29uc3QKIHsK
ICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCkBAIC0xMjExLDggKzEyMDMsOCBAQCBFbGVtZW50U2hh
ZG93KiBFbGVtZW50OjplbnN1cmVTaGFkb3coKQogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1
cmVTaGFkb3dSb290KCkKIHsKLSAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1
cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyog
c2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVzdFNo
YWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93
Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KS5nZXQoKTsKIH0KQEAgLTEzNDcsMTAg
KzEzMzksOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBh
cnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZgogICAgIGVsc2UKICAgICAgICAgY2hl
Y2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZv
cmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogCi0gICAgaWYgKGhhc1Jh
cmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHNo
YWRvdygpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgfQorICAgIGlmIChFbGVtZW50U2hh
ZG93ICogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHNoYWRvdy0+aG9zdENoaWxk
cmVuQ2hhbmdlZCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmJlZ2luUGFyc2luZ0NoaWxkcmVuKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCmluZGV4IDFjY2ZmNGQ2MDUxNjNmNjRkNWIxYTJkZmE0MjEyODEzNTlk
YTgzNzcuLjk5NGY5YmRhOWQ1ZGI2NWUwNDk3MWVkMzNlNjc0NjVlNzMzOTUwOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMjYxLDcgKzI2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAg
IHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKLSAgICBib29sIGhh
c1NoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3coKSBjb25zdDsK
ICAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVTaGFkb3coKTsKIApAQCAtNzE1LDYgKzcxNCwxMSBA
QCBpbmxpbmUgYm9vbCBOb2RlOjpoYXNDbGFzcygpIGNvbnN0CiAgICAgcmV0dXJuIGlzRWxlbWVu
dE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcyktPmhhc0NsYXNzKCk7CiB9CiAKK2lubGluZSBib29s
IGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlICYmIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpOworfQorCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcApp
bmRleCA3Y2MyMmU5NDYzY2ExNjFmY2M4YWVmM2U3ZjU5NGRlZmRhZGM2MTUwLi5mNDE3Mjg4Yzc3
ZjRiMDI3MTgxOTQ5MGQzZjdiMmY2MWQyMWE5ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRT
aGFkb3cuY3BwCkBAIC00Niw4ICs0Niw3IEBAIEVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3co
KQogCiBFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdygpCiB7Ci0gICAgaWYgKGhhc1NoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKKyAgICByZW1vdmVBbGxT
aGFkb3dSb290cygpOwogfQogCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1l
bnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykK
QEAgLTkxLDkgKzkwLDYgQEAgdm9pZCBFbGVtZW50U2hhZG93OjphZGRTaGFkb3dSb290KEVsZW1l
bnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2gKIAogdm9pZCBFbGVtZW50
U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cygpCiB7Ci0gICAgaWYgKCFoYXNTaGFkb3dSb290
KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIERvbnQgcHJvdGVjdCB0aGlzIHJlZiBjb3Vu
dC4KICAgICBFbGVtZW50KiBzaGFkb3dIb3N0ID0gaG9zdCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuaAppbmRleCA4MDQ4MGI4MDJhNThjNjEwNmJkMjNiNjE5ZDE4YjE0N2Y0ZmUwOTcw
Li4xMjExMjJmMjMzM2RhM2NlODZkNGNhOGI4ZWU1MDZiMmIyYWUyM2M4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmgKQEAgLTUwLDEzICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgfkVsZW1l
bnRTaGFkb3coKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKLQotICAgIGJvb2wgaGFz
U2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgp
IGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKIAogICAg
IHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRyPFNoYWRv
d1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygp
OwogCiAgICAgdm9pZCB3aWxsUmVtb3ZlKCk7CiAKQEAgLTg0LDYgKzgxLDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIHNlbGVjdG9yKCkgY29uc3Q7CiAKIHByaXZh
dGU6CisgICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygpOwogCiAgICAgRG91Ymx5TGlua2Vk
TGlzdDxTaGFkb3dSb290PiBtX3NoYWRvd1Jvb3RzOwogICAgIEhUTUxDb250ZW50U2VsZWN0b3Ig
bV9zZWxlY3RvcjsKQEAgLTkxLDExICs4OSw2IEBAIHByaXZhdGU6CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRWxlbWVudFNoYWRvdyk7CiB9OwogCi1pbmxpbmUgYm9vbCBFbGVtZW50U2hhZG93
OjpoYXNTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMuaXNF
bXB0eSgpOwotfQotCiBpbmxpbmUgU2hhZG93Um9vdCogRWxlbWVudFNoYWRvdzo6eW91bmdlc3RT
aGFkb3dSb290KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7CkBA
IC0xMjMsNyArMTE2LDcgQEAgaW5saW5lIHZvaWQgRWxlbWVudFNoYWRvdzo6Y2xlYXJOZWVkc1Jl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKIAogaW5saW5lIEVsZW1lbnQqIEVsZW1lbnRT
aGFkb3c6Omhvc3QoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAg
IEFTU0VSVCghbV9zaGFkb3dSb290cy5pc0VtcHR5KCkpOwogICAgIHJldHVybiB5b3VuZ2VzdFNo
YWRvd1Jvb3QoKS0+aG9zdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCmluZGV4IDU4NjZlNjA2OGQ2ZjU5YmE2MjFkMzIxYzU0NGY0ZjI4MzYzYmNlYjkuLjE2ODll
MDZiOGNhNGJmMGFiNTgzYzhmMzkxYmY5OTg5MGE5NzViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMTYsMTEgKzExNiw2IEBAIHZvaWQgRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RXZlbnQ+
IHVuZGVyCiAgICAgZ05vZGVzRGlzcGF0Y2hpbmdTaW11bGF0ZWRDbGlja3MtPnJlbW92ZShub2Rl
KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQotewot
ICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNT
aGFkb3dSb290KCk7Ci19Ci0KIFBhc3NSZWZQdHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0Y2hl
cjo6YWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdl
dCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0QW5jZXN0b3JzKQogewogICAgIFZl
Y3RvcjxFdmVudENvbnRleHQ+Ojpjb25zdF9pdGVyYXRvciBsb3dlc3RDb21tb25Cb3VuZGFyeSA9
IG1fYW5jZXN0b3JzLmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDBiMDJjZThmY2I0MDA1ODc2
NTI2M2FhZWU5NDE5NDBmOWUzNmU5ZjEuLmUwYTE1MDgyNTk4MDI1YTg2Y2Q5NDFmOWI3ZDU0YjM2
Y2VlM2VkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTgzNiw3ICs4MzYsMTEgQEAgYm9vbCBOb2Rl
OjpoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3QKIAogaW5saW5lIHN0YXRpYyBTaGFkb3dS
b290KiBvbGRlc3RTaGFkb3dSb290Rm9yKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJu
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3Qo
KSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSA6IDA7Cisg
ICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlm
IChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKQorICAg
ICAgICByZXR1cm4gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIDA7CiB9
CiAKIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBjaGFu
Z2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggMjcxZjVjYWQwYmUxMGM0YmMyYzIxZTY5NjA4MGYyMjQ1YTAzOTlkYy4uNTg5ODQxOWE2YTVk
NDNlMDQxZmYwYjllZmJhNDc0MjY2MTg0MDRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03MSw3ICs3MSw3IEBAIE5vZGVSZW5kZXJpbmdDb250
ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGlmIChw
YXJlbnQtPmlzRWxlbWVudE5vZGUoKSB8fCBwYXJlbnQtPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAg
ICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQocGFyZW50KS0+aGFz
U2hhZG93Um9vdCgpKQorICAgICAgICBpZiAocGFyZW50LT5pc0VsZW1lbnROb2RlKCkpCiAgICAg
ICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdyA9IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3co
KTsKICAgICAgICAgZWxzZSBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgICAg
IG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9TaGFkb3dSb290KHBhcmVudCktPm93bmVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggNzcyNjEzZjcxNzhlNThjNWNkZDI1MDk1OGQx
MzMyYjg2ZWUxNzQwNy4uODMwMjc2OWE0YzhmYjJiYmZmNzBhZGI4MzNiZjA5Y2I0ZmEwYzc1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIFBhc3NSZWZQ
dHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRv
d1Jvb3RDcmVhdGlvblB1CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICBBU1NF
UlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5ob3N0KCkpOwotICAgIEFTU0VSVChlbGVtZW50LT5o
YXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50LT5zaGFkb3coKSk7CiAgICAgcmV0
dXJuIHNoYWRvd1Jvb3QucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCmluZGV4IDRlYjM5MjJkZDE4MWE2NDBmYTZjODNiNTJmNTgxMWNkODM4N2U5MjMu
LjFlY2VjYzJiNjQxZjg0MTU2NTM0MjVjMWU5NGUwNjdjZmUzODY3ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgQ29sb3IgQ29sb3JJ
bnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNvbnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jv
b3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxl
bWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDQ0YmQxM2ZmMmJhMzYxY2Uw
ODFlNzQ5NjhiNWEyMzAyNDUzZmY4ZmEuLjI5Nzg4N2RhYzQ1Yjc2ZDc4YzhlMjg0MjFiMGVmNjBm
NmU5NGE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjkyLDE0
ICsyOTIsMTQgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2
b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChl
bGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93
KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGVsZW1lbnQoKS0+c2hhZG93KCkt
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8g
VXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVu
dCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSks
IGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQo
KQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJU
KGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9
IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihlbGVtZW50KCktPnNoYWRvdygpLT5v
bGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAgICAg
ICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hv
b3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCmluZGV4IGU0ZTRhOTI0
ODEzNDQ2N2RmZmQ5OGZkMGQ1Yjg1ZTQ0MDgzZDBiZDMuLjYxMDE1MDFlZjlmN2E2OGU3MmJkM2Ji
MmRiYjM2ZTBjYWQ3NmFhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERl
dGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBSZW5kZXJPYmplY3QqIEhUTUxEZXRhaWxzRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZQogCiB2
b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNT
RVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogCiAgICAgUmVm
UHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9v
dDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAgICByb290LT5hcHBlbmRDaGlsZChE
ZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRl
eCA5MWJmMzBkMzgxZGQ3ZmI5NTVjOGI0MWQ1ZDdhYjk1ODlkMmNkZDhjLi4zNTM0NjM3OWUzNDdl
OGViZjI5ZjIwOGU4NGM5YTViOGRlMzc5YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVs
ZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAg
IEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBT
aGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFk
b3dSb290LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3Bw
CmluZGV4IGIxMDk5ZjE5N2UzMWRiZGJiOGQyZjE0MTk1ZWIxMjk2ZGFmNDNiNTMuLmRiNGQyODNm
ZDM5MWQ1YThjZDc2OWIxOTMyNzdhNTJjM2QxZGFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGlubGluZSBIVE1MS2V5Z2Vu
RWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lCiAgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50
LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KIAotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
KyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNo
YWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRv
d1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMxLDcg
KzEzMSw2IEBAIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVs
ZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIEFT
U0VSVChoYXNTaGFkb3dSb290KCkpOwogICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0aGlzLT5zaGFk
b3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVybiByb290ID8gdG9IVE1MU2VsZWN0
RWxlbWVudChyb290LT5maXJzdENoaWxkKCkpIDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGFkOGZiMmIwYzRhZGRhNTI2YzRkNTI3N2ZiODc5OGRh
NjIyNDFiNzIuLmY4OWExMDIyYjZlM2NjY2MzYmZkZWQ0ZjY3ZmZlZmE4YjgyZjRlZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDA3NCwxMCArNDA3NCwx
MSBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKCkKIAog
Ym9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKCkKIHsKLSAgICBpZiAoIWhh
c1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3co
KTsKKyAgICBpZiAoIXNoYWRvdykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTm9kZSog
bm9kZSA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBO
b2RlKiBub2RlID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAg
ICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc01lZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggY2U5MTBlMWE0Y2ZmYTRlNzJlMzIz
MmUzYzJkNzk3NDU1MjFkMzU5Yi4uNjg0ZWI1YmEzZWVhZDM3MjBmYTAxN2IwYmM0MThiYzc5OWJl
MmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMjgs
NyArMjI4LDcgQEAgdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2Uo
KQogCiB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAg
IEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAogICAg
IFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5k
ZXggNjAwYjE4NWQwYmIyNDZkMDU5MGY3NDdkOTYyYzc3OTAzNTRhOTcwZC4uYWY4MTkxZjNlNGQ5
NDM0ODYyZjc0ZjIxMTk0M2UwNThjNmM4MGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxQcm9ncmVzc0Vs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9v
dCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVs
ZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAg
IG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDEzMzE5NjNmNGUx
NGI1NzIwMzhhMGIxZmQ2YmRhMTQ3MjBmYTU4ZGQuLmY3Y2FlYjZhZjM4YTdlYjlkZDA3YjA1NDc1
Mjk3MWE0NWY2NzQ0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1h
cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVu
dC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxkU2hv
dWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGMKIAogdm9pZCBI
VE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCgh
aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hh
ZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVh
dGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNN
YXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRy
dWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDYzNjYzYTk3ZmNjN2IwY2JmZmVm
OTFmNTliNDdmNWU0ZTE0ZmIyNGQuLjgyNTdkMGY5M2MzZDEzNTUyYzA0MjQwZjgyYjBmZDVhNmRi
YTcyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApA
QCAtODUsNyArODUsNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogCiB2b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9v
dD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1Vz
ZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9sSW5u
ZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA4NGUwZWIwZTZhYWU0MjBjMzgzOGYz
OTM1OTg2NGRhZWU3NWE0Y2Y2Li4yODgyOTUxZWY4MzMxYzkyYTJmOTdlYzA4NmJlNWU4MTk1ZTM0
MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0zOTQsMTEgKzM5NCwxMSBAQCB2
b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpk
ZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRvd1Jv
b3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBlbGVtZW50KCktPnNoYWRvdygpOwor
ICAgIGlmICghc2hhZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBTaGFkb3dSb290KiByb290
ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwotICAgIEFTU0VSVChy
b290KTsKKyAgICBTaGFkb3dSb290KiByb290ID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCk7
CiAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRyZW4oKTsKIAogICAgIC8vIEl0J3Mgb2sgdG8gY2xl
YXIgY29udGVudHMgb2YgYWxsIG90aGVyIFNoYWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0IGhh
dmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNDk0OWIwYTRlNGE2
NjAzNGQwNzE5YTA0ZGE3Njc4YTE4MGZhMjFlOS4uNmYxZDE5MjRiY2VlMmMxMWVjOGM1ZjVkZjli
NWRiNzM2NGZiZjk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAg
LTE2MCw3ICsxNjAsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVu
dChNb3VzZUV2ZW50KiBldmVudCkKICAgICBOb2RlKiB0YXJnZXROb2RlID0gZXZlbnQtPnRhcmdl
dCgpLT50b05vZGUoKTsKICAgICBpZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwg
IXRhcmdldE5vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNT
aGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBpZiAo
dGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVs
ZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVybjsK
ICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2YoZWxl
bWVudCgpKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRv
d1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2
RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAppbmRleCBkNjNmN2VmOGFjMzNj
NDQyODEzNjQwOGM0YTRkODY1OGU2ZThlNjY2Li45YTNiMjVhYmE3MjU1YmUyZDMzYjVjZmY2MzEw
MTFhYmMwMTczOWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZEhh
dmVTcGluQnV0dG9uKCkgY29uc3QKIAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVy
VGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVyQmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggZmVlOTkxZDkxYjg0M2Q3
MDIwZWQwZGEzNTE5MjNlNDI4NmQ5YWYzNC4uN2YxZjFkNWMwZDcwNDc0M2I5YWFiODk5NWQ5ODE1
MTMxNDMzZDYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwCkBAIC0zNTgsNyArMzU4LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBU
cmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJF
bGVtZW50KiB0cmFja0xpbWl0ZXJFbGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQo
bm9kZSk7Ci0gICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3Qo
KSk7CisgICAgQVNTRVJUKG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBT
aGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIg
PSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA2MTAzMDc3MGYxNzJlODhmZTRl
YTlkNzVmMTk0MWFiZWM0ZjZmMDQxLi5jMDZlMTQ5Y2NkMGVjMjBmZjQ4ZmQyMTMyY2U5YjQxMGQw
NDM5YTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKQEAgLTM0MCw5ICszNDAsMTIgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5k
KE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKICAgICAgICAgICAgIHVuYmluZChj
b250ZW50RG9jdW1lbnQsIG5vZGVzTWFwKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS0+aXNFbGVt
ZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPnlvdW5n
ZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0g
ICAgICAgICAgICB1bmJpbmQocm9vdCwgbm9kZXNNYXApOworICAgIGlmIChub2RlLT5pc0VsZW1l
bnROb2RlKCkpIHsKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdG9FbGVtZW50KG5v
ZGUpLT5zaGFkb3coKTsKKyAgICAgICAgaWYgKHNoYWRvdykgeworICAgICAgICAgICAgZm9yIChT
aGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9v
dCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgICAgIHVuYmluZChyb290
LCBub2Rlc01hcCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBub2Rlc01hcC0+cmVtb3ZlKG5v
ZGUpOwpAQCAtMTIyNiw5ICsxMjI5LDExIEBAIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6
Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBuCiAgICAg
ICAgICAgICBpZiAoZG9jKQogICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRDb250ZW50RG9jdW1l
bnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvYywgMCwgbm9kZXNNYXApKTsKICAgICAgICAgfQotICAg
ICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7CisKKyAgICAgICAgRWxlbWVudFNo
YWRvdyogc2hhZG93ID0gZWxlbWVudC0+c2hhZG93KCk7CisgICAgICAgIGlmIChzaGFkb3cpIHsK
ICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6
Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9N
OjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBl
bGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290
LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9
IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNo
YWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBzaGFkb3dSb290cy0+YWRkSXRlbShidWlsZE9i
amVjdEZvck5vZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKICAgICAgICAgICAgIHZhbHVlLT5zZXRT
aGFkb3dSb290cyhzaGFkb3dSb290cyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAppbmRleCA5MjkyYWIxMGQ1OTkzODI5ZTFkYWQ4MTA3MGMwOWM3ZTk4
YzhkNjc3Li40MWY5Nzk1MjM5NjA4Y2EzZDU1MDhiNDBkZWMzZTYzNTBkYTliMzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC02NSwxMSArNjUsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBu
b2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0Vs
ZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogc3RhdGljIGlubGluZSBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbShjb25zdCBOb2RlKiBub2RlKQogewogICAgIHJl
dHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAppbmRleCBmZDYyNjMwYThjMTlh
NTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdhLi5kYjRlNmM1Y2RjNzQwM2FmM2EyNmFjMTdlZjVm
NTM0ZmVmODY4ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCBIVE1MSW5wdXRFbGVt
ZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9uKCkgY29uc3QKIHsKICAg
ICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihub2RlKCkpOwogCi0gICAgQVNTRVJUKGlucHV0LT5oYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVChpbnB1dC0+c2hhZG93KCkpOwogCiAgICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5z
aGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIGJ1
dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIGJ1dHRvbk5vZGUtPmhh
c1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1dHRv
bk5vZGUpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IGQ3NzRl
NWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYuLjQ1NWU4Mjc4ZDFmZWI0YjhmYTky
MGY4NzcwM2Y4ZDRlNzQwMTFlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNw
cApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5j
ZWRUZXh0KCkKICAgICBpZiAoRWxlbWVudCogdGFyZ2V0ID0gU1ZHVVJJUmVmZXJlbmNlOjp0YXJn
ZXRFbGVtZW50RnJvbUlSSVN0cmluZyhocmVmKCksIGRvY3VtZW50KCkpKQogICAgICAgICB0ZXh0
Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAotICAgIEFTU0VSVChoYXNTaGFkb3dS
b290KCkpOworICAgIEFTU0VSVChzaGFkb3coKSk7CiAgICAgU2hhZG93Um9vdCogcm9vdCA9IHNo
YWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgaWYgKCFyb290LT5maXJzdENoaWxkKCkp
CiAgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJT04pOwpAQCAtMTgwLDcgKzE4MCw3
IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgU3RyaW5nIGVtcHR5
Q29udGVudDsKICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9IDA7CiAKLSAgICBBU1NFUlQoaGFz
U2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93KCkpOwogICAgIE5vZGUqIGNvbnRhaW5l
ciA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAo
Y29udGFpbmVyKQogICAgICAgICBjb250YWluZXItPnNldFRleHRDb250ZW50KGVtcHR5Q29udGVu
dCwgaWdub3JlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2NzgzOWY2
Y2EyZTQyMGRlYjdjNDIwMWYwZGM2ZjJhNzFkY2M5M2U5Li5kYjdkYTg4ZDE5NDIxMGY2MWQ1MThj
NTYyZDM1YzZlYmM4NjZlNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0zMDIsOCArMzAyLDggQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVk
T3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3QoRWxlbWUKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCi0gICAgaWYgKGhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0
dXJuIGhvc3QtPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVu
dFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ct
PnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSho
b3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjIsMTAgKzMyMiw5IEBAIEludGVybmFsczo6U2hhZG93
Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jv
b3QoRWxlCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICghaG9zdC0+aGFzU2hh
ZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBob3N0LT5zaGFkb3co
KS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9
IGhvc3QtPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dE
T01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9z
dCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zMzUsMTAgKzMzNCw5IEBAIEludGVybmFsczo6U2hh
ZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dS
b290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmICghaG9zdC0+aGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBob3N0LT5zaGFk
b3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cg
PSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvdy0+b2xkZXN0U2hhZG93Um9v
dCgpOworICAgIHJldHVybiAwOwogfQogCiBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RP
TUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93
LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2MSwxNyArMzU5LDYgQEAgSW50ZXJuYWxzOjpTaGFk
b3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVyU2hhZG93Um9v
dChOb2RlKgogICAgIHJldHVybiB0b1NoYWRvd1Jvb3Qoc2hhZG93KS0+b2xkZXJTaGFkb3dSb290
KCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3Qs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghaG9zdCkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChob3N0
LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAgIGhvc3QtPnNoYWRvdygpLT5yZW1vdmVBbGxTaGFk
b3dSb290cygpOwotfQotCiBFbGVtZW50KiBJbnRlcm5hbHM6OmluY2x1ZGVyRm9yKE5vZGUqIG5v
ZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghbm9kZSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggMzkxZDM3NWZhMDNlYjdkMDFiNTAzOTg0MzFhYWFhYjk3MmUw
YzFlZS4uNGJlMTJhYWI3YTIwY2ZjYjEyNzczNDMxMDFkMDlkOTFiM2U4NTMzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03NSw3ICs3NSw2IEBAIHB1YmxpYzoKICAgICBTaGFk
b3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQq
IGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVk
T3JOb2RlKiB5b3VuZ2VyU2hhZG93Um9vdChOb2RlKiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRlclNoYWRvd1Jvb3Qo
Tm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVTaGFkb3dSb290
KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZv
cihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQ29u
dGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKaW5kZXggMDVmNmQzNGY4ODg3MTFmOGU5ZTBkYTYyZjZhMzM2MDZiYjIx
ODJmYi4uMTg2YzRlNzU0ZTIwNWZmZDAzMDkyMjY4MTA1ZjhmM2Q5OGIxNTRmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDksNyArNDksNiBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgTm9kZSB5b3VuZ2VyU2hhZG93Um9vdChpbiBOb2RlIHJvb3QpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVtZW50IGluY2x1ZGVyRm9yKGluIE5v
ZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHJlbW92ZVNoYWRv
d1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERP
TVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxl
bWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDAzNDJjMWY0
NTg2ODdiN2EyODRmY2RhODVkMjU0NTMwMGViYTU2YzMuLjcwNDU1ZGQ4YjllMjU5YzIxOGJlODFl
ZjE0OGU5YTRhMjVjNDkzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3OCw3ICsxNzgs
NiBAQCBFWFBPUlRTCiAgICAgICAgID9nZXRFbGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBA
UUJFUEFWRWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRIaWdo
bGlnaHRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQkVYUEFVSGlnaGxpZ2h0QDJAQFoK
ICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlQFRleHRJdGVyYXRvckBXZWJD
b3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJMkBaCi0gICAgICAgID9oYXNTaGFk
b3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/aW5wdXRUYWdASFRNTE5h
bWVzQFdlYkNvcmVAQDNWUXVhbGlmaWVkTmFtZUAyQEIKICAgICAgICAgP2luc3RydW1lbnRpbmdB
Z2VudHNGb3JQYWdlQEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkBXZWJDb3JlQEBDQVBBVkluc3Ry
dW1lbnRpbmdBZ2VudHNAMkBQQVZQYWdlQDJAQFoKICAgICAgICAgP2lzQ1NTRXhjbHVzaW9uc0Vu
YWJsZWRAUnVudGltZUVuYWJsZWRGZWF0dXJlc0BXZWJDb3JlQEAwX05BCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggYjZlMGYzNmQ0M2MzYzExMTVjMDA5N2RmMThjOTc5MWNh
NDNiNWNmZC4uZWQyNDQ5M2FhZWFjZmQxNWM2NjAzYmJiZTg2NmY3NWFmM2MyMTQ5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTcxLDcgKzE3MSw2IEBAIEVYUE9SVFMK
ICAgICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVtZW50
QDJAQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldEhpZ2hsaWdodEBJbnNwZWN0
b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRVhQQVVIaWdobGlnaHRAMkBAWgogICAgICAgICA/Z2V0
TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBX05QQVZF
bGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKLSAgICAgICAgP2hhc1NoYWRvd1Jvb3RARWxlbWVu
dEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pbnB1dFRhZ0BIVE1MTmFtZXNAV2ViQ29yZUBA
M1ZRdWFsaWZpZWROYW1lQDJAQgogICAgICAgICA/aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2VA
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQENBUEFWSW5zdHJ1bWVudGluZ0FnZW50
c0AyQFBBVlBhZ2VAMkBAWgogICAgICAgICA/aXNDU1NFeGNsdXNpb25zRW5hYmxlZEBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzQFdlYkNvcmVAQDBfTkEKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4
IGMwMzM4NTM3NDYzNjhkNjVkNjU1MmY3NTFkNzNkN2EyODQzZmQ3ZjguLjdiNjMzNzJmNmI1MWQy
YjQ4NjY5ZGM3YzQ2NTE5MmQ5NTBiMzRhMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAt
OTksNyArOTksNiBAQCBfWk5LN1dlYkNvcmUyNkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50MjZw
bGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZUV2OwogX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdz
RXY7CiBfWk5LN1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4
ZWNTdGF0ZUVQTlMxXzE0U2NvcGVDaGFpbk5vZGVFOwogX1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hh
ZG93RXY7Ci1fWk5LN1dlYkNvcmU3RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2OwogX1pOSzdXZWJD
b3JlOERvY3VtZW50NHBhZ2VFdjsKIF9aTks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2Owog
X1pOSzdXZWJDb3JlOERvY3VtZW50NHZpZXdFdjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OGRhZTZmYmQ1ZGM5ZWJiMzA1
M2RhY2JkYWIwMTY2YTUwMjJjYzRlLi40OGQ5NjAzYjZlMmU2YmVjMTE4NTA0YzY0ODQxNzdiMzgx
ZThmODY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDUtMDkgIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQgbWlu
aW1pemUgdGhlIHVzYWdlIG9mICJTaGFkb3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgdGVzdHMgY2FzZXMgd2hpY2ggZXhl
cmNpc2Ugc2hhZG93IHJvb3QgcmVtb3ZhbHMuCisgICAgICAgIFN1Y2ggZnVuY3Rpb25hbGl0eSB3
YXMgb25seSBhdmFpbGFibGUgZnJvbSBJbnRlcm5hbHMgb2JqZWN0CisgICAgICAgIGFuZCBpdCBt
YWRlIGxpdHRsZSBzZW5zZSB0byB0ZXN0IGl0LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWw6
CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRv
dy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1j
YW4tYWNjZXNzLXNoYWRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBs
ZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbXVs
dGlwbGUtc2hhZG93cm9vdC5odG1sOgorCiAyMDEyLTA1LTA5ICBDaHJpc3RvcGhlIER1bWV6ICA8
Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gaHR0cC90ZXN0cy9s
b2FkaW5nL3BkZi1jb21taXQtbG9hZC1jYWxsYmFja3MuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1t
b3ZlLWV4cGVjdGVkLnR4dAppbmRleCAwNGVmYjhiZWMxMGFlZGZkZjlkNmQwMTczMDcyNWJiYjJk
NTFhNmE0Li42NDg0OThjMDU1YTkyZTQ5NzAzZTAwZjhjNmQxODVkMDNiODE1NzkwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtbW92ZS1leHBlY3RlZC50eHQKQEAgLTYsMTAgKzYsNiBAQCB0ZXN0UmVtb3ZlQ29udGVudFRv
UmVjYWxjMgogUEFTUwogdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVMaWdodENoaWxkcmVuCiBQ
QVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxCi1QQVNTCi10ZXN0UmVt
b3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QyCi1QQVNTCiB0ZXN0QXBwZW5kQ29udGVudDEK
IFBBU1MKIHRlc3RBcHBlbmRDb250ZW50MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbAppbmRleCBjNTQ1NWY0YzMwYzk3Y2Qx
Y2I0Mzk2NzdkY2I0MzM3YjYyOGYwZTMyLi5mN2JjOWJiZmZkZjQzMDQyYTQ5ZTdlNzViZmJiYTVj
NGQyNDc3YmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LW1vdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW1vdmUuaHRtbApAQCAtMTI2LDg2ICsxMjYsNiBAQCBmdW5jdGlvbiB0ZXN0
UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRyZW4oY2FsbElmRG9uZSkgewogICAgIHNl
dFRpbWVvdXQoZiwgMCk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RSZW1vdmVTaGFkb3dSb290KGNhbGxJ
ZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
Ci0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4+
TElHSFQ8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIgY29u
dGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAg
dmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQo
Y29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIp
KTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBj
YWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlu
dGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3QpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5M
SUdIVDwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9
OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChm
LCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVTaGFkb3dSb290
MShjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0g
IjxzcGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVhdGUgc2hhZG93IHRyZWUuCi0gICAg
dmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVjdCgnc3BhbicsICdGQUxMQkFDSycp
OwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNy
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVu
ZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29u
dGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAgICAg
ICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNw
YW4+TElHSFQ8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAg
ICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVv
dXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlU2hhZG93
Um9vdDIoY2FsbElmRG9uZSkgewotICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRN
TCA9ICI8c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuIGNsYXNzPSdjMSc+TElHSFQgMjwvc3Bhbj4i
OwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRl
Q29udGVudFdpdGhTZWxlY3QoJy5jMScsICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVy
bmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNw
YW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3Qp
OwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewot
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAgICAgICBpbnRlcm5hbHMucmVtb3ZlU2hh
ZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bh
bj5MSUdIVCAyPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAg
ICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1l
b3V0KGYsIDApOwotfQotCiBmdW5jdGlvbiB0ZXN0QXBwZW5kQ29udGVudDEoY2FsbElmRG9uZSkg
ewogICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAKQEAgLTM4
Niw4ICszMDYsNiBAQCB2YXIgdGVzdEZ1bmNzID0gWwogICAgIHRlc3RSZW1vdmVDb250ZW50VG9S
ZWNhbGMxLAogICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMyLAogICAgIHRlc3RSZW1vdmVD
b250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAgICB0ZXN0UmVtb3ZlQ29udGVudEFuZFJl
bW92ZVNoYWRvd1Jvb3QxLAotICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9v
dDIsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQxLAogICAgIHRlc3RBcHBlbmRDb250ZW50MiwKICAg
ICB0ZXN0QXBwZW5kQ29udGVudDMsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3Qt
ZXhwZWN0ZWQuaHRtbAppbmRleCA4YjIxMGRiNDQxNGE0ODYxMzRjZWU5MjgwNmM3YTUzMzIyZDU4
ZDc5Li5jNzAzN2E2NTE3MjA4NzY4ZmU0ZjFlNjdhMzIwYjlkOTdhMDI4MTE5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ct
cm9vdC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5h
bWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWwKQEAgLTUsNiArNSw1IEBA
IFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBjcmVhdGVkIFNoYWRvd1Jvb3Qgc2hvdWxkIGJl
IHJlbmRlcmVkIGNvcnJlY3RseS4KIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJULgogPC9kaXY+CiA8
ZGl2PlNoYWRvdyBzaG91bGQgYmUgcmVuZGVyZWQuPC9kaXY+Ci08ZGl2PkxpZ2h0IGNoaWxkcmVu
IHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyByb290IGlzIHJlbW92ZWQuPC9kaXY+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbAppbmRleCA0
NTU4MmMyMmUyYjYxMzgzNWY5YjAxYzdhYTI5NzZiOGVmYzM5NjIyLi43NDYzYTY5NTk2M2UwMDNj
MjMxZmM1ZDVmMGI5NDc5YTcwNjQ0ODhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0
bWwKQEAgLTUsMTcgKzUsMTEgQEAgVGhpcyB0ZXN0cyB0aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQg
U2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29ycmVjdGx5LgogQ2FuIG9ubHkgcnVuIHdp
dGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXYgaWQ9Imhvc3QxIj5MaWdodCBjaGlsZHJlbiBzaG91bGQg
bm90IGJlIHJlbmRlcmVkLjwvZGl2PgotPGRpdiBpZD0iaG9zdDIiPkxpZ2h0IGNoaWxkcmVuIHNo
b3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyByb290IGlzIHJlbW92ZWQuPC9kaXY+CiA8
c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB2YXIgaG9zdDEgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCcjaG9zdDEnKTsKICAgICB2YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5p
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0MSk7CiAgICAgc2hhZG93Um9vdC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hhZG93IHNob3VsZCBiZSByZW5kZXJlZC4n
KSk7Ci0KLSAgICB2YXIgaG9zdDIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaG9zdDInKTsK
LSAgICB2YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCho
b3N0Mik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgnU2hhZG93IHNob3VsZCBub3QgYmUgcmVuZGVyZWQuJykpOwotICAgIHdpbmRvdy5pbnRlcm5h
bHMucmVtb3ZlU2hhZG93Um9vdChob3N0Mik7CiB9CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vz
cy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91
dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQKaW5kZXggMGNlY2UxZWE4MDBk
NDliYjdkMzcxYjgzMTlkMjVjNmVhMTZiY2I2NS4uNTdlYjM5ZmNjM2ZlNjk2MzIxYmIyOGM0YTg5
NDg3ZTYyOTZlZTU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xh
eW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3Rl
ZC50eHQKQEAgLTYsNyArNiw2IEBAIFBBU1MgZXhjZXB0aW9uQ29kZSBpcyBET01FeGNlcHRpb24u
SU5WQUxJRF9BQ0NFU1NfRVJSCiBQQVNTIGludGVybmFscy5zaGFkb3dSb290KHApIGlzIG51bGwK
IFBBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjc2hhZG93LXJvb3QiCiBQQVNTIHNoYWRvdyA9PT0g
aW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgdHJ1ZQotUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9v
dChrZXlnZW4pIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91
dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sCmluZGV4IDM5YmE5YjhjMmZh
YTQ2MmFmM2U1N2Y4MjIyMTNlZGY1NDZiNDZlNjEuLmVjNzY1NzljMzYzMDBlMGRmODViOTllNTM3
NzgxMzQyZjhlOTU0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9s
YXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwKQEAgLTM1LDEw
ICszNSw2IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgc2hhZG93ID0gaW50ZXJuYWxz
LmVuc3VyZVNoYWRvd1Jvb3QocCk7CiAgICAgc2hvdWxkQmUoJ3NoYWRvdy5ub2RlTmFtZScsICci
I3NoYWRvdy1yb290IicpOwogICAgIHNob3VsZEJlKCdzaGFkb3cgPT09IGludGVybmFscy5zaGFk
b3dSb290KHApJywgJ3RydWUnKTsKLQotICAgIC8vIENhbiBzdHJpcCBlbGVtZW50cyBvZiBzaGFk
b3dzCi0gICAgaW50ZXJuYWxzLnJlbW92ZVNoYWRvd1Jvb3Qoa2V5Z2VuKTsKLSAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKScsICdudWxsJyk7CiB9CiA8L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFk
b3dyb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBs
ZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAppbmRleCBhYTNkZWRkYzg1NTZjZDdjZTJiZDc1YjYx
NTUzZmM1MGU1ODc3NWYzLi4yMmNjMmZhODVmNTllN2RlM2M3ZjU3YmU3NWY4ODczNDQ2YjUxMzIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93
cm9vdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRp
cGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw2IEBAIFBBU1MgaW50ZXJu
YWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290MgogUEFTUyBpbnRlcm5hbHMub2xkZXJT
aGFkb3dSb290KHNoYWRvd1Jvb3QyKSBpcyBzaGFkb3dSb290MQogUEFTUyBpbnRlcm5hbHMuc2hh
ZG93Um9vdChkaXYpIGlzIHNoYWRvd1Jvb3QzCiBQQVNTIGludGVybmFscy5vbGRlclNoYWRvd1Jv
b3Qoc2hhZG93Um9vdDMpIGlzIHNoYWRvd1Jvb3QyCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290
KGRpdikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUt
c2hhZG93cm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNo
YWRvd3Jvb3QuaHRtbAppbmRleCAwNGJmODMzZWM5ODk0NzZiMjYyOTk2YmEyM2QzOTZhY2VjZTdl
MTIyLi4yYTZiNTI4MGVkZDFhODdiMjQ3MDI4MTc1ZGQ5YTY4NjNkNDI2MTJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwK
QEAgLTIxLDkgKzIxLDYgQEAgdmFyIHNoYWRvd1Jvb3QzID0gbmV3IFdlYktpdFNoYWRvd1Jvb3Qo
ZGl2KTsKIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIiwgInNoYWRvd1Jvb3Qz
Iik7CiBzaG91bGRCZSgiaW50ZXJuYWxzLm9sZGVyU2hhZG93Um9vdChzaGFkb3dSb290MykiLCAi
c2hhZG93Um9vdDIiKTsKIAotaW50ZXJuYWxzLnJlbW92ZVNoYWRvd1Jvb3QoZGl2KTsKLXNob3Vs
ZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIiwgIm51bGwiKTsKLQogdmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCAzMjY4MjM1YzRhZGFlNDAzOTNlYjE5MDk5ZGY3ODUyY2NkMDJiYWI0
Li43ZTQ4YjRiMTJkODFiMzIyZDM3MWU5YjlhZmJlODVjNWZlZDI3YTEyIDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDUtMTAgIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRWxlbWVudFNoYWRv
dyBzaG91bGQgbWluaW1pemUgdGhlIHVzYWdlIG9mICJTaGFkb3dSb290IiBuYW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk3MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgc3ltYm9scyB3
aGljaCBubyBsb25nZXIgZXhpc3RzCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDEyLTA1LTA4ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29A
d2Via2l0Lm9yZz4KIAogICAgICAgICBbQ01ha2VdIEZpbmRHU3RyZWFtZXI6IEZpeCB0aGUgYnVp
bGQgd2l0aCBzdGF0aWMgV2ViQ29yZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141111</attachid>
            <date>2012-05-10 01:59:39 -0700</date>
            <delta_ts>2012-05-10 17:22:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85970-20120510175937.patch</filename>
            <type>text/plain</type>
            <size>48461</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZkYjlhOWQ5NGU4OTIy
NmE4ZGM4NmU2YTUzNzEwMTRkYTM5MDI4Ni4uYmE1NGY4MzM3MTkyYjI5ZTY0NzY0MjYxNmM5YjZj
NTMwNzIyMDI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDEyLTA1LTEwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjbGVhbnMg
dHdvIG91dCBkYXRlZCBhc3N1bXB0aW9ucyB3aGljaCBicm91Z2h0IGluIGF0CisgICAgICAgIGVh
cmx5IHN0YWdlIG9mIFNoYWRvdyBET00gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgLSBSZW1v
dmVkIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKTogc2hhZG93IGV4aXN0ZW5jZSBjYW4gYmUgY2hl
Y2tlZCBieSBFbGVtZW50OjpzaGFkb3coKS4KKyAgICAgICAgLSBNYWRlIEVsZW1lbnRTaGFkb3c6
OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkgcHJpdmF0ZTogd2Ugbm8gbG9uZ2VyIGFsbG93IFNoYWRv
d1Jvb3QgcmVtb3ZhbC4KKyAgICAgICAgICBJdCBjYW4gb25seSBoYXBwZW5zIGF0IHRoZSBFbGVt
ZW50U2hhZG93IGRlc3RydWN0aW9uLgorCisgICAgICAgIE1vc3Qgb2YgY2hhbmdlcyBpbiBlbGVt
ZW50IGltcGxlbWVudGF0aW9ucyBhcmUgYmFzaWNhbGx5IHNpbXBsZQorICAgICAgICByZXBsYWNl
bWVudCBmcm9tIGhhc1NoYWRvd1Jvb3QoKSB0byBzaGFkb3coKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpi
dWlsZEFjY2Vzc0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6ZW5zdXJlU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
U2hhZG93Ojp+RWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuaDoK
KyAgICAgICAgKEVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRv
dzo6aG9zdCk6CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICog
ZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6Cisg
ICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICog
ZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6Y3JlYXRl
KToKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0Zp
bGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBs
ZUF0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAq
IGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdl
bkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXln
ZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRy
b2xzKToKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICog
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1
bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRv
d1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRs
ZU1vdXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2YpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6dW5iaW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWls
ZE9iamVjdEZvck5vZGUpOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29u
dHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBs
b2FkQnV0dG9uKToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hh
ZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9v
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wNS0wOSAgT2xpIExhbiAgPG9saWxh
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGlkZW50aWZ5aW5nIG1ldGhvZHMgZm9yIGRh
dGUvdGltZSBpbnB1dCB0eXBlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkNDA2NzMyMDhlZGViOTZlZWJjOGM5
NWEwZmIxNmFiY2FmYTljNjdjLi45NThiMDczNGU1ZjExNmNiNjg5ODIxYTRlZTlkZDQ3OTViMmIz
NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTAgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQg
bWluaW1pemUgdGhlIHVzYWdlIG9mICJTaGFkb3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBs
b25nZXIgZXhpc3RzCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA1LTA4ICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggZTZjMjkzZTkyOTc0NDNiMzc2M2ZmYzc4ZGVkMzY2Mjc4MWJjMDI3NS4uYWUzMDM5OTc4
ZGUxNGFlY2VjMjBmODk0YTkwOTIzZmU4MDgyMDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTMwMiw3ICszMDIsNiBAQCBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUxOHJvb3RPYmplY3RG
b3JGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlMjFnQWNjZXNz
aWJpbGl0eUVuYWJsZWRFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyM2ZvY3VzZWRVSUVs
ZW1lbnRGb3JQYWdlRVBLTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGU0MmdB
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZEUKLV9fWk43V2ViQ29yZTEz
RWxlbWVudFNoYWRvdzIwcmVtb3ZlQWxsU2hhZG93Um9vdHNFdgogX19aTjdXZWJDb3JlMTNIVFRQ
SGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFFdgogX19aTjdXZWJD
b3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KQEAgLTE0ODQsNyArMTQ4Myw2IEBAIF9fWk5LN1dl
YkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJl
Y3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50NnNoYWRvd0V2CiBfX1pOSzdXZWJDb3JlN0VsZW1l
bnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUKLV9fWk5LN1dlYkNvcmU3RWxl
bWVudDEzaGFzU2hhZG93Um9vdEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3QxMGludGVyc2VjdHNF
UktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3V2ViQ29y
ZTdJbnRSZWN0Y3Y2Q0dSZWN0RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5jcHAKaW5kZXggNWE2OTM2YzhjMjIxZmVjYTMzZTc4NmI4NDQ5M2E2MTUy
OGNlODU1MC4uZDFhODg5ZTY3OGRmOGEyMzI3ZmY2ZDM2ZmUzNzEwMDliNThkNjZmZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTM1
LDExICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBib29s
IGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsK
LX0KLQogc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBzaGFkb3dGb3IoY29uc3QgTm9kZSog
bm9kZSkKIHsKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCkBAIC05OSw3
ICs5NCw3IEBAIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZChj
b25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3RpCiAgICAgQVNTRVJUKG5vZGUpOwogICAg
IGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkgewogICAgICAgICBFbGVtZW50U2hhZG93KiBz
aGFkb3cgPSBzaGFkb3dGb3Iobm9kZSk7Ci0gICAgICAgIHJldHVybiAoc2hhZG93ICYmIHNoYWRv
dy0+aGFzU2hhZG93Um9vdCgpKSA/IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihzaGFkb3ctPnlvdW5n
ZXN0U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisgICAgICAgIHJldHVybiBzaGFkb3cgPyB0cmF2
ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9u
KQogICAgICAgICAgICAgOiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsK
ICAgICB9CiAgICAgaWYgKGlzU2hhZG93SG9zdChub2RlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDM1MGFjZTg2YzAwNjk1NGEzYjhjMWIxY2M3YjVlYTM3OTg4MWVlODIuLjI1M2NmNjky
M2YwZGU4NjVlOTNhMzIyMjA1MmEzMmU2MWJmNTIzZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNzEyLDggKzcxMiw4IEBAIHZvaWQgRG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRy
ZWVTY29wZSogc2NvcGUpCiAgICAgICAgIGlmICghYWNjZXNzS2V5LmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tleS5zZXQoYWNjZXNzS2V5LmltcGwoKSwgZWxlbWVu
dCk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICAg
ICAgZm9yIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hh
ZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAg
IGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBlbGVtZW50LT5zaGFkb3coKSkgeworICAgICAg
ICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3Qo
KTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQogICAgICAgICAgICAgICAg
IGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDEzY2IwNmU0NjMxYTQ1YjZiZmY2ODM0ZDk1ZjBlZDQxM2M3ZDU1MjguLmM5
MTgzZjQwOWZkYWZjMDU1NzZlNzU4ZmE2MzIxNDUyZGM3MDBhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTExNDYsOCArMTE0Niw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5
bGVDaGFuZ2UgY2hhbmdlKQogICAgIFN0eWxlUmVzb2x2ZXJQYXJlbnRQdXNoZXIgcGFyZW50UHVz
aGVyKHRoaXMpOwogCiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJs
aW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlm
IChoYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhp
cy0+c2hhZG93KCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNoYWRv
dygpKSB7CiAgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVl
ZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAg
ICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwogICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTdHls
ZShjaGFuZ2UpOwpAQCAtMTE4NSwxMyArMTE4NCw2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5
bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICBkaWRSZWNhbGNTdHlsZShjaGFuZ2UpOwog
fQogCi1ib29sIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKSBjb25zdAotewotICAgIGlmIChFbGVt
ZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKLSAgICAgICAgcmV0dXJuIHNoYWRv
dy0+aGFzU2hhZG93Um9vdCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogRWxlbWVudFNoYWRv
dyogRWxlbWVudDo6c2hhZG93KCkgY29uc3QKIHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCkBA
IC0xMjExLDggKzEyMDMsOCBAQCBFbGVtZW50U2hhZG93KiBFbGVtZW50OjplbnN1cmVTaGFkb3co
KQogCiBTaGFkb3dSb290KiBFbGVtZW50OjplbnN1cmVTaGFkb3dSb290KCkKIHsKLSAgICBpZiAo
aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jv
b3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisg
ICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBT
aGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFk
b3dSb290KS5nZXQoKTsKIH0KQEAgLTEzNDcsMTAgKzEzMzksOCBAQCB2b2lkIEVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBO
b2RlKiBhZgogICAgIGVsc2UKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRo
aXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGls
ZENvdW50RGVsdGEpOwogCi0gICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKGhh
c1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHNoYWRvdygpLT5ob3N0Q2hpbGRyZW5DaGFuZ2Vk
KCk7Ci0gICAgfQorICAgIGlmIChFbGVtZW50U2hhZG93ICogc2hhZG93ID0gdGhpcy0+c2hhZG93
KCkpCisgICAgICAgIHNoYWRvdy0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OmJlZ2luUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDFjY2Zm
NGQ2MDUxNjNmNjRkNWIxYTJkZmE0MjEyODEzNTlkYTgzNzcuLjk5NGY5YmRhOWQ1ZGI2NWUwNDk3
MWVkMzNlNjc0NjVlNzMzOTUwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjYxLDcgKzI2MSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFu
Z2UgPSBOb0NoYW5nZSk7CiAKLSAgICBib29sIGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBF
bGVtZW50U2hhZG93KiBzaGFkb3coKSBjb25zdDsKICAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVT
aGFkb3coKTsKIApAQCAtNzE1LDYgKzcxNCwxMSBAQCBpbmxpbmUgYm9vbCBOb2RlOjpoYXNDbGFz
cygpIGNvbnN0CiAgICAgcmV0dXJuIGlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcykt
Pmhhc0NsYXNzKCk7CiB9CiAKK2lubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBu
b2RlKQoreworICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0Vs
ZW1lbnQobm9kZSktPnNoYWRvdygpOworfQorCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAppbmRleCA3Y2MyMmU5NDYzY2ExNjFmY2M4YWVm
M2U3ZjU5NGRlZmRhZGM2MTUwLi5mNDE3Mjg4Yzc3ZjRiMDI3MTgxOTQ5MGQzZjdiMmY2MWQyMWE5
ODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC00Niw4ICs0Niw3IEBA
IEVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFkb3coKQogCiBFbGVtZW50U2hhZG93Ojp+RWxlbWVu
dFNoYWRvdygpCiB7Ci0gICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmVtb3ZlQWxs
U2hhZG93Um9vdHMoKTsKKyAgICByZW1vdmVBbGxTaGFkb3dSb290cygpOwogfQogCiBzdGF0aWMg
Ym9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBz
aGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTkxLDkgKzkwLDYgQEAgdm9pZCBFbGVt
ZW50U2hhZG93OjphZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4gc2gKIAogdm9pZCBFbGVtZW50U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290
cygpCiB7Ci0gICAgaWYgKCFoYXNTaGFkb3dSb290KCkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IC8vIERvbnQgcHJvdGVjdCB0aGlzIHJlZiBjb3VudC4KICAgICBFbGVtZW50KiBzaGFkb3dIb3N0
ID0gaG9zdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRv
dy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaAppbmRleCA4MDQ4MGI4MDJh
NThjNjEwNmJkMjNiNjE5ZDE4YjE0N2Y0ZmUwOTcwLi4xMjExMjJmMjMzM2RhM2NlODZkNGNhOGI4
ZWU1MDZiMmIyYWUyM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNo
YWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKQEAgLTUwLDEz
ICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgfkVsZW1lbnRTaGFkb3coKTsKIAogICAgIEVsZW1lbnQq
IGhvc3QoKSBjb25zdDsKLQotICAgIGJvb2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNo
YWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9s
ZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKIAogICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50
KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygpOwogCiAgICAgdm9pZCB3aWxsUmVtb3ZlKCk7
CiAKQEAgLTg0LDYgKzgxLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0
b3ImIHNlbGVjdG9yKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgdm9pZCByZW1vdmVBbGxTaGFk
b3dSb290cygpOwogCiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290PiBtX3NoYWRvd1Jv
b3RzOwogICAgIEhUTUxDb250ZW50U2VsZWN0b3IgbV9zZWxlY3RvcjsKQEAgLTkxLDExICs4OSw2
IEBAIHByaXZhdGU6CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRWxlbWVudFNoYWRvdyk7CiB9
OwogCi1pbmxpbmUgYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTaGFkb3dSb290KCkgY29uc3QKLXsK
LSAgICByZXR1cm4gIW1fc2hhZG93Um9vdHMuaXNFbXB0eSgpOwotfQotCiBpbmxpbmUgU2hhZG93
Um9vdCogRWxlbWVudFNoYWRvdzo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9zaGFkb3dSb290cy5oZWFkKCk7CkBAIC0xMjMsNyArMTE2LDcgQEAgaW5saW5lIHZv
aWQgRWxlbWVudFNoYWRvdzo6Y2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93
KCkKIAogaW5saW5lIEVsZW1lbnQqIEVsZW1lbnRTaGFkb3c6Omhvc3QoKSBjb25zdAogewotICAg
IEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghbV9zaGFkb3dSb290cy5pc0Vt
cHR5KCkpOwogICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aG9zdCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDU4NjZlNjA2OGQ2ZjU5YmE2
MjFkMzIxYzU0NGY0ZjI4MzYzYmNlYjkuLjE2ODllMDZiOGNhNGJmMGFiNTgzYzhmMzkxYmY5OTg5
MGE5NzViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMTYs
MTEgKzExNiw2IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNr
KE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVyCiAgICAgZ05vZGVzRGlzcGF0Y2hp
bmdTaW11bGF0ZWRDbGlja3MtPnJlbW92ZShub2RlKTsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IGlzU2hhZG93SG9zdChOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnRO
b2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7Ci19Ci0KIFBhc3NSZWZQ
dHI8RXZlbnRUYXJnZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVz
KFBhc3NSZWZQdHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxh
dGVkVGFyZ2V0QW5jZXN0b3JzKQogewogICAgIFZlY3RvcjxFdmVudENvbnRleHQ+Ojpjb25zdF9p
dGVyYXRvciBsb3dlc3RDb21tb25Cb3VuZGFyeSA9IG1fYW5jZXN0b3JzLmVuZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDBiMDJjZThmY2I0MDA1ODc2NTI2M2FhZWU5NDE5NDBmOWUzNmU5ZjEuLmUw
YTE1MDgyNTk4MDI1YTg2Y2Q5NDFmOWI3ZDU0YjM2Y2VlM2VkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTgzNiw3ICs4MzYsMTEgQEAgYm9vbCBOb2RlOjpoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkg
Y29uc3QKIAogaW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBvbGRlc3RTaGFkb3dSb290Rm9yKGNv
bnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0
b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93
KCktPm9sZGVzdFNoYWRvd1Jvb3QoKSA6IDA7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2Rl
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0
b0VsZW1lbnQobm9kZSktPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hhZG93LT5vbGRlc3RT
aGFkb3dSb290KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGlubGluZSB2b2lkIE5vZGU6OnNldFN0
eWxlQ2hhbmdlKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMjcxZjVjYWQwYmUxMGM0YmMyYzIxZTY5
NjA4MGYyMjQ1YTAzOTlkYy4uNTg5ODQxOWE2YTVkNDNlMDQxZmYwYjllZmJhNDc0MjY2MTg0MDRh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03
MSw3ICs3MSw3IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChO
b2RlKiBub2RlKQogICAgIH0KIAogICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSB8fCBw
YXJlbnQtPmlzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5v
ZGUoKSAmJiB0b0VsZW1lbnQocGFyZW50KS0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICBpZiAo
cGFyZW50LT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRv
dyA9IHRvRWxlbWVudChwYXJlbnQpLT5zaGFkb3coKTsKICAgICAgICAgZWxzZSBpZiAocGFyZW50
LT5pc1NoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9T
aGFkb3dSb290KHBhcmVudCktPm93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5k
ZXggNzcyNjEzZjcxNzhlNThjNWNkZDI1MDk1OGQxMzMyYjg2ZWUxNzQwNy4uODMwMjc2OWE0Yzhm
YjJiYmZmNzBhZGI4MzNiZjA5Y2I0ZmEwYzc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cApAQCAtMTIyLDcgKzEyMiw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6
Y3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKICAgICBBU1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5o
b3N0KCkpOwotICAgIEFTU0VSVChlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VS
VChlbGVtZW50LT5zaGFkb3coKSk7CiAgICAgcmV0dXJuIHNoYWRvd1Jvb3QucmVsZWFzZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDRlYjM5MjJkZDE4
MWE2NDBmYTZjODNiNTJmNTgxMWNkODM4N2U5MjMuLjFlY2VjYzJiNjQxZjg0MTU2NTM0MjVjMWU5
NGUwNjdjZmUzODY3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBA
IC0xMDcsNyArMTA3LDcgQEAgQ29sb3IgQ29sb3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNv
bnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAg
IEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQo
KS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1
bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCmluZGV4IDQ0YmQxM2ZmMmJhMzYxY2UwODFlNzQ5NjhiNWEyMzAyNDUzZmY4ZmEuLjI5
Nzg4N2RhYzQ1Yjc2ZDc4YzhlMjg0MjFiMGVmNjBmNmU5NGE1NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtMjkyLDE0ICsyOTIsMTQgQEAgYm9vbCBGaWxlSW5wdXRU
eXBlOjppc0ZpbGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgIGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5k
Q2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRl
Rm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRU
eXBlOjptdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogewotICAgIEFTU0VSVChlbGVtZW50KCkt
Pmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAg
IFVwbG9hZEJ1dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVs
ZW1lbnQqPihlbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKSk7CiAgICAgaWYgKGJ1dHRvbikKICAgICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50
KCktPm11bHRpcGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBm
aWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IGU0ZTRhOTI0ODEzNDQ2N2RmZmQ5OGZkMGQ1Yjg1ZTQ0MDgz
ZDBiZDMuLjYxMDE1MDFlZjlmN2E2OGU3MmJkM2JiMmRiYjM2ZTBjYWQ3NmFhNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBA
QCBSZW5kZXJPYmplY3QqIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3Jl
YXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAg
IEFTU0VSVCghc2hhZG93KCkpOwogCiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFk
b3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dS
b290KTsKICAgICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA5MWJmMzBkMzgxZGQ3ZmI5NTVjOGI0MWQ1
ZDdhYjk1ODlkMmNkZDhjLi4zNTM0NjM3OWUzNDdlOGViZjI5ZjIwOGU4NGM5YTViOGRlMzc5YjU0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExMCw3ICsx
MTAsNyBAQCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
KyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hh
ZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290LCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKIAogICAgIG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGIxMDk5ZjE5N2UzMWRiZGJiOGQy
ZjE0MTk1ZWIxMjk2ZGFmNDNiNTMuLmRiNGQyODNmZDM5MWQ1YThjZDc2OWIxOTMyNzdhNTJjM2Qx
ZGFkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC04
Niw3ICs4Niw3IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgICAgIG9wdGlvbi0+YXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KIAot
ICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAg
ICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFk
b3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENo
aWxkKHNlbGVjdCwgZWMpOwogfQpAQCAtMTMxLDcgKzEzMSw2IEBAIHZvaWQgSFRNTEtleWdlbkVs
ZW1lbnQ6OnJlc2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50Ojpz
aGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwogICAg
IFNoYWRvd1Jvb3QqIHJvb3QgPSB0aGlzLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwog
ICAgIHJldHVybiByb290ID8gdG9IVE1MU2VsZWN0RWxlbWVudChyb290LT5maXJzdENoaWxkKCkp
IDogMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGFk
OGZiMmIwYzRhZGRhNTI2YzRkNTI3N2ZiODc5OGRhNjIyNDFiNzIuLmY4OWExMDIyYjZlM2NjY2Mz
YmZkZWQ0ZjY3ZmZlZmE4YjgyZjRlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNDA3NCwxMCArNDA3NCwxMSBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYUNvbnRyb2xzKCkKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNN
ZWRpYUNvbnRyb2xzKCkKIHsKLSAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50
U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKTsKKyAgICBpZiAoIXNoYWRvdykKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTm9kZSogbm9kZSA9IHNoYWRvdygpLT5vbGRlc3RTaGFk
b3dSb290KCktPmZpcnN0Q2hpbGQoKTsKKyAgICBOb2RlKiBub2RlID0gc2hhZG93LT5vbGRlc3RT
aGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc01l
ZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5j
cHAKaW5kZXggY2U5MTBlMWE0Y2ZmYTRlNzJlMzIzMmUzYzJkNzk3NDU1MjFkMzU5Yi4uNjg0ZWI1
YmEzZWVhZDM3MjBmYTAxN2IwYmM0MThiYzc5OWJlMmY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBIVE1MTWV0ZXJF
bGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsK
KyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAogICAgIFJlZlB0cjxNZXRlckJhckVsZW1lbnQ+IGJh
ciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBN
ZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggNjAwYjE4NWQwYmIyNDZkMDU5MGY3NDdk
OTYyYzc3OTAzNTRhOTcwZC4uYWY4MTkxZjNlNGQ5NDM0ODYyZjc0ZjIxMTk0M2UwNThjNmM4MGI4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0x
NTEsNyArMTUxLDcgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVD
aGFuZ2UoKQogCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygp
KTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVlRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFy
eUVsZW1lbnQuY3BwCmluZGV4IDEzMzE5NjNmNGUxNGI1NzIwMzhhMGIxZmQ2YmRhMTQ3MjBmYTU4
ZGQuLmY3Y2FlYjZhZjM4YTdlYjlkZDA3YjA1NDc1Mjk3MWE0NWY2NzQ0NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9v
bCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmIGMKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6
OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwog
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoZG9jdW1l
bnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVuZENoaWxk
KFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwCmluZGV4IDYzNjYzYTk3ZmNjN2IwY2JmZmVmOTFmNTliNDdmNWU0ZTE0ZmIyNGQuLjgyNTdk
MGY5M2MzZDEzNTUyYzA0MjQwZjgyYjBmZDVhNmRiYTcyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBQYXNzUmVmUHRy
PEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJgogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNo
YWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0
ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJv
b3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAppbmRleCA4NGUwZWIwZTZhYWU0MjBjMzgzOGYzOTM1OTg2NGRhZWU3NWE0Y2Y2Li4yODgyOTUx
ZWY4MzMxYzkyYTJmOTdlYzA4NmJlNWU4MTk1ZTM0MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCkBAIC0zOTQsMTEgKzM5NCwxMSBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBz
aGFkb3cgPSBlbGVtZW50KCktPnNoYWRvdygpOworICAgIGlmICghc2hhZG93KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpOwotICAgIEFTU0VSVChyb290KTsKKyAgICBTaGFkb3dSb290KiByb290
ID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgcm9vdC0+cmVtb3ZlQWxsQ2hpbGRy
ZW4oKTsKIAogICAgIC8vIEl0J3Mgb2sgdG8gY2xlYXIgY29udGVudHMgb2YgYWxsIG90aGVyIFNo
YWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0IGhhdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlu
cHV0VHlwZS5jcHAKaW5kZXggNDk0OWIwYTRlNGE2NjAzNGQwNzE5YTA0ZGE3Njc4YTE4MGZhMjFl
OS4uNmYxZDE5MjRiY2VlMmMxMWVjOGM1ZjVkZjliNWRiNzM2NGZiZjk3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIFJhbmdl
SW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50KiBldmVudCkKICAgICBO
b2RlKiB0YXJnZXROb2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKICAgICBpZiAoZXZl
bnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwgIXRhcmdldE5vZGUpCiAgICAgICAgIHJldHVy
bjsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChl
bGVtZW50KCktPnNoYWRvdygpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50KCkgJiYg
IXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNo
YWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRo
dW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2YoZWxlbWVudCgpKTsKQEAgLTIzNyw3ICsyMzcsNyBA
QCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewot
ICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1l
bnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5k
b2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcAppbmRleCBkNjNmN2VmOGFjMzNjNDQyODEzNjQwOGM0YTRkODY1OGU2ZThlNjY2
Li45YTNiMjVhYmE3MjU1YmUyZDMzYjVjZmY2MzEwMTFhYmMwMTczOWE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZEhhdmVTcGluQnV0dG9uKCkgY29uc3QKIAogdm9p
ZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VS
VChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hh
ZG93KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNTRVJUKCFtX2lubmVy
QmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxl
bWVudC5jcHAKaW5kZXggZmVlOTkxZDkxYjg0M2Q3MDIwZWQwZGEzNTE5MjNlNDI4NmQ5YWYzNC4u
N2YxZjFkNWMwZDcwNDc0M2I5YWFiODk5NWQ5ODE1MTMxNDMzZDYyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0zNTgsNyAr
MzU4LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVtZW50
T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgQVNTRVJUKG5vZGUtPnRv
SW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKG5vZGUtPnRvSW5w
dXRFbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBub2RlLT50
b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIEFTU0VS
VChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQoKS0+bGFz
dENoaWxkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAppbmRleCA2MTAzMDc3MGYxNzJlODhmZTRlYTlkNzVmMTk0MWFiZWM0ZjZmMDQxLi5jMDZl
MTQ5Y2NkMGVjMjBmZjQ4ZmQyMTMyY2U5YjQxMGQwNDM5YTgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM0MCw5ICszNDAsMTIgQEAg
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBu
b2Rlc01hcCkKICAgICAgICAgICAgIHVuYmluZChjb250ZW50RG9jdW1lbnQsIG5vZGVzTWFwKTsK
ICAgICB9CiAKLSAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2Rl
KS0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHRv
RWxlbWVudChub2RlKS0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0gICAgICAgICAgICB1bmJpbmQocm9vdCwgbm9k
ZXNNYXApOworICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgRWxlbWVu
dFNoYWRvdyogc2hhZG93ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKTsKKyAgICAgICAgaWYg
KHNoYWRvdykgeworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KQorICAgICAgICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMTIyNiw5ICsxMjI5LDExIEBA
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1
aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiBuCiAgICAgICAgICAgICBpZiAoZG9jKQogICAgICAgICAg
ICAgICAgIHZhbHVlLT5zZXRDb250ZW50RG9jdW1lbnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvYywg
MCwgbm9kZXNNYXApKTsKICAgICAgICAgfQotICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93
Um9vdCgpKSB7CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZWxlbWVudC0+c2hh
ZG93KCk7CisgICAgICAgIGlmIChzaGFkb3cpIHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5cGVC
dWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAg
ICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RT
aGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAg
ICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAg
ICBzaGFkb3dSb290cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5vZGUocm9vdCwgMCwgbm9kZXNN
YXApKTsKICAgICAgICAgICAgIHZhbHVlLT5zZXRTaGFkb3dSb290cyhzaGFkb3dSb290cyk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5Mjky
YWIxMGQ1OTkzODI5ZTFkYWQ4MTA3MGMwOWM3ZTk4YzhkNjc3Li40MWY5Nzk1MjM5NjA4Y2EzZDU1
MDhiNDBkZWMzZTYzNTBkYTliMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCkBAIC02NSwxMSArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBi
b29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3Qo
KTsKLX0KLQogc3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJv
bShjb25zdCBOb2RlKiBub2RlKQogewogICAgIHJldHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIobm9kZSwgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFy
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9h
ZENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRD
b250cm9sLmNwcAppbmRleCBmZDYyNjMwYThjMTlhNTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdh
Li5kYjRlNmM1Y2RjNzQwM2FmM2EyNmFjMTdlZjVmNTM0ZmVmODY4ZmFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAg
LTIyMyw3ICsyMjMsNyBAQCBIVE1MSW5wdXRFbGVtZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDo6dXBsb2FkQnV0dG9uKCkgY29uc3QKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwogCi0gICAgQVNTRVJUKGlu
cHV0LT5oYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChpbnB1dC0+c2hhZG93KCkpOwogCiAg
ICAgTm9kZSogYnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgp
LT5maXJzdENoaWxkKCk7CiAgICAgcmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNI
VE1MRWxlbWVudCgpICYmIGJ1dHRvbk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGJ1dHRvbk5vZGUpIDogMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IGQ3NzRlNWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2
NjgwODA5NjYuLjQ1NWU4Mjc4ZDFmZWI0YjhmYTkyMGY4NzcwM2Y4ZDRlNzQwMTFlNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQg
U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KCkKICAgICBpZiAoRWxlbWVudCog
dGFyZ2V0ID0gU1ZHVVJJUmVmZXJlbmNlOjp0YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhocmVm
KCksIGRvY3VtZW50KCkpKQogICAgICAgICB0ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRl
bnQoKTsKIAotICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChzaGFkb3co
KSk7CiAgICAgU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7
CiAgICAgaWYgKCFyb290LT5maXJzdENoaWxkKCkpCiAgICAgICAgIHJvb3QtPmFwcGVuZENoaWxk
KFNWR1NoYWRvd1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9O
T19FWENFUFRJT04pOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRl
dGFjaFRhcmdldCgpCiAgICAgU3RyaW5nIGVtcHR5Q29udGVudDsKICAgICBFeGNlcHRpb25Db2Rl
IGlnbm9yZSA9IDA7CiAKLSAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQo
c2hhZG93KCkpOwogICAgIE5vZGUqIGNvbnRhaW5lciA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dS
b290KCktPmZpcnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyKQogICAgICAgICBjb250YWlu
ZXItPnNldFRleHRDb250ZW50KGVtcHR5Q29udGVudCwgaWdub3JlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA2NzgzOWY2Y2EyZTQyMGRlYjdjNDIwMWYwZGM2ZjJhNzFk
Y2M5M2U5Li5kYjdkYTg4ZDE5NDIxMGY2MWQ1MThjNTYyZDM1YzZlYmM4NjZlNDBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMDIsOCArMzAyLDggQEAgSW50ZXJuYWxz
OjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNo
YWRvd1Jvb3QoRWxlbWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGhvc3Qt
Pmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT55b3VuZ2Vz
dFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hh
ZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAg
ICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZShob3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjIs
MTAgKzMyMiw5IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9k
ZSogSW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlCiAgICAgICAgIHJldHVybiAwOwog
ICAgIH0KIAotICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7Cisg
ICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGhvc3QtPnNoYWRvdygpKQorICAgICAgICBy
ZXR1cm4gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAog
SW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6
Om9sZGVzdFNoYWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0z
MzUsMTAgKzMzNCw5IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9y
Tm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIAotICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwor
ICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAg
cmV0dXJuIHNoYWRvdy0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiAwOwogfQogCiBJ
bnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6
eW91bmdlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2
MSwxNyArMzU5LDYgQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JO
b2RlKiBJbnRlcm5hbHM6Om9sZGVyU2hhZG93Um9vdChOb2RlKgogICAgIHJldHVybiB0b1NoYWRv
d1Jvb3Qoc2hhZG93KS0+b2xkZXJTaGFkb3dSb290KCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpy
ZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IGlmICghaG9zdCkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAg
IGhvc3QtPnNoYWRvdygpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOwotfQotCiBFbGVtZW50KiBJ
bnRlcm5hbHM6OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIGlmICghbm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMzkxZDM3
NWZhMDNlYjdkMDFiNTAzOTg0MzFhYWFhYjk3MmUwYzFlZS4uNGJlMTJhYWI3YTIwY2ZjYjEyNzcz
NDMxMDFkMDlkOTFiM2U4NTMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03
NSw3ICs3NSw2IEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JO
b2RlKiBvbGRlc3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiB5b3VuZ2VyU2hhZG93Um9vdChO
b2RlKiBzaGFkb3csIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01F
bmFibGVkT3JOb2RlKiBvbGRlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMDVmNmQz
NGY4ODg3MTFmOGU5ZTBkYTYyZjZhMzM2MDZiYjIxODJmYi4uMTg2YzRlNzU0ZTIwNWZmZDAzMDky
MjY4MTA1ZjhmM2Q5OGIxNTRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtNDksNyArNDksNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgTm9kZSB5b3VuZ2VyU2hh
ZG93Um9vdChpbiBOb2RlIHJvb3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAg
ICAgICBFbGVtZW50IGluY2x1ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRp
b24pOwotICAgICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBF
bGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBj
cmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9k
ZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmCmluZGV4IDAzNDJjMWY0NTg2ODdiN2EyODRmY2RhODVkMjU0NTMwMGVi
YTU2YzMuLjRmOTIxMDdlYzdmZDBkOWIyZGM3NzQ2NDViNWI5MzYzOGMxMjE5Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKQEAgLTE3OCw3ICsxNzgsNiBAQCBFWFBPUlRTCiAgICAgICAgID9nZXRF
bGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVudEAyQEFCVkF0b21pY1N0
cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRIaWdobGlnaHRASW5zcGVjdG9yQ29udHJvbGxlckBX
ZWJDb3JlQEBRQkVYUEFVSGlnaGxpZ2h0QDJAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVu
Z3RoRnJvbVJhbmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJh
bmdlQDJAQUFJMkBaCi0gICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJF
X05YWgogICAgICAgICA/aW5wdXRUYWdASFRNTE5hbWVzQFdlYkNvcmVAQDNWUXVhbGlmaWVkTmFt
ZUAyQEIKICAgICAgICAgP2luc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlQEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkBXZWJDb3JlQEBDQVBBVkluc3RydW1lbnRpbmdBZ2VudHNAMkBQQVZQYWdlQDJA
QFoKICAgICAgICAgP2lzQ1NTRXhjbHVzaW9uc0VuYWJsZWRAUnVudGltZUVuYWJsZWRGZWF0dXJl
c0BXZWJDb3JlQEAwX05BCkBAIC0yMDEsNyArMjAwLDYgQEAgRVhQT1JUUwogICAgICAgICA/cGFp
bnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cGxhY2Vo
b2xkZXJTaG91bGRCZVZpc2libGVASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBA
UUJFX05YWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9y
QFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVt
ZW50QDJASEhfTkBaCi0gICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BFbGVtZW50U2hhZG93
QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/cmVtb3ZlQFN0cmluZ0BXVEZAQFFBRVhJSEBaCiAg
ICAgICAgID9yZXZlcnNlRmluZEBTdHJpbmdJbXBsQFdURkBAUUFFSV9XSUBaCiAgICAgICAgID9z
X2Zyb250ZW5kQ291bnRlckBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25AV2ViQ29yZUBAMEhBCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggYjZlMGYzNmQ0M2MzYzExMTVjMDA5
N2RmMThjOTc5MWNhNDNiNWNmZC4uYWM1NTJhZTIxYWE3OTgyNGYxN2Y2YjhiMDdjNWQ2ZThkMzE3
NjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisr
KyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTcxLDcgKzE3MSw2
IEBAIEVYUE9SVFMKICAgICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBR
QkVQQVZFbGVtZW50QDJAQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldEhpZ2hs
aWdodEBJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRVhQQVVIaWdobGlnaHRAMkBAWgog
ICAgICAgICA/Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9yQFdlYkNv
cmVAQFNBX05QQVZFbGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKLSAgICAgICAgP2hhc1NoYWRv
d1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pbnB1dFRhZ0BIVE1MTmFt
ZXNAV2ViQ29yZUBAM1ZRdWFsaWZpZWROYW1lQDJAQgogICAgICAgICA/aW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvclBhZ2VASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQENBUEFWSW5zdHJ1
bWVudGluZ0FnZW50c0AyQFBBVlBhZ2VAMkBAWgogICAgICAgICA/aXNDU1NFeGNsdXNpb25zRW5h
YmxlZEBSdW50aW1lRW5hYmxlZEZlYXR1cmVzQFdlYkNvcmVAQDBfTkEKQEAgLTE5NCw3ICsxOTMs
NiBAQCBFWFBPUlRTCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29y
ZUBAQUFFWFhaCiAgICAgICAgID9wbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZUBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9yYW5nZUZyb21Mb2Nh
dGlvbkFuZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJh
bmdlQFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKLSAgICAgICAgP3JlbW92ZUFs
bFNoYWRvd1Jvb3RzQEVsZW1lbnRTaGFkb3dAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZW1v
dmVAU3RyaW5nQFdURkBAUUFFWElIQFoKICAgICAgICAgP3JldmVyc2VGaW5kQFN0cmluZ0ltcGxA
V1RGQEBRQUVJX1dJQFoKICAgICAgICAgP3NfZnJvbnRlbmRDb3VudGVyQEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkBXZWJDb3JlQEAwSEEKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGMwMzM4
NTM3NDYzNjhkNjVkNjU1MmY3NTFkNzNkN2EyODQzZmQ3ZjguLjhlYzNiMTg1ODdmZmNlZDVjZGQ2
ZGY2YzIzZDlmNmE3YzJlMTFjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNDMsNyAr
NDMsNiBAQCBfWk43V2ViQ29yZTEwdG9Eb2N1bWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJD
b3JlMTBDbGllbnRSZWN0QzFFdjsKIF9aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFUktOU183SW50
UmVjdEU7CiBfWk43V2ViQ29yZTEwU2hhZG93Um9vdDZjcmVhdGVFUE5TXzdFbGVtZW50RVJpOwot
X1pON1dlYkNvcmUxM0VsZW1lbnRTaGFkb3cyMHJlbW92ZUFsbFNoYWRvd1Jvb3RzRXY7CiBfWk43
V2ViQ29yZTExRXZlbnRUYXJnZXQxN3RvR2VuZXJhdGVkU3RyZWFtRXY7CiBfWk43V2ViQ29yZTEx
RXZlbnRUYXJnZXQ4dG9TdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyNnJhbmdl
RnJvbUxvY2F0aW9uQW5kTGVuZ3RoRVBOU183RWxlbWVudEVpaWI7CkBAIC05OSw3ICs5OCw2IEBA
IF9aTks3V2ViQ29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyNnBsYWNlaG9sZGVyU2hv
dWxkQmVWaXNpYmxlRXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2Vi
Q29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFf
MTRTY29wZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDZzaGFkb3dFdjsKLV9aTks3
V2ViQ29yZTdFbGVtZW50MTNoYXNTaGFkb3dSb290RXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0
cGFnZUV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50OHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU4
RG9jdW1lbnQ0dmlld0V2OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4ZGFlNmZiZDVkYzllYmIzMDUzZGFjYmRhYjAxNjZh
NTAyMmNjNGUuLjQ4ZDk2MDNiNmUyZTZiZWMxMTg1MDRjNjQ4NDE3N2IzODFlOGY4NjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAxMi0wNS0wOSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBtaW5pbWl6ZSB0aGUgdXNh
Z2Ugb2YgIlNoYWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlZCB0ZXN0cyBjYXNlcyB3aGljaCBleGVyY2lzZSBzaGFkb3cg
cm9vdCByZW1vdmFscy4KKyAgICAgICAgU3VjaCBmdW5jdGlvbmFsaXR5IHdhcyBvbmx5IGF2YWls
YWJsZSBmcm9tIEludGVybmFscyBvYmplY3QKKyAgICAgICAgYW5kIGl0IG1hZGUgbGl0dGxlIHNl
bnNlIHRvIHRlc3QgaXQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVt
ZW50LW1vdmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50
LWVsZW1lbnQtbW92ZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxs
eS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hh
ZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dy
b290Lmh0bWw6CisKIDIwMTItMDUtMDkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1
bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBodHRwL3Rlc3RzL2xvYWRpbmcvcGRmLWNv
bW1pdC1sb2FkLWNhbGxiYWNrcy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQu
dHh0CmluZGV4IDA0ZWZiOGJlYzEwYWVkZmRmOWQ2ZDAxNzMwNzI1YmJiMmQ1MWE2YTQuLjY0ODQ5
OGMwNTVhOTJlNDk3MDNlMDBmOGM2ZDE4NWQwM2I4MTU3OTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVj
dGVkLnR4dApAQCAtNiwxMCArNiw2IEBAIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMyCiBQQVNT
CiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRyZW4KIFBBU1MKLXRlc3RSZW1v
dmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDEKLVBBU1MKLXRlc3RSZW1vdmVDb250ZW50QW5k
UmVtb3ZlU2hhZG93Um9vdDIKLVBBU1MKIHRlc3RBcHBlbmRDb250ZW50MQogUEFTUwogdGVzdEFw
cGVuZENvbnRlbnQyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LWVsZW1lbnQtbW92ZS5odG1sCmluZGV4IGM1NDU1ZjRjMzBjOTdjZDFjYjQzOTY3N2RjYjQz
MzdiNjI4ZjBlMzIuLmY3YmM5YmJmZmRmNDMwNDJhNDllN2U3NWJmYmJhNWM0ZDI0NzdiYTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQt
bW92ZS5odG1sCkBAIC0xMjYsODYgKzEyNiw2IEBAIGZ1bmN0aW9uIHRlc3RSZW1vdmVDb250ZW50
QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbihjYWxsSWZEb25lKSB7CiAgICAgc2V0VGltZW91dChmLCAw
KTsKIH0KIAotZnVuY3Rpb24gdGVzdFJlbW92ZVNoYWRvd1Jvb3QoY2FsbElmRG9uZSkgewotICAg
IHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVh
dGUgbGlnaHQgdHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVDwvc3Bhbj4i
OwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAgIHZhciBjb250ZW50ID0gY3JlYXRl
Q29udGVudFdpdGhTZWxlY3QoJ3NwYW4nLCAnRkFMTEJBQ0snKTsKLSAgICB2YXIgc3IgPSBpbnRl
cm5hbHMuZW5zdXJlU2hhZG93Um9vdChyb290KTsKLSAgICBzci5hcHBlbmRDaGlsZChjcmVhdGVT
cGFuV2l0aFRleHQoIkJFRk9SRSIpKTsKLSAgICBzci5hcHBlbmRDaGlsZChjb250ZW50KTsKLSAg
ICBzci5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkFGVEVSIikpOwotCi0gICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZChyb290
KTsKLQotICAgIHZhciBmID0gKGZ1bmN0aW9uKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpIHsK
LSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgaW50ZXJuYWxzLnJlbW92
ZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9ICI8ZGl2PjxzcGFuPkxJR0hUPC9zcGFuPjwv
ZGl2PiI7Ci0gICAgICAgICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9v
dCwgY29udGVudCwgY2FsbElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCi1m
dW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxKGNhbGxJZkRvbmUp
IHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAg
Ly8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9vdC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQ8
L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFkb3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9
IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNy
ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVu
dCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQot
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hp
bGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZE
b25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNvbnRlbnQu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb250ZW50KTsKLSAgICAgICAgICAgIGludGVybmFscy5y
ZW1vdmVTaGFkb3dSb290KHJvb3QpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVDwvc3Bh
bj48L2Rpdj4iOwotICAgICAgICAgICAgY2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0p
KHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0K
LQotZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVTaGFkb3dSb290MihjYWxsSWZE
b25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQot
ICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJ
R0hUIDE8L3NwYW4+PHNwYW4gY2xhc3M9J2MxJz5MSUdIVCAyPC9zcGFuPiI7Ci0KLSAgICAvLyBD
cmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNl
bGVjdCgnLmMxJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNo
YWRvd1Jvb3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJC
RUZPUkUiKSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hp
bGQoY3JlYXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIg
ZiA9IChmdW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVy
biBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGNvbnRlbnQucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChjb250ZW50KTsKLSAgICAgICAgICAgIGludGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3Qp
OwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXIn
KS5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuPkxJR0hUIDI8L3Nw
YW4+PC9kaXY+IjsKLSAgICAgICAgICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9
KShyb290LCBjb250ZW50LCBjYWxsSWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19
Ci0KIGZ1bmN0aW9uIHRlc3RBcHBlbmRDb250ZW50MShjYWxsSWZEb25lKSB7CiAgICAgdmFyIHJv
b3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKIApAQCAtMzg2LDggKzMwNiw2IEBA
IHZhciB0ZXN0RnVuY3MgPSBbCiAgICAgdGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzEsCiAgICAg
dGVzdFJlbW92ZUNvbnRlbnRUb1JlY2FsYzIsCiAgICAgdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1v
dmVMaWdodENoaWxkcmVuLAotICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9v
dDEsCi0gICAgdGVzdFJlbW92ZUNvbnRlbnRBbmRSZW1vdmVTaGFkb3dSb290MiwKICAgICB0ZXN0
QXBwZW5kQ29udGVudDEsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQyLAogICAgIHRlc3RBcHBlbmRD
b250ZW50MywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWlj
YWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1s
CmluZGV4IDhiMjEwZGI0NDE0YTQ4NjEzNGNlZTkyODA2YzdhNTMzMjJkNThkNzkuLmM3MDM3YTY1
MTcyMDg3NjhmZTRmMWU2N2EzMjBiOWQ5N2EwMjgxMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0
ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbApAQCAtNSw2ICs1LDUgQEAgVGhpcyB0ZXN0cyB0
aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29y
cmVjdGx5LgogQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXY+U2hhZG93IHNo
b3VsZCBiZSByZW5kZXJlZC48L2Rpdj4KLTxkaXY+TGlnaHQgY2hpbGRyZW4gc2hvdWxkIGJlIHJl
bmRlcmVkIGFmdGVyIGEgc2hhZG93IHJvb3QgaXMgcmVtb3ZlZC48L2Rpdj4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxs
eS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC5odG1sCmluZGV4IDQ1NTgyYzIyZTJiNjEz
ODM1ZjliMDFjN2FhMjk3NmI4ZWZjMzk2MjIuLjc0NjNhNjk1OTYzZTAwM2MyMzFmYzVkNWYwYjk0
NzlhNzA2NDQ4OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5h
bWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QuaHRtbApAQCAtNSwxNyAr
NSwxMSBAQCBUaGlzIHRlc3RzIHRoYXQgZHluYW1pY2FsbHkgY3JlYXRlZCBTaGFkb3dSb290IHNo
b3VsZCBiZSByZW5kZXJlZCBjb3JyZWN0bHkuCiBDYW4gb25seSBydW4gd2l0aGluIERSVC4KIDwv
ZGl2PgogPGRpdiBpZD0iaG9zdDEiPkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgcmVuZGVy
ZWQuPC9kaXY+Ci08ZGl2IGlkPSJob3N0MiI+TGlnaHQgY2hpbGRyZW4gc2hvdWxkIGJlIHJlbmRl
cmVkIGFmdGVyIGEgc2hhZG93IHJvb3QgaXMgcmVtb3ZlZC48L2Rpdj4KIDxzY3JpcHQ+CiBpZiAo
d2luZG93LmludGVybmFscykgewogICAgIHZhciBob3N0MSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoJyNob3N0MScpOwogICAgIHZhciBzaGFkb3dSb290ID0gd2luZG93LmludGVybmFscy5lbnN1
cmVTaGFkb3dSb290KGhvc3QxKTsKICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdTaGFkb3cgc2hvdWxkIGJlIHJlbmRlcmVkLicpKTsKLQotICAgIHZh
ciBob3N0MiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNob3N0MicpOwotICAgIHZhciBzaGFk
b3dSb290ID0gd2luZG93LmludGVybmFscy5lbnN1cmVTaGFkb3dSb290KGhvc3QyKTsKLSAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdTaGFkb3cgc2hv
dWxkIG5vdCBiZSByZW5kZXJlZC4nKSk7Ci0gICAgd2luZG93LmludGVybmFscy5yZW1vdmVTaGFk
b3dSb290KGhvc3QyKTsKIH0KIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1h
Y2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAppbmRleCAwY2VjZTFlYTgwMGQ0OWJiN2QzNzFiODMx
OWQyNWM2ZWExNmJjYjY1Li41N2ViMzlmY2MzZmU2OTYzMjFiYjI4YzRhODk0ODdlNjI5NmVlNTQz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNh
bi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mtc2hhZG93LWV4cGVjdGVkLnR4dApAQCAtNiw3
ICs2LDYgQEAgUEFTUyBleGNlcHRpb25Db2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX0FDQ0VT
U19FUlIKIFBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgbnVsbAogUEFTUyBzaGFkb3cu
bm9kZU5hbWUgaXMgIiNzaGFkb3ctcm9vdCIKIFBBU1Mgc2hhZG93ID09PSBpbnRlcm5hbHMuc2hh
ZG93Um9vdChwKSBpcyB0cnVlCi1QQVNTIGludGVybmFscy5zaGFkb3dSb290KGtleWdlbikgaXMg
bnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1h
Y2Nlc3Mtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRl
c3RzLWNhbi1hY2Nlc3Mtc2hhZG93Lmh0bWwKaW5kZXggMzliYTliOGMyZmFhNDYyYWYzZTU3Zjgy
MjIxM2VkZjU0NmI0NmU2MS4uZWM3NjU3OWMzNjMwMGUwZGY4NWI5OWU1Mzc3ODEzNDJmOGU5NTRl
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1j
YW4tYWNjZXNzLXNoYWRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9s
YXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbApAQCAtMzUsMTAgKzM1LDYgQEAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBzaGFkb3cgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93
Um9vdChwKTsKICAgICBzaG91bGRCZSgnc2hhZG93Lm5vZGVOYW1lJywgJyIjc2hhZG93LXJvb3Qi
Jyk7CiAgICAgc2hvdWxkQmUoJ3NoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCknLCAn
dHJ1ZScpOwotCi0gICAgLy8gQ2FuIHN0cmlwIGVsZW1lbnRzIG9mIHNoYWRvd3MKLSAgICBpbnRl
cm5hbHMucmVtb3ZlU2hhZG93Um9vdChrZXlnZW4pOwotICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
c2hhZG93Um9vdChrZXlnZW4pJywgJ251bGwnKTsKIH0KIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3Qt
ZXhwZWN0ZWQudHh0CmluZGV4IGFhM2RlZGRjODU1NmNkN2NlMmJkNzViNjE1NTNmYzUwZTU4Nzc1
ZjMuLjIyY2MyZmE4NWY1OWU3ZGUzYzdmNTdiZTc1Zjg4NzM0NDZiNTEzMjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9v
dC1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDYgQEAgUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9v
dChkaXYpIGlzIHNoYWRvd1Jvb3QyCiBQQVNTIGludGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hh
ZG93Um9vdDIpIGlzIHNoYWRvd1Jvb3QxCiBQQVNTIGludGVybmFscy5zaGFkb3dSb290KGRpdikg
aXMgc2hhZG93Um9vdDMKIFBBU1MgaW50ZXJuYWxzLm9sZGVyU2hhZG93Um9vdChzaGFkb3dSb290
MykgaXMgc2hhZG93Um9vdDIKLVBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBudWxs
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1s
CmluZGV4IDA0YmY4MzNlYzk4OTQ3NmIyNjI5OTZiYTIzZDM5NmFjZWNlN2UxMjIuLjJhNmI1Mjgw
ZWRkMWE4N2IyNDcwMjgxNzVkZDlhNjg2M2Q0MjYxMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbApAQCAtMjEsOSArMjEs
NiBAQCB2YXIgc2hhZG93Um9vdDMgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChkaXYpOwogc2hvdWxk
QmUoImludGVybmFscy5zaGFkb3dSb290KGRpdikiLCAic2hhZG93Um9vdDMiKTsKIHNob3VsZEJl
KCJpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QzKSIsICJzaGFkb3dSb290MiIp
OwogCi1pbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChkaXYpOwotc2hvdWxkQmUoImludGVybmFs
cy5zaGFkb3dSb290KGRpdikiLCAibnVsbCIpOwotCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDMyNjgyMzVjNGFkYWU0MDM5M2ViMTkwOTlkZjc4NTJjY2QwMmJhYjQuLjdlNDhiNGIxMmQ4
MWIzMjJkMzcxZTliOWFmYmU4NWM1ZmVkMjdhMTIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysg
Yi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wNS0xMCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBtaW5p
bWl6ZSB0aGUgdXNhZ2Ugb2YgIlNoYWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBzeW1ib2xzIHdoaWNoIG5vIGxvbmdl
ciBleGlzdHMKKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisK
IDIwMTItMDUtMDggIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFtDTWFrZV0gRmluZEdTdHJlYW1lcjogRml4IHRoZSBidWlsZCB3aXRoIHN0YXRp
YyBXZWJDb3JlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141298</attachid>
            <date>2012-05-10 17:22:40 -0700</date>
            <delta_ts>2012-05-10 17:49:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85970-20120511092238.patch</filename>
            <type>text/plain</type>
            <size>49324</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhZDZlNjAwNzEzNzg1
MzcwZTY2NmM1MzIxYjBhOTgyNjllZTllNi4uZGYxZDRkOTViN2I3ZTJlMzA5OThlMmMzODgwNjg4
YjA0ODYwNmY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTA1LTEwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBjbGVhbnMg
dHdvIG91dCBkYXRlZCBhc3N1bXB0aW9ucyB3aGljaCBicm91Z2h0IGluIGF0CisgICAgICAgIGVh
cmx5IHN0YWdlIG9mIFNoYWRvdyBET00gaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgLSBSZW1v
dmVkIEVsZW1lbnQ6Omhhc1NoYWRvd1Jvb3QoKTogc2hhZG93IGV4aXN0ZW5jZSBjYW4gYmUgY2hl
Y2tlZCBieSBFbGVtZW50OjpzaGFkb3coKS4KKyAgICAgICAgLSBNYWRlIEVsZW1lbnRTaGFkb3c6
OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkgcHJpdmF0ZTogd2Ugbm8gbG9uZ2VyIGFsbG93IFNoYWRv
d1Jvb3QgcmVtb3ZhbC4KKyAgICAgICAgICBJdCBjYW4gb25seSBoYXBwZW5zIGF0IHRoZSBFbGVt
ZW50U2hhZG93IGRlc3RydWN0aW9uLgorCisgICAgICAgIE1vc3Qgb2YgY2hhbmdlcyBpbiBlbGVt
ZW50IGltcGxlbWVudGF0aW9ucyBhcmUgYmFzaWNhbGx5IHNpbXBsZQorICAgICAgICByZXBsYWNl
bWVudCBmcm9tIGhhc1NoYWRvd1Jvb3QoKSB0byBzaGFkb3coKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4
cC5pbjoKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNoaWxkRnJhbWVEaXNjb25uZWN0b3I6OmNvbGxlY3REZXNjZW5kYW50KToKKyAg
ICAgICAgKiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpidWlsZEFjY2Vz
c0tleU1hcCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJl
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQp
OgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBk
b20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93Ojp+
RWxlbWVudFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50U2hhZG93OjpyZW1vdmVB
bGxTaGFkb3dSb290cyk6CisgICAgICAgICogZG9tL0VsZW1lbnRTaGFkb3cuaDoKKyAgICAgICAg
KEVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6aG9zdCk6
CisgICAgICAgICogZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6b2xkZXN0U2hhZG93Um9vdEZvcik6CisgICAgICAgICog
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjptdWx0aXBsZUF0dHJpYnV0
ZUNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRN
TEtleWdlbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6
OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRyb2xzKToKKyAg
ICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1l
bnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93
bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0cmFja0xpbWl0ZXJFbGVtZW50T2YpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6dW5i
aW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZv
ck5vZGUpOgorICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2FkQnV0dG9u
KToKKyAgICAgICAgKiBzdmcvU1ZHVFJlZkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVFJlZkVsZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZW5zdXJlU2hhZG93Um9vdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnlvdW5nZXN0U2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om9sZGVzdFNoYWRvd1Jvb3QpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wNS0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdlbGwsIGF0IGxlYXN0IGZpeGluZyB0aGUgR1RLKyBi
dWlsZCBpcyBzb21ldGhpbmchCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzUyNjk1Yjc1ZWZkYzUyODE2ZDViNWQ3
YzIyYTc1NDc0YWE4M2EwMy4uNDUxZGVjNWZmYmUzODdmOGM0ZjFiOWQ0OTExNzNjY2U3ODg3Njkw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA1LTEwICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cgc2hvdWxkIG1p
bmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHN5bWJvbHMgd2hpY2ggbm8gbG9u
Z2VyIGV4aXN0cworCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0wNS0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSB0aGUgbWlzc2luZyBwbHVnLWluIGluZGlj
YXRvciB0byB0aGUgdW5hdmFpbGFibGUgcGx1Zy1pbiBpbmRpY2F0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMTZjOWNjM2QzOWIwZTZmYjM3OTZiYWQ5Y2FhNGUwNGU0YmE5ZDk1NC4uNWM1YTFk
OTMxZTEwZDJlOGQ0OTkzNGFiMzI0MjAyMjEyNzIyMzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTMwMiw3ICszMDIsNiBAQCBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUxOHJvb3RPYmpl
Y3RGb3JGcmFtZUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTNBWE9iamVjdENhY2hlMjFnQWNj
ZXNzaWJpbGl0eUVuYWJsZWRFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyM2ZvY3VzZWRV
SUVsZW1lbnRGb3JQYWdlRVBLTlNfNFBhZ2VFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGU0
MmdBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZEUKLV9fWk43V2ViQ29y
ZTEzRWxlbWVudFNoYWRvdzIwcmVtb3ZlQWxsU2hhZG93Um9vdHNFdgogX19aTjdXZWJDb3JlMTNI
VFRQSGVhZGVyTWFwQzFFdgogX19aTjdXZWJDb3JlMTNIVFRQSGVhZGVyTWFwRDFFdgogX19aTjdX
ZWJDb3JlMTNIaXRUZXN0UmVzdWx0QzFFUktTMF8KQEAgLTE0ODQsNyArMTQ4Myw2IEBAIF9fWk5L
N1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVl
blJlY3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50NnNoYWRvd0V2CiBfX1pOSzdXZWJDb3JlN0Vs
ZW1lbnQxMmdldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVkTmFtZUUKLV9fWk5LN1dlYkNvcmU3
RWxlbWVudDEzaGFzU2hhZG93Um9vdEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3QxMGludGVyc2Vj
dHNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3V2Vi
Q29yZTdJbnRSZWN0Y3Y2Q0dSZWN0RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAKaW5kZXggNWE2OTM2YzhjMjIxZmVjYTMzZTc4NmI4NDQ5M2E2
MTUyOGNlODU1MC4uZDFhODg5ZTY3OGRmOGEyMzI3ZmY2ZDM2ZmUzNzEwMDliNThkNjZmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKQEAg
LTM1LDExICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBi
b29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3Qo
KTsKLX0KLQogc3RhdGljIGlubGluZSBFbGVtZW50U2hhZG93KiBzaGFkb3dGb3IoY29uc3QgTm9k
ZSogbm9kZSkKIHsKICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCkBAIC05
OSw3ICs5NCw3IEBAIE5vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGls
ZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3RpCiAgICAgQVNTRVJUKG5vZGUpOwog
ICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkgewogICAgICAgICBFbGVtZW50U2hhZG93
KiBzaGFkb3cgPSBzaGFkb3dGb3Iobm9kZSk7Ci0gICAgICAgIHJldHVybiAoc2hhZG93ICYmIHNo
YWRvdy0+aGFzU2hhZG93Um9vdCgpKSA/IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihzaGFkb3ctPnlv
dW5nZXN0U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisgICAgICAgIHJldHVybiBzaGFkb3cgPyB0
cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0
aW9uKQogICAgICAgICAgICAgOiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9u
KTsKICAgICB9CiAgICAgaWYgKGlzU2hhZG93SG9zdChub2RlKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgKaW5kZXggOWQ3NzU1OWVjZmIwYzk0NWQ4Zjlk
NDQ3ZDc0MDkxMDcxMzJmY2JiNC4uZmNjYjVlZWIxZmI5MWRhY2JhOWIxYTk3MzA1MTgzODlhOGIz
ZTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmgK
QEAgLTMwNSw4ICszMDUsOCBAQCBpbmxpbmUgdm9pZCBDaGlsZEZyYW1lRGlzY29ubmVjdG9yOjpj
b2xsZWN0RGVzY2VuZGFudChOb2RlKiByb290KQogICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0g
dG9FbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAoZWxlbWVudC0+aXNGcmFtZU93bmVyRWxlbWVu
dCgpKQogICAgICAgICAgICAgbV9saXN0LmFwcGVuZChub2RlKTsKLSAgICAgICAgaWYgKGVsZW1l
bnQtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIGNvbGxlY3REZXNjZW5kYW50KGVsZW1l
bnQtPnNoYWRvdygpKTsKKyAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGVsZW1l
bnQtPnNoYWRvdygpKQorICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnQoc2hhZG93KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY0NjdhZjMzMjc0MTkxMDU5ODJl
OTgyY2I5NDQ1ZTFhOGRjOTY4MTguLjMwZDM2N2Y5MzhlZTc5ODU3ZjJlZTliYTAzMDExOTBlNzRl
YzM5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzEyLDggKzcxMiw4IEBAIHZvaWQg
RG9jdW1lbnQ6OmJ1aWxkQWNjZXNzS2V5TWFwKFRyZWVTY29wZSogc2NvcGUpCiAgICAgICAgIGlm
ICghYWNjZXNzS2V5LmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fZWxlbWVudHNCeUFjY2Vzc0tl
eS5zZXQoYWNjZXNzS2V5LmltcGwoKSwgZWxlbWVudCk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQt
Pmhhc1NoYWRvd1Jvb3QoKSkgewotICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0g
ZWxlbWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9v
dC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cg
PSBlbGVtZW50LT5zaGFkb3coKSkgeworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290
ID0gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVy
U2hhZG93Um9vdCgpKQogICAgICAgICAgICAgICAgIGJ1aWxkQWNjZXNzS2V5TWFwKHJvb3QpOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQ4MGY5ZDE3MGFmMDQ1
N2RjMzRkYjZiYzExZDMyZmE1ZmY4NzIxZDIuLmNjNDkzOTNkOGM2N2I3ODc2MzM0Nzc4Njc5Yjk1
YjhjMmYwMGQ0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNDAsOCArMTE0MCw3IEBA
IHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIFN0eWxl
UmVzb2x2ZXJQYXJlbnRQdXNoZXIgcGFyZW50UHVzaGVyKHRoaXMpOwogCiAgICAgLy8gRklYTUU6
IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5nIGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5l
Y2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgotICAgIGlmIChoYXNTaGFkb3dSb290KCkpIHsKLSAgICAg
ICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCk7CisgICAgaWYgKEVsZW1l
bnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMtPnNoYWRvdygpKSB7CiAgICAgICAgIGlmIChjaGFuZ2Ug
Pj0gSW5oZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+
bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIucHVzaCgpOwog
ICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTdHlsZShjaGFuZ2UpOwpAQCAtMTE3OSwxMyArMTE3
OCw2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAg
ICAgICBkaWRSZWNhbGNTdHlsZShjaGFuZ2UpOwogfQogCi1ib29sIEVsZW1lbnQ6Omhhc1NoYWRv
d1Jvb3QoKSBjb25zdAotewotICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5z
aGFkb3coKSkKLSAgICAgICAgcmV0dXJuIHNoYWRvdy0+aGFzU2hhZG93Um9vdCgpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogRWxlbWVudFNoYWRvdyogRWxlbWVudDo6c2hhZG93KCkgY29uc3QK
IHsKICAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCkBAIC0xMjA1LDggKzExOTcsOCBAQCBFbGVtZW50
U2hhZG93KiBFbGVtZW50OjplbnN1cmVTaGFkb3coKQogCiBTaGFkb3dSb290KiBFbGVtZW50Ojpl
bnN1cmVTaGFkb3dSb290KCkKIHsKLSAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICBy
ZXR1cm4gc2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRv
dyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVz
dFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hh
ZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KS5nZXQoKTsKIH0KQEAgLTEzNDEs
MTAgKzEzMzMsOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRC
eVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZgogICAgIGVsc2UKICAgICAgICAg
Y2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2VzKHRoaXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBi
ZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogCi0gICAgaWYgKGhh
c1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAg
IHNoYWRvdygpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci0gICAgfQorICAgIGlmIChFbGVtZW50
U2hhZG93ICogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpCisgICAgICAgIHNoYWRvdy0+aG9zdENo
aWxkcmVuQ2hhbmdlZCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6OmJlZ2luUGFyc2luZ0NoaWxkcmVu
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDYyNjcwMWQxZjE3ZmQ1ZjRlYzE1M2U1ZTM3ZGRiZGU1
OGQyZTRmYTEuLjhiZDljZDgxMDdhY2I5YjU1ODkyOTdiNDlhMWQ5MTE4YzYwN2E5MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtMjYxLDcgKzI2MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwog
ICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKLSAgICBib29s
IGhhc1NoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3coKSBjb25z
dDsKICAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVTaGFkb3coKTsKIApAQCAtNzE0LDYgKzcxMywx
MSBAQCBpbmxpbmUgYm9vbCBOb2RlOjpoYXNDbGFzcygpIGNvbnN0CiAgICAgcmV0dXJuIGlzRWxl
bWVudE5vZGUoKSAmJiB0b0VsZW1lbnQodGhpcyktPmhhc0NsYXNzKCk7CiB9CiAKK2lubGluZSBi
b29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlICYm
IG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPnNoYWRvdygpOworfQor
CiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNw
cAppbmRleCAxZTY3MzE3NWQ0NDU3MmQwOGQxOTQzNjM1MGExZjlkN2IzODgwODBjLi5jYzZjODZl
MTY1MjU0MDNkZTQ2OGFhMjQxZjcyZTI5Mzg1NmZiMzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuY3BwCkBAIC00Niw4ICs0Niw3IEBAIEVsZW1lbnRTaGFkb3c6OkVsZW1lbnRTaGFk
b3coKQogCiBFbGVtZW50U2hhZG93Ojp+RWxlbWVudFNoYWRvdygpCiB7Ci0gICAgaWYgKGhhc1No
YWRvd1Jvb3QoKSkKLSAgICAgICAgcmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKKyAgICByZW1vdmVB
bGxTaGFkb3dSb290cygpOwogfQogCiBzdGF0aWMgYm9vbCB2YWxpZGF0ZVNoYWRvd1Jvb3QoRG9j
dW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290KiBzaGFkb3dSb290LCBFeGNlcHRpb25Db2RlJiBl
YykKQEAgLTkxLDkgKzkwLDYgQEAgdm9pZCBFbGVtZW50U2hhZG93OjphZGRTaGFkb3dSb290KEVs
ZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gc2gKIAogdm9pZCBFbGVt
ZW50U2hhZG93OjpyZW1vdmVBbGxTaGFkb3dSb290cygpCiB7Ci0gICAgaWYgKCFoYXNTaGFkb3dS
b290KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIERvbnQgcHJvdGVjdCB0aGlzIHJlZiBj
b3VudC4KICAgICBFbGVtZW50KiBzaGFkb3dIb3N0ID0gaG9zdCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRTaGFkb3cuaAppbmRleCA5YzkzODVjNzg5YzNhZWI4OTg4ODRmZWEzNWFiNzk3MzRjODg4
MjgxLi40YzA3YTI3ZTA0ZTIyM2E5M2RjNzM2Y2U5NTAxODY1N2ZmZjdkYjAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50U2hhZG93LmgKQEAgLTUwLDEzICs1MCwxMCBAQCBwdWJsaWM6CiAgICAgfkVs
ZW1lbnRTaGFkb3coKTsKIAogICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdDsKLQotICAgIGJvb2wg
aGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXN0U2hhZG93Um9v
dCgpIGNvbnN0OwogICAgIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QoKSBjb25zdDsKIAog
ICAgIHZvaWQgYWRkU2hhZG93Um9vdChFbGVtZW50KiBzaGFkb3dIb3N0LCBQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290
cygpOwogCiAgICAgdm9pZCBzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAKQEAgLTgy
LDYgKzc5LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0b3ImIHNlbGVj
dG9yKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgdm9pZCByZW1vdmVBbGxTaGFkb3dSb290cygp
OwogCiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290PiBtX3NoYWRvd1Jvb3RzOwogICAg
IEhUTUxDb250ZW50U2VsZWN0b3IgbV9zZWxlY3RvcjsKQEAgLTg5LDExICs4Nyw2IEBAIHByaXZh
dGU6CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRWxlbWVudFNoYWRvdyk7CiB9OwogCi1pbmxp
bmUgYm9vbCBFbGVtZW50U2hhZG93OjpoYXNTaGFkb3dSb290KCkgY29uc3QKLXsKLSAgICByZXR1
cm4gIW1fc2hhZG93Um9vdHMuaXNFbXB0eSgpOwotfQotCiBpbmxpbmUgU2hhZG93Um9vdCogRWxl
bWVudFNoYWRvdzo6eW91bmdlc3RTaGFkb3dSb290KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9z
aGFkb3dSb290cy5oZWFkKCk7CkBAIC0xMjEsNyArMTE0LDcgQEAgaW5saW5lIHZvaWQgRWxlbWVu
dFNoYWRvdzo6Y2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKIAogaW5s
aW5lIEVsZW1lbnQqIEVsZW1lbnRTaGFkb3c6Omhvc3QoKSBjb25zdAogewotICAgIEFTU0VSVCho
YXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghbV9zaGFkb3dSb290cy5pc0VtcHR5KCkpOwog
ICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aG9zdCgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDU4NjZlNjA2OGQ2ZjU5YmE2MjFkMzIxYzU0
NGY0ZjI4MzYzYmNlYjkuLjE2ODllMDZiOGNhNGJmMGFiNTgzYzhmMzkxYmY5OTg5MGE5NzViZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0xMTYsMTEgKzExNiw2
IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5v
ZGUsIFBhc3NSZWZQdHI8RXZlbnQ+IHVuZGVyCiAgICAgZ05vZGVzRGlzcGF0Y2hpbmdTaW11bGF0
ZWRDbGlja3MtPnJlbW92ZShub2RlKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93
SG9zdChOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYg
dG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7Ci19Ci0KIFBhc3NSZWZQdHI8RXZlbnRU
YXJnZXQ+IEV2ZW50RGlzcGF0Y2hlcjo6YWRqdXN0VG9TaGFkb3dCb3VuZGFyaWVzKFBhc3NSZWZQ
dHI8Tm9kZT4gcmVsYXRlZFRhcmdldCwgY29uc3QgVmVjdG9yPE5vZGUqPiByZWxhdGVkVGFyZ2V0
QW5jZXN0b3JzKQogewogICAgIFZlY3RvcjxFdmVudENvbnRleHQ+Ojpjb25zdF9pdGVyYXRvciBs
b3dlc3RDb21tb25Cb3VuZGFyeSA9IG1fYW5jZXN0b3JzLmVuZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDBhNzI0ODc2NGFiZTBhZjc1NDcxNjg2MjliYWI4ZmViNTBiNTVjODMuLjk0YjI5ZDI2Mjhi
MzQ3ODgxNTNjYjE2ODU4NmVjNjEzMWY5NTQ5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTgzNiw3
ICs4MzYsMTEgQEAgYm9vbCBOb2RlOjpoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkgY29uc3QKIAog
aW5saW5lIHN0YXRpYyBTaGFkb3dSb290KiBvbGRlc3RTaGFkb3dSb290Rm9yKGNvbnN0IE5vZGUq
IG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQo
bm9kZSktPmhhc1NoYWRvd1Jvb3QoKSA/IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPm9sZGVz
dFNoYWRvd1Jvb3QoKSA6IDA7CisgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0b0VsZW1lbnQo
bm9kZSktPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290
KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGlubGluZSB2b2lkIE5vZGU6OnNldFN0eWxlQ2hhbmdl
KFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMjcxZjVjYWQwYmUxMGM0YmMyYzIxZTY5NjA4MGYyMjQ1
YTAzOTlkYy4uNTg5ODQxOWE2YTVkNDNlMDQxZmYwYjllZmJhNDc0MjY2MTg0MDRhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBub2Rl
KQogICAgIH0KIAogICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSB8fCBwYXJlbnQtPmlz
U2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGlmIChwYXJlbnQtPmlzRWxlbWVudE5vZGUoKSAmJiB0
b0VsZW1lbnQocGFyZW50KS0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICBpZiAocGFyZW50LT5p
c0VsZW1lbnROb2RlKCkpCiAgICAgICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvdyA9IHRvRWxl
bWVudChwYXJlbnQpLT5zaGFkb3coKTsKICAgICAgICAgZWxzZSBpZiAocGFyZW50LT5pc1NoYWRv
d1Jvb3QoKSkKICAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9TaGFkb3dSb290
KHBhcmVudCktPm93bmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYWEwMzRi
YTMwMGUyNzU2MTdlNWI3Zjk1YWNiNzU3YTczNjY5NTZkNS4uN2IyNDZjMGIxMmZiMTg3MmQzZTlk
YzZjZDRmODk3YjVlZDVkYTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIFBhc3NSZWZQdHI8U2hhZG93Um9vdD4gU2hhZG93Um9vdDo6Y3JlYXRlKEVs
ZW1lbnQqIGVsZW1lbnQsIFNoYWRvd1Jvb3RDcmVhdGlvblB1CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKICAgICBBU1NFUlQoZWxlbWVudCA9PSBzaGFkb3dSb290LT5ob3N0KCkpOwot
ICAgIEFTU0VSVChlbGVtZW50LT5oYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChlbGVtZW50
LT5zaGFkb3coKSk7CiAgICAgcmV0dXJuIHNoYWRvd1Jvb3QucmVsZWFzZSgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDRlYjM5MjJkZDE4MWE2NDBmYTZj
ODNiNTJmNTgxMWNkODM4N2U5MjMuLjFlY2VjYzJiNjQxZjg0MTU2NTM0MjVjMWU5NGUwNjdjZmUz
ODY3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMDcsNyAr
MTA3LDcgQEAgQ29sb3IgQ29sb3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNvbnN0CiAKIHZv
aWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVChl
bGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93
KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVudCgpLT5kb2N1bWVudCgpOwog
ICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gd3JhcHBlckVsZW1lbnQgPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmlu
ZGV4IDk1YTJmODEyMjQ2OGZkMzMxODYyZTY3YjA5M2FiYjE5MzkxOTI1NzYuLjQyMTE4NWRmYWZm
ZWJmMWVkN2FhMDJiNjIwYTAxYTUyMGE5YzlhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcApAQCAtMjk1LDE0ICsyOTUsMTQgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0Zp
bGVVcGxvYWQoKSBjb25zdAogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNT
RVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoZWxl
bWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlw
bGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVs
ZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogdm9pZCBGaWxlSW5wdXRUeXBlOjptdWx0
aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRv
d1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIFVwbG9hZEJ1
dHRvbkVsZW1lbnQqIGJ1dHRvbiA9IHN0YXRpY19jYXN0PFVwbG9hZEJ1dHRvbkVsZW1lbnQqPihl
bGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKSk7CiAg
ICAgaWYgKGJ1dHRvbikKICAgICAgICAgYnV0dG9uLT5zZXRWYWx1ZShlbGVtZW50KCktPm11bHRp
cGxlKCkgPyBmaWxlQnV0dG9uQ2hvb3NlTXVsdGlwbGVGaWxlc0xhYmVsKCkgOiBmaWxlQnV0dG9u
Q2hvb3NlRmlsZUxhYmVsKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1l
bnQuY3BwCmluZGV4IGU0ZTRhOTI0ODEzNDQ2N2RmZmQ5OGZkMGQ1Yjg1ZTQ0MDgzZDBiZDMuLjYx
MDE1MDFlZjlmN2E2OGU3MmJkM2JiMmRiYjM2ZTBjYWQ3NmFhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBSZW5kZXJP
YmplY3QqIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsZQogCiB2b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgh
c2hhZG93KCkpOwogCiAgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHJvb3QgPSBTaGFkb3dSb290Ojpj
cmVhdGUodGhpcywgU2hhZG93Um9vdDo6Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290KTsKICAg
ICByb290LT5hcHBlbmRDaGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAppbmRleCA2ZmU1NTk2NWQ0ZjFkYTc1OTlkNjI5MDJkOTg5MWU0OGQ0
NzlhZWY3Li43NzhlZDI1N2FkODRlNmUxYTlhMGIyMTI5ZjU5Mjg0YjQwYTg3OTNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBQ
YXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoIXNoYWRvdygpKTsKICAgICBTaGFkb3dSb290OjpjcmVhdGUodGhpcywgU2hhZG93Um9vdDo6
Q3JlYXRpbmdVc2VyQWdlbnRTaGFkb3dSb290LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAg
IG1faW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEtleWdlbkVsZW1lbnQuY3BwCmluZGV4IGIxMDk5ZjE5N2UzMWRiZGJiOGQyZjE0MTk1ZWIx
Mjk2ZGFmNDNiNTMuLmRiNGQyODNmZDM5MWQ1YThjZDc2OWIxOTMyNzdhNTJjM2QxZGFkMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCkBAIC04Niw3ICs4Niw3
IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQo
VGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KIAotICAgIEFTU0VS
VCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8
U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpD
cmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKHNlbGVj
dCwgZWMpOwogfQpAQCAtMTMxLDcgKzEzMSw2IEBAIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJl
c2V0KCkKIAogSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxl
Y3QoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOwogICAgIFNoYWRvd1Jv
b3QqIHJvb3QgPSB0aGlzLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIHJldHVy
biByb290ID8gdG9IVE1MU2VsZWN0RWxlbWVudChyb290LT5maXJzdENoaWxkKCkpIDogMDsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDM4MzVlMDExMDQw
NWYzZjMzYWU2NTFjYzQzNGIyOTFmMWRhNjU2YjIuLjA0OTkyMjYyOGNhMzJlNDY0ZTAyYjE2ZTli
OTk1MzE3NTQxNjUyMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNDA3MywxMCArNDA3MywxMSBAQCBNZWRpYUNvbnRyb2xzKiBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYUNvbnRyb2xzKCkKIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50OjpoYXNNZWRpYUNvbnRy
b2xzKCkKIHsKLSAgICBpZiAoIWhhc1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50U2hhZG93KiBl
bGVtZW50U2hhZG93ID0gc2hhZG93KCk7CisgICAgaWYgKCFlbGVtZW50U2hhZG93KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBOb2RlKiBub2RlID0gc2hhZG93KCktPm9sZGVzdFNoYWRv
d1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOworICAgIE5vZGUqIG5vZGUgPSBlbGVtZW50U2hhZG93LT5v
bGRlc3RTaGFkb3dSb290KCktPmZpcnN0Q2hpbGQoKTsKICAgICByZXR1cm4gbm9kZSAmJiBub2Rl
LT5pc01lZGlhQ29udHJvbHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxl
bWVudC5jcHAKaW5kZXggY2U5MTBlMWE0Y2ZmYTRlNzJlMzIzMmUzYzJkNzk3NDU1MjFkMzU5Yi4u
Njg0ZWI1YmEzZWVhZDM3MjBmYTAxN2IwYmM0MThiYzc5OWJlMmY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9pZCBIVE1M
TWV0ZXJFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxNZXRlckVs
ZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9v
dCgpKTsKKyAgICBBU1NFUlQoIXNoYWRvdygpKTsKIAogICAgIFJlZlB0cjxNZXRlckJhckVsZW1l
bnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFs
dWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggNjAwYjE4NWQwYmIyNDZkMDU5
MGY3NDdkOTYyYzc3OTAzNTRhOTcwZC4uYWY4MTkxZjNlNGQ5NDM0ODYyZjc0ZjIxMTk0M2UwNThj
NmM4MGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50
U3RhdGVDaGFuZ2UoKQogCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoIXNo
YWRvdygpKTsKIAogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNz
QmFyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBQcm9ncmVzc1Zh
bHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IDEzMzE5NjNmNGUxNGI1NzIwMzhhMGIxZmQ2YmRhMTQ3
MjBmYTU4ZGQuLmY3Y2FlYjZhZjM4YTdlYjlkZDA3YjA1NDc1Mjk3MWE0NWY2NzQ0NmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDcg
QEAgYm9vbCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGMKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNy
ZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRv
d1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jv
b3QpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUo
ZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIHRydWUpOwogICAgIHJvb3QtPmFwcGVu
ZENoaWxkKFN1bW1hcnlDb250ZW50RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCmluZGV4IDYzNjYzYTk3ZmNjN2IwY2JmZmVmOTFmNTliNDdmNWU0ZTE0ZmIyNGQu
LjgyNTdkMGY5M2MzZDEzNTUyYzA0MjQwZjgyYjBmZDVhNmRiYTcyODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBQYXNz
UmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJgogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUoKQogewotICAgIEFTU0VSVCghaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoIXNoYWRvdygpKTsKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6
OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwog
ICAgIHJvb3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCA5OTcxODJhYmFlN2Q0NGJmYjcwNzlhNGJhODRjN2VkOTQ1YTk1N2YyLi5j
ZjEyNWM5ZTAxODZkNjQ5ZGQ3NWViODVkODVkYTZhODZlMTc3ZGE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC0zOTUsMTEgKzM5NSwxMSBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgp
CiB7Ci0gICAgaWYgKCFlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSkKKyAgICBFbGVtZW50U2hh
ZG93KiBzaGFkb3cgPSBlbGVtZW50KCktPnNoYWRvdygpOworICAgIGlmICghc2hhZG93KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBTaGFkb3dSb290KiByb290ID0gZWxlbWVudCgpLT5zaGFkb3co
KS0+b2xkZXN0U2hhZG93Um9vdCgpOwotICAgIEFTU0VSVChyb290KTsKKyAgICBTaGFkb3dSb290
KiByb290ID0gc2hhZG93LT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgcm9vdC0+cmVtb3ZlQWxs
Q2hpbGRyZW4oKTsKIAogICAgIC8vIEl0J3Mgb2sgdG8gY2xlYXIgY29udGVudHMgb2YgYWxsIG90
aGVyIFNoYWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0IGhhdmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKaW5kZXggNDk0OWIwYTRlNGE2NjAzNGQwNzE5YTA0ZGE3Njc4YTE4
MGZhMjFlOS4uNmYxZDE5MjRiY2VlMmMxMWVjOGM1ZjVkZjliNWRiNzM2NGZiZjk3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lk
IFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURvd25FdmVudChNb3VzZUV2ZW50KiBldmVudCkK
ICAgICBOb2RlKiB0YXJnZXROb2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKICAgICBp
ZiAoZXZlbnQtPmJ1dHRvbigpICE9IExlZnRCdXR0b24gfHwgIXRhcmdldE5vZGUpCiAgICAgICAg
IHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudCgpLT5oYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVChlbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBpZiAodGFyZ2V0Tm9kZSAhPSBlbGVtZW50
KCkgJiYgIXRhcmdldE5vZGUtPmlzRGVzY2VuZGFudE9mKGVsZW1lbnQoKS0+c2hhZG93KCktPm9s
ZGVzdFNoYWRvd1Jvb3QoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBTbGlkZXJUaHVtYkVsZW1l
bnQqIHRodW1iID0gc2xpZGVyVGh1bWJFbGVtZW50T2YoZWxlbWVudCgpKTsKQEAgLTIzNyw3ICsy
MzcsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogewotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJU
KGVsZW1lbnQoKS0+c2hhZG93KCkpOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZWxlbWVu
dCgpLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gdHJhY2sgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmNwcAppbmRleCBkNjNmN2VmOGFjMzNjNDQyODEzNjQwOGM0YTRkODY1OGU2
ZThlNjY2Li45YTNiMjVhYmE3MjU1YmUyZDMzYjVjZmY2MzEwMTFhYmMwMTczOWE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0yMjEsNyArMjIxLDcg
QEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZEhhdmVTcGluQnV0dG9uKCkgY29uc3QK
IAogdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAg
IEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1lbnQo
KS0+c2hhZG93KCkpOwogCiAgICAgQVNTRVJUKCFtX2lubmVyVGV4dCk7CiAgICAgQVNTRVJUKCFt
X2lubmVyQmxvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHAKaW5kZXggZmVlOTkxZDkxYjg0M2Q3MDIwZWQwZGEzNTE5MjNlNDI4NmQ5
YWYzNC4uN2YxZjFkNWMwZDcwNDc0M2I5YWFiODk5NWQ5ODE1MTMxNDMzZDYyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC0z
NTgsNyArMzU4LDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJF
bGVtZW50T2YoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQobm9kZSk7Ci0gICAgQVNTRVJUKG5v
ZGUtPnRvSW5wdXRFbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKG5vZGUt
PnRvSW5wdXRFbGVtZW50KCktPnNoYWRvdygpKTsKICAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBu
b2RlLT50b0lucHV0RWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAg
IEFTU0VSVChzaGFkb3cpOwogICAgIE5vZGUqIGxpbWl0ZXIgPSBzaGFkb3ctPmZpcnN0Q2hpbGQo
KS0+bGFzdENoaWxkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAppbmRleCA2MTAzMDc3MGYxNzJlODhmZTRlYTlkNzVmMTk0MWFiZWM0ZjZmMDQx
Li44OTk2ZjY2ZTFiMGUzNmMyNDZmZDkzN2FjZjAzNGVhNDg0Yzc3MzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTM0MCw5ICszNDAs
MTEgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lk
TWFwKiBub2Rlc01hcCkKICAgICAgICAgICAgIHVuYmluZChjb250ZW50RG9jdW1lbnQsIG5vZGVz
TWFwKTsKICAgICB9CiAKLSAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVu
dChub2RlKS0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9v
dCA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290
OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0gICAgICAgICAgICB1bmJpbmQocm9v
dCwgbm9kZXNNYXApOworICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAg
aWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93KCkpIHsK
KyAgICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFk
b3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAg
ICAgICAgICB1bmJpbmQocm9vdCwgbm9kZXNNYXApOworICAgICAgICB9CiAgICAgfQogCiAgICAg
bm9kZXNNYXAtPnJlbW92ZShub2RlKTsKQEAgLTEyMjYsOSArMTIyOCwxMSBAQCBQYXNzUmVmUHRy
PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZv
ck5vZGUoTm9kZSogbgogICAgICAgICAgICAgaWYgKGRvYykKICAgICAgICAgICAgICAgICB2YWx1
ZS0+c2V0Q29udGVudERvY3VtZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShkb2MsIDAsIG5vZGVzTWFw
KSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1NoYWRvd1Jvb3QoKSkgewor
CisgICAgICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGVsZW1lbnQtPnNoYWRvdygpOworICAg
ICAgICBpZiAoc2hhZG93KSB7CiAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+ID4gc2hhZG93Um9vdHMgPSBUeXBlQnVpbGRlcjo6QXJy
YXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT46OmNyZWF0ZSgpOwotICAgICAgICAgICAgZm9yIChT
aGFkb3dSb290KiByb290ID0gZWxlbWVudC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgp
OyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCisgICAgICAgICAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyBy
b290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCiAgICAgICAgICAgICAgICAgc2hhZG93Um9v
dHMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JOb2RlKHJvb3QsIDAsIG5vZGVzTWFwKSk7CiAgICAg
ICAgICAgICB2YWx1ZS0+c2V0U2hhZG93Um9vdHMoc2hhZG93Um9vdHMpOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggOTI5MmFiMTBkNTk5Mzgy
OWUxZGFkODEwNzBjMDljN2U5OGM4ZDY3Ny4uNDFmOTc5NTIzOTYwOGNhM2Q1NTA4YjQwZGVjM2U2
MzUwZGE5YjM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAt
NjUsMTEgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRv
d0hvc3QoY29uc3QgTm9kZSogbm9kZSkKLXsKLSAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc0Vs
ZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7Ci19Ci0KIHN0
YXRpYyBpbmxpbmUgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlckZyb20oY29uc3QgTm9k
ZSogbm9kZSkKIHsKICAgICByZXR1cm4gQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKG5vZGUsIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6RG9Ob3RDcm9zc1VwcGVyQm91bmRhcnkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAK
aW5kZXggZmQ2MjYzMGE4YzE5YTU0MjFkYTU4OGU0MDQwOTA1ZmJmMzA5YjI3YS4uZGI0ZTZjNWNk
Yzc0MDNhZjNhMjZhYzE3ZWY1ZjUzNGZlZjg2OGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCkBAIC0yMjMsNyArMjIz
LDcgQEAgSFRNTElucHV0RWxlbWVudCogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1
dHRvbigpIGNvbnN0CiB7CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKIAotICAgIEFTU0VSVChpbnB1dC0+aGFzU2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoaW5wdXQtPnNoYWRvdygpKTsKIAogICAgIE5vZGUqIGJ1
dHRvbk5vZGUgPSBpbnB1dC0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGls
ZCgpOwogICAgIHJldHVybiBidXR0b25Ob2RlICYmIGJ1dHRvbk5vZGUtPmlzSFRNTEVsZW1lbnQo
KSAmJiBidXR0b25Ob2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSA/IHN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihidXR0b25Ob2RlKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcAppbmRleCBkNzc0ZTVkZTU2ZTE1ZDE3YTk4ZGFmZmJjMjBkNDBmNjY4MDgwOTY2Li40
NTVlODI3OGQxZmViNGI4ZmE5MjBmODc3MDNmOGQ0ZTc0MDExZTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2b2lkIFNWR1RSZWZFbGVt
ZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCgpCiAgICAgaWYgKEVsZW1lbnQqIHRhcmdldCA9IFNW
R1VSSVJlZmVyZW5jZTo6dGFyZ2V0RWxlbWVudEZyb21JUklTdHJpbmcoaHJlZigpLCBkb2N1bWVu
dCgpKSkKICAgICAgICAgdGV4dENvbnRlbnQgPSB0YXJnZXQtPnRleHRDb250ZW50KCk7CiAKLSAg
ICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93KCkpOwogICAgIFNo
YWRvd1Jvb3QqIHJvb3QgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOwogICAgIGlmICgh
cm9vdC0+Zmlyc3RDaGlsZCgpKQogICAgICAgICByb290LT5hcHBlbmRDaGlsZChTVkdTaGFkb3dU
ZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgdGV4dENvbnRlbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9O
KTsKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIFNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQo
KQogICAgIFN0cmluZyBlbXB0eUNvbnRlbnQ7CiAgICAgRXhjZXB0aW9uQ29kZSBpZ25vcmUgPSAw
OwogCi0gICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKHNoYWRvdygpKTsK
ICAgICBOb2RlKiBjb250YWluZXIgPSBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJz
dENoaWxkKCk7CiAgICAgaWYgKGNvbnRhaW5lcikKICAgICAgICAgY29udGFpbmVyLT5zZXRUZXh0
Q29udGVudChlbXB0eUNvbnRlbnQsIGlnbm9yZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggN2RjY2VhMzA5NjNkOTg4YjE5NjRiOGNiNDQzNmZjODliZGEyY2I3Mi4uMTlj
OTQ2MWJiMWJiNjlkMDAwOGFiZjE1NGUzYzY0ZGU0YTM4NzdhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMzAyLDggKzMwMiw4IEBAIEludGVybmFsczo6U2hhZG93Um9v
dElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjplbnN1cmVTaGFkb3dSb290KEVs
ZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChob3N0LT5oYXNTaGFkb3dS
b290KCkpCi0gICAgICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGhvc3QtPnNoYWRvdygpKQorICAg
ICAgICByZXR1cm4gc2hhZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKIAogICAgIHJldHVybiBT
aGFkb3dSb290OjpjcmVhdGUoaG9zdCwgZWMpLmdldCgpOwogfQpAQCAtMzIyLDEwICszMjIsOSBA
QCBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFs
czo6eW91bmdlc3RTaGFkb3dSb290KEVsZQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAg
ICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBy
ZXR1cm4gaG9zdC0+c2hhZG93KCktPnlvdW5nZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChFbGVt
ZW50U2hhZG93KiBzaGFkb3cgPSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNoYWRv
dy0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIEludGVybmFsczo6
U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJuYWxzOjpvbGRlc3RTaGFk
b3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMzM1LDEwICszMzQs
OSBAQCBJbnRlcm5hbHM6OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVy
bmFsczo6b2xkZXN0U2hhZG93Um9vdChFbGVtZQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
LSAgICBpZiAoIWhvc3QtPmhhc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICByZXR1cm4gaG9zdC0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFk
b3ctPm9sZGVzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogSW50ZXJuYWxzOjpT
aGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OnlvdW5nZXJTaGFk
b3dSb290KE5vZGUqIHNoYWRvdywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zNjEsMTcgKzM1OSw2
IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJu
YWxzOjpvbGRlclNoYWRvd1Jvb3QoTm9kZSoKICAgICByZXR1cm4gdG9TaGFkb3dSb290KHNoYWRv
dyktPm9sZGVyU2hhZG93Um9vdCgpOwogfQogCi12b2lkIEludGVybmFsczo6cmVtb3ZlU2hhZG93
Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWhvc3Qp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAoaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICBob3N0LT5zaGFk
b3coKS0+cmVtb3ZlQWxsU2hhZG93Um9vdHMoKTsKLX0KLQogRWxlbWVudCogSW50ZXJuYWxzOjpp
bmNsdWRlckZvcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIW5v
ZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUwN2Y0YmM1MmRlNWI4OWM2
ZDE0ZDQ5YmE5OGE3ODIyYWM1ZTU0NzkuLjc5YTFjNzQwMWNlMDlmZjlkMDBlNzIyZDEzZDAzZjZl
MmJjZWI5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzUsNyArNzUsNiBA
QCBwdWJsaWM6CiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogb2xkZXN0
U2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9v
dElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogeW91bmdlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9k
ZSogb2xkZXJTaGFkb3dSb290KE5vZGUqIHNoYWRvdywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgcmVtb3ZlU2hhZG93Um9vdChFbGVtZW50KiBob3N0LCBFeGNlcHRpb25Db2RlJik7CiAgICAg
RWxlbWVudCogaW5jbHVkZXJGb3IoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcg
c2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGNyZWF0ZUNvbnRlbnRFbGVtZW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDM0NzY1NzFhYjI0ZTRhZTk1
NjIzZTgwOTRkYzhhZDBmNTEyOTIxYzguLmVjNjliZTNiNmEzMjNkYTk2M2UwNDI1MDFkNGEyYjJh
YTUzYjJlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ5LDcgKzQ5
LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIE5vZGUgeW91bmdlclNoYWRvd1Jvb3QoaW4g
Tm9kZSByb290KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYKICAgICAgICAgRWxlbWVu
dCBpbmNsdWRlckZvcihpbiBOb2RlIG5vZGUpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCByZW1vdmVTaGFkb3dSb290KGluIEVsZW1lbnQgaG9zdCkgcmFpc2VzIChET01FeGNl
cHRpb24pOwogICAgICAgICBET01TdHJpbmcgc2hhZG93UHNldWRvSWQoaW4gRWxlbWVudCBlbGVt
ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgY3JlYXRlQ29udGVu
dEVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9v
dCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCA2ZTFjNTJjNjVmOGM2MmFiZTU4YjJlYmZiOGYwY2EyZjllMTdhYjRlLi5hYjVj
MzQ1NGNkODk0MWFmOGM2YzRiYzkzMjFlN2E5ZmY2ZmE1YTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCkBAIC0xNzgsNyArMTc4LDYgQEAgRVhQT1JUUwogICAgICAgICA/Z2V0RWxlbWVudEJ5SWRA
VHJlZVNjb3BlQFdlYkNvcmVAQFFCRVBBVkVsZW1lbnRAMkBBQlZBdG9taWNTdHJpbmdAV1RGQEBA
WgogICAgICAgICA/Z2V0SGlnaGxpZ2h0QEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUJF
WFBBVUhpZ2hsaWdodEAyQEBaCiAgICAgICAgID9nZXRMb2NhdGlvbkFuZExlbmd0aEZyb21SYW5n
ZUBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0FfTlBBVkVsZW1lbnRAMkBQQlZSYW5nZUAyQEFBSTJA
WgotICAgICAgICA/aGFzU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAgICAg
ICAgP2lucHV0VGFnQEhUTUxOYW1lc0BXZWJDb3JlQEAzVlF1YWxpZmllZE5hbWVAMkBCCiAgICAg
ICAgID9pbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZUBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25A
V2ViQ29yZUBAQ0FQQVZJbnN0cnVtZW50aW5nQWdlbnRzQDJAUEFWUGFnZUAyQEBaCiAgICAgICAg
ID9pc0NTU0V4Y2x1c2lvbnNFbmFibGVkQFJ1bnRpbWVFbmFibGVkRmVhdHVyZXNAV2ViQ29yZUBA
MF9OQQpAQCAtMjAxLDcgKzIwMCw2IEBAIEVYUE9SVFMKICAgICAgICAgP3BhaW50Q29udHJvbFRp
bnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3BsYWNlaG9sZGVyU2hvdWxk
QmVWaXNpYmxlQEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAg
ICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBT
QT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05A
WgotICAgICAgICA/cmVtb3ZlQWxsU2hhZG93Um9vdHNARWxlbWVudFNoYWRvd0BXZWJDb3JlQEBR
QUVYWFoKICAgICAgICAgP3JlbW92ZUBTdHJpbmdAV1RGQEBRQUVYSUhAWgogICAgICAgICA/cmV2
ZXJzZUZpbmRAU3RyaW5nSW1wbEBXVEZAQFFBRUlfV0lAWgogICAgICAgICA/c19mcm9udGVuZENv
dW50ZXJASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQDBIQQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGI2ZTBmMzZkNDNjM2MxMTE1YzAwOTdkZjE4Yzk3OTFj
YTQzYjVjZmQuLmFjNTUyYWUyMWFhNzk4MjRmMTdmNmI4YjA3YzVkNmU4ZDMxNzY2MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE3MSw3ICsxNzEsNiBAQCBFWFBPUlRT
CiAgICAgICAgID9nZXRFbGVtZW50QnlJZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVu
dEAyQEFCVkF0b21pY1N0cmluZ0BXVEZAQEBaCiAgICAgICAgID9nZXRIaWdobGlnaHRASW5zcGVj
dG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQkVYUEFVSGlnaGxpZ2h0QDJAQFoKICAgICAgICAgP2dl
dExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFW
RWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJMkBaCi0gICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1l
bnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/aW5wdXRUYWdASFRNTE5hbWVzQFdlYkNvcmVA
QDNWUXVhbGlmaWVkTmFtZUAyQEIKICAgICAgICAgP2luc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdl
QEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkBXZWJDb3JlQEBDQVBBVkluc3RydW1lbnRpbmdBZ2Vu
dHNAMkBQQVZQYWdlQDJAQFoKICAgICAgICAgP2lzQ1NTRXhjbHVzaW9uc0VuYWJsZWRAUnVudGlt
ZUVuYWJsZWRGZWF0dXJlc0BXZWJDb3JlQEAwX05BCkBAIC0xOTQsNyArMTkzLDYgQEAgRVhQT1JU
UwogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgog
ICAgICAgICA/cGxhY2Vob2xkZXJTaG91bGRCZVZpc2libGVASFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5n
dGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3Jl
QEBAV1RGQEBQQVZFbGVtZW50QDJASEhfTkBaCi0gICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290
c0BFbGVtZW50U2hhZG93QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/cmVtb3ZlQFN0cmluZ0BX
VEZAQFFBRVhJSEBaCiAgICAgICAgID9yZXZlcnNlRmluZEBTdHJpbmdJbXBsQFdURkBAUUFFSV9X
SUBaCiAgICAgICAgID9zX2Zyb250ZW5kQ291bnRlckBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25A
V2ViQ29yZUBAMEhBCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
IGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA0NTQ4YWUwZWM0M2Q0YTQ5
OWM3YTVjMzg1ZDMyMDg3MzVjMjkzZWYxLi42ZWViZWViMDRlMWZiZTdhNDFlZWI5NDA3ZTdiNjZh
YmI3YzY0OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisr
KyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQzLDcgKzQzLDYgQEAgX1pO
N1dlYkNvcmUxMHRvRG9jdW1lbnRFTjNKU0M3SlNWYWx1ZUU7CiBfWk43V2ViQ29yZTEwQ2xpZW50
UmVjdEMxRXY7CiBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0ludFJlY3RFOwogX1pO
N1dlYkNvcmUxMFNoYWRvd1Jvb3Q2Y3JlYXRlRVBOU183RWxlbWVudEVSaTsKLV9aTjdXZWJDb3Jl
MTNFbGVtZW50U2hhZG93MjByZW1vdmVBbGxTaGFkb3dSb290c0V2OwogX1pON1dlYkNvcmUxMUV2
ZW50VGFyZ2V0MTd0b0dlbmVyYXRlZFN0cmVhbUV2OwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0
OHRvU3RyZWFtRXY7CiBfWk43V2ViQ29yZTEyVGV4dEl0ZXJhdG9yMjZyYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aEVQTlNfN0VsZW1lbnRFaWliOwpAQCAtOTksNyArOTgsNiBAQCBfWk5LN1dlYkNv
cmUyNkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50MjZwbGFjZWhvbGRlclNob3VsZEJlVmlzaWJs
ZUV2OwogX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU2SlNOb2Rl
MjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0U2NvcGVDaGFp
bk5vZGVFOwogX1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXY7Ci1fWk5LN1dlYkNvcmU3RWxl
bWVudDEzaGFzU2hhZG93Um9vdEV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHBhZ2VFdjsKIF9a
Tks3V2ViQ29yZThEb2N1bWVudDhzZXR0aW5nc0V2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHZp
ZXdFdjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5MzZkZGNmYzJkODEwYWE0ZmQxMDEzMTkwNDBkZjE5NDQ3ZWRmZjM1Li4x
ODgzZTQ0NThjNTk2NmFlODEwMWFjZDdlNmQ2ZWIxNDRkMTdkYjYwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMTItMDUtMDkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQgbWluaW1pemUgdGhlIHVzYWdlIG9mICJTaGFk
b3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgdGVzdHMgY2FzZXMgd2hpY2ggZXhlcmNpc2Ugc2hhZG93IHJvb3QgcmVtb3Zh
bHMuCisgICAgICAgIFN1Y2ggZnVuY3Rpb25hbGl0eSB3YXMgb25seSBhdmFpbGFibGUgZnJvbSBJ
bnRlcm5hbHMgb2JqZWN0CisgICAgICAgIGFuZCBpdCBtYWRlIGxpdHRsZSBzZW5zZSB0byB0ZXN0
IGl0LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1v
dmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1z
aGFkb3ctcm9vdC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9keW5h
bWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vc2hh
ZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sOgor
CiAyMDEyLTA1LTEwICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ3Jhc2ggaW4gRm9udENhY2hlOjpyZWxlYXNlRm9udERhdGEgZHVlIHRvIGluZmluaXRl
IGZsb2F0IHNpemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAppbmRleCAwNGVmYjhiZWMxMGFl
ZGZkZjlkNmQwMTczMDcyNWJiYjJkNTFhNmE0Li42NDg0OThjMDU1YTkyZTQ5NzAzZTAwZjhjNmQx
ODVkMDNiODE1NzkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQKQEAgLTYsMTAgKzYsNiBA
QCB0ZXN0UmVtb3ZlQ29udGVudFRvUmVjYWxjMgogUEFTUwogdGVzdFJlbW92ZUNvbnRlbnRBbmRS
ZW1vdmVMaWdodENoaWxkcmVuCiBQQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRv
d1Jvb3QxCi1QQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QyCi1QQVNT
CiB0ZXN0QXBwZW5kQ29udGVudDEKIFBBU1MKIHRlc3RBcHBlbmRDb250ZW50MgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbApp
bmRleCBjNTQ1NWY0YzMwYzk3Y2QxY2I0Mzk2NzdkY2I0MzM3YjYyOGYwZTMyLi5mN2JjOWJiZmZk
ZjQzMDQyYTQ5ZTdlNzViZmJiYTVjNGQyNDc3YmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbApAQCAtMTI2LDg2ICsx
MjYsNiBAQCBmdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRyZW4o
Y2FsbElmRG9uZSkgewogICAgIHNldFRpbWVvdXQoZiwgMCk7CiB9CiAKLWZ1bmN0aW9uIHRlc3RS
ZW1vdmVTaGFkb3dSb290KGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAgcm9v
dC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQ8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBzaGFk
b3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdzcGFu
JywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3Qo
cm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUiKSk7
Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdh
Y3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChmdW5j
dGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIGludGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3QpOwotICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5l
ckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVDwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAgY2Fs
bElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRvbmUp
OwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUNvbnRl
bnRBbmRSZW1vdmVTaGFkb3dSb290MShjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVlLgot
ICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBDcmVh
dGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNlbGVj
dCgnc3BhbicsICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFk
b3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVG
T1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYg
PSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
Y29udGVudCk7Ci0gICAgICAgICAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290KTsK
LSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJyku
aW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+TElHSFQ8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAgICAg
IGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxsSWZE
b25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1vdmVD
b250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIoY2FsbElmRG9uZSkgewotICAgIHZhciByb290ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQgdHJl
ZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuIGNsYXNz
PSdjMSc+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgotICAg
IHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScsICdGQUxMQkFDSycp
OwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAgIHNy
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFwcGVu
ZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5l
cicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwgY29u
dGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAgICAg
ICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+PHNw
YW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAgICAg
ICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2FsbElm
RG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCiBmdW5jdGlvbiB0ZXN0QXBwZW5k
Q29udGVudDEoY2FsbElmRG9uZSkgewogICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CiAKQEAgLTM4Niw4ICszMDYsNiBAQCB2YXIgdGVzdEZ1bmNzID0gWwogICAg
IHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMxLAogICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNh
bGMyLAogICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAgICB0
ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxLAotICAgIHRlc3RSZW1vdmVDb250
ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQxLAogICAgIHRl
c3RBcHBlbmRDb250ZW50MiwKICAgICB0ZXN0QXBwZW5kQ29udGVudDMsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9v
dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5
LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAppbmRleCA4YjIxMGRiNDQxNGE0ODYx
MzRjZWU5MjgwNmM3YTUzMzIyZDU4ZDc5Li5jNzAzN2E2NTE3MjA4NzY4ZmU0ZjFlNjdhMzIwYjlk
OTdhMDI4MTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1p
Y2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVjdGVk
Lmh0bWwKQEAgLTUsNiArNSw1IEBAIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBjcmVhdGVk
IFNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHJlbmRlcmVkIGNvcnJlY3RseS4KIENhbiBvbmx5IHJ1biB3
aXRoaW4gRFJULgogPC9kaXY+CiA8ZGl2PlNoYWRvdyBzaG91bGQgYmUgcmVuZGVyZWQuPC9kaXY+
Ci08ZGl2PkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyBy
b290IGlzIHJlbW92ZWQuPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQtc2hh
ZG93LXJvb3QuaHRtbAppbmRleCA0NTU4MmMyMmUyYjYxMzgzNWY5YjAxYzdhYTI5NzZiOGVmYzM5
NjIyLi43NDYzYTY5NTk2M2UwMDNjMjMxZmM1ZDVmMGI5NDc5YTcwNjQ0ODhmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ct
cm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1j
cmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKQEAgLTUsMTcgKzUsMTEgQEAgVGhpcyB0ZXN0cyB0aGF0
IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29ycmVj
dGx5LgogQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXYgaWQ9Imhvc3QxIj5M
aWdodCBjaGlsZHJlbiBzaG91bGQgbm90IGJlIHJlbmRlcmVkLjwvZGl2PgotPGRpdiBpZD0iaG9z
dDIiPkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyByb290
IGlzIHJlbW92ZWQuPC9kaXY+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICB2YXIgaG9zdDEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaG9zdDEnKTsKICAgICB2YXIg
c2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0MSk7CiAg
ICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hhZG93
IHNob3VsZCBiZSByZW5kZXJlZC4nKSk7Ci0KLSAgICB2YXIgaG9zdDIgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCcjaG9zdDInKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdChob3N0Mik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hhZG93IHNob3VsZCBub3QgYmUgcmVuZGVyZWQuJykp
OwotICAgIHdpbmRvdy5pbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChob3N0Mik7CiB9CiA8L3Nj
cmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9s
YXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50
eHQKaW5kZXggMGNlY2UxZWE4MDBkNDliYjdkMzcxYjgzMTlkMjVjNmVhMTZiY2I2NS4uNTdlYjM5
ZmNjM2ZlNjk2MzIxYmIyOGM0YTg5NDg3ZTYyOTZlZTU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4t
YWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw2IEBAIFBBU1MgZXhjZXB0aW9u
Q29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCiBQQVNTIGludGVybmFscy5z
aGFkb3dSb290KHApIGlzIG51bGwKIFBBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjc2hhZG93LXJv
b3QiCiBQQVNTIHNoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgdHJ1ZQotUEFT
UyBpbnRlcm5hbHMuc2hhZG93Um9vdChrZXlnZW4pIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5o
dG1sCmluZGV4IDM5YmE5YjhjMmZhYTQ2MmFmM2U1N2Y4MjIyMTNlZGY1NDZiNDZlNjEuLmVjNzY1
NzljMzYzMDBlMGRmODViOTllNTM3NzgxMzQyZjhlOTU0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nlc3Mt
c2hhZG93Lmh0bWwKQEAgLTM1LDEwICszNSw2IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAg
ICAgc2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QocCk7CiAgICAgc2hvdWxkQmUo
J3NoYWRvdy5ub2RlTmFtZScsICciI3NoYWRvdy1yb290IicpOwogICAgIHNob3VsZEJlKCdzaGFk
b3cgPT09IGludGVybmFscy5zaGFkb3dSb290KHApJywgJ3RydWUnKTsKLQotICAgIC8vIENhbiBz
dHJpcCBlbGVtZW50cyBvZiBzaGFkb3dzCi0gICAgaW50ZXJuYWxzLnJlbW92ZVNoYWRvd1Jvb3Qo
a2V5Z2VuKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKScsICdu
dWxsJyk7CiB9CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAppbmRleCBhYTNk
ZWRkYzg1NTZjZDdjZTJiZDc1YjYxNTUzZmM1MGU1ODc3NWYzLi4yMmNjMmZhODVmNTllN2RlM2M3
ZjU3YmU3NWY4ODczNDQ2YjUxMzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CkBAIC0xMCw3
ICsxMCw2IEBAIFBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290Mgog
UEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QyKSBpcyBzaGFkb3dSb290
MQogUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIGlzIHNoYWRvd1Jvb3QzCiBQQVNTIGlu
dGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdDMpIGlzIHNoYWRvd1Jvb3QyCi1QQVNT
IGludGVybmFscy5zaGFkb3dSb290KGRpdikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbAppbmRleCAwNGJmODMzZWM5ODk0NzZi
MjYyOTk2YmEyM2QzOTZhY2VjZTdlMTIyLi4yYTZiNTI4MGVkZDFhODdiMjQ3MDI4MTc1ZGQ5YTY4
NjNkNDI2MTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVsdGlw
bGUtc2hhZG93cm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9tdWx0
aXBsZS1zaGFkb3dyb290Lmh0bWwKQEAgLTIxLDkgKzIxLDYgQEAgdmFyIHNoYWRvd1Jvb3QzID0g
bmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9v
dChkaXYpIiwgInNoYWRvd1Jvb3QzIik7CiBzaG91bGRCZSgiaW50ZXJuYWxzLm9sZGVyU2hhZG93
Um9vdChzaGFkb3dSb290MykiLCAic2hhZG93Um9vdDIiKTsKIAotaW50ZXJuYWxzLnJlbW92ZVNo
YWRvd1Jvb3QoZGl2KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIiwgIm51
bGwiKTsKLQogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2OTE5ZGFkYWQ2NmMyMDg1MThm
MTNhOTBkMTI1YmM0MTVjZmQ3OWQ2Li40YzU3YmMxMmVhNDc0OWUzYjU1YjI5MGI4ZTViYmI1ZmQz
NjMwNTkxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTItMDUtMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQgbWluaW1pemUgdGhlIHVzYWdlIG9mICJTaGFk
b3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBsb25nZXIgZXhpc3RzCisKKyAgICAgICAgKiBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA1LTEwICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRU5BQkxFX0lGUkFN
RV9TRUFNTEVTUyBzdXBwb3J0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141300</attachid>
            <date>2012-05-10 17:49:47 -0700</date>
            <delta_ts>2012-05-10 18:01:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85970-20120511094945.patch</filename>
            <type>text/plain</type>
            <size>49327</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhZDZlNjAwNzEzNzg1
MzcwZTY2NmM1MzIxYjBhOTgyNjllZTllNi4uMDNkNzVhMjBkNDkwMmI4NTBjOWFhYzIzNDQzNmI2
YTgxYjM2MzNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTA1LTEwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2xlYW5z
IHR3byBvdXQgZGF0ZWQgYXNzdW1wdGlvbnMgd2hpY2ggYnJvdWdodCBpbiBhdAorICAgICAgICBl
YXJseSBzdGFnZSBvZiBTaGFkb3cgRE9NIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIC0gUmVt
b3ZlZCBFbGVtZW50OjpoYXNTaGFkb3dSb290KCk6IHNoYWRvdyBleGlzdGVuY2UgY2FuIGJlIGNo
ZWNrZWQgYnkgRWxlbWVudDo6c2hhZG93KCkuCisgICAgICAgIC0gTWFkZSBFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cygpIHByaXZhdGU6IHdlIG5vIGxvbmdlciBhbGxvdyBTaGFk
b3dSb290IHJlbW92YWwuCisgICAgICAgICAgSXQgY2FuIG9ubHkgaGFwcGVucyBhdCB0aGUgRWxl
bWVudFNoYWRvdyBkZXN0cnVjdGlvbi4KKworICAgICAgICBNb3N0IG9mIGNoYW5nZXMgaW4gZWxl
bWVudCBpbXBsZW1lbnRhdGlvbnMgYXJlIGJhc2ljYWxseSBzaW1wbGUKKyAgICAgICAgcmVwbGFj
ZW1lbnQgZnJvbSBoYXNTaGFkb3dSb290KCkgdG8gc2hhZG93KCkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmg6CisgICAgICAg
IChXZWJDb3JlOjpDaGlsZEZyYW1lRGlzY29ubmVjdG9yOjpjb2xsZWN0RGVzY2VuZGFudCk6Cisg
ICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlQ2hpbGQpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YnVpbGRBY2Nl
c3NLZXlNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6
fkVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVtb3Zl
QWxsU2hhZG93Um9vdHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAg
IChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Omhvc3Qp
OgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIGRvbS9Ob2Rl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9sZGVzdFNoYWRvd1Jvb3RGb3IpOgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVu
dDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scyk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURv
d25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dHJhY2tMaW1pdGVyRWxlbWVudE9mKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVu
YmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RG
b3JOb2RlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRv
bik6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDUtMTAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWxsLCBhdCBsZWFzdCBmaXhpbmcgdGhlIEdUSysg
YnVpbGQgaXMgc29tZXRoaW5nIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM1MjY5NWI3NWVmZGM1MjgxNmQ1YjVk
N2MyMmE3NTQ3NGFhODNhMDMuLjA4OGFhZDRhM2Y0ZDEzYjBiM2UyYjE1YTIyYjY1ZWRmNDEwM2U3
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0xMCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBt
aW5pbWl6ZSB0aGUgdXNhZ2Ugb2YgIlNoYWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBs
b25nZXIgZXhpc3RzCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA1LTEwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHRoZSBtaXNzaW5nIHBsdWctaW4gaW5k
aWNhdG9yIHRvIHRoZSB1bmF2YWlsYWJsZSBwbHVnLWluIGluZGljYXRvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCAxNmM5Y2MzZDM5YjBlNmZiMzc5NmJhZDljYWE0ZTA0ZTRiYTlkOTU0Li41YzVh
MWQ5MzFlMTBkMmU4ZDQ5OTM0YWIzMjQyMDIyMTI3MjIzODczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMzAyLDcgKzMwMiw2IEBAIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTE4cm9vdE9i
amVjdEZvckZyYW1lRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyMWdB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTIzZm9jdXNl
ZFVJRWxlbWVudEZvclBhZ2VFUEtOU180UGFnZUUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNo
ZTQyZ0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQotX19aTjdXZWJD
b3JlMTNFbGVtZW50U2hhZG93MjByZW1vdmVBbGxTaGFkb3dSb290c0V2CiBfX1pON1dlYkNvcmUx
M0hUVFBIZWFkZXJNYXBDMUV2CiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBEMUV2CiBfX1pO
N1dlYkNvcmUxM0hpdFRlc3RSZXN1bHRDMUVSS1MwXwpAQCAtMTQ4NCw3ICsxNDgzLDYgQEAgX19a
Tks3V2ViQ29yZTZXaWRnZXQ5ZnJhbWVSZWN0RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2Ny
ZWVuUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXYKIF9fWk5LN1dlYkNvcmU3
RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQotX19aTks3V2ViQ29y
ZTdFbGVtZW50MTNoYXNTaGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJz
ZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdX
ZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAppbmRleCA1YTY5MzZjOGMyMjFmZWNhMzNlNzg2Yjg0NDkz
YTYxNTI4Y2U4NTUwLi5kMWE4ODllNjc4ZGY4YTIzMjdmZjZkMzZmZTM3MTAwOWI1OGQ2NmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApA
QCAtMzUsMTEgKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5l
IGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9v
dCgpOwotfQotCiBzdGF0aWMgaW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd0Zvcihjb25zdCBO
b2RlKiBub2RlKQogewogICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKQEAg
LTk5LDcgKzk0LDcgQEAgTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNo
aWxkKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGkKICAgICBBU1NFUlQobm9kZSk7
CiAgICAgaWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKSB7CiAgICAgICAgIEVsZW1lbnRTaGFk
b3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKTsKLSAgICAgICAgcmV0dXJuIChzaGFkb3cgJiYg
c2hhZG93LT5oYXNTaGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNoYWRvdy0+
eW91bmdlc3RTaGFkb3dSb290KCksIGRpcmVjdGlvbikKKyAgICAgICAgcmV0dXJuIHNoYWRvdyA/
IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpLCBkaXJl
Y3Rpb24pCiAgICAgICAgICAgICA6IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihub2RlLCBkaXJlY3Rp
b24pOwogICAgIH0KICAgICBpZiAoaXNTaGFkb3dIb3N0KG5vZGUpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaAppbmRleCA5ZDc3NTU5ZWNmYjBjOTQ1ZDhm
OWQ0NDdkNzQwOTEwNzEzMmZjYmI0Li5mY2NiNWVlYjFmYjkxZGFjYmE5YjFhOTczMDUxODM4OWE4
YjNlNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29y
aXRobXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMu
aApAQCAtMzA1LDggKzMwNSw4IEBAIGlubGluZSB2b2lkIENoaWxkRnJhbWVEaXNjb25uZWN0b3I6
OmNvbGxlY3REZXNjZW5kYW50KE5vZGUqIHJvb3QpCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQobm9kZSk7CiAgICAgICAgIGlmIChlbGVtZW50LT5pc0ZyYW1lT3duZXJFbGVt
ZW50KCkpCiAgICAgICAgICAgICBtX2xpc3QuYXBwZW5kKG5vZGUpOwotICAgICAgICBpZiAoZWxl
bWVudC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnQoZWxl
bWVudC0+c2hhZG93KCkpOworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZWxl
bWVudC0+c2hhZG93KCkpCisgICAgICAgICAgICBjb2xsZWN0RGVzY2VuZGFudChzaGFkb3cpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjQ2N2FmMzMyNzQxOTEwNTk4
MmU5ODJjYjk0NDVlMWE4ZGM5NjgxOC4uMzBkMzY3ZjkzOGVlNzk4NTdmMmVlOWJhMDMwMTE5MGU3
NGVjMzlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MTIsOCArNzEyLDggQEAgdm9p
ZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlNYXAoVHJlZVNjb3BlKiBzY29wZSkKICAgICAgICAg
aWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNz
S2V5LnNldChhY2Nlc3NLZXkuaW1wbCgpLCBlbGVtZW50KTsKIAotICAgICAgICBpZiAoZWxlbWVu
dC0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRv
dyA9IGVsZW1lbnQtPnNoYWRvdygpKSB7CisgICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCiAgICAgICAgICAgICAgICAgYnVpbGRBY2Nlc3NLZXlNYXAocm9vdCk7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNDgwZjlkMTcwYWYw
NDU3ZGMzNGRiNmJjMTFkMzJmYTVmZjg3MjFkMi4uY2M0OTM5M2Q4YzY3Yjc4NzYzMzQ3Nzg2Nzli
OTViOGMyZjAwZDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTE0MCw4ICsxMTQwLDcg
QEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgU3R5
bGVSZXNvbHZlclBhcmVudFB1c2hlciBwYXJlbnRQdXNoZXIodGhpcyk7CiAKICAgICAvLyBGSVhN
RTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdpbGwgYmUg
bmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0gICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkgewotICAg
ICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKTsKKyAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpIHsKICAgICAgICAgaWYgKGNoYW5n
ZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93
LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7
CiAgICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7CkBAIC0xMTc5LDEzICsx
MTc4LDYgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAg
ICAgICAgIGRpZFJlY2FsY1N0eWxlKGNoYW5nZSk7CiB9CiAKLWJvb2wgRWxlbWVudDo6aGFzU2hh
ZG93Um9vdCgpIGNvbnN0Ci17Ci0gICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMt
PnNoYWRvdygpKQotICAgICAgICByZXR1cm4gc2hhZG93LT5oYXNTaGFkb3dSb290KCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCiBFbGVtZW50U2hhZG93KiBFbGVtZW50OjpzaGFkb3coKSBjb25z
dAogewogICAgIGlmICghaGFzUmFyZURhdGEoKSkKQEAgLTEyMDUsOCArMTE5Nyw4IEBAIEVsZW1l
bnRTaGFkb3cqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvdygpCiAKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6
OmVuc3VyZVNoYWRvd1Jvb3QoKQogewotICAgIGlmIChoYXNTaGFkb3dSb290KCkpCi0gICAgICAg
IHJldHVybiBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChFbGVtZW50U2hh
ZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvdy0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM0
MSwxMCArMTMzMyw4IEBAIHZvaWQgRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmCiAgICAgZWxzZQogICAgICAg
ICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVyU3R5bGUoKSwgZmFsc2Us
IGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiAKLSAgICBpZiAo
aGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICAg
ICAgc2hhZG93KCktPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKLSAgICB9CisgICAgaWYgKEVsZW1l
bnRTaGFkb3cgKiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKKyAgICAgICAgc2hhZG93LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CiB9CiAKIHZvaWQgRWxlbWVudDo6YmVnaW5QYXJzaW5nQ2hpbGRy
ZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNjI2NzAxZDFmMTdmZDVmNGVjMTUzZTVlMzdkZGJk
ZTU4ZDJlNGZhMS4uOGJkOWNkODEwN2FjYjliNTU4OTI5N2I0OWExZDkxMThjNjA3YTkxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCkBAIC0yNjEsNyArMjYxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIGJv
b2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdygpIGNv
bnN0OwogICAgIEVsZW1lbnRTaGFkb3cqIGVuc3VyZVNoYWRvdygpOwogCkBAIC03MTQsNiArNzEz
LDExIEBAIGlubGluZSBib29sIE5vZGU6Omhhc0NsYXNzKCkgY29uc3QKICAgICByZXR1cm4gaXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudCh0aGlzKS0+aGFzQ2xhc3MoKTsKIH0KIAoraW5saW5l
IGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93KCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cu
Y3BwCmluZGV4IDFlNjczMTc1ZDQ0NTcyZDA4ZDE5NDM2MzUwYTFmOWQ3YjM4ODA4MGMuLmNjNmM4
NmUxNjUyNTQwM2RlNDY4YWEyNDFmNzJlMjkzODU2ZmIzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5jcHAKQEAgLTQ2LDggKzQ2LDcgQEAgRWxlbWVudFNoYWRvdzo6RWxlbWVudFNo
YWRvdygpCiAKIEVsZW1lbnRTaGFkb3c6On5FbGVtZW50U2hhZG93KCkKIHsKLSAgICBpZiAoaGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZW1vdmVBbGxTaGFkb3dSb290cygpOworICAgIHJlbW92
ZUFsbFNoYWRvd1Jvb3RzKCk7CiB9CiAKIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChE
b2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUm
IGVjKQpAQCAtOTEsOSArOTAsNiBAQCB2b2lkIEVsZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3Qo
RWxlbWVudCogc2hhZG93SG9zdCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaAogCiB2b2lkIEVs
ZW1lbnRTaGFkb3c6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkKIHsKLSAgICBpZiAoIWhhc1NoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gRG9udCBwcm90ZWN0IHRoaXMgcmVm
IGNvdW50LgogICAgIEVsZW1lbnQqIHNoYWRvd0hvc3QgPSBob3N0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFNoYWRvdy5oCmluZGV4IDljOTM4NWM3ODljM2FlYjg5ODg4NGZlYTM1YWI3OTczNGM4
ODgyODEuLjRjMDdhMjdlMDRlMjIzYTkzZGM3MzZjZTk1MDE4NjU3ZmZmN2RiMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNTAsMTMgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB+
RWxlbWVudFNoYWRvdygpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0OwotCi0gICAgYm9v
bCBoYXNTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dS
b290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jv
b3RzKCk7CiAKICAgICB2b2lkIHNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqKTsKIApAQCAt
ODIsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgc2Vs
ZWN0b3IoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3Rz
KCk7CiAKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAg
ICAgSFRNTENvbnRlbnRTZWxlY3RvciBtX3NlbGVjdG9yOwpAQCAtODksMTEgKzg3LDYgQEAgcHJp
dmF0ZToKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbGVtZW50U2hhZG93KTsKIH07CiAKLWlu
bGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1NoYWRvd1Jvb3QoKSBjb25zdAotewotICAgIHJl
dHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7Ci19Ci0KIGlubGluZSBTaGFkb3dSb290KiBF
bGVtZW50U2hhZG93Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdAogewogICAgIHJldHVybiBt
X3NoYWRvd1Jvb3RzLmhlYWQoKTsKQEAgLTEyMSw3ICsxMTQsNyBAQCBpbmxpbmUgdm9pZCBFbGVt
ZW50U2hhZG93OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQogCiBp
bmxpbmUgRWxlbWVudCogRWxlbWVudFNoYWRvdzo6aG9zdCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJU
KGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3RzLmlzRW1wdHkoKSk7
CiAgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNTg2NmU2MDY4ZDZmNTliYTYyMWQzMjFj
NTQ0ZjRmMjgzNjNiY2ViOS4uMTY4OWUwNmI4Y2E0YmYwYWI1ODNjOGYzOTFiZjk5ODkwYTk3NWJk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTExNiwxMSArMTE2
LDYgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soTm9kZSog
bm9kZSwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXIKICAgICBnTm9kZXNEaXNwYXRjaGluZ1NpbXVs
YXRlZENsaWNrcy0+cmVtb3ZlKG5vZGUpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFk
b3dIb3N0KE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAm
JiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogUGFzc1JlZlB0cjxFdmVu
dFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1NoYWRvd0JvdW5kYXJpZXMoUGFzc1Jl
ZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0LCBjb25zdCBWZWN0b3I8Tm9kZSo+IHJlbGF0ZWRUYXJn
ZXRBbmNlc3RvcnMpCiB7CiAgICAgVmVjdG9yPEV2ZW50Q29udGV4dD46OmNvbnN0X2l0ZXJhdG9y
IGxvd2VzdENvbW1vbkJvdW5kYXJ5ID0gbV9hbmNlc3RvcnMuZW5kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggMGE3MjQ4NzY0YWJlMGFmNzU0NzE2ODYyOWJhYjhmZWI1MGI1NWM4My4uOTRiMjlkMjYy
OGIzNDc4ODE1M2NiMTY4NTg2ZWM2MTMxZjk1NDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtODM2
LDcgKzgzNiwxMSBAQCBib29sIE5vZGU6Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdAog
CiBpbmxpbmUgc3RhdGljIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3RGb3IoY29uc3QgTm9k
ZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVu
dChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpIDogMDsKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVzdFNoYWRvd1Jv
b3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFu
Z2UoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyNzFmNWNhZDBiZTEwYzRiYzJjMjFlNjk2MDgwZjIy
NDVhMDM5OWRjLi41ODk4NDE5YTZhNWQ0M2UwNDFmZjBiOWVmYmE0NzQyNjYxODQwNGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5v
ZGUpCiAgICAgfQogCiAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpIHx8IHBhcmVudC0+
aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpICYm
IHRvRWxlbWVudChwYXJlbnQpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChwYXJlbnQt
PmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9F
bGVtZW50KHBhcmVudCktPnNoYWRvdygpOwogICAgICAgICBlbHNlIGlmIChwYXJlbnQtPmlzU2hh
ZG93Um9vdCgpKQogICAgICAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3cgPSB0b1NoYWRvd1Jv
b3QocGFyZW50KS0+b3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBhYTAz
NGJhMzAwZTI3NTYxN2U1YjdmOTVhY2I3NTdhNzM2Njk1NmQ1Li43YjI0NmMwYjEyZmIxODcyZDNl
OWRjNmNkNGY4OTdiNWVkNWRhNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUo
RWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHUKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIEFTU0VSVChlbGVtZW50ID09IHNoYWRvd1Jvb3QtPmhvc3QoKSk7
Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1l
bnQtPnNoYWRvdygpKTsKICAgICByZXR1cm4gc2hhZG93Um9vdC5yZWxlYXNlKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNGViMzkyMmRkMTgxYTY0MGZh
NmM4M2I1MmY1ODExY2Q4Mzg3ZTkyMy4uMWVjZWNjMmI2NDFmODQxNTY1MzQyNWMxZTk0ZTA2N2Nm
ZTM4NjdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKIAog
dm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJU
KGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFk
b3coKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7
CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggOTVhMmY4MTIyNDY4ZmQzMzE4NjJlNjdiMDkzYWJiMTkzOTE5MjU3Ni4uNDIxMTg1ZGZh
ZmZlYmYxZWQ3YWEwMmI2MjBhMDFhNTIwYTljOWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yOTUsMTQgKzI5NSwxNCBAQCBib29sIEZpbGVJbnB1dFR5cGU6Omlz
RmlsZVVwbG9hZCgpIGNvbnN0CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChl
bGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0
aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11
bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAgICAgVXBsb2Fk
QnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+
KGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsK
ICAgICBpZiAoYnV0dG9uKQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS0+bXVs
dGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZpbGVCdXR0
b25DaG9vc2VGaWxlTGFiZWwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKaW5kZXggZTRlNGE5MjQ4MTM0NDY3ZGZmZDk4ZmQwZDViODVlNDQwODNkMGJkMy4u
NjEwMTUwMWVmOWY3YTY4ZTcyYmQzYmIyZGJiMzZlMGNhZDc2YWE2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIFJlbmRl
ck9iamVjdCogSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSog
YXJlbmEsIFJlbmRlclN0eWxlCiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJU
KCFzaGFkb3coKSk7CiAKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6
OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwog
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDZmZTU1OTY1ZDRmMWRhNzU5OWQ2MjkwMmQ5ODkxZTQ4
ZDQ3OWFlZjcuLjc3OGVkMjU3YWQ4NGU2ZTFhOWEwYjIxMjlmNTkyODRiNDBhODc5M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBA
IFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCghc2hhZG93KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290
OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAg
ICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjEwOTlmMTk3ZTMxZGJkYmI4ZDJmMTQxOTVl
YjEyOTZkYWY0M2I1My4uZGI0ZDI4M2ZkMzkxZDVhOGNkNzY5YjE5MzI3N2E1MmMzZDFkYWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2
LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGls
ZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBlYyk7CiAgICAgfQogCi0gICAgQVNT
RVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0
cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6
OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoc2Vs
ZWN0LCBlYyk7CiB9CkBAIC0xMzEsNyArMTMxLDYgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6
cmVzZXQoKQogCiBIVE1MU2VsZWN0RWxlbWVudCogSFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRvd1Nl
bGVjdCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgU2hhZG93
Um9vdCogcm9vdCA9IHRoaXMtPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgcmV0
dXJuIHJvb3QgPyB0b0hUTUxTZWxlY3RFbGVtZW50KHJvb3QtPmZpcnN0Q2hpbGQoKSkgOiAwOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzgzNWUwMTEw
NDA1ZjNmMzNhZTY1MWNjNDM0YjI5MWYxZGE2NTZiMi4uMDQ5OTIyNjI4Y2EzMmU0NjRlMDJiMTZl
OWI5OTUzMTc1NDE2NTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC00MDczLDEwICs0MDczLDExIEBAIE1lZGlhQ29udHJvbHMqIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhQ29udHJvbHMoKQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29u
dHJvbHMoKQogewotICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQorICAgIEVsZW1lbnRTaGFkb3cq
IGVsZW1lbnRTaGFkb3cgPSBzaGFkb3coKTsKKyAgICBpZiAoIWVsZW1lbnRTaGFkb3cpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3coKS0+b2xkZXN0U2hh
ZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogbm9kZSA9IGVsZW1lbnRTaGFkb3ct
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJldHVybiBub2RlICYmIG5v
ZGUtPmlzTWVkaWFDb250cm9scygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcAppbmRleCBjZTkxMGUxYTRjZmZhNGU3MmUzMjMyZTNjMmQ3OTc0NTUyMWQzNTli
Li42ODRlYjViYTNlZWFkMzcyMGZhMDE3YjBiYzQxOGJjNzk5YmUyZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEhU
TUxNZXRlckVsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTE1ldGVy
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dS
b290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogCiAgICAgUmVmUHRyPE1ldGVyQmFyRWxl
bWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92
YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCA2MDBiMTg1ZDBiYjI0NmQw
NTkwZjc0N2Q5NjJjNzc5MDM1NGE5NzBkLi5hZjgxOTFmM2U0ZDk0MzQ4NjJmNzRmMjExOTQzZTA1
OGM2YzgwYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1l
bnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgh
c2hhZG93KCkpOwogCiAgICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jl
c3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IFByb2dyZXNz
VmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggMTMzMTk2M2Y0ZTE0YjU3MjAzOGEwYjFmZDZiZGEx
NDcyMGZhNThkZC4uZjdjYWViNmFmMzhhN2ViOWRkMDdiMDU0NzUyOTcxYTQ1ZjY3NDQ2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtODAsNyArODAs
NyBAQCBib29sIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgYwogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hh
ZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93
Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoU3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKaW5kZXggNjM2NjNhOTdmY2M3YjBjYmZmZWY5MWY1OWI0N2Y1ZTRlMTRmYjI0
ZC4uODI1N2QwZjkzYzNkMTM1NTJjMDQyNDBmODJiMGZkNWE2ZGJhNzI4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFBh
c3NSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9v
dDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7
CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCmluZGV4IDk5NzE4MmFiYWU3ZDQ0YmZiNzA3OWE0YmE4NGM3ZWQ5NDVhOTU3ZjIu
LmNmMTI1YzllMDE4NmQ2NDlkZDc1ZWI4NWQ4NWRhNmE4NmUxNzdkYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKQEAgLTM5NSwxMSArMzk1LDExIEBAIHZvaWQgSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkKIHsKLSAgICBpZiAoIWVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKQorICAgIEVsZW1lbnRT
aGFkb3cqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93KCk7CisgICAgaWYgKCFzaGFkb3cpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRv
dygpLT5vbGRlc3RTaGFkb3dSb290KCk7Ci0gICAgQVNTRVJUKHJvb3QpOworICAgIFNoYWRvd1Jv
b3QqIHJvb3QgPSBzaGFkb3ctPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICByb290LT5yZW1vdmVB
bGxDaGlsZHJlbigpOwogCiAgICAgLy8gSXQncyBvayB0byBjbGVhciBjb250ZW50cyBvZiBhbGwg
b3RoZXIgU2hhZG93Um9vdHMgYmVjYXVzZSB0aGV5IG11c3QgaGF2ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0OTQ5YjBhNGU0YTY2MDM0ZDA3MTlhMDRkYTc2Nzhh
MTgwZmEyMWU5Li42ZjFkMTkyNGJjZWUyYzExZWM4YzVmNWRmOWI1ZGI3MzY0ZmJmOTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZv
aWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50
KQogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwogICAg
IGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAg
QVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIGlmICh0YXJnZXROb2RlICE9IGVsZW1l
bnQoKSAmJiAhdGFyZ2V0Tm9kZS0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCgpLT5zaGFkb3coKS0+
b2xkZXN0U2hhZG93Um9vdCgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNsaWRlclRodW1iRWxl
bWVudCogdGh1bWIgPSBzbGlkZXJUaHVtYkVsZW1lbnRPZihlbGVtZW50KCkpOwpAQCAtMjM3LDcg
KzIzNyw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGQ2M2Y3ZWY4YWMzM2M0NDI4MTM2NDA4YzRhNGQ4NjU4
ZTZlOGU2NjYuLjlhM2IyNWFiYTcyNTViZTJkMzNiNWNmZjYzMTAxMWFiYzAxNzM5YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTIyMSw3ICsyMjEs
NyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oKSBjb25z
dAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVu
dCgpLT5zaGFkb3coKSk7CiAKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0KTsKICAgICBBU1NFUlQo
IW1faW5uZXJCbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcAppbmRleCBmZWU5OTFkOTFiODQzZDcwMjBlZDBkYTM1MTkyM2U0Mjg2
ZDlhZjM0Li43ZjFmMWQ1YzBkNzA0NzQzYjlhYWI4OTk1ZDk4MTUxMzE0MzNkNjI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAg
LTM1OCw3ICszNTgsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRl
ckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBBU1NFUlQo
bm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQobm9k
ZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9
IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAg
ICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogbGltaXRlciA9IHNoYWRvdy0+Zmlyc3RDaGls
ZCgpLT5sYXN0Q2hpbGQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCmluZGV4IDYxMDMwNzcwZjE3MmU4OGZlNGVhOWQ3NWYxOTQxYWJlYzRmNmYw
NDEuLjg5OTZmNjZlMWIwZTM2YzI0NmZkOTM3YWNmMDM0ZWE0ODRjNzczMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMzQwLDkgKzM0
MCwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRv
SWRNYXAqIG5vZGVzTWFwKQogICAgICAgICAgICAgdW5iaW5kKGNvbnRlbnREb2N1bWVudCwgbm9k
ZXNNYXApOwogICAgIH0KIAotICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVt
ZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgZm9yIChTaGFkb3dSb290KiBy
b290ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJv
b3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHVuYmluZChy
b290LCBub2Rlc01hcCk7CisgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAg
ICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKSkg
eworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMTIyNiw5ICsxMjI4LDExIEBAIFBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yTm9kZShOb2RlKiBuCiAgICAgICAgICAgICBpZiAoZG9jKQogICAgICAgICAgICAgICAgIHZh
bHVlLT5zZXRDb250ZW50RG9jdW1lbnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvYywgMCwgbm9kZXNN
YXApKTsKICAgICAgICAgfQotICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7
CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZWxlbWVudC0+c2hhZG93KCk7Cisg
ICAgICAgIGlmIChzaGFkb3cpIHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJy
YXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5cGVCdWlsZGVyOjpB
cnJheTxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBzaGFkb3dS
b290cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5vZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKICAg
ICAgICAgICAgIHZhbHVlLT5zZXRTaGFkb3dSb290cyhzaGFkb3dSb290cyk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5MjkyYWIxMGQ1OTkz
ODI5ZTFkYWQ4MTA3MGMwOWM3ZTk4YzhkNjc3Li40MWY5Nzk1MjM5NjA4Y2EzZDU1MDhiNDBkZWMz
ZTYzNTBkYTliMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBA
IC02NSwxMSArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hh
ZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQog
c3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbShjb25zdCBO
b2RlKiBub2RlKQogewogICAgIHJldHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cAppbmRleCBmZDYyNjMwYThjMTlhNTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdhLi5kYjRlNmM1
Y2RjNzQwM2FmM2EyNmFjMTdlZjVmNTM0ZmVmODY4ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIyMyw3ICsy
MjMsNyBAQCBIVE1MSW5wdXRFbGVtZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2Fk
QnV0dG9uKCkgY29uc3QKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwogCi0gICAgQVNTRVJUKGlucHV0LT5oYXNT
aGFkb3dSb290KCkpOworICAgIEFTU0VSVChpbnB1dC0+c2hhZG93KCkpOwogCiAgICAgTm9kZSog
YnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENo
aWxkKCk7CiAgICAgcmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVu
dCgpICYmIGJ1dHRvbk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KGJ1dHRvbk5vZGUpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVs
ZW1lbnQuY3BwCmluZGV4IGQ3NzRlNWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYu
LjQ1NWU4Mjc4ZDFmZWI0YjhmYTkyMGY4NzcwM2Y4ZDRlNzQwMTFlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU1ZHVFJlZkVs
ZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KCkKICAgICBpZiAoRWxlbWVudCogdGFyZ2V0ID0g
U1ZHVVJJUmVmZXJlbmNlOjp0YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhocmVmKCksIGRvY3Vt
ZW50KCkpKQogICAgICAgICB0ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAot
ICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChzaGFkb3coKSk7CiAgICAg
U2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgaWYg
KCFyb290LT5maXJzdENoaWxkKCkpCiAgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRv
d1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdl
dCgpCiAgICAgU3RyaW5nIGVtcHR5Q29udGVudDsKICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9
IDA7CiAKLSAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93KCkp
OwogICAgIE5vZGUqIGNvbnRhaW5lciA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyKQogICAgICAgICBjb250YWluZXItPnNldFRl
eHRDb250ZW50KGVtcHR5Q29udGVudCwgaWdub3JlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA3ZGNjZWEzMDk2M2Q5ODhiMTk2NGI4Y2I0NDM2ZmM4OWJkYTJjYjcyLi4x
OWM5NDYxYmIxYmI2OWQwMDA4YWJmMTU0ZTNjNjRkZTRhMzg3N2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMDIsOCArMzAyLDggQEAgSW50ZXJuYWxzOjpTaGFkb3dS
b290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3Qo
RWxlbWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGhvc3QtPmhhc1NoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hhZG93KCkpCisg
ICAgICAgIHJldHVybiBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJu
IFNoYWRvd1Jvb3Q6OmNyZWF0ZShob3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjIsMTAgKzMyMiw5
IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJu
YWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAot
ICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKEVs
ZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGhvc3QtPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hh
ZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogSW50ZXJuYWxz
OjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNo
YWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zMzUsMTAgKzMz
NCw5IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50
ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
IAotICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChF
bGVtZW50U2hhZG93KiBzaGFkb3cgPSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNo
YWRvdy0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiAwOwogfQogCiBJbnRlcm5hbHM6
OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNo
YWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2MSwxNyArMzU5
LDYgQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRl
cm5hbHM6Om9sZGVyU2hhZG93Um9vdChOb2RlKgogICAgIHJldHVybiB0b1NoYWRvd1Jvb3Qoc2hh
ZG93KS0+b2xkZXJTaGFkb3dSb290KCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFk
b3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghaG9z
dCkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAgIGhvc3QtPnNo
YWRvdygpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOwotfQotCiBFbGVtZW50KiBJbnRlcm5hbHM6
OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
bm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTA3ZjRiYzUyZGU1Yjg5
YzZkMTRkNDliYTk4YTc4MjJhYzVlNTQ3OS4uNzlhMWM3NDAxY2UwOWZmOWQwMGU3MjJkMTNkMDNm
NmUyYmNlYjkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03NSw3ICs3NSw2
IEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRl
c3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dS
b290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiB5b3VuZ2VyU2hhZG93Um9vdChOb2RlKiBzaGFk
b3csIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JO
b2RlKiBvbGRlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmlu
ZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2Rl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzQ3NjU3MWFiMjRlNGFl
OTU2MjNlODA5NGRjOGFkMGY1MTI5MjFjOC4uZWM2OWJlM2I2YTMyM2RhOTYzZTA0MjUwMWQ0YTJi
MmFhNTNiMmU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDksNyAr
NDksNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgTm9kZSB5b3VuZ2VyU2hhZG93Um9vdChp
biBOb2RlIHJvb3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVt
ZW50IGluY2x1ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVs
ZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250
ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dS
b290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCmluZGV4IDZlMWM1MmM2NWY4YzYyYWJlNThiMmViZmI4ZjBjYTJmOWUxN2FiNGUuLmFi
NWMzNDU0Y2Q4OTQxYWY4YzZjNGJjOTMyMWU3YTlmZjZmYTVhODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKQEAgLTE3OCw3ICsxNzgsNiBAQCBFWFBPUlRTCiAgICAgICAgID9nZXRFbGVtZW50QnlJ
ZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZA
QEBaCiAgICAgICAgID9nZXRIaWdobGlnaHRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBR
QkVYUEFVSGlnaGxpZ2h0QDJAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJh
bmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJ
MkBaCi0gICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAg
ICAgICA/aW5wdXRUYWdASFRNTE5hbWVzQFdlYkNvcmVAQDNWUXVhbGlmaWVkTmFtZUAyQEIKICAg
ICAgICAgP2luc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlQEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkBXZWJDb3JlQEBDQVBBVkluc3RydW1lbnRpbmdBZ2VudHNAMkBQQVZQYWdlQDJAQFoKICAgICAg
ICAgP2lzQ1NTRXhjbHVzaW9uc0VuYWJsZWRAUnVudGltZUVuYWJsZWRGZWF0dXJlc0BXZWJDb3Jl
QEAwX05BCkBAIC0yMDEsNyArMjAwLDYgQEAgRVhQT1JUUwogICAgICAgICA/cGFpbnRDb250cm9s
VGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cGxhY2Vob2xkZXJTaG91
bGRCZVZpc2libGVASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgog
ICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVA
QFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJASEhf
TkBaCi0gICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BFbGVtZW50U2hhZG93QFdlYkNvcmVA
QFFBRVhYWgogICAgICAgICA/cmVtb3ZlQFN0cmluZ0BXVEZAQFFBRVhJSEBaCiAgICAgICAgID9y
ZXZlcnNlRmluZEBTdHJpbmdJbXBsQFdURkBAUUFFSV9XSUBaCiAgICAgICAgID9zX2Zyb250ZW5k
Q291bnRlckBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25AV2ViQ29yZUBAMEhBCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggYjZlMGYzNmQ0M2MzYzExMTVjMDA5N2RmMThjOTc5
MWNhNDNiNWNmZC4uYWM1NTJhZTIxYWE3OTgyNGYxN2Y2YjhiMDdjNWQ2ZThkMzE3NjYzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTcxLDcgKzE3MSw2IEBAIEVYUE9S
VFMKICAgICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVt
ZW50QDJAQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldEhpZ2hsaWdodEBJbnNw
ZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRVhQQVVIaWdobGlnaHRAMkBAWgogICAgICAgICA/
Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBX05Q
QVZFbGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKLSAgICAgICAgP2hhc1NoYWRvd1Jvb3RARWxl
bWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pbnB1dFRhZ0BIVE1MTmFtZXNAV2ViQ29y
ZUBAM1ZRdWFsaWZpZWROYW1lQDJAQgogICAgICAgICA/aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBh
Z2VASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQENBUEFWSW5zdHJ1bWVudGluZ0Fn
ZW50c0AyQFBBVlBhZ2VAMkBAWgogICAgICAgICA/aXNDU1NFeGNsdXNpb25zRW5hYmxlZEBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzQFdlYkNvcmVAQDBfTkEKQEAgLTE5NCw3ICsxOTMsNiBAQCBFWFBP
UlRTCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFha
CiAgICAgICAgID9wbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZUBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExl
bmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNv
cmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKLSAgICAgICAgP3JlbW92ZUFsbFNoYWRvd1Jv
b3RzQEVsZW1lbnRTaGFkb3dAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZW1vdmVAU3RyaW5n
QFdURkBAUUFFWElIQFoKICAgICAgICAgP3JldmVyc2VGaW5kQFN0cmluZ0ltcGxAV1RGQEBRQUVJ
X1dJQFoKICAgICAgICAgP3NfZnJvbnRlbmRDb3VudGVyQEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkBXZWJDb3JlQEAwSEEKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDQ1NDhhZTBlYzQzZDRh
NDk5YzdhNWMzODVkMzIwODczNWMyOTNlZjEuLjZlZWJlZWIwNGUxZmJlN2E0MWVlYjk0MDdlN2I2
NmFiYjdjNjQ5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
KysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNDMsNyArNDMsNiBAQCBf
Wk43V2ViQ29yZTEwdG9Eb2N1bWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlMTBDbGll
bnRSZWN0QzFFdjsKIF9aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFUktOU183SW50UmVjdEU7CiBf
Wk43V2ViQ29yZTEwU2hhZG93Um9vdDZjcmVhdGVFUE5TXzdFbGVtZW50RVJpOwotX1pON1dlYkNv
cmUxM0VsZW1lbnRTaGFkb3cyMHJlbW92ZUFsbFNoYWRvd1Jvb3RzRXY7CiBfWk43V2ViQ29yZTEx
RXZlbnRUYXJnZXQxN3RvR2VuZXJhdGVkU3RyZWFtRXY7CiBfWk43V2ViQ29yZTExRXZlbnRUYXJn
ZXQ4dG9TdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyNnJhbmdlRnJvbUxvY2F0
aW9uQW5kTGVuZ3RoRVBOU183RWxlbWVudEVpaWI7CkBAIC05OSw3ICs5OCw2IEBAIF9aTks3V2Vi
Q29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyNnBsYWNlaG9sZGVyU2hvdWxkQmVWaXNp
YmxlRXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05v
ZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNo
YWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDZzaGFkb3dFdjsKLV9aTks3V2ViQ29yZTdF
bGVtZW50MTNoYXNTaGFkb3dSb290RXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2Owog
X1pOSzdXZWJDb3JlOERvY3VtZW50OHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0
dmlld0V2OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkzNmRkY2ZjMmQ4MTBhYTRmZDEwMTMxOTA0MGRmMTk0NDdlZGZmMzUu
LjlmMGI4NGJjZDFmZjA3MGNhMWU5MDAxMDBmZmJkYzA5NGNhN2M5NTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMi0wNS0wOSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBtaW5pbWl6ZSB0aGUgdXNhZ2Ugb2YgIlNo
YWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisg
ICAgICAgIFJlbW92ZWQgdGVzdHMgY2FzZXMgd2hpY2ggZXhlcmNpc2Ugc2hhZG93IHJvb3QgcmVt
b3ZhbHMuCisgICAgICAgIFN1Y2ggZnVuY3Rpb25hbGl0eSB3YXMgb25seSBhdmFpbGFibGUgZnJv
bSBJbnRlcm5hbHMgb2JqZWN0CisgICAgICAgIGFuZCBpdCBtYWRlIGxpdHRsZSBzZW5zZSB0byB0
ZXN0IGl0LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3Zl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRl
ZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9k
eW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1s
OgorCiAyMDEyLTA1LTEwICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQ3Jhc2ggaW4gRm9udENhY2hlOjpyZWxlYXNlRm9udERhdGEgZHVlIHRvIGluZmlu
aXRlIGZsb2F0IHNpemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAppbmRleCAwNGVmYjhiZWMx
MGFlZGZkZjlkNmQwMTczMDcyNWJiYjJkNTFhNmE0Li42NDg0OThjMDU1YTkyZTQ5NzAzZTAwZjhj
NmQxODVkMDNiODE1NzkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQKQEAgLTYsMTAgKzYs
NiBAQCB0ZXN0UmVtb3ZlQ29udGVudFRvUmVjYWxjMgogUEFTUwogdGVzdFJlbW92ZUNvbnRlbnRB
bmRSZW1vdmVMaWdodENoaWxkcmVuCiBQQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNo
YWRvd1Jvb3QxCi1QQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QyCi1Q
QVNTCiB0ZXN0QXBwZW5kQ29udGVudDEKIFBBU1MKIHRlc3RBcHBlbmRDb250ZW50MgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRt
bAppbmRleCBjNTQ1NWY0YzMwYzk3Y2QxY2I0Mzk2NzdkY2I0MzM3YjYyOGYwZTMyLi5mN2JjOWJi
ZmZkZjQzMDQyYTQ5ZTdlNzViZmJiYTVjNGQyNDc3YmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbApAQCAtMTI2LDg2
ICsxMjYsNiBAQCBmdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRy
ZW4oY2FsbElmRG9uZSkgewogICAgIHNldFRpbWVvdXQoZiwgMCk7CiB9CiAKLWZ1bmN0aW9uIHRl
c3RSZW1vdmVTaGFkb3dSb290KGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAg
cm9vdC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQ8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBz
aGFkb3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdz
cGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUi
KSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChm
dW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGludGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3QpOwot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVDwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAg
Y2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRv
bmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUNv
bnRlbnRBbmRSZW1vdmVTaGFkb3dSb290MShjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVl
LgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBD
cmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNl
bGVjdCgnc3BhbicsICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVT
aGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFy
IGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1
cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQoY29udGVudCk7Ci0gICAgICAgICAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290
KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVy
JykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+TElHSFQ8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAg
ICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxs
SWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1v
dmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIoY2FsbElmRG9uZSkgewotICAgIHZhciByb290
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQg
dHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuIGNs
YXNzPSdjMSc+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgot
ICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScsICdGQUxMQkFD
SycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwg
Y29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAg
ICAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+
PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAg
ICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2Fs
bElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCiBmdW5jdGlvbiB0ZXN0QXBw
ZW5kQ29udGVudDEoY2FsbElmRG9uZSkgewogICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CiAKQEAgLTM4Niw4ICszMDYsNiBAQCB2YXIgdGVzdEZ1bmNzID0gWwog
ICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMxLAogICAgIHRlc3RSZW1vdmVDb250ZW50VG9S
ZWNhbGMyLAogICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAg
ICB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxLAotICAgIHRlc3RSZW1vdmVD
b250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQxLAogICAg
IHRlc3RBcHBlbmRDb250ZW50MiwKICAgICB0ZXN0QXBwZW5kQ29udGVudDMsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ct
cm9vdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNh
bGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAppbmRleCA4YjIxMGRiNDQxNGE0
ODYxMzRjZWU5MjgwNmM3YTUzMzIyZDU4ZDc5Li5jNzAzN2E2NTE3MjA4NzY4ZmU0ZjFlNjdhMzIw
YjlkOTdhMDI4MTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHlu
YW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVj
dGVkLmh0bWwKQEAgLTUsNiArNSw1IEBAIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBjcmVh
dGVkIFNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHJlbmRlcmVkIGNvcnJlY3RseS4KIENhbiBvbmx5IHJ1
biB3aXRoaW4gRFJULgogPC9kaXY+CiA8ZGl2PlNoYWRvdyBzaG91bGQgYmUgcmVuZGVyZWQuPC9k
aXY+Ci08ZGl2PkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRv
dyByb290IGlzIHJlbW92ZWQuPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9v
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQt
c2hhZG93LXJvb3QuaHRtbAppbmRleCA0NTU4MmMyMmUyYjYxMzgzNWY5YjAxYzdhYTI5NzZiOGVm
YzM5NjIyLi43NDYzYTY5NTk2M2UwMDNjMjMxZmM1ZDVmMGI5NDc5YTcwNjQ0ODhmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFk
b3ctcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxs
eS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKQEAgLTUsMTcgKzUsMTEgQEAgVGhpcyB0ZXN0cyB0
aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29y
cmVjdGx5LgogQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXYgaWQ9Imhvc3Qx
Ij5MaWdodCBjaGlsZHJlbiBzaG91bGQgbm90IGJlIHJlbmRlcmVkLjwvZGl2PgotPGRpdiBpZD0i
aG9zdDIiPkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyBy
b290IGlzIHJlbW92ZWQuPC9kaXY+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICB2YXIgaG9zdDEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaG9zdDEnKTsKICAgICB2
YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0MSk7
CiAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hh
ZG93IHNob3VsZCBiZSByZW5kZXJlZC4nKSk7Ci0KLSAgICB2YXIgaG9zdDIgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjaG9zdDInKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRl
cm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0Mik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hhZG93IHNob3VsZCBub3QgYmUgcmVuZGVyZWQu
JykpOwotICAgIHdpbmRvdy5pbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChob3N0Mik7CiB9CiA8
L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3Rl
ZC50eHQKaW5kZXggMGNlY2UxZWE4MDBkNDliYjdkMzcxYjgzMTlkMjVjNmVhMTZiY2I2NS4uNTdl
YjM5ZmNjM2ZlNjk2MzIxYmIyOGM0YTg5NDg3ZTYyOTZlZTU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1j
YW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw2IEBAIFBBU1MgZXhjZXB0
aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCiBQQVNTIGludGVybmFs
cy5zaGFkb3dSb290KHApIGlzIG51bGwKIFBBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjc2hhZG93
LXJvb3QiCiBQQVNTIHNoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgdHJ1ZQot
UEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChrZXlnZW4pIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRv
dy5odG1sCmluZGV4IDM5YmE5YjhjMmZhYTQ2MmFmM2U1N2Y4MjIyMTNlZGY1NDZiNDZlNjEuLmVj
NzY1NzljMzYzMDBlMGRmODViOTllNTM3NzgxMzQyZjhlOTU0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nl
c3Mtc2hhZG93Lmh0bWwKQEAgLTM1LDEwICszNSw2IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgc2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QocCk7CiAgICAgc2hvdWxk
QmUoJ3NoYWRvdy5ub2RlTmFtZScsICciI3NoYWRvdy1yb290IicpOwogICAgIHNob3VsZEJlKCdz
aGFkb3cgPT09IGludGVybmFscy5zaGFkb3dSb290KHApJywgJ3RydWUnKTsKLQotICAgIC8vIENh
biBzdHJpcCBlbGVtZW50cyBvZiBzaGFkb3dzCi0gICAgaW50ZXJuYWxzLnJlbW92ZVNoYWRvd1Jv
b3Qoa2V5Z2VuKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKScs
ICdudWxsJyk7CiB9CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAppbmRleCBh
YTNkZWRkYzg1NTZjZDdjZTJiZDc1YjYxNTUzZmM1MGU1ODc3NWYzLi4yMmNjMmZhODVmNTllN2Rl
M2M3ZjU3YmU3NWY4ODczNDQ2YjUxMzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CkBAIC0x
MCw3ICsxMCw2IEBAIFBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290
MgogUEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QyKSBpcyBzaGFkb3dS
b290MQogUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIGlzIHNoYWRvd1Jvb3QzCiBQQVNT
IGludGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdDMpIGlzIHNoYWRvd1Jvb3QyCi1Q
QVNTIGludGVybmFscy5zaGFkb3dSb290KGRpdikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbAppbmRleCAwNGJmODMzZWM5ODk0
NzZiMjYyOTk2YmEyM2QzOTZhY2VjZTdlMTIyLi4yYTZiNTI4MGVkZDFhODdiMjQ3MDI4MTc1ZGQ5
YTY4NjNkNDI2MTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVs
dGlwbGUtc2hhZG93cm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9t
dWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKQEAgLTIxLDkgKzIxLDYgQEAgdmFyIHNoYWRvd1Jvb3Qz
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93
Um9vdChkaXYpIiwgInNoYWRvd1Jvb3QzIik7CiBzaG91bGRCZSgiaW50ZXJuYWxzLm9sZGVyU2hh
ZG93Um9vdChzaGFkb3dSb290MykiLCAic2hhZG93Um9vdDIiKTsKIAotaW50ZXJuYWxzLnJlbW92
ZVNoYWRvd1Jvb3QoZGl2KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIiwg
Im51bGwiKTsKLQogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2OTE5ZGFkYWQ2NmMyMDg1
MThmMTNhOTBkMTI1YmM0MTVjZmQ3OWQ2Li40YzU3YmMxMmVhNDc0OWUzYjU1YjI5MGI4ZTViYmI1
ZmQzNjMwNTkxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDUtMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQgbWluaW1pemUgdGhlIHVzYWdlIG9mICJT
aGFkb3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBsb25nZXIgZXhpc3RzCisKKyAgICAgICAg
KiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA1LTEwICBaYW4gRG9i
ZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gRU5BQkxFX0lG
UkFNRV9TRUFNTEVTUyBzdXBwb3J0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141303</attachid>
            <date>2012-05-10 18:01:19 -0700</date>
            <delta_ts>2012-05-10 22:34:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85970-20120511100118.patch</filename>
            <type>text/plain</type>
            <size>49328</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhZDZlNjAwNzEzNzg1
MzcwZTY2NmM1MzIxYjBhOTgyNjllZTllNi4uMDNkNzVhMjBkNDkwMmI4NTBjOWFhYzIzNDQzNmI2
YTgxYjM2MzNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDEyLTA1LTEwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIEVsZW1lbnRTaGFkb3cg
c2hvdWxkIG1pbmltaXplIHRoZSB1c2FnZSBvZiAiU2hhZG93Um9vdCIgbmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgY2xlYW5z
IHR3byBvdXQgZGF0ZWQgYXNzdW1wdGlvbnMgd2hpY2ggYnJvdWdodCBpbiBhdAorICAgICAgICBl
YXJseSBzdGFnZSBvZiBTaGFkb3cgRE9NIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIC0gUmVt
b3ZlZCBFbGVtZW50OjpoYXNTaGFkb3dSb290KCk6IHNoYWRvdyBleGlzdGVuY2UgY2FuIGJlIGNo
ZWNrZWQgYnkgRWxlbWVudDo6c2hhZG93KCkuCisgICAgICAgIC0gTWFkZSBFbGVtZW50U2hhZG93
OjpyZW1vdmVBbGxTaGFkb3dSb290cygpIHByaXZhdGU6IHdlIG5vIGxvbmdlciBhbGxvdyBTaGFk
b3dSb290IHJlbW92YWwuCisgICAgICAgICAgSXQgY2FuIG9ubHkgaGFwcGVucyBhdCB0aGUgRWxl
bWVudFNoYWRvdyBkZXN0cnVjdGlvbi4KKworICAgICAgICBNb3N0IG9mIGNoYW5nZXMgaW4gZWxl
bWVudCBpbXBsZW1lbnRhdGlvbnMgYXJlIGJhc2ljYWxseSBzaW1wbGUKKyAgICAgICAgcmVwbGFj
ZW1lbnQgZnJvbSBoYXNTaGFkb3dSb290KCkgdG8gc2hhZG93KCkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmg6CisgICAgICAg
IChXZWJDb3JlOjpDaGlsZEZyYW1lRGlzY29ubmVjdG9yOjpjb2xsZWN0RGVzY2VuZGFudCk6Cisg
ICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlQ2hpbGQpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YnVpbGRBY2Nl
c3NLZXlNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAoRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6
fkVsZW1lbnRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNoYWRvdzo6cmVtb3Zl
QWxsU2hhZG93Um9vdHMpOgorICAgICAgICAqIGRvbS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAg
IChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFkb3c6Omhvc3Qp
OgorICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIGRvbS9Ob2Rl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9sZGVzdFNoYWRvd1Jvb3RGb3IpOgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TaGFk
b3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50
OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVu
dDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzTWVkaWFDb250cm9scyk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVt
ZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL0hUTUxTdW1tYXJ5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3VzZURv
d25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dHJhY2tMaW1pdGVyRWxlbWVudE9mKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVu
YmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RG
b3JOb2RlKToKKyAgICAgICAgKiBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmlsZVVwbG9hZENvbnRyb2w6OnVwbG9hZEJ1dHRv
bik6CisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1RSZWZFbGVtZW50Ojp1cGRhdGVSZWZlcmVuY2VkVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDUtMTAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWxsLCBhdCBsZWFzdCBmaXhpbmcgdGhlIEdUSysg
YnVpbGQgaXMgc29tZXRoaW5nIQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM1MjY5NWI3NWVmZGM1MjgxNmQ1YjVk
N2MyMmE3NTQ3NGFhODNhMDMuLjA4OGFhZDRhM2Y0ZDEzYjBiM2UyYjE1YTIyYjY1ZWRmNDEwM2U3
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0xMCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBt
aW5pbWl6ZSB0aGUgdXNhZ2Ugb2YgIlNoYWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIFJlbW92ZWQgc3ltYm9scyB3aGljaCBubyBs
b25nZXIgZXhpc3RzCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA1LTEwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHRoZSBtaXNzaW5nIHBsdWctaW4gaW5k
aWNhdG9yIHRvIHRoZSB1bmF2YWlsYWJsZSBwbHVnLWluIGluZGljYXRvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCAxNmM5Y2MzZDM5YjBlNmZiMzc5NmJhZDljYWE0ZTA0ZTRiYTlkOTU0Li41YzVh
MWQ5MzFlMTBkMmU4ZDQ5OTM0YWIzMjQyMDIyMTI3MjIzODczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMzAyLDcgKzMwMiw2IEBAIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTE4cm9vdE9i
amVjdEZvckZyYW1lRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxM0FYT2JqZWN0Q2FjaGUyMWdB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNoZTIzZm9jdXNl
ZFVJRWxlbWVudEZvclBhZ2VFUEtOU180UGFnZUUKIF9fWk43V2ViQ29yZTEzQVhPYmplY3RDYWNo
ZTQyZ0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkRQotX19aTjdXZWJD
b3JlMTNFbGVtZW50U2hhZG93MjByZW1vdmVBbGxTaGFkb3dSb290c0V2CiBfX1pON1dlYkNvcmUx
M0hUVFBIZWFkZXJNYXBDMUV2CiBfX1pON1dlYkNvcmUxM0hUVFBIZWFkZXJNYXBEMUV2CiBfX1pO
N1dlYkNvcmUxM0hpdFRlc3RSZXN1bHRDMUVSS1MwXwpAQCAtMTQ4NCw3ICsxNDgzLDYgQEAgX19a
Tks3V2ViQ29yZTZXaWRnZXQ5ZnJhbWVSZWN0RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2Ny
ZWVuUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQ2c2hhZG93RXYKIF9fWk5LN1dlYkNvcmU3
RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQotX19aTks3V2ViQ29y
ZTdFbGVtZW50MTNoYXNTaGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdDEwaW50ZXJz
ZWN0c0VSS1MwXwogX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pOSzdX
ZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAppbmRleCA1YTY5MzZjOGMyMjFmZWNhMzNlNzg2Yjg0NDkz
YTYxNTI4Y2U4NTUwLi5kMWE4ODllNjc4ZGY4YTIzMjdmZjZkMzZmZTM3MTAwOWI1OGQ2NmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApA
QCAtMzUsMTEgKzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5l
IGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9v
dCgpOwotfQotCiBzdGF0aWMgaW5saW5lIEVsZW1lbnRTaGFkb3cqIHNoYWRvd0Zvcihjb25zdCBO
b2RlKiBub2RlKQogewogICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKQEAg
LTk5LDcgKzk0LDcgQEAgTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNo
aWxkKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGkKICAgICBBU1NFUlQobm9kZSk7
CiAgICAgaWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKSB7CiAgICAgICAgIEVsZW1lbnRTaGFk
b3cqIHNoYWRvdyA9IHNoYWRvd0Zvcihub2RlKTsKLSAgICAgICAgcmV0dXJuIChzaGFkb3cgJiYg
c2hhZG93LT5oYXNTaGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNoYWRvdy0+
eW91bmdlc3RTaGFkb3dSb290KCksIGRpcmVjdGlvbikKKyAgICAgICAgcmV0dXJuIHNoYWRvdyA/
IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpLCBkaXJl
Y3Rpb24pCiAgICAgICAgICAgICA6IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihub2RlLCBkaXJlY3Rp
b24pOwogICAgIH0KICAgICBpZiAoaXNTaGFkb3dIb3N0KG5vZGUpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaAppbmRleCA5ZDc3NTU5ZWNmYjBjOTQ1ZDhm
OWQ0NDdkNzQwOTEwNzEzMmZjYmI0Li5mY2NiNWVlYjFmYjkxZGFjYmE5YjFhOTczMDUxODM4OWE4
YjNlNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29y
aXRobXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMu
aApAQCAtMzA1LDggKzMwNSw4IEBAIGlubGluZSB2b2lkIENoaWxkRnJhbWVEaXNjb25uZWN0b3I6
OmNvbGxlY3REZXNjZW5kYW50KE5vZGUqIHJvb3QpCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSB0b0VsZW1lbnQobm9kZSk7CiAgICAgICAgIGlmIChlbGVtZW50LT5pc0ZyYW1lT3duZXJFbGVt
ZW50KCkpCiAgICAgICAgICAgICBtX2xpc3QuYXBwZW5kKG5vZGUpOwotICAgICAgICBpZiAoZWxl
bWVudC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgY29sbGVjdERlc2NlbmRhbnQoZWxl
bWVudC0+c2hhZG93KCkpOworICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZWxl
bWVudC0+c2hhZG93KCkpCisgICAgICAgICAgICBjb2xsZWN0RGVzY2VuZGFudChzaGFkb3cpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjQ2N2FmMzMyNzQxOTEwNTk4
MmU5ODJjYjk0NDVlMWE4ZGM5NjgxOC4uMzBkMzY3ZjkzOGVlNzk4NTdmMmVlOWJhMDMwMTE5MGU3
NGVjMzlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03MTIsOCArNzEyLDggQEAgdm9p
ZCBEb2N1bWVudDo6YnVpbGRBY2Nlc3NLZXlNYXAoVHJlZVNjb3BlKiBzY29wZSkKICAgICAgICAg
aWYgKCFhY2Nlc3NLZXkuaXNFbXB0eSgpKQogICAgICAgICAgICAgbV9lbGVtZW50c0J5QWNjZXNz
S2V5LnNldChhY2Nlc3NLZXkuaW1wbCgpLCBlbGVtZW50KTsKIAotICAgICAgICBpZiAoZWxlbWVu
dC0+aGFzU2hhZG93Um9vdCgpKSB7Ci0gICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3Qg
PSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRv
dyA9IGVsZW1lbnQtPnNoYWRvdygpKSB7CisgICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpCiAgICAgICAgICAgICAgICAgYnVpbGRBY2Nlc3NLZXlNYXAocm9vdCk7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNDgwZjlkMTcwYWYw
NDU3ZGMzNGRiNmJjMTFkMzJmYTVmZjg3MjFkMi4uY2M0OTM5M2Q4YzY3Yjc4NzYzMzQ3Nzg2Nzli
OTViOGMyZjAwZDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTE0MCw4ICsxMTQwLDcg
QEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgU3R5
bGVSZXNvbHZlclBhcmVudFB1c2hlciBwYXJlbnRQdXNoZXIodGhpcyk7CiAKICAgICAvLyBGSVhN
RTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdpbGwgYmUg
bmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCi0gICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkgewotICAg
ICAgICBFbGVtZW50U2hhZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKTsKKyAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gdGhpcy0+c2hhZG93KCkpIHsKICAgICAgICAgaWYgKGNoYW5n
ZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93
LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7
CiAgICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7CkBAIC0xMTc5LDEzICsx
MTc4LDYgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAg
ICAgICAgIGRpZFJlY2FsY1N0eWxlKGNoYW5nZSk7CiB9CiAKLWJvb2wgRWxlbWVudDo6aGFzU2hh
ZG93Um9vdCgpIGNvbnN0Ci17Ci0gICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRoaXMt
PnNoYWRvdygpKQotICAgICAgICByZXR1cm4gc2hhZG93LT5oYXNTaGFkb3dSb290KCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCiBFbGVtZW50U2hhZG93KiBFbGVtZW50OjpzaGFkb3coKSBjb25z
dAogewogICAgIGlmICghaGFzUmFyZURhdGEoKSkKQEAgLTEyMDUsOCArMTE5Nyw4IEBAIEVsZW1l
bnRTaGFkb3cqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvdygpCiAKIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6
OmVuc3VyZVNoYWRvd1Jvb3QoKQogewotICAgIGlmIChoYXNTaGFkb3dSb290KCkpCi0gICAgICAg
IHJldHVybiBzaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChFbGVtZW50U2hh
ZG93KiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvdy0+b2xk
ZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJuIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBT
aGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpLmdldCgpOwogfQpAQCAtMTM0
MSwxMCArMTMzMyw4IEBAIHZvaWQgRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmCiAgICAgZWxzZQogICAgICAg
ICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVyU3R5bGUoKSwgZmFsc2Us
IGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiAKLSAgICBpZiAo
aGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQotICAgICAgICAg
ICAgc2hhZG93KCktPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKLSAgICB9CisgICAgaWYgKEVsZW1l
bnRTaGFkb3cgKiBzaGFkb3cgPSB0aGlzLT5zaGFkb3coKSkKKyAgICAgICAgc2hhZG93LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CiB9CiAKIHZvaWQgRWxlbWVudDo6YmVnaW5QYXJzaW5nQ2hpbGRy
ZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNjI2NzAxZDFmMTdmZDVmNGVjMTUzZTVlMzdkZGJk
ZTU4ZDJlNGZhMS4uOGJkOWNkODEwN2FjYjliNTU4OTI5N2I0OWExZDkxMThjNjA3YTkxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCkBAIC0yNjEsNyArMjYxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIGJv
b2wgaGFzU2hhZG93Um9vdCgpIGNvbnN0OwogICAgIEVsZW1lbnRTaGFkb3cqIHNoYWRvdygpIGNv
bnN0OwogICAgIEVsZW1lbnRTaGFkb3cqIGVuc3VyZVNoYWRvdygpOwogCkBAIC03MTQsNiArNzEz
LDExIEBAIGlubGluZSBib29sIE5vZGU6Omhhc0NsYXNzKCkgY29uc3QKICAgICByZXR1cm4gaXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudCh0aGlzKS0+aGFzQ2xhc3MoKTsKIH0KIAoraW5saW5l
IGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUg
JiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93KCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cu
Y3BwCmluZGV4IDFlNjczMTc1ZDQ0NTcyZDA4ZDE5NDM2MzUwYTFmOWQ3YjM4ODA4MGMuLmNjNmM4
NmUxNjUyNTQwM2RlNDY4YWEyNDFmNzJlMjkzODU2ZmIzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFNoYWRvdy5jcHAKQEAgLTQ2LDggKzQ2LDcgQEAgRWxlbWVudFNoYWRvdzo6RWxlbWVudFNo
YWRvdygpCiAKIEVsZW1lbnRTaGFkb3c6On5FbGVtZW50U2hhZG93KCkKIHsKLSAgICBpZiAoaGFz
U2hhZG93Um9vdCgpKQotICAgICAgICByZW1vdmVBbGxTaGFkb3dSb290cygpOworICAgIHJlbW92
ZUFsbFNoYWRvd1Jvb3RzKCk7CiB9CiAKIHN0YXRpYyBib29sIHZhbGlkYXRlU2hhZG93Um9vdChE
b2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIEV4Y2VwdGlvbkNvZGUm
IGVjKQpAQCAtOTEsOSArOTAsNiBAQCB2b2lkIEVsZW1lbnRTaGFkb3c6OmFkZFNoYWRvd1Jvb3Qo
RWxlbWVudCogc2hhZG93SG9zdCwgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBzaAogCiB2b2lkIEVs
ZW1lbnRTaGFkb3c6OnJlbW92ZUFsbFNoYWRvd1Jvb3RzKCkKIHsKLSAgICBpZiAoIWhhc1NoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gRG9udCBwcm90ZWN0IHRoaXMgcmVm
IGNvdW50LgogICAgIEVsZW1lbnQqIHNoYWRvd0hvc3QgPSBob3N0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFNoYWRvdy5oCmluZGV4IDljOTM4NWM3ODljM2FlYjg5ODg4NGZlYTM1YWI3OTczNGM4
ODgyODEuLjRjMDdhMjdlMDRlMjIzYTkzZGM3MzZjZTk1MDE4NjU3ZmZmN2RiMDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNTAsMTMgKzUwLDEwIEBAIHB1YmxpYzoKICAgICB+
RWxlbWVudFNoYWRvdygpOwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0OwotCi0gICAgYm9v
bCBoYXNTaGFkb3dSb290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogeW91bmdlc3RTaGFkb3dS
b290KCkgY29uc3Q7CiAgICAgU2hhZG93Um9vdCogb2xkZXN0U2hhZG93Um9vdCgpIGNvbnN0Owog
CiAgICAgdm9pZCBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFBhc3NSZWZQdHI8
U2hhZG93Um9vdD4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jv
b3RzKCk7CiAKICAgICB2b2lkIHNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqKTsKIApAQCAt
ODIsNiArNzksNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSFRNTENvbnRlbnRTZWxlY3RvciYgc2Vs
ZWN0b3IoKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHJlbW92ZUFsbFNoYWRvd1Jvb3Rz
KCk7CiAKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAg
ICAgSFRNTENvbnRlbnRTZWxlY3RvciBtX3NlbGVjdG9yOwpAQCAtODksMTEgKzg3LDYgQEAgcHJp
dmF0ZToKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFbGVtZW50U2hhZG93KTsKIH07CiAKLWlu
bGluZSBib29sIEVsZW1lbnRTaGFkb3c6Omhhc1NoYWRvd1Jvb3QoKSBjb25zdAotewotICAgIHJl
dHVybiAhbV9zaGFkb3dSb290cy5pc0VtcHR5KCk7Ci19Ci0KIGlubGluZSBTaGFkb3dSb290KiBF
bGVtZW50U2hhZG93Ojp5b3VuZ2VzdFNoYWRvd1Jvb3QoKSBjb25zdAogewogICAgIHJldHVybiBt
X3NoYWRvd1Jvb3RzLmhlYWQoKTsKQEAgLTEyMSw3ICsxMTQsNyBAQCBpbmxpbmUgdm9pZCBFbGVt
ZW50U2hhZG93OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQogCiBp
bmxpbmUgRWxlbWVudCogRWxlbWVudFNoYWRvdzo6aG9zdCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJU
KGhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKCFtX3NoYWRvd1Jvb3RzLmlzRW1wdHkoKSk7
CiAgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNTg2NmU2MDY4ZDZmNTliYTYyMWQzMjFj
NTQ0ZjRmMjgzNjNiY2ViOS4uMTY4OWUwNmI4Y2E0YmYwYWI1ODNjOGYzOTFiZjk5ODkwYTk3NWJk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTExNiwxMSArMTE2
LDYgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soTm9kZSog
bm9kZSwgUGFzc1JlZlB0cjxFdmVudD4gdW5kZXIKICAgICBnTm9kZXNEaXNwYXRjaGluZ1NpbXVs
YXRlZENsaWNrcy0+cmVtb3ZlKG5vZGUpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFk
b3dIb3N0KE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAm
JiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQogUGFzc1JlZlB0cjxFdmVu
dFRhcmdldD4gRXZlbnREaXNwYXRjaGVyOjphZGp1c3RUb1NoYWRvd0JvdW5kYXJpZXMoUGFzc1Jl
ZlB0cjxOb2RlPiByZWxhdGVkVGFyZ2V0LCBjb25zdCBWZWN0b3I8Tm9kZSo+IHJlbGF0ZWRUYXJn
ZXRBbmNlc3RvcnMpCiB7CiAgICAgVmVjdG9yPEV2ZW50Q29udGV4dD46OmNvbnN0X2l0ZXJhdG9y
IGxvd2VzdENvbW1vbkJvdW5kYXJ5ID0gbV9hbmNlc3RvcnMuZW5kKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggMGE3MjQ4NzY0YWJlMGFmNzU0NzE2ODYyOWJhYjhmZWI1MGI1NWM4My4uOTRiMjlkMjYy
OGIzNDc4ODE1M2NiMTY4NTg2ZWM2MTMxZjk1NDllMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtODM2
LDcgKzgzNiwxMSBAQCBib29sIE5vZGU6Omhhc05vbkVtcHR5Qm91bmRpbmdCb3goKSBjb25zdAog
CiBpbmxpbmUgc3RhdGljIFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3RGb3IoY29uc3QgTm9k
ZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVu
dChub2RlKS0+aGFzU2hhZG93Um9vdCgpID8gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+b2xk
ZXN0U2hhZG93Um9vdCgpIDogMDsKKyAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRvRWxlbWVu
dChub2RlKS0+c2hhZG93KCkpCisgICAgICAgIHJldHVybiBzaGFkb3ctPm9sZGVzdFNoYWRvd1Jv
b3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogaW5saW5lIHZvaWQgTm9kZTo6c2V0U3R5bGVDaGFu
Z2UoU3R5bGVDaGFuZ2VUeXBlIGNoYW5nZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyNzFmNWNhZDBiZTEwYzRiYzJjMjFlNjk2MDgwZjIy
NDVhMDM5OWRjLi41ODk4NDE5YTZhNWQ0M2UwNDFmZjBiOWVmYmE0NzQyNjYxODQwNGE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTcxLDcgKzcx
LDcgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5v
ZGUpCiAgICAgfQogCiAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpIHx8IHBhcmVudC0+
aXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgaWYgKHBhcmVudC0+aXNFbGVtZW50Tm9kZSgpICYm
IHRvRWxlbWVudChwYXJlbnQpLT5oYXNTaGFkb3dSb290KCkpCisgICAgICAgIGlmIChwYXJlbnQt
PmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93ID0gdG9F
bGVtZW50KHBhcmVudCktPnNoYWRvdygpOwogICAgICAgICBlbHNlIGlmIChwYXJlbnQtPmlzU2hh
ZG93Um9vdCgpKQogICAgICAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3cgPSB0b1NoYWRvd1Jv
b3QocGFyZW50KS0+b3duZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBhYTAz
NGJhMzAwZTI3NTYxN2U1YjdmOTVhY2I3NTdhNzM2Njk1NmQ1Li43YjI0NmMwYjEyZmIxODcyZDNl
OWRjNmNkNGY4OTdiNWVkNWRhNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUo
RWxlbWVudCogZWxlbWVudCwgU2hhZG93Um9vdENyZWF0aW9uUHUKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIEFTU0VSVChlbGVtZW50ID09IHNoYWRvd1Jvb3QtPmhvc3QoKSk7
Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKGVsZW1l
bnQtPnNoYWRvdygpKTsKICAgICByZXR1cm4gc2hhZG93Um9vdC5yZWxlYXNlKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNGViMzkyMmRkMTgxYTY0MGZh
NmM4M2I1MmY1ODExY2Q4Mzg3ZTkyMy4uMWVjZWNjMmI2NDFmODQxNTY1MzQyNWMxZTk0ZTA2N2Nm
ZTM4NjdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFsdWVBc0NvbG9yKCkgY29uc3QKIAog
dm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJU
KGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFk
b3coKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVtZW50KCktPmRvY3VtZW50KCk7
CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVyRWxlbWVudCA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAK
aW5kZXggOTVhMmY4MTIyNDY4ZmQzMzE4NjJlNjdiMDkzYWJiMTkzOTE5MjU3Ni4uNDIxMTg1ZGZh
ZmZlYmYxZWQ3YWEwMmI2MjBhMDFhNTIwYTljOWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJ
bnB1dFR5cGUuY3BwCkBAIC0yOTUsMTQgKzI5NSwxNCBAQCBib29sIEZpbGVJbnB1dFR5cGU6Omlz
RmlsZVVwbG9hZCgpIGNvbnN0CiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBB
U1NFUlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgZWxlbWVudCgpLT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChl
bGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0
aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUo
ZWxlbWVudCgpLT5kb2N1bWVudCgpKSwgZWMpOwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6Om11
bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hh
ZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAgICAgVXBsb2Fk
QnV0dG9uRWxlbWVudCogYnV0dG9uID0gc3RhdGljX2Nhc3Q8VXBsb2FkQnV0dG9uRWxlbWVudCo+
KGVsZW1lbnQoKS0+c2hhZG93KCktPm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsK
ICAgICBpZiAoYnV0dG9uKQogICAgICAgICBidXR0b24tPnNldFZhbHVlKGVsZW1lbnQoKS0+bXVs
dGlwbGUoKSA/IGZpbGVCdXR0b25DaG9vc2VNdWx0aXBsZUZpbGVzTGFiZWwoKSA6IGZpbGVCdXR0
b25DaG9vc2VGaWxlTGFiZWwoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEZXRhaWxzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxl
bWVudC5jcHAKaW5kZXggZTRlNGE5MjQ4MTM0NDY3ZGZmZDk4ZmQwZDViODVlNDQwODNkMGJkMy4u
NjEwMTUwMWVmOWY3YTY4ZTcyYmQzYmIyZGJiMzZlMGNhZDc2YWE2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIFJlbmRl
ck9iamVjdCogSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSog
YXJlbmEsIFJlbmRlclN0eWxlCiAKIHZvaWQgSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGVTaGFk
b3dTdWJ0cmVlKCkKIHsKLSAgICBBU1NFUlQoIWhhc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJU
KCFzaGFkb3coKSk7CiAKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gcm9vdCA9IFNoYWRvd1Jvb3Q6
OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QpOwog
ICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDZmZTU1OTY1ZDRmMWRhNzU5OWQ2MjkwMmQ5ODkxZTQ4
ZDQ3OWFlZjcuLjc3OGVkMjU3YWQ4NGU2ZTFhOWEwYjIxMjlmNTkyODRiNDBhODc5M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBA
IFBhc3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hCiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCghc2hhZG93KCkpOwogICAgIFNoYWRvd1Jvb3Q6OmNyZWF0ZSh0aGlzLCBTaGFkb3dSb290
OjpDcmVhdGluZ1VzZXJBZ2VudFNoYWRvd1Jvb3QsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAg
ICAgbV9pbnB1dFR5cGUtPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjEwOTlmMTk3ZTMxZGJkYmI4ZDJmMTQxOTVl
YjEyOTZkYWY0M2I1My4uZGI0ZDI4M2ZkMzkxZDVhOGNkNzY5YjE5MzI3N2E1MmMzZDFkYWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2
LDcgQEAgaW5saW5lIEhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWUKICAgICAgICAgb3B0aW9uLT5hcHBlbmRDaGls
ZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtleXNbaV0pLCBlYyk7CiAgICAgfQogCi0gICAgQVNT
RVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0
cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6
OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoc2Vs
ZWN0LCBlYyk7CiB9CkBAIC0xMzEsNyArMTMxLDYgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6
cmVzZXQoKQogCiBIVE1MU2VsZWN0RWxlbWVudCogSFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRvd1Nl
bGVjdCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGhhc1NoYWRvd1Jvb3QoKSk7CiAgICAgU2hhZG93
Um9vdCogcm9vdCA9IHRoaXMtPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgcmV0
dXJuIHJvb3QgPyB0b0hUTUxTZWxlY3RFbGVtZW50KHJvb3QtPmZpcnN0Q2hpbGQoKSkgOiAwOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMzgzNWUwMTEw
NDA1ZjNmMzNhZTY1MWNjNDM0YjI5MWYxZGE2NTZiMi4uMDQ5OTIyNjI4Y2EzMmU0NjRlMDJiMTZl
OWI5OTUzMTc1NDE2NTIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC00MDczLDEwICs0MDczLDExIEBAIE1lZGlhQ29udHJvbHMqIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhQ29udHJvbHMoKQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Omhhc01lZGlhQ29u
dHJvbHMoKQogewotICAgIGlmICghaGFzU2hhZG93Um9vdCgpKQorICAgIEVsZW1lbnRTaGFkb3cq
IGVsZW1lbnRTaGFkb3cgPSBzaGFkb3coKTsKKyAgICBpZiAoIWVsZW1lbnRTaGFkb3cpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5vZGUqIG5vZGUgPSBzaGFkb3coKS0+b2xkZXN0U2hh
ZG93Um9vdCgpLT5maXJzdENoaWxkKCk7CisgICAgTm9kZSogbm9kZSA9IGVsZW1lbnRTaGFkb3ct
Pm9sZGVzdFNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpOwogICAgIHJldHVybiBub2RlICYmIG5v
ZGUtPmlzTWVkaWFDb250cm9scygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJF
bGVtZW50LmNwcAppbmRleCBjZTkxMGUxYTRjZmZhNGU3MmUzMjMyZTNjMmQ3OTc0NTUyMWQzNTli
Li42ODRlYjViYTNlZWFkMzcyMGZhMDE3YjBiYzQxOGJjNzk5YmUyZjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCB2b2lkIEhU
TUxNZXRlckVsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTE1ldGVy
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dS
b290KCkpOworICAgIEFTU0VSVCghc2hhZG93KCkpOwogCiAgICAgUmVmUHRyPE1ldGVyQmFyRWxl
bWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92
YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCA2MDBiMTg1ZDBiYjI0NmQw
NTkwZjc0N2Q5NjJjNzc5MDM1NGE5NzBkLi5hZjgxOTFmM2U0ZDk0MzQ4NjJmNzRmMjExOTQzZTA1
OGM2YzgwYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1l
bnRTdGF0ZUNoYW5nZSgpCiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgh
c2hhZG93KCkpOwogCiAgICAgUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jl
c3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IFByb2dyZXNz
VmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdW1tYXJ5RWxlbWVudC5jcHAKaW5kZXggMTMzMTk2M2Y0ZTE0YjU3MjAzOGEwYjFmZDZiZGEx
NDcyMGZhNThkZC4uZjdjYWViNmFmMzhhN2ViOWRkMDdiMDU0NzUyOTcxYTQ1ZjY3NDQ2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcApAQCAtODAsNyArODAs
NyBAQCBib29sIEhUTUxTdW1tYXJ5RWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihj
b25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYgYwogCiB2b2lkIEhUTUxTdW1tYXJ5RWxlbWVudDo6
Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hh
ZG93Um9vdDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93
Um9vdCk7CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNyZWF0
ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAgICAgcm9vdC0+YXBw
ZW5kQ2hpbGQoU3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIEFTU0VS
VF9OT19FWENFUFRJT04sIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5jcHAKaW5kZXggNjM2NjNhOTdmY2M3YjBjYmZmZWY5MWY1OWI0N2Y1ZTRlMTRmYjI0
ZC4uODI1N2QwZjkzYzNkMTM1NTJjMDQyNDBmODJiMGZkNWE2ZGJhNzI4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFBh
c3NSZWZQdHI8SFRNTFRleHRBcmVhRWxlbWVudD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmCiAKIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRl
U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgQVNTRVJUKCFoYXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCghc2hhZG93KCkpOwogICAgIFJlZlB0cjxTaGFkb3dSb290PiByb290ID0gU2hhZG93Um9v
dDo6Y3JlYXRlKHRoaXMsIFNoYWRvd1Jvb3Q6OkNyZWF0aW5nVXNlckFnZW50U2hhZG93Um9vdCk7
CiAgICAgcm9vdC0+YXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCmluZGV4IDk5NzE4MmFiYWU3ZDQ0YmZiNzA3OWE0YmE4NGM3ZWQ5NDVhOTU3ZjIu
LmNmMTI1YzllMDE4NmQ2NDlkZDc1ZWI4NWQ4NWRhNmE4NmUxNzdkYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKQEAgLTM5NSwxMSArMzk1LDExIEBAIHZvaWQgSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKCkKIAogdm9pZCBJbnB1dFR5cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVl
KCkKIHsKLSAgICBpZiAoIWVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKQorICAgIEVsZW1lbnRT
aGFkb3cqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93KCk7CisgICAgaWYgKCFzaGFkb3cpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50KCktPnNoYWRv
dygpLT5vbGRlc3RTaGFkb3dSb290KCk7Ci0gICAgQVNTRVJUKHJvb3QpOworICAgIFNoYWRvd1Jv
b3QqIHJvb3QgPSBzaGFkb3ctPm9sZGVzdFNoYWRvd1Jvb3QoKTsKICAgICByb290LT5yZW1vdmVB
bGxDaGlsZHJlbigpOwogCiAgICAgLy8gSXQncyBvayB0byBjbGVhciBjb250ZW50cyBvZiBhbGwg
b3RoZXIgU2hhZG93Um9vdHMgYmVjYXVzZSB0aGV5IG11c3QgaGF2ZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0OTQ5YjBhNGU0YTY2MDM0ZDA3MTlhMDRkYTc2Nzhh
MTgwZmEyMWU5Li42ZjFkMTkyNGJjZWUyYzExZWM4YzVmNWRmOWI1ZGI3MzY0ZmJmOTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZv
aWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50
KQogICAgIE5vZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwogICAg
IGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCAhdGFyZ2V0Tm9kZSkKICAgICAg
ICAgcmV0dXJuOwotICAgIEFTU0VSVChlbGVtZW50KCktPmhhc1NoYWRvd1Jvb3QoKSk7CisgICAg
QVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIGlmICh0YXJnZXROb2RlICE9IGVsZW1l
bnQoKSAmJiAhdGFyZ2V0Tm9kZS0+aXNEZXNjZW5kYW50T2YoZWxlbWVudCgpLT5zaGFkb3coKS0+
b2xkZXN0U2hhZG93Um9vdCgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIFNsaWRlclRodW1iRWxl
bWVudCogdGh1bWIgPSBzbGlkZXJUaHVtYkVsZW1lbnRPZihlbGVtZW50KCkpOwpAQCAtMjM3LDcg
KzIzNyw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoZWxlbWVudCgpLT5zaGFkb3coKSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBlbGVt
ZW50KCktPmRvY3VtZW50KCk7CiAgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhU
TUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IGQ2M2Y3ZWY4YWMzM2M0NDI4MTM2NDA4YzRhNGQ4NjU4
ZTZlOGU2NjYuLjlhM2IyNWFiYTcyNTViZTJkMzNiNWNmZjYzMTAxMWFiYzAxNzM5YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTIyMSw3ICsyMjEs
NyBAQCBib29sIFRleHRGaWVsZElucHV0VHlwZTo6c2hvdWxkSGF2ZVNwaW5CdXR0b24oKSBjb25z
dAogCiB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgQVNTRVJUKGVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoZWxlbWVu
dCgpLT5zaGFkb3coKSk7CiAKICAgICBBU1NFUlQoIW1faW5uZXJUZXh0KTsKICAgICBBU1NFUlQo
IW1faW5uZXJCbG9jayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcAppbmRleCBmZWU5OTFkOTFiODQzZDcwMjBlZDBkYTM1MTkyM2U0Mjg2
ZDlhZjM0Li43ZjFmMWQ1YzBkNzA0NzQzYjlhYWI4OTk1ZDk4MTUxMzE0MzNkNjI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAg
LTM1OCw3ICszNTgsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRl
ckVsZW1lbnRPZihOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKLSAgICBBU1NFUlQo
bm9kZS0+dG9JbnB1dEVsZW1lbnQoKS0+aGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQobm9k
ZS0+dG9JbnB1dEVsZW1lbnQoKS0+c2hhZG93KCkpOwogICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9
IG5vZGUtPnRvSW5wdXRFbGVtZW50KCktPnNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAg
ICAgQVNTRVJUKHNoYWRvdyk7CiAgICAgTm9kZSogbGltaXRlciA9IHNoYWRvdy0+Zmlyc3RDaGls
ZCgpLT5sYXN0Q2hpbGQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCmluZGV4IDYxMDMwNzcwZjE3MmU4OGZlNGVhOWQ3NWYxOTQxYWJlYzRmNmYw
NDEuLjg5OTZmNjZlMWIwZTM2YzI0NmZkOTM3YWNmMDM0ZWE0ODRjNzczMzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMzQwLDkgKzM0
MCwxMSBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRv
SWRNYXAqIG5vZGVzTWFwKQogICAgICAgICAgICAgdW5iaW5kKGNvbnRlbnREb2N1bWVudCwgbm9k
ZXNNYXApOwogICAgIH0KIAotICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVt
ZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgZm9yIChTaGFkb3dSb290KiBy
b290ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJv
b3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIHVuYmluZChy
b290LCBub2Rlc01hcCk7CisgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkgeworICAgICAg
ICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdG9FbGVtZW50KG5vZGUpLT5zaGFkb3coKSkg
eworICAgICAgICAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gc2hhZG93LT55b3VuZ2VzdFNo
YWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKQorICAgICAg
ICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMTIyNiw5ICsxMjI4LDExIEBAIFBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yTm9kZShOb2RlKiBuCiAgICAgICAgICAgICBpZiAoZG9jKQogICAgICAgICAgICAgICAgIHZh
bHVlLT5zZXRDb250ZW50RG9jdW1lbnQoYnVpbGRPYmplY3RGb3JOb2RlKGRvYywgMCwgbm9kZXNN
YXApKTsKICAgICAgICAgfQotICAgICAgICBpZiAoZWxlbWVudC0+aGFzU2hhZG93Um9vdCgpKSB7
CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93ID0gZWxlbWVudC0+c2hhZG93KCk7Cisg
ICAgICAgIGlmIChzaGFkb3cpIHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJy
YXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gPiBzaGFkb3dSb290cyA9IFR5cGVCdWlsZGVyOjpB
cnJheTxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgIGZv
ciAoU2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdy0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7
IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKICAgICAgICAgICAgICAgICBzaGFkb3dS
b290cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5vZGUocm9vdCwgMCwgbm9kZXNNYXApKTsKICAg
ICAgICAgICAgIHZhbHVlLT5zZXRTaGFkb3dSb290cyhzaGFkb3dSb290cyk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCA5MjkyYWIxMGQ1OTkz
ODI5ZTFkYWQ4MTA3MGMwOWM3ZTk4YzhkNjc3Li40MWY5Nzk1MjM5NjA4Y2EzZDU1MDhiNDBkZWMz
ZTYzNTBkYTliMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBA
IC02NSwxMSArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotc3RhdGljIGlubGluZSBib29sIGlzU2hh
ZG93SG9zdChjb25zdCBOb2RlKiBub2RlKQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlz
RWxlbWVudE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKLX0KLQog
c3RhdGljIGlubGluZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyRnJvbShjb25zdCBO
b2RlKiBub2RlKQogewogICAgIHJldHVybiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIobm9kZSwg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpEb05vdENyb3NzVXBwZXJCb3VuZGFyeSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpbGVVcGxvYWRDb250cm9sLmNw
cAppbmRleCBmZDYyNjMwYThjMTlhNTQyMWRhNTg4ZTQwNDA5MDVmYmYzMDliMjdhLi5kYjRlNmM1
Y2RjNzQwM2FmM2EyNmFjMTdlZjVmNTM0ZmVmODY4ZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKQEAgLTIyMyw3ICsy
MjMsNyBAQCBIVE1MSW5wdXRFbGVtZW50KiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDo6dXBsb2Fk
QnV0dG9uKCkgY29uc3QKIHsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwogCi0gICAgQVNTRVJUKGlucHV0LT5oYXNT
aGFkb3dSb290KCkpOworICAgIEFTU0VSVChpbnB1dC0+c2hhZG93KCkpOwogCiAgICAgTm9kZSog
YnV0dG9uTm9kZSA9IGlucHV0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpLT5maXJzdENo
aWxkKCk7CiAgICAgcmV0dXJuIGJ1dHRvbk5vZGUgJiYgYnV0dG9uTm9kZS0+aXNIVE1MRWxlbWVu
dCgpICYmIGJ1dHRvbk5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpID8gc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KGJ1dHRvbk5vZGUpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVs
ZW1lbnQuY3BwCmluZGV4IGQ3NzRlNWRlNTZlMTVkMTdhOThkYWZmYmMyMGQ0MGY2NjgwODA5NjYu
LjQ1NWU4Mjc4ZDFmZWI0YjhmYTkyMGY4NzcwM2Y4ZDRlNzQwMTFlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU1ZHVFJlZkVs
ZW1lbnQ6OnVwZGF0ZVJlZmVyZW5jZWRUZXh0KCkKICAgICBpZiAoRWxlbWVudCogdGFyZ2V0ID0g
U1ZHVVJJUmVmZXJlbmNlOjp0YXJnZXRFbGVtZW50RnJvbUlSSVN0cmluZyhocmVmKCksIGRvY3Vt
ZW50KCkpKQogICAgICAgICB0ZXh0Q29udGVudCA9IHRhcmdldC0+dGV4dENvbnRlbnQoKTsKIAot
ICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVChzaGFkb3coKSk7CiAgICAg
U2hhZG93Um9vdCogcm9vdCA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCk7CiAgICAgaWYg
KCFyb290LT5maXJzdENoaWxkKCkpCiAgICAgICAgIHJvb3QtPmFwcGVuZENoaWxkKFNWR1NoYWRv
d1RleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0ZXh0Q29udGVudCksIEFTU0VSVF9OT19FWENFUFRJ
T04pOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdl
dCgpCiAgICAgU3RyaW5nIGVtcHR5Q29udGVudDsKICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZSA9
IDA7CiAKLSAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoc2hhZG93KCkp
OwogICAgIE5vZGUqIGNvbnRhaW5lciA9IHNoYWRvdygpLT5vbGRlc3RTaGFkb3dSb290KCktPmZp
cnN0Q2hpbGQoKTsKICAgICBpZiAoY29udGFpbmVyKQogICAgICAgICBjb250YWluZXItPnNldFRl
eHRDb250ZW50KGVtcHR5Q29udGVudCwgaWdub3JlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCA3ZGNjZWEzMDk2M2Q5ODhiMTk2NGI4Y2I0NDM2ZmM4OWJkYTJjYjcyLi4x
OWM5NDYxYmIxYmI2OWQwMDA4YWJmMTU0ZTNjNjRkZTRhMzg3N2FlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMDIsOCArMzAyLDggQEAgSW50ZXJuYWxzOjpTaGFkb3dS
b290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6OmVuc3VyZVNoYWRvd1Jvb3Qo
RWxlbWUKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgaWYgKGhvc3QtPmhhc1NoYWRv
d1Jvb3QoKSkKLSAgICAgICAgcmV0dXJuIGhvc3QtPnNoYWRvdygpLT55b3VuZ2VzdFNoYWRvd1Jv
b3QoKTsKKyAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gaG9zdC0+c2hhZG93KCkpCisg
ICAgICAgIHJldHVybiBzaGFkb3ctPnlvdW5nZXN0U2hhZG93Um9vdCgpOwogCiAgICAgcmV0dXJu
IFNoYWRvd1Jvb3Q6OmNyZWF0ZShob3N0LCBlYykuZ2V0KCk7CiB9CkBAIC0zMjIsMTAgKzMyMiw5
IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50ZXJu
YWxzOjp5b3VuZ2VzdFNoYWRvd1Jvb3QoRWxlCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAot
ICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IHJldHVybiBob3N0LT5zaGFkb3coKS0+eW91bmdlc3RTaGFkb3dSb290KCk7CisgICAgaWYgKEVs
ZW1lbnRTaGFkb3cqIHNoYWRvdyA9IGhvc3QtPnNoYWRvdygpKQorICAgICAgICByZXR1cm4gc2hh
ZG93LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogSW50ZXJuYWxz
OjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRlcm5hbHM6Om9sZGVzdFNo
YWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zMzUsMTAgKzMz
NCw5IEBAIEludGVybmFsczo6U2hhZG93Um9vdElmU2hhZG93RE9NRW5hYmxlZE9yTm9kZSogSW50
ZXJuYWxzOjpvbGRlc3RTaGFkb3dSb290KEVsZW1lCiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
IAotICAgIGlmICghaG9zdC0+aGFzU2hhZG93Um9vdCgpKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIHJldHVybiBob3N0LT5zaGFkb3coKS0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIGlmIChF
bGVtZW50U2hhZG93KiBzaGFkb3cgPSBob3N0LT5zaGFkb3coKSkKKyAgICAgICAgcmV0dXJuIHNo
YWRvdy0+b2xkZXN0U2hhZG93Um9vdCgpOworICAgIHJldHVybiAwOwogfQogCiBJbnRlcm5hbHM6
OlNoYWRvd1Jvb3RJZlNoYWRvd0RPTUVuYWJsZWRPck5vZGUqIEludGVybmFsczo6eW91bmdlclNo
YWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTM2MSwxNyArMzU5
LDYgQEAgSW50ZXJuYWxzOjpTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBJbnRl
cm5hbHM6Om9sZGVyU2hhZG93Um9vdChOb2RlKgogICAgIHJldHVybiB0b1NoYWRvd1Jvb3Qoc2hh
ZG93KS0+b2xkZXJTaGFkb3dSb290KCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpyZW1vdmVTaGFk
b3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghaG9z
dCkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChob3N0LT5oYXNTaGFkb3dSb290KCkpCi0gICAgICAgIGhvc3QtPnNo
YWRvdygpLT5yZW1vdmVBbGxTaGFkb3dSb290cygpOwotfQotCiBFbGVtZW50KiBJbnRlcm5hbHM6
OmluY2x1ZGVyRm9yKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
bm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTA3ZjRiYzUyZGU1Yjg5
YzZkMTRkNDliYTk4YTc4MjJhYzVlNTQ3OS4uNzlhMWM3NDAxY2UwOWZmOWQwMGU3MjJkMTNkMDNm
NmUyYmNlYjkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03NSw3ICs3NSw2
IEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiBvbGRl
c3RTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dS
b290SWZTaGFkb3dET01FbmFibGVkT3JOb2RlKiB5b3VuZ2VyU2hhZG93Um9vdChOb2RlKiBzaGFk
b3csIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTaGFkb3dSb290SWZTaGFkb3dET01FbmFibGVkT3JO
b2RlKiBvbGRlclNoYWRvd1Jvb3QoTm9kZSogc2hhZG93LCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCByZW1vdmVTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBFbGVtZW50KiBpbmNsdWRlckZvcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFN0cmlu
ZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQ
dHI8RWxlbWVudD4gY3JlYXRlQ29udGVudEVsZW1lbnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2Rl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzQ3NjU3MWFiMjRlNGFl
OTU2MjNlODA5NGRjOGFkMGY1MTI5MjFjOC4uZWM2OWJlM2I2YTMyM2RhOTYzZTA0MjUwMWQ0YTJi
MmFhNTNiMmU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDksNyAr
NDksNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgTm9kZSB5b3VuZ2VyU2hhZG93Um9vdChp
biBOb2RlIHJvb3QpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICBFbGVt
ZW50IGluY2x1ZGVyRm9yKGluIE5vZGUgbm9kZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAg
ICAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoaW4gRWxlbWVudCBob3N0KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIERPTVN0cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVs
ZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250
ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dS
b290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCmluZGV4IDZlMWM1MmM2NWY4YzYyYWJlNThiMmViZmI4ZjBjYTJmOWUxN2FiNGUuLmFi
NWMzNDU0Y2Q4OTQxYWY4YzZjNGJjOTMyMWU3YTlmZjZmYTVhODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKQEAgLTE3OCw3ICsxNzgsNiBAQCBFWFBPUlRTCiAgICAgICAgID9nZXRFbGVtZW50QnlJ
ZEBUcmVlU2NvcGVAV2ViQ29yZUBAUUJFUEFWRWxlbWVudEAyQEFCVkF0b21pY1N0cmluZ0BXVEZA
QEBaCiAgICAgICAgID9nZXRIaWdobGlnaHRASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBR
QkVYUEFVSGlnaGxpZ2h0QDJAQFoKICAgICAgICAgP2dldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJh
bmdlQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQV9OUEFWRWxlbWVudEAyQFBCVlJhbmdlQDJAQUFJ
MkBaCi0gICAgICAgID9oYXNTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAg
ICAgICA/aW5wdXRUYWdASFRNTE5hbWVzQFdlYkNvcmVAQDNWUXVhbGlmaWVkTmFtZUAyQEIKICAg
ICAgICAgP2luc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlQEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkBXZWJDb3JlQEBDQVBBVkluc3RydW1lbnRpbmdBZ2VudHNAMkBQQVZQYWdlQDJAQFoKICAgICAg
ICAgP2lzQ1NTRXhjbHVzaW9uc0VuYWJsZWRAUnVudGltZUVuYWJsZWRGZWF0dXJlc0BXZWJDb3Jl
QEAwX05BCkBAIC0yMDEsNyArMjAwLDYgQEAgRVhQT1JUUwogICAgICAgICA/cGFpbnRDb250cm9s
VGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cGxhY2Vob2xkZXJTaG91
bGRCZVZpc2libGVASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgog
ICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVA
QFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJASEhf
TkBaCi0gICAgICAgID9yZW1vdmVBbGxTaGFkb3dSb290c0BFbGVtZW50U2hhZG93QFdlYkNvcmVA
QFFBRVhYWgogICAgICAgICA/cmVtb3ZlQFN0cmluZ0BXVEZAQFFBRVhJSEBaCiAgICAgICAgID9y
ZXZlcnNlRmluZEBTdHJpbmdJbXBsQFdURkBAUUFFSV9XSUBaCiAgICAgICAgID9zX2Zyb250ZW5k
Q291bnRlckBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25AV2ViQ29yZUBAMEhBCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggYjZlMGYzNmQ0M2MzYzExMTVjMDA5N2RmMThjOTc5
MWNhNDNiNWNmZC4uYWM1NTJhZTIxYWE3OTgyNGYxN2Y2YjhiMDdjNWQ2ZThkMzE3NjYzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTcxLDcgKzE3MSw2IEBAIEVYUE9S
VFMKICAgICAgICAgP2dldEVsZW1lbnRCeUlkQFRyZWVTY29wZUBXZWJDb3JlQEBRQkVQQVZFbGVt
ZW50QDJAQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2dldEhpZ2hsaWdodEBJbnNw
ZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFCRVhQQVVIaWdobGlnaHRAMkBAWgogICAgICAgICA/
Z2V0TG9jYXRpb25BbmRMZW5ndGhGcm9tUmFuZ2VAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBX05Q
QVZFbGVtZW50QDJAUEJWUmFuZ2VAMkBBQUkyQFoKLSAgICAgICAgP2hhc1NoYWRvd1Jvb3RARWxl
bWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9pbnB1dFRhZ0BIVE1MTmFtZXNAV2ViQ29y
ZUBAM1ZRdWFsaWZpZWROYW1lQDJAQgogICAgICAgICA/aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBh
Z2VASW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQFdlYkNvcmVAQENBUEFWSW5zdHJ1bWVudGluZ0Fn
ZW50c0AyQFBBVlBhZ2VAMkBAWgogICAgICAgICA/aXNDU1NFeGNsdXNpb25zRW5hYmxlZEBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzQFdlYkNvcmVAQDBfTkEKQEAgLTE5NCw3ICsxOTMsNiBAQCBFWFBP
UlRTCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFha
CiAgICAgICAgID9wbGFjZWhvbGRlclNob3VsZEJlVmlzaWJsZUBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExl
bmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNv
cmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKLSAgICAgICAgP3JlbW92ZUFsbFNoYWRvd1Jv
b3RzQEVsZW1lbnRTaGFkb3dAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZW1vdmVAU3RyaW5n
QFdURkBAUUFFWElIQFoKICAgICAgICAgP3JldmVyc2VGaW5kQFN0cmluZ0ltcGxAV1RGQEBRQUVJ
X1dJQFoKICAgICAgICAgP3NfZnJvbnRlbmRDb3VudGVyQEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkBXZWJDb3JlQEAwSEEKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDQ1NDhhZTBlYzQzZDRh
NDk5YzdhNWMzODVkMzIwODczNWMyOTNlZjEuLjZlZWJlZWIwNGUxZmJlN2E0MWVlYjk0MDdlN2I2
NmFiYjdjNjQ5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
KysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNDMsNyArNDMsNiBAQCBf
Wk43V2ViQ29yZTEwdG9Eb2N1bWVudEVOM0pTQzdKU1ZhbHVlRTsKIF9aTjdXZWJDb3JlMTBDbGll
bnRSZWN0QzFFdjsKIF9aTjdXZWJDb3JlMTBDbGllbnRSZWN0QzFFUktOU183SW50UmVjdEU7CiBf
Wk43V2ViQ29yZTEwU2hhZG93Um9vdDZjcmVhdGVFUE5TXzdFbGVtZW50RVJpOwotX1pON1dlYkNv
cmUxM0VsZW1lbnRTaGFkb3cyMHJlbW92ZUFsbFNoYWRvd1Jvb3RzRXY7CiBfWk43V2ViQ29yZTEx
RXZlbnRUYXJnZXQxN3RvR2VuZXJhdGVkU3RyZWFtRXY7CiBfWk43V2ViQ29yZTExRXZlbnRUYXJn
ZXQ4dG9TdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTJUZXh0SXRlcmF0b3IyNnJhbmdlRnJvbUxvY2F0
aW9uQW5kTGVuZ3RoRVBOU183RWxlbWVudEVpaWI7CkBAIC05OSw3ICs5OCw2IEBAIF9aTks3V2Vi
Q29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyNnBsYWNlaG9sZGVyU2hvdWxkQmVWaXNp
YmxlRXY7CiBfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZKU05v
ZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29wZUNo
YWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDZzaGFkb3dFdjsKLV9aTks3V2ViQ29yZTdF
bGVtZW50MTNoYXNTaGFkb3dSb290RXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2Owog
X1pOSzdXZWJDb3JlOERvY3VtZW50OHNldHRpbmdzRXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0
dmlld0V2OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkzNmRkY2ZjMmQ4MTBhYTRmZDEwMTMxOTA0MGRmMTk0NDdlZGZmMzUu
LjlmMGI4NGJjZDFmZjA3MGNhMWU5MDAxMDBmZmJkYzA5NGNhN2M5NTAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMi0wNS0wOSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBFbGVtZW50U2hhZG93IHNob3VsZCBtaW5pbWl6ZSB0aGUgdXNhZ2Ugb2YgIlNo
YWRvd1Jvb3QiIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisg
ICAgICAgIFJlbW92ZWQgdGVzdHMgY2FzZXMgd2hpY2ggZXhlcmNpc2Ugc2hhZG93IHJvb3QgcmVt
b3ZhbHMuCisgICAgICAgIFN1Y2ggZnVuY3Rpb25hbGl0eSB3YXMgb25seSBhdmFpbGFibGUgZnJv
bSBJbnRlcm5hbHMgb2JqZWN0CisgICAgICAgIGFuZCBpdCBtYWRlIGxpdHRsZSBzZW5zZSB0byB0
ZXN0IGl0LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3Zl
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50
LW1vdmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRl
ZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9k
eW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
c2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1s
OgorCiAyMDEyLTA1LTEwICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQ3Jhc2ggaW4gRm9udENhY2hlOjpyZWxlYXNlRm9udERhdGEgZHVlIHRvIGluZmlu
aXRlIGZsb2F0IHNpemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLWV4cGVjdGVkLnR4dAppbmRleCAwNGVmYjhiZWMx
MGFlZGZkZjlkNmQwMTczMDcyNWJiYjJkNTFhNmE0Li42NDg0OThjMDU1YTkyZTQ5NzAzZTAwZjhj
NmQxODVkMDNiODE1NzkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LW1vdmUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtbW92ZS1leHBlY3RlZC50eHQKQEAgLTYsMTAgKzYs
NiBAQCB0ZXN0UmVtb3ZlQ29udGVudFRvUmVjYWxjMgogUEFTUwogdGVzdFJlbW92ZUNvbnRlbnRB
bmRSZW1vdmVMaWdodENoaWxkcmVuCiBQQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNo
YWRvd1Jvb3QxCi1QQVNTCi10ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QyCi1Q
QVNTCiB0ZXN0QXBwZW5kQ29udGVudDEKIFBBU1MKIHRlc3RBcHBlbmRDb250ZW50MgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1tb3ZlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRt
bAppbmRleCBjNTQ1NWY0YzMwYzk3Y2QxY2I0Mzk2NzdkY2I0MzM3YjYyOGYwZTMyLi5mN2JjOWJi
ZmZkZjQzMDQyYTQ5ZTdlNzViZmJiYTVjNGQyNDc3YmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW1vdmUuaHRtbApAQCAtMTI2LDg2
ICsxMjYsNiBAQCBmdW5jdGlvbiB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZUxpZ2h0Q2hpbGRy
ZW4oY2FsbElmRG9uZSkgewogICAgIHNldFRpbWVvdXQoZiwgMCk7CiB9CiAKLWZ1bmN0aW9uIHRl
c3RSZW1vdmVTaGFkb3dSb290KGNhbGxJZkRvbmUpIHsKLSAgICB2YXIgcm9vdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotCi0gICAgLy8gQ3JlYXRlIGxpZ2h0IHRyZWUuCi0gICAg
cm9vdC5pbm5lckhUTUwgPSAiPHNwYW4+TElHSFQ8L3NwYW4+IjsKLQotICAgIC8vIENyZWF0ZSBz
aGFkb3cgdHJlZS4KLSAgICB2YXIgY29udGVudCA9IGNyZWF0ZUNvbnRlbnRXaXRoU2VsZWN0KCdz
cGFuJywgJ0ZBTExCQUNLJyk7Ci0gICAgdmFyIHNyID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jv
b3Qocm9vdCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJCRUZPUkUi
KSk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY29udGVudCk7Ci0gICAgc3IuYXBwZW5kQ2hpbGQoY3Jl
YXRlU3BhbldpdGhUZXh0KCJBRlRFUiIpKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQocm9vdCk7Ci0KLSAgICB2YXIgZiA9IChm
dW5jdGlvbihyb290LCBjb250ZW50LCBjYWxsSWZEb25lKSB7Ci0gICAgICAgIHJldHVybiBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIGludGVybmFscy5yZW1vdmVTaGFkb3dSb290KHJvb3QpOwot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5p
bm5lckhUTUwgPSAiPGRpdj48c3Bhbj5MSUdIVDwvc3Bhbj48L2Rpdj4iOwotICAgICAgICAgICAg
Y2FsbElmRG9uZSgpOwotICAgICAgICB9OwotICAgIH0pKHJvb3QsIGNvbnRlbnQsIGNhbGxJZkRv
bmUpOwotCi0gICAgc2V0VGltZW91dChmLCAwKTsKLX0KLQotZnVuY3Rpb24gdGVzdFJlbW92ZUNv
bnRlbnRBbmRSZW1vdmVTaGFkb3dSb290MShjYWxsSWZEb25lKSB7Ci0gICAgdmFyIHJvb3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLQotICAgIC8vIENyZWF0ZSBsaWdodCB0cmVl
LgotICAgIHJvb3QuaW5uZXJIVE1MID0gIjxzcGFuPkxJR0hUPC9zcGFuPiI7Ci0KLSAgICAvLyBD
cmVhdGUgc2hhZG93IHRyZWUuCi0gICAgdmFyIGNvbnRlbnQgPSBjcmVhdGVDb250ZW50V2l0aFNl
bGVjdCgnc3BhbicsICdGQUxMQkFDSycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVT
aGFkb3dSb290KHJvb3QpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgi
QkVGT1JFIikpOwotICAgIHNyLmFwcGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFy
IGYgPSAoZnVuY3Rpb24ocm9vdCwgY29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1
cm4gZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQoY29udGVudCk7Ci0gICAgICAgICAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290
KTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVy
JykuaW5uZXJIVE1MID0gIjxkaXY+PHNwYW4+TElHSFQ8L3NwYW4+PC9kaXY+IjsKLSAgICAgICAg
ICAgIGNhbGxJZkRvbmUoKTsKLSAgICAgICAgfTsKLSAgICB9KShyb290LCBjb250ZW50LCBjYWxs
SWZEb25lKTsKLQotICAgIHNldFRpbWVvdXQoZiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RSZW1v
dmVDb250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIoY2FsbElmRG9uZSkgewotICAgIHZhciByb290
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0KLSAgICAvLyBDcmVhdGUgbGlnaHQg
dHJlZS4KLSAgICByb290LmlubmVySFRNTCA9ICI8c3Bhbj5MSUdIVCAxPC9zcGFuPjxzcGFuIGNs
YXNzPSdjMSc+TElHSFQgMjwvc3Bhbj4iOwotCi0gICAgLy8gQ3JlYXRlIHNoYWRvdyB0cmVlLgot
ICAgIHZhciBjb250ZW50ID0gY3JlYXRlQ29udGVudFdpdGhTZWxlY3QoJy5jMScsICdGQUxMQkFD
SycpOwotICAgIHZhciBzciA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHJvb3QpOwotICAg
IHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiQkVGT1JFIikpOwotICAgIHNyLmFw
cGVuZENoaWxkKGNvbnRlbnQpOwotICAgIHNyLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiQUZURVIiKSk7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRh
aW5lcicpLmFwcGVuZENoaWxkKHJvb3QpOwotCi0gICAgdmFyIGYgPSAoZnVuY3Rpb24ocm9vdCwg
Y29udGVudCwgY2FsbElmRG9uZSkgewotICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBjb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY29udGVudCk7Ci0gICAgICAg
ICAgICBpbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChyb290KTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0gIjxkaXY+
PHNwYW4+TElHSFQgMTwvc3Bhbj48c3Bhbj5MSUdIVCAyPC9zcGFuPjwvZGl2PiI7Ci0gICAgICAg
ICAgICBjYWxsSWZEb25lKCk7Ci0gICAgICAgIH07Ci0gICAgfSkocm9vdCwgY29udGVudCwgY2Fs
bElmRG9uZSk7Ci0KLSAgICBzZXRUaW1lb3V0KGYsIDApOwotfQotCiBmdW5jdGlvbiB0ZXN0QXBw
ZW5kQ29udGVudDEoY2FsbElmRG9uZSkgewogICAgIHZhciByb290ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CiAKQEAgLTM4Niw4ICszMDYsNiBAQCB2YXIgdGVzdEZ1bmNzID0gWwog
ICAgIHRlc3RSZW1vdmVDb250ZW50VG9SZWNhbGMxLAogICAgIHRlc3RSZW1vdmVDb250ZW50VG9S
ZWNhbGMyLAogICAgIHRlc3RSZW1vdmVDb250ZW50QW5kUmVtb3ZlTGlnaHRDaGlsZHJlbiwKLSAg
ICB0ZXN0UmVtb3ZlQ29udGVudEFuZFJlbW92ZVNoYWRvd1Jvb3QxLAotICAgIHRlc3RSZW1vdmVD
b250ZW50QW5kUmVtb3ZlU2hhZG93Um9vdDIsCiAgICAgdGVzdEFwcGVuZENvbnRlbnQxLAogICAg
IHRlc3RBcHBlbmRDb250ZW50MiwKICAgICB0ZXN0QXBwZW5kQ29udGVudDMsCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ct
cm9vdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNh
bGx5LWNyZWF0ZWQtc2hhZG93LXJvb3QtZXhwZWN0ZWQuaHRtbAppbmRleCA4YjIxMGRiNDQxNGE0
ODYxMzRjZWU5MjgwNmM3YTUzMzIyZDU4ZDc5Li5jNzAzN2E2NTE3MjA4NzY4ZmU0ZjFlNjdhMzIw
YjlkOTdhMDI4MTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHlu
YW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9vdC1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxseS1jcmVhdGVkLXNoYWRvdy1yb290LWV4cGVj
dGVkLmh0bWwKQEAgLTUsNiArNSw1IEBAIFRoaXMgdGVzdHMgdGhhdCBkeW5hbWljYWxseSBjcmVh
dGVkIFNoYWRvd1Jvb3Qgc2hvdWxkIGJlIHJlbmRlcmVkIGNvcnJlY3RseS4KIENhbiBvbmx5IHJ1
biB3aXRoaW4gRFJULgogPC9kaXY+CiA8ZGl2PlNoYWRvdyBzaG91bGQgYmUgcmVuZGVyZWQuPC9k
aXY+Ci08ZGl2PkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRv
dyByb290IGlzIHJlbW92ZWQuPC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFkb3ctcm9v
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2R5bmFtaWNhbGx5LWNyZWF0ZWQt
c2hhZG93LXJvb3QuaHRtbAppbmRleCA0NTU4MmMyMmUyYjYxMzgzNWY5YjAxYzdhYTI5NzZiOGVm
YzM5NjIyLi43NDYzYTY5NTk2M2UwMDNjMjMxZmM1ZDVmMGI5NDc5YTcwNjQ0ODhmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZHluYW1pY2FsbHktY3JlYXRlZC1zaGFk
b3ctcm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9keW5hbWljYWxs
eS1jcmVhdGVkLXNoYWRvdy1yb290Lmh0bWwKQEAgLTUsMTcgKzUsMTEgQEAgVGhpcyB0ZXN0cyB0
aGF0IGR5bmFtaWNhbGx5IGNyZWF0ZWQgU2hhZG93Um9vdCBzaG91bGQgYmUgcmVuZGVyZWQgY29y
cmVjdGx5LgogQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQuCiA8L2Rpdj4KIDxkaXYgaWQ9Imhvc3Qx
Ij5MaWdodCBjaGlsZHJlbiBzaG91bGQgbm90IGJlIHJlbmRlcmVkLjwvZGl2PgotPGRpdiBpZD0i
aG9zdDIiPkxpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSByZW5kZXJlZCBhZnRlciBhIHNoYWRvdyBy
b290IGlzIHJlbW92ZWQuPC9kaXY+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICB2YXIgaG9zdDEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjaG9zdDEnKTsKICAgICB2
YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0MSk7
CiAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hh
ZG93IHNob3VsZCBiZSByZW5kZXJlZC4nKSk7Ci0KLSAgICB2YXIgaG9zdDIgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjaG9zdDInKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IHdpbmRvdy5pbnRl
cm5hbHMuZW5zdXJlU2hhZG93Um9vdChob3N0Mik7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnU2hhZG93IHNob3VsZCBub3QgYmUgcmVuZGVyZWQu
JykpOwotICAgIHdpbmRvdy5pbnRlcm5hbHMucmVtb3ZlU2hhZG93Um9vdChob3N0Mik7CiB9CiA8
L3NjcmlwdD4KIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBlY3Rl
ZC50eHQKaW5kZXggMGNlY2UxZWE4MDBkNDliYjdkMzcxYjgzMTlkMjVjNmVhMTZiY2I2NS4uNTdl
YjM5ZmNjM2ZlNjk2MzIxYmIyOGM0YTg5NDg3ZTYyOTZlZTU0MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1j
YW4tYWNjZXNzLXNoYWRvdy1leHBlY3RlZC50eHQKQEAgLTYsNyArNiw2IEBAIFBBU1MgZXhjZXB0
aW9uQ29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9BQ0NFU1NfRVJSCiBQQVNTIGludGVybmFs
cy5zaGFkb3dSb290KHApIGlzIG51bGwKIFBBU1Mgc2hhZG93Lm5vZGVOYW1lIGlzICIjc2hhZG93
LXJvb3QiCiBQQVNTIHNoYWRvdyA9PT0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QocCkgaXMgdHJ1ZQot
UEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChrZXlnZW4pIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2xheW91dC10ZXN0cy1jYW4tYWNjZXNzLXNoYWRv
dy5odG1sCmluZGV4IDM5YmE5YjhjMmZhYTQ2MmFmM2U1N2Y4MjIyMTNlZGY1NDZiNDZlNjEuLmVj
NzY1NzljMzYzMDBlMGRmODViOTllNTM3NzgxMzQyZjhlOTU0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9sYXlvdXQtdGVzdHMtY2FuLWFjY2Vzcy1zaGFkb3cuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbGF5b3V0LXRlc3RzLWNhbi1hY2Nl
c3Mtc2hhZG93Lmh0bWwKQEAgLTM1LDEwICszNSw2IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgc2hhZG93ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QocCk7CiAgICAgc2hvdWxk
QmUoJ3NoYWRvdy5ub2RlTmFtZScsICciI3NoYWRvdy1yb290IicpOwogICAgIHNob3VsZEJlKCdz
aGFkb3cgPT09IGludGVybmFscy5zaGFkb3dSb290KHApJywgJ3RydWUnKTsKLQotICAgIC8vIENh
biBzdHJpcCBlbGVtZW50cyBvZiBzaGFkb3dzCi0gICAgaW50ZXJuYWxzLnJlbW92ZVNoYWRvd1Jv
b3Qoa2V5Z2VuKTsKLSAgICBzaG91bGRCZSgnaW50ZXJuYWxzLnNoYWRvd1Jvb3Qoa2V5Z2VuKScs
ICdudWxsJyk7CiB9CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9tdWx0aXBsZS1zaGFkb3dyb290LWV4cGVjdGVkLnR4dAppbmRleCBh
YTNkZWRkYzg1NTZjZDdjZTJiZDc1YjYxNTUzZmM1MGU1ODc3NWYzLi4yMmNjMmZhODVmNTllN2Rl
M2M3ZjU3YmU3NWY4ODczNDQ2YjUxMzIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QtZXhwZWN0ZWQudHh0CkBAIC0x
MCw3ICsxMCw2IEBAIFBBU1MgaW50ZXJuYWxzLnNoYWRvd1Jvb3QoZGl2KSBpcyBzaGFkb3dSb290
MgogUEFTUyBpbnRlcm5hbHMub2xkZXJTaGFkb3dSb290KHNoYWRvd1Jvb3QyKSBpcyBzaGFkb3dS
b290MQogUEFTUyBpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIGlzIHNoYWRvd1Jvb3QzCiBQQVNT
IGludGVybmFscy5vbGRlclNoYWRvd1Jvb3Qoc2hhZG93Um9vdDMpIGlzIHNoYWRvd1Jvb3QyCi1Q
QVNTIGludGVybmFscy5zaGFkb3dSb290KGRpdikgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvbXVsdGlwbGUtc2hhZG93cm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L211bHRpcGxlLXNoYWRvd3Jvb3QuaHRtbAppbmRleCAwNGJmODMzZWM5ODk0
NzZiMjYyOTk2YmEyM2QzOTZhY2VjZTdlMTIyLi4yYTZiNTI4MGVkZDFhODdiMjQ3MDI4MTc1ZGQ5
YTY4NjNkNDI2MTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvbXVs
dGlwbGUtc2hhZG93cm9vdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9t
dWx0aXBsZS1zaGFkb3dyb290Lmh0bWwKQEAgLTIxLDkgKzIxLDYgQEAgdmFyIHNoYWRvd1Jvb3Qz
ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoZGl2KTsKIHNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93
Um9vdChkaXYpIiwgInNoYWRvd1Jvb3QzIik7CiBzaG91bGRCZSgiaW50ZXJuYWxzLm9sZGVyU2hh
ZG93Um9vdChzaGFkb3dSb290MykiLCAic2hhZG93Um9vdDIiKTsKIAotaW50ZXJuYWxzLnJlbW92
ZVNoYWRvd1Jvb3QoZGl2KTsKLXNob3VsZEJlKCJpbnRlcm5hbHMuc2hhZG93Um9vdChkaXYpIiwg
Im51bGwiKTsKLQogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2OTE5ZGFkYWQ2NmMyMDg1
MThmMTNhOTBkMTI1YmM0MTVjZmQ3OWQ2Li44OTkzNzQzYTU2ZjI0ZGVmNzJkZDhkMjQ3ZGU3MGU3
ODk5OWEyNzQ5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDUtMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgRWxlbWVudFNoYWRvdyBzaG91bGQgbWluaW1pemUgdGhlIHVzYWdlIG9mICJT
aGFkb3dSb290IiBuYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTk3MAorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKwor
ICAgICAgICBSZW1vdmVkIHN5bWJvbHMgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cworCisgICAgICAg
ICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wNS0xMCAgWmFuIERv
YmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHVEtdIEVOQUJMRV9J
RlJBTUVfU0VBTUxFU1Mgc3VwcG9ydAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>