<?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>160919</bug_id>
          
          <creation_ts>2016-08-16 16:14:54 -0700</creation_ts>
          <short_desc>Add support for ShadowRoot.mode attribute</short_desc>
          <delta_ts>2016-08-16 17:27:17 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://dom.spec.whatwg.org/#interface-shadowroot</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148695</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220639</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-16 16:14:54 -0700</bug_when>
    <thetext>Add support for ShadowRoot.mode attribute:
- https://dom.spec.whatwg.org/#interface-shadowroot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220645</commentid>
    <comment_count>1</comment_count>
      <attachid>286230</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-16 16:26:23 -0700</bug_when>
    <thetext>Created attachment 286230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220657</commentid>
    <comment_count>2</comment_count>
      <attachid>286230</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-16 16:54:45 -0700</bug_when>
    <thetext>Comment on attachment 286230
Patch

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

&gt; Source/WebCore/dom/ShadowRoot.idl:37
&gt; +enum ShadowRootMode { &quot;user-agent&quot;, &quot;closed&quot;, &quot;open&quot; };

Maybe we should add a comment that &quot;user-agent&quot; is a WebKit extension that should never be exposed to the Web?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220659</commentid>
    <comment_count>3</comment_count>
      <attachid>286234</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-16 16:56:42 -0700</bug_when>
    <thetext>Created attachment 286234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220679</commentid>
    <comment_count>4</comment_count>
      <attachid>286234</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 17:27:12 -0700</bug_when>
    <thetext>Comment on attachment 286234
Patch

Clearing flags on attachment: 286234

Committed r204543: &lt;http://trac.webkit.org/changeset/204543&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220680</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 17:27:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286230</attachid>
            <date>2016-08-16 16:26:23 -0700</date>
            <delta_ts>2016-08-16 16:56:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160919-20160816162436.patch</filename>
            <type>text/plain</type>
            <size>22354</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkzYWFjNWE0ZjgzYjEy
ZmYzYTZhMjUwNGQyOGFiYWVkNzRhNzcxYy4uODZjYWYzZDhjZDAxMzVjMGYxY2VhODY2ZWI0NjQ4
ODEwNGQ0MTI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE2LTA4LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNo
YWRvd1Jvb3QubW9kZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTaGFkb3dSb290Lm1vZGUgYXR0cmlidXRl
OgorICAgICAgICAtIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jaW50ZXJmYWNlLXNoYWRv
d3Jvb3QKKworICAgICAgICBUZXN0OiBmYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2RlLmh0
bWwKKworICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMpOgorICAg
ICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpiaW5kaW5nc09mZnNldFBhcmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjphZGRTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmF0dGFjaFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFk
b3dSb290Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXNlckFnZW50
U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1cmVVc2VyQWdlbnRT
aGFkb3dSb290KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjppc1VuY2xvc2VkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjphc3NpZ25lZFNs
b3RGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc0luVXNlckFnZW50U2hh
ZG93VHJlZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
OjpzdHlsZVJlc29sdmVyKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgKiBkb20vU2xvdEFzc2lnbm1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2xvdEFzc2lnbm1lbnQ6OmRpZENoYW5nZVNsb3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
dW1tYXJ5RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93Um9vdFR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bW92ZU91
dE9mVXNlckFnZW50U2hhZG93VHJlZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2VsZWN0aW9uUHNldWRv
U3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpyZW5kZXJlckZvclNjcm9sbGJhcik6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29ycmVzcG9uZGluZ1VzZUVsZW1l
bnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2hhZG93Um9vdFR5cGUpOgorCiAyMDE2LTA4LTE2ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWlncmF0ZSBsaW5lIGJyZWFr
aW5nIGNvZGUgZnJvbSBpbnRzIHRvIE9wdGlvbmFsPHVuc2lnbmVkPnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IGI4NjMwYzM0ODhkNzgyYjBjZDdl
MTBkNTgxNWRmZWEzOWQ3NmI2YTYuLmM1ZGNkOWNhNzc1ZjA3ZjI3ZmE3MjA0NTEyN2M1MGNkYWY1
NTJjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApA
QCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRj
aGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0CiAjZW5kaWYKIAogICAg
IGF1dG8qIHNoYWRvd1Jvb3QgPSBtX2VsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKLSAg
ICBpZiAoc2hhZG93Um9vdCAmJiBzaGFkb3dSb290LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlw
ZTo6VXNlckFnZW50KSB7CisgICAgaWYgKHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+bW9kZSgp
ID09IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCkgewogICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIHBzZXVkb0lkID0gbV9lbGVtZW50LnNoYWRvd1BzZXVkb0lkKCk7CiAgICAgICAgIGlm
ICghcHNldWRvSWQuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNG
b3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0LT5zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMocHNl
dWRvSWQuaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCBmNmRlYmZiOGI4MWQ1MGYyNDk5Njc0YmQ4NWY4OTA4
OTU4MjJkYTAwLi4xMTUwZDQ4YjYxMGEzNmEyZjgwNTdjOGNhOGU3MjlhNTVmYWQzMTY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtMjc4LDcgKzI3OCw3IEBAIFNl
bGVjdG9yQ2hlY2tlcjo6TWF0Y2hSZXN1bHQgU2VsZWN0b3JDaGVja2VyOjptYXRjaFJlY3Vyc2l2
ZWx5KENoZWNraW5nQ29udGV4dCYKICAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5lbGVtZW50
LT5zaGFkb3dQc2V1ZG9JZCgpICE9IGNvbnRleHQuc2VsZWN0b3ItPnZhbHVlKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBNYXRjaFJlc3VsdDo6ZmFpbHMoTWF0Y2g6OlNlbGVjdG9yRmFp
bHNMb2NhbGx5KTsKIAotICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5pc1dl
YktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSAmJiByb290LT50eXBlKCkgIT0gU2hhZG93Um9vdDo6
VHlwZTo6VXNlckFnZW50KQorICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5p
c1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSAmJiByb290LT5tb2RlKCkgIT0gU2hhZG93Um9v
dDo6TW9kZTo6VXNlckFnZW50KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1
bHQ6OmZhaWxzKE1hdGNoOjpTZWxlY3RvckZhaWxzTG9jYWxseSk7CiAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxzKE1hdGNoOjpTZWxl
Y3RvckZhaWxzTG9jYWxseSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTI3MGQzODdkZWE1
MDI3YTNjYjc2ZjJkNmViMGIyM2E4OTMwNDNhMy4uNDQ0OTJlOWFjMTQ2MmViODdhZDkwY2RlNTYz
ZDE2OWY2ODM4ZTdmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODEwLDcgKzgxMCw3IEBA
IEVsZW1lbnQqIEVsZW1lbnQ6OmJpbmRpbmdzT2Zmc2V0UGFyZW50KCkKICAgICBFbGVtZW50KiBl
bGVtZW50ID0gb2Zmc2V0UGFyZW50KCk7CiAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5p
c0luU2hhZG93VHJlZSgpKQogICAgICAgICByZXR1cm4gZWxlbWVudDsKLSAgICByZXR1cm4gZWxl
bWVudC0+Y29udGFpbmluZ1NoYWRvd1Jvb3QoKS0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5cGU6
OlVzZXJBZ2VudCA/IG51bGxwdHIgOiBlbGVtZW50OworICAgIHJldHVybiBlbGVtZW50LT5jb250
YWluaW5nU2hhZG93Um9vdCgpLT5tb2RlKCkgPT0gU2hhZG93Um9vdDo6TW9kZTo6VXNlckFnZW50
ID8gbnVsbHB0ciA6IGVsZW1lbnQ7CiB9CiAKIEVsZW1lbnQqIEVsZW1lbnQ6Om9mZnNldFBhcmVu
dCgpCkBAIC0xNjgxLDcgKzE2ODEsNyBAQCB2b2lkIEVsZW1lbnQ6OmFkZFNoYWRvd1Jvb3QoUmVm
PFNoYWRvd1Jvb3Q+JiYgbmV3U2hhZG93Um9vdCkKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUHVzaFNoYWRvd1Jvb3QoKnRoaXMsIHNoYWRvd1Jvb3QpOwogCi0gICAgaWYgKHNo
YWRvd1Jvb3QudHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5cGU6OlVzZXJBZ2VudCkKKyAgICBpZiAo
c2hhZG93Um9vdC5tb2RlKCkgPT0gU2hhZG93Um9vdDo6TW9kZTo6VXNlckFnZW50KQogICAgICAg
ICBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KCZzaGFkb3dSb290KTsKIH0KIApAQCAtMTc2MCw3
ICsxNzYwLDcgQEAgUmVmUHRyPFNoYWRvd1Jvb3Q+IEVsZW1lbnQ6OmF0dGFjaFNoYWRvdyhjb25z
dCBTaGFkb3dSb290SW5pdCYgaW5pdCwgRXhjZXB0aW9uQ28KICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogCi0gICAgYXV0byBzaGFkb3cgPSBTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1l
bnQoKSwgaW5pdC5tb2RlID09IFNoYWRvd1Jvb3RNb2RlOjpPcGVuID8gU2hhZG93Um9vdDo6VHlw
ZTo6T3BlbiA6IFNoYWRvd1Jvb3Q6OlR5cGU6OkNsb3NlZCk7CisgICAgYXV0byBzaGFkb3cgPSBT
aGFkb3dSb290OjpjcmVhdGUoZG9jdW1lbnQoKSwgaW5pdC5tb2RlID09IFNoYWRvd1Jvb3RNb2Rl
OjpPcGVuID8gU2hhZG93Um9vdDo6TW9kZTo6T3BlbiA6IFNoYWRvd1Jvb3Q6Ok1vZGU6OkNsb3Nl
ZCk7CiAgICAgYWRkU2hhZG93Um9vdChzaGFkb3cuY29weVJlZigpKTsKICAgICByZXR1cm4gV1RG
TW92ZShzaGFkb3cpOwogfQpAQCAtMTc3MSw3ICsxNzcxLDcgQEAgU2hhZG93Um9vdCogRWxlbWVu
dDo6c2hhZG93Um9vdEZvckJpbmRpbmdzKEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QKICAg
ICBpZiAoIXJvb3QpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKHJvb3QtPnR5
cGUoKSAhPSBTaGFkb3dSb290OjpUeXBlOjpPcGVuKSB7CisgICAgaWYgKHJvb3QtPm1vZGUoKSAh
PSBTaGFkb3dSb290OjpNb2RlOjpPcGVuKSB7CiAgICAgICAgIGlmICghSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLT53b3JsZCgpLnNo
YWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KQEAgLTE3ODIsNyArMTc4Miw3IEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6OnNoYWRvd1Jvb3RG
b3JCaW5kaW5ncyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0CiBTaGFkb3dSb290KiBFbGVt
ZW50Ojp1c2VyQWdlbnRTaGFkb3dSb290KCkgY29uc3QKIHsKICAgICBpZiAoU2hhZG93Um9vdCog
c2hhZG93Um9vdCA9IHRoaXMtPnNoYWRvd1Jvb3QoKSkgewotICAgICAgICBBU1NFUlQoc2hhZG93
Um9vdC0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5cGU6OlVzZXJBZ2VudCk7CisgICAgICAgIEFT
U0VSVChzaGFkb3dSb290LT5tb2RlKCkgPT0gU2hhZG93Um9vdDo6TW9kZTo6VXNlckFnZW50KTsK
ICAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3Q7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpA
QCAtMTc5Miw3ICsxNzkyLDcgQEAgU2hhZG93Um9vdCYgRWxlbWVudDo6ZW5zdXJlVXNlckFnZW50
U2hhZG93Um9vdCgpCiB7CiAgICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IHVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKICAgICBpZiAoIXNoYWRvd1Jvb3QpIHsKLSAgICAgICAgYWRkU2hhZG93Um9v
dChTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1lbnQoKSwgU2hhZG93Um9vdDo6VHlwZTo6VXNlckFn
ZW50KSk7CisgICAgICAgIGFkZFNoYWRvd1Jvb3QoU2hhZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50
KCksIFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCkpOwogICAgICAgICBzaGFkb3dSb290ID0g
dXNlckFnZW50U2hhZG93Um9vdCgpOwogICAgIH0KICAgICByZXR1cm4gKnNoYWRvd1Jvb3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKaW5kZXggNGI5MDU5MWZhZGUwMWE4Y2YyZTBiNDhhZjc0OWE5YWZkYjdiYjE3
Mi4uYTI4MzYyNDY1YTM3NTg3MzQ3YjQyMzMzYjBiNTRmZmU5MTg2N2Y5NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgYm9vbCBOb2RlOjppc1VuY2xvc2VkTm9kZShjb25z
dCBOb2RlJiBvdGhlck5vZGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8v
IHRyZWVTY29wZVRoYXRDYW5BY2Nlc3NPdGhlck5vZGUgaXMgYSBzaGFkb3ctaW5jbHVkaW5nIGlu
Y2x1c2l2ZSBhbmNlc3RvciBvZiB0aGlzIG5vZGUuCiAgICAgICAgIH0KICAgICAgICAgYXV0byYg
cm9vdCA9IHRyZWVTY29wZVRoYXRDYW5BY2Nlc3NPdGhlck5vZGUtPnJvb3ROb2RlKCk7Ci0gICAg
ICAgIGlmIChpczxTaGFkb3dSb290Pihyb290KSAmJiBkb3duY2FzdDxTaGFkb3dSb290Pihyb290
KS50eXBlKCkgIT0gU2hhZG93Um9vdDo6VHlwZTo6T3BlbikKKyAgICAgICAgaWYgKGlzPFNoYWRv
d1Jvb3Q+KHJvb3QpICYmIGRvd25jYXN0PFNoYWRvd1Jvb3Q+KHJvb3QpLm1vZGUoKSAhPSBTaGFk
b3dSb290OjpNb2RlOjpPcGVuKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC0xMTEx
LDcgKzExMTEsNyBAQCBIVE1MU2xvdEVsZW1lbnQqIE5vZGU6OmFzc2lnbmVkU2xvdCgpIGNvbnN0
CiBIVE1MU2xvdEVsZW1lbnQqIE5vZGU6OmFzc2lnbmVkU2xvdEZvckJpbmRpbmdzKCkgY29uc3QK
IHsKICAgICBhdXRvKiBzaGFkb3dSb290ID0gcGFyZW50U2hhZG93Um9vdCgqdGhpcyk7Ci0gICAg
aWYgKHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5cGU6
Ok9wZW4pCisgICAgaWYgKHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRv
d1Jvb3Q6Ok1vZGU6Ok9wZW4pCiAgICAgICAgIHJldHVybiBzaGFkb3dSb290LT5maW5kQXNzaWdu
ZWRTbG90KCp0aGlzKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTExMjksNyArMTEyOSw3
IEBAIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudEluQ29tcG9zZWRUcmVlKCkgY29uc3QKIGJv
b2wgTm9kZTo6aXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSBjb25zdAogewogICAgIGF1dG8qIHNo
YWRvd1Jvb3QgPSBjb250YWluaW5nU2hhZG93Um9vdCgpOwotICAgIHJldHVybiBzaGFkb3dSb290
ICYmIHNoYWRvd1Jvb3QtPnR5cGUoKSA9PSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQ7Cisg
ICAgcmV0dXJuIHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3Q6
Ok1vZGU6OlVzZXJBZ2VudDsKIH0KIAogTm9kZSogTm9kZTo6bm9uQm91bmRhcnlTaGFkb3dUcmVl
Um9vdE5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IDgxODVkYzM1ZDMwZTQw
ZDczNTczMmYyMDI4MWY3MjYzZGM3MjY4OTguLjJhYmFkYmIzODliNmRkNDc5MWE0ZDQwMzNkMjgx
MWUwOTgwNjdkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgc3RydWN0IFNhbWVTaXplQXNTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQs
IHB1YmxpYyBUcmVlU2NvcGUgewogCiBDT01QSUxFX0FTU0VSVChzaXplb2YoU2hhZG93Um9vdCkg
PT0gc2l6ZW9mKFNhbWVTaXplQXNTaGFkb3dSb290KSwgc2hhZG93cm9vdF9zaG91bGRfc3RheV9z
bWFsbCk7CiAKLVNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQmIGRvY3VtZW50LCBUeXBl
IHR5cGUpCitTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50JiBkb2N1bWVudCwgTW9kZSB0
eXBlKQogICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkK
ICAgICAsIFRyZWVTY29wZSgqdGhpcywgZG9jdW1lbnQpCiAgICAgLCBtX3R5cGUodHlwZSkKQEAg
LTYwLDcgKzYwLDcgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCYgZG9jdW1lbnQs
IFR5cGUgdHlwZSkKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQmIGRvY3VtZW50LCBz
dGQ6OnVuaXF1ZV9wdHI8U2xvdEFzc2lnbm1lbnQ+JiYgc2xvdEFzc2lnbm1lbnQpCiAgICAgOiBE
b2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVhdGVTaGFkb3dSb290KQogICAgICwgVHJlZVNj
b3BlKCp0aGlzLCBkb2N1bWVudCkKLSAgICAsIG1fdHlwZShUeXBlOjpVc2VyQWdlbnQpCisgICAg
LCBtX3R5cGUoTW9kZTo6VXNlckFnZW50KQogICAgICwgbV9zbG90QXNzaWdubWVudChXVEZNb3Zl
KHNsb3RBc3NpZ25tZW50KSkKIHsKIH0KQEAgLTgyLDcgKzgyLDcgQEAgU2hhZG93Um9vdDo6flNo
YWRvd1Jvb3QoKQogCiBTdHlsZVJlc29sdmVyJiBTaGFkb3dSb290OjpzdHlsZVJlc29sdmVyKCkK
IHsKLSAgICBpZiAobV90eXBlID09IFR5cGU6OlVzZXJBZ2VudCkKKyAgICBpZiAobV90eXBlID09
IE1vZGU6OlVzZXJBZ2VudCkKICAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkudXNlckFnZW50U2hh
ZG93VHJlZVN0eWxlUmVzb2x2ZXIoKTsKIAogICAgIGlmICghbV9zdHlsZVJlc29sdmVyKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCA3Y2RjOTRjYTIyYTJjYTVlNjBmNjk1NmRlZTkyYTU3
ZDA1Y2M5MTVmLi5jY2YxYzNlNDMzNmYzZGU3ZDFhMjhkMDJjOTRjOThlYmFmNjNjMTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTQyLDEzICs0MiwxMyBAQCBjbGFzcyBTbG90QXNzaWdu
bWVudDsKIAogY2xhc3MgU2hhZG93Um9vdCBmaW5hbCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50
LCBwdWJsaWMgVHJlZVNjb3BlIHsKIHB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50
OF90IHsKKyAgICBlbnVtIGNsYXNzIE1vZGUgOiB1aW50OF90IHsKICAgICAgICAgVXNlckFnZW50
ID0gMCwKICAgICAgICAgQ2xvc2VkLAogICAgICAgICBPcGVuLAogICAgIH07CiAKLSAgICBzdGF0
aWMgUmVmPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFR5cGUgdHlwZSkK
KyAgICBzdGF0aWMgUmVmPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIE1v
ZGUgdHlwZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYWRvd1Jvb3Qo
ZG9jdW1lbnQsIHR5cGUpKTsKICAgICB9CkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKIAogICAg
IEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKSBjb25zdDsKIAotICAgIFR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIE1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQogCiAgICAgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRlOwogCkBA
IC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8Tm9kZSo+KiBhc3NpZ25l
ZE5vZGVzRm9yU2xvdChjb25zdCBIVE1MU2xvdEVsZW1lbnQmKTsKIAogcHJvdGVjdGVkOgotICAg
IFNoYWRvd1Jvb3QoRG9jdW1lbnQmLCBUeXBlKTsKKyAgICBTaGFkb3dSb290KERvY3VtZW50Jiwg
TW9kZSk7CiAKICAgICBTaGFkb3dSb290KERvY3VtZW50Jiwgc3RkOjp1bmlxdWVfcHRyPFNsb3RB
c3NpZ25tZW50PiYmKTsKIApAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPE5v
ZGU+IGNsb25lTm9kZUludGVybmFsKERvY3VtZW50JiwgQ2xvbmluZ09wZXJhdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIHsgZmFsc2UgfTsKLSAgICBU
eXBlIG1fdHlwZSB7IFR5cGU6OlVzZXJBZ2VudCB9OworICAgIE1vZGUgbV90eXBlIHsgTW9kZTo6
VXNlckFnZW50IH07CiAKICAgICBFbGVtZW50KiBtX2hvc3QgeyBudWxscHRyIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmlkbAppbmRleCBkMTdhYWMwODAzMzUxMDg0N2I5ZTkyMDMwMjQ1N2Mz
Y2Y0MDUzYmEwLi42YjFmOTA5YWUyNTIzMzg2ZWQyMmNmMTMyNmFkNDc1NjU1NjEzOTJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0yNyw4ICsyNywxMSBAQAogICAgIEVuYWJsZWRB
dFJ1bnRpbWU9U2hhZG93RE9NLAogICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0CiBdIGludGVyZmFj
ZSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNoYWRvd1Jvb3RNb2RlICAgbW9kZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCAg
ICAgICAgICBhY3RpdmVFbGVtZW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50ICAg
ICAgICAgIGhvc3Q7CiAKICAgICBbVHJlYXROdWxsQXM9RW1wdHlTdHJpbmcsIFNldHRlclJhaXNl
c0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0cmluZyBpbm5lckhUTUw7CiB9OworCitlbnVtIFNo
YWRvd1Jvb3RNb2RlIHsgInVzZXItYWdlbnQiLCAiY2xvc2VkIiwgIm9wZW4iIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Nsb3RBc3NpZ25tZW50LmNwcAppbmRleCAwMGFiNTdmMTY1M2I5MTcwZjMyYzI1Zjhl
ODg4MDc3ZTU3NGJkYjQ1Li44Yzg1N2I0NjQ3MjY4MzIwYTBiNGM1MjBkNTg2NmRiZmY1MzEyOTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFNsb3RBc3NpZ25tZW50OjpkaWRDaGFuZ2VTbG90KGNvbnN0IEF0b21pY1N0cmluZyYg
c2xvdEF0dHJWYWx1ZSwgQ2hhbmdlVHlwZQogICAgICAgICBtX3Nsb3RBc3NpZ25tZW50c0lzVmFs
aWQgPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoc2hhZG93Um9vdC50eXBlKCkgPT0gU2hhZG93
Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAgIGlmIChzaGFkb3dSb290Lm1vZGUoKSA9PSBTaGFk
b3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlY3Vyc2l2
ZWx5RmlyZVNsb3RDaGFuZ2VFdmVudCgqc2xvdEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGI0M2U4ZTM4OTYyYzk4NzA4ZDQ2ZjQ3MjEy
ODg4MWE4MDViOTdlZDYuLmExNmVkMzg4ODZiODY4MWNmNmZhZjA3Y2Y2YzlkOTk1MTEyN2Y1NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHAKQEAgLTQwLDcg
KzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIFJlZjxIVE1MU3VtbWFyeUVsZW1l
bnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWY8SFRNTFN1bW1hcnlFbGVtZW50PiBz
dW1tYXJ5ID0gYWRvcHRSZWYoKm5ldyBIVE1MU3VtbWFyeUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKLSAgICBzdW1tYXJ5LT5hZGRTaGFkb3dSb290KFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1
bWVudCwgU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KSk7CisgICAgc3VtbWFyeS0+YWRkU2hh
ZG93Um9vdChTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1lbnQsIFNoYWRvd1Jvb3Q6Ok1vZGU6OlVz
ZXJBZ2VudCkpOwogICAgIHJldHVybiBzdW1tYXJ5OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAyZDNlMDNhZjRkZDlhMzQ5ZGNj
YTdmYTVmMmMwZTIxY2RjY2YxNDk4Li4zMTg0ZTJmYWJmYmY1MDJhZDVlM2M3ZjQ0NDhjOWRiMjJh
OWQzOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKQEAgLTEyODAsMTQgKzEyODAsMTQgQEAgc3RhdGljIGJvb2wgcHNldWRvRWxlbWVudFR5
cGUoUHNldWRvSWQgcHNldWRvSWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6UHNldWQKICAg
ICB9CiB9CiAKLXN0YXRpYyBJbnNwZWN0b3I6OlByb3RvY29sOjpET006OlNoYWRvd1Jvb3RUeXBl
IHNoYWRvd1Jvb3RUeXBlKFNoYWRvd1Jvb3Q6OlR5cGUgdHlwZSkKK3N0YXRpYyBJbnNwZWN0b3I6
OlByb3RvY29sOjpET006OlNoYWRvd1Jvb3RUeXBlIHNoYWRvd1Jvb3RUeXBlKFNoYWRvd1Jvb3Q6
Ok1vZGUgbW9kZSkKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFNoYWRvd1Jvb3Q6
OlR5cGU6OlVzZXJBZ2VudDoKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIFNoYWRvd1Jv
b3Q6Ok1vZGU6OlVzZXJBZ2VudDoKICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkRPTTo6U2hhZG93Um9vdFR5cGU6OlVzZXJBZ2VudDsKLSAgICBjYXNlIFNoYWRvd1Jvb3Q6OlR5
cGU6OkNsb3NlZDoKKyAgICBjYXNlIFNoYWRvd1Jvb3Q6Ok1vZGU6OkNsb3NlZDoKICAgICAgICAg
cmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6U2hhZG93Um9vdFR5cGU6OkNsb3NlZDsK
LSAgICBjYXNlIFNoYWRvd1Jvb3Q6OlR5cGU6Ok9wZW46CisgICAgY2FzZSBTaGFkb3dSb290OjpN
b2RlOjpPcGVuOgogICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpTaGFk
b3dSb290VHlwZTo6T3BlbjsKICAgICB9CiAKQEAgLTE0MDcsNyArMTQwNyw3IEBAIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVj
dEZvck5vZGUoTm9kZSoKICAgICAgICAgdmFsdWUtPnNldFZhbHVlKGF0dHJpYnV0ZS52YWx1ZSgp
KTsKICAgICB9IGVsc2UgaWYgKGlzPFNoYWRvd1Jvb3Q+KCpub2RlKSkgewogICAgICAgICBTaGFk
b3dSb290JiBzaGFkb3dSb290ID0gZG93bmNhc3Q8U2hhZG93Um9vdD4oKm5vZGUpOwotICAgICAg
ICB2YWx1ZS0+c2V0U2hhZG93Um9vdFR5cGUoc2hhZG93Um9vdFR5cGUoc2hhZG93Um9vdC50eXBl
KCkpKTsKKyAgICAgICAgdmFsdWUtPnNldFNoYWRvd1Jvb3RUeXBlKHNoYWRvd1Jvb3RUeXBlKHNo
YWRvd1Jvb3QubW9kZSgpKSk7CiAgICAgfQogCiAgICAgLy8gTmVlZCB0byBlbmFibGUgQVggdG8g
Z2V0IHRoZSBjb21wdXRlZCByb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RS
ZXN1bHQuY3BwCmluZGV4IGNjYTIzZTVjMzQ3ZWRiODAyZmU5NWU4MzJiZWNlYjY5NDcxYjI3Yzku
LjA0NTcyNWM1Y2Y4NDg0ZGZhZWU2MDk4ZDkxYzhhYWNiOTQxMWQxMzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0
aWMgTm9kZSogbW92ZU91dE9mVXNlckFnZW50U2hhZG93VHJlZShOb2RlJiBub2RlKQogewogICAg
IGlmIChub2RlLmlzSW5TaGFkb3dUcmVlKCkpIHsKICAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBub2RlLmNvbnRhaW5pbmdTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlmIChyb290
LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAgICAgICAgICAgaWYg
KHJvb3QtPm1vZGUoKSA9PSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJvb3QtPmhvc3QoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBiOTFmZTAwYmQ3NTMwMDMwMTdk
ZTg5MzNiMmQ4Mjk2OTI0MjhmYzI0Li40OGI0MzVmYThlYjkzNjNhZWU1M2RiNmU0MWE4ZTY1NWNj
NTQ0NWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBA
IC0xNTgzLDcgKzE1ODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlbmRlckVs
ZW1lbnQ6OnNlbGVjdGlvblBzZXVkb1N0eWxlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+Y29udGFpbmluZ1No
YWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAocm9vdC0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5
cGU6OlVzZXJBZ2VudCkgeworICAgICAgICBpZiAocm9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3Q6
Ok1vZGU6OlVzZXJBZ2VudCkgewogICAgICAgICAgICAgaWYgKEVsZW1lbnQqIHNoYWRvd0hvc3Qg
PSBlbGVtZW50KCktPnNoYWRvd0hvc3QoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc2hhZG93
SG9zdC0+cmVuZGVyZXIoKS0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVl
c3QoU0VMRUNUSU9OKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IGYzOGNmMDk1ZDJhMGY5OGExMzI4Mjg2ZWYyYzdlYmRiYzI0YmZkNDYu
LjlkMzM2NjUyYjg4NjQxMjUyMTI5MWRiNzE1ODc5ZDVlMGI2ZTExMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzA5Niw3ICszMDk2LDcgQEAgc3RhdGlj
IGlubGluZSBSZW5kZXJFbGVtZW50KiByZW5kZXJlckZvclNjcm9sbGJhcihSZW5kZXJMYXllck1v
ZGVsT2JqZWN0JiByZW5kZXIKIHsKICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVy
LmVsZW1lbnQoKSkgewogICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IGVsZW1l
bnQtPmNvbnRhaW5pbmdTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlmIChzaGFkb3dSb290
LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAgICAgICAgICAgaWYg
KHNoYWRvd1Jvb3QtPm1vZGUoKSA9PSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKS0+cmVuZGVyZXIoKTsKICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBmYjc5YmQ5ZTI0YWM1
ZGRhODBiYWFiM2UwYzg3OWYwNjEyYmJlMjQzLi43NDJmMzg1NTgxYzkwMDZjYTQ2ZjBiMDQ3YTIw
YTFhMDRkNTZkNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC00MzgsNyArNDM4
LDcgQEAgU1ZHVXNlRWxlbWVudCogU1ZHRWxlbWVudDo6Y29ycmVzcG9uZGluZ1VzZUVsZW1lbnQo
KSBjb25zdAogICAgIGF1dG8qIHJvb3QgPSBjb250YWluaW5nU2hhZG93Um9vdCgpOwogICAgIGlm
ICghcm9vdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKHJvb3QtPnR5cGUoKSAh
PSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQpCisgICAgaWYgKHJvb3QtPm1vZGUoKSAhPSBT
aGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGF1dG8qIGhvc3QgPSByb290LT5ob3N0KCk7CiAgICAgaWYgKCFpczxTVkdVc2VFbGVtZW50Piho
b3N0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5ZDc1NjhmNzMxZmYw
Mjg1MTVlYzUyMjBiN2JjZTFhMTlhMjM0NGY2Li4yZDc0ZjBjYWExYzA0ZWI3ZmY3MmI1NzhhNTUw
MTZkODgzN2NhZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC04MjIs
MTIgKzgyMiwxMiBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzaGFkb3dSb290VHlwZShjb25zdCBOb2Rl
JiByb290LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgcmV0dXJuIFN0cmluZygp
OwogICAgIH0KIAotICAgIHN3aXRjaCAoZG93bmNhc3Q8U2hhZG93Um9vdD4ocm9vdCkudHlwZSgp
KSB7Ci0gICAgY2FzZSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQ6CisgICAgc3dpdGNoIChk
b3duY2FzdDxTaGFkb3dSb290Pihyb290KS5tb2RlKCkpIHsKKyAgICBjYXNlIFNoYWRvd1Jvb3Q6
Ok1vZGU6OlVzZXJBZ2VudDoKICAgICAgICAgcmV0dXJuIFN0cmluZygiVXNlckFnZW50U2hhZG93
Um9vdCIpOwotICAgIGNhc2UgU2hhZG93Um9vdDo6VHlwZTo6Q2xvc2VkOgorICAgIGNhc2UgU2hh
ZG93Um9vdDo6TW9kZTo6Q2xvc2VkOgogICAgICAgICByZXR1cm4gU3RyaW5nKCJDbG9zZWRTaGFk
b3dSb290Iik7Ci0gICAgY2FzZSBTaGFkb3dSb290OjpUeXBlOjpPcGVuOgorICAgIGNhc2UgU2hh
ZG93Um9vdDo6TW9kZTo6T3BlbjoKICAgICAgICAgcmV0dXJuIFN0cmluZygiT3BlblNoYWRvd1Jv
b3QiKTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyMTI2MGQwMDFiN2FmYjg1MWIwNTQ3ZjlhN2YyZmYwZTRhOTkyZGY1Li42MWU1NzJkZDc3MWY5
NGJmMTYyN2RhMGJmMDVkZDM2ZjlmOTc0NTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYt
MDgtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgU2hhZG93Um9vdC5tb2RlIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogZmFzdC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtbW9kZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LW1vZGUuaHRtbDogQWRk
ZWQuCisKKzIwMTYtMDgtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAg
ICAgICBET000OiBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIHNob3VsZCBpbmNsdWRlIG5vbiBTdHls
ZWRFbGVtZW50cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTQ3MTgKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNDIxZWZlYmM3OTli
MWIxNWNmYjMxMzcwODEwOWMwYmMxMmMyNGU2Yi4uMzYzYzg4NGQxODg4Yzk1MTM0NzE1ZmYwM2Mz
MGQ1ZmIwMDIyOWZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTYgQEAKIDIwMTYtMDgtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgU2hhZG93Um9vdC5tb2RlIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXM0MgdGVz
dCBub3cgdGhhdCBvbmUgbW9yZSBjaGVjayBpcyBwYXNzaW5nLgorCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dDoKKworMjAxNi0wOC0xNiAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCiAgICAgICAgIFJlLXN5bmMgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy5odG1s
IHdpdGggdXBzdHJlYW0KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MDkwMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20v
U2hhZG93Um9vdC1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRv
bS9TaGFkb3dSb290LW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NTIwYmJhMGU0ZDQ5
NDAzYmJhZmVlMTRiY2Q0ZmZmZDZkMzNmODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitUZXN0cyBzdXBwb3J0IGZvciBTaGFkb3dSb290Lm1vZGUgYXR0cmlidXRlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzaGFkb3dSb290MS5tb2RlIGlzICJv
cGVuIgorUEFTUyBzaGFkb3dSb290Mi5tb2RlIGlzICJjbG9zZWQiCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtbW9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MjUxMjdmMzI3
NWM0NDIxZThhMzU1NzY0ZTlmYjUxMTJiZjJkYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2RlLmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIHN1cHBvcnQgZm9yIFNoYWRvd1Jvb3QubW9kZSBhdHRyaWJ1dGUuIik7CisKK3ZhciBl
bGVtZW50MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwordmFyIHNoYWRvd1Jvb3Qx
ID0gZWxlbWVudDEuYXR0YWNoU2hhZG93KHsgbW9kZTogIm9wZW4iIH0pOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzaGFkb3dSb290MS5tb2RlIiwgIm9wZW4iKTsKKwordmFyIGVsZW1lbnQyID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cit2YXIgc2hhZG93Um9vdDIgPSBlbGVtZW50
Mi5hdHRhY2hTaGFkb3coeyBtb2RlOiAiY2xvc2VkIiB9KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygic2hhZG93Um9vdDIubW9kZSIsICJjbG9zZWQiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vaW50ZXJmYWNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAppbmRleCAy
NGE2Y2NiNTAyMDhkNmFkMjEyMTY5MjBkYmJlYmM4NmJmM2IwNzk2Li4zYTg1Y2VhZWJmOWQ1MTYx
ODg0OTI3NzExN2VmNjM1MmFiMDRjYTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZh
Y2VzLWV4cGVjdGVkLnR4dApAQCAtNzI1LDcgKzcyNSw3IEBAIFBBU1MgU2hhZG93Um9vdCBpbnRl
cmZhY2Ugb2JqZWN0IGxlbmd0aAogUEFTUyBTaGFkb3dSb290IGludGVyZmFjZSBvYmplY3QgbmFt
ZSAKIFBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBv
ZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCAKIFBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6
IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdz
ICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgCi1GQUlMIFNoYWRvd1Jvb3QgaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgbW9kZSBhc3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEg
cHJvcGVydHkgIm1vZGUiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFNoYWRvd1Jvb3Qg
aW50ZXJmYWNlOiBhdHRyaWJ1dGUgbW9kZSAKIFBBU1MgU2hhZG93Um9vdCBpbnRlcmZhY2U6IGF0
dHJpYnV0ZSBob3N0IAogUEFTUyBFbGVtZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlIG9iamVj
dCBsZW5ndGggCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286234</attachid>
            <date>2016-08-16 16:56:42 -0700</date>
            <delta_ts>2016-08-16 17:27:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160919-20160816165455.patch</filename>
            <type>text/plain</type>
            <size>22419</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkzYWFjNWE0ZjgzYjEy
ZmYzYTZhMjUwNGQyOGFiYWVkNzRhNzcxYy4uZDBmOGNhNWE4OTdlMjIzYzdhZjUxNzBkZDYwNTQx
MDY3MjIxODI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE2LTA4LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNo
YWRvd1Jvb3QubW9kZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3
YS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2hhZG93Um9vdC5tb2RlIGF0dHJpYnV0ZToK
KyAgICAgICAgLSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcvI2ludGVyZmFjZS1zaGFkb3dy
b290CisKKyAgICAgICAgVGVzdDogZmFzdC9zaGFkb3ctZG9tL1NoYWRvd1Jvb3QtbW9kZS5odG1s
CisKKyAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKToKKyAgICAg
ICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q2hlY2tlcjo6bWF0Y2hSZWN1cnNpdmVseSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YmluZGluZ3NPZmZzZXRQYXJlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWxlbWVudDo6YWRkU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjphdHRhY2hTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2hhZG93
Um9vdEZvckJpbmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVzZXJBZ2VudFNo
YWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlVXNlckFnZW50U2hh
ZG93Um9vdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6aXNVbmNsb3NlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6YXNzaWduZWRTbG90
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNJblVzZXJBZ2VudFNoYWRv
d1RyZWUpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
c3R5bGVSZXNvbHZlcik6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKiBk
b20vU2hhZG93Um9vdC5pZGw6CisgICAgICAgICogZG9tL1Nsb3RBc3NpZ25tZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNsb3RBc3NpZ25tZW50OjpkaWRDaGFuZ2VTbG90KToKKyAgICAgICAg
KiBodG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3Vt
bWFyeUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1Jvb3RUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUpOgorICAgICAgICAq
IHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1vdmVPdXRP
ZlVzZXJBZ2VudFNoYWRvd1RyZWUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvblBzZXVkb1N0
eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6cmVuZGVyZXJGb3JTY3JvbGxiYXIpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNoYWRvd1Jvb3RUeXBlKToKKwogMjAxNi0wOC0xNiAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgbGluZSBicmVha2lu
ZyBjb2RlIGZyb20gaW50cyB0byBPcHRpb25hbDx1bnNpZ25lZD5zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCBiODYzMGMzNDg4ZDc4MmIwY2Q3ZTEw
ZDU4MTVkZmVhMzlkNzZiNmE2Li5jNWRjZDljYTc3NWYwN2YyN2ZhNzIwNDUxMjdjNTBjZGFmNTUy
YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAg
LTE0OCw3ICsxNDgsNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hp
bmdSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdAogI2VuZGlmCiAKICAgICBh
dXRvKiBzaGFkb3dSb290ID0gbV9lbGVtZW50LmNvbnRhaW5pbmdTaGFkb3dSb290KCk7Ci0gICAg
aWYgKHNoYWRvd1Jvb3QgJiYgc2hhZG93Um9vdC0+dHlwZSgpID09IFNoYWRvd1Jvb3Q6OlR5cGU6
OlVzZXJBZ2VudCkgeworICAgIGlmIChzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPm1vZGUoKSA9
PSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpIHsKICAgICAgICAgY29uc3QgQXRvbWljU3Ry
aW5nJiBwc2V1ZG9JZCA9IG1fZWxlbWVudC5zaGFkb3dQc2V1ZG9JZCgpOwogICAgICAgICBpZiAo
IXBzZXVkb0lkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9y
TGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+c2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKHBzZXVk
b0lkLmltcGwoKSksIG1hdGNoUmVxdWVzdCwgcnVsZVJhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggZjZkZWJmYjhiODFkNTBmMjQ5OTY3NGJkODVmODkwODk1
ODIyZGEwMC4uMTE1MGQ0OGI2MTBhMzZhMmY4MDU3YzhjYThlNzI5YTU1ZmFkMzE2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCBTZWxl
Y3RvckNoZWNrZXI6Ok1hdGNoUmVzdWx0IFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2hSZWN1cnNpdmVs
eShDaGVja2luZ0NvbnRleHQmCiAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+
c2hhZG93UHNldWRvSWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gTWF0Y2hSZXN1bHQ6OmZhaWxzKE1hdGNoOjpTZWxlY3RvckZhaWxz
TG9jYWxseSk7CiAKLSAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+aXNXZWJL
aXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkgJiYgcm9vdC0+dHlwZSgpICE9IFNoYWRvd1Jvb3Q6OlR5
cGU6OlVzZXJBZ2VudCkKKyAgICAgICAgICAgICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+aXNX
ZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkgJiYgcm9vdC0+bW9kZSgpICE9IFNoYWRvd1Jvb3Q6
Ok1vZGU6OlVzZXJBZ2VudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0
OjpmYWlscyhNYXRjaDo6U2VsZWN0b3JGYWlsc0xvY2FsbHkpOwogICAgICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGNoUmVzdWx0OjpmYWlscyhNYXRjaDo6U2VsZWN0
b3JGYWlsc0xvY2FsbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDEyNzBkMzg3ZGVhNTAy
N2EzY2I3NmYyZDZlYjBiMjNhODkzMDQzYTMuLjQ0NDkyZTlhYzE0NjJlYjg3YWQ5MGNkZTU2M2Qx
NjlmNjgzOGU3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTgxMCw3ICs4MTAsNyBAQCBF
bGVtZW50KiBFbGVtZW50OjpiaW5kaW5nc09mZnNldFBhcmVudCgpCiAgICAgRWxlbWVudCogZWxl
bWVudCA9IG9mZnNldFBhcmVudCgpOwogICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+aXNJ
blNoYWRvd1RyZWUoKSkKICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7Ci0gICAgcmV0dXJuIGVsZW1l
bnQtPmNvbnRhaW5pbmdTaGFkb3dSb290KCktPnR5cGUoKSA9PSBTaGFkb3dSb290OjpUeXBlOjpV
c2VyQWdlbnQgPyBudWxscHRyIDogZWxlbWVudDsKKyAgICByZXR1cm4gZWxlbWVudC0+Y29udGFp
bmluZ1NoYWRvd1Jvb3QoKS0+bW9kZSgpID09IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCA/
IG51bGxwdHIgOiBlbGVtZW50OwogfQogCiBFbGVtZW50KiBFbGVtZW50OjpvZmZzZXRQYXJlbnQo
KQpAQCAtMTY4MSw3ICsxNjgxLDcgQEAgdm9pZCBFbGVtZW50OjphZGRTaGFkb3dSb290KFJlZjxT
aGFkb3dSb290PiYmIG5ld1NoYWRvd1Jvb3QpCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFB1c2hTaGFkb3dSb290KCp0aGlzLCBzaGFkb3dSb290KTsKIAotICAgIGlmIChzaGFk
b3dSb290LnR5cGUoKSA9PSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQpCisgICAgaWYgKHNo
YWRvd1Jvb3QubW9kZSgpID09IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCkKICAgICAgICAg
ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdCgmc2hhZG93Um9vdCk7CiB9CiAKQEAgLTE3NjAsNyAr
MTc2MCw3IEBAIFJlZlB0cjxTaGFkb3dSb290PiBFbGVtZW50OjphdHRhY2hTaGFkb3coY29uc3Qg
U2hhZG93Um9vdEluaXQmIGluaXQsIEV4Y2VwdGlvbkNvCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KIAotICAgIGF1dG8gc2hhZG93ID0gU2hhZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50
KCksIGluaXQubW9kZSA9PSBTaGFkb3dSb290TW9kZTo6T3BlbiA/IFNoYWRvd1Jvb3Q6OlR5cGU6
Ok9wZW4gOiBTaGFkb3dSb290OjpUeXBlOjpDbG9zZWQpOworICAgIGF1dG8gc2hhZG93ID0gU2hh
ZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50KCksIGluaXQubW9kZSA9PSBTaGFkb3dSb290TW9kZTo6
T3BlbiA/IFNoYWRvd1Jvb3Q6Ok1vZGU6Ok9wZW4gOiBTaGFkb3dSb290OjpNb2RlOjpDbG9zZWQp
OwogICAgIGFkZFNoYWRvd1Jvb3Qoc2hhZG93LmNvcHlSZWYoKSk7CiAgICAgcmV0dXJuIFdURk1v
dmUoc2hhZG93KTsKIH0KQEAgLTE3NzEsNyArMTc3MSw3IEBAIFNoYWRvd1Jvb3QqIEVsZW1lbnQ6
OnNoYWRvd1Jvb3RGb3JCaW5kaW5ncyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0CiAgICAg
aWYgKCFyb290KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChyb290LT50eXBl
KCkgIT0gU2hhZG93Um9vdDo6VHlwZTo6T3BlbikgeworICAgIGlmIChyb290LT5tb2RlKCkgIT0g
U2hhZG93Um9vdDo6TW9kZTo6T3BlbikgewogICAgICAgICBpZiAoIUpTQzo6anNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oc3RhdGUubGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+d29ybGQoKS5zaGFk
b3dSb290SXNBbHdheXNPcGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9
CkBAIC0xNzgyLDcgKzE3ODIsNyBAQCBTaGFkb3dSb290KiBFbGVtZW50OjpzaGFkb3dSb290Rm9y
QmluZGluZ3MoSlNDOjpFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAogU2hhZG93Um9vdCogRWxlbWVu
dDo6dXNlckFnZW50U2hhZG93Um9vdCgpIGNvbnN0CiB7CiAgICAgaWYgKFNoYWRvd1Jvb3QqIHNo
YWRvd1Jvb3QgPSB0aGlzLT5zaGFkb3dSb290KCkpIHsKLSAgICAgICAgQVNTRVJUKHNoYWRvd1Jv
b3QtPnR5cGUoKSA9PSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQpOworICAgICAgICBBU1NF
UlQoc2hhZG93Um9vdC0+bW9kZSgpID09IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCk7CiAg
ICAgICAgIHJldHVybiBzaGFkb3dSb290OwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTE3OTIsNyArMTc5Miw3IEBAIFNoYWRvd1Jvb3QmIEVsZW1lbnQ6OmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKQogewogICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB1c2VyQWdlbnRTaGFk
b3dSb290KCk7CiAgICAgaWYgKCFzaGFkb3dSb290KSB7Ci0gICAgICAgIGFkZFNoYWRvd1Jvb3Qo
U2hhZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50KCksIFNoYWRvd1Jvb3Q6OlR5cGU6OlVzZXJBZ2Vu
dCkpOworICAgICAgICBhZGRTaGFkb3dSb290KFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgp
LCBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpKTsKICAgICAgICAgc2hhZG93Um9vdCA9IHVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKTsKICAgICB9CiAgICAgcmV0dXJuICpzaGFkb3dSb290OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IDRiOTA1OTFmYWRlMDFhOGNmMmUwYjQ4YWY3NDlhOWFmZGI3YmIxNzIu
LmEyODM2MjQ2NWEzNzU4NzM0N2I0MjMzM2IwYjU0ZmZlOTE4NjdmOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTEwODcsNyArMTA4Nyw3IEBAIGJvb2wgTm9kZTo6aXNVbmNsb3NlZE5vZGUoY29uc3Qg
Tm9kZSYgb3RoZXJOb2RlKSBjb25zdAogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyB0
cmVlU2NvcGVUaGF0Q2FuQWNjZXNzT3RoZXJOb2RlIGlzIGEgc2hhZG93LWluY2x1ZGluZyBpbmNs
dXNpdmUgYW5jZXN0b3Igb2YgdGhpcyBub2RlLgogICAgICAgICB9CiAgICAgICAgIGF1dG8mIHJv
b3QgPSB0cmVlU2NvcGVUaGF0Q2FuQWNjZXNzT3RoZXJOb2RlLT5yb290Tm9kZSgpOwotICAgICAg
ICBpZiAoaXM8U2hhZG93Um9vdD4ocm9vdCkgJiYgZG93bmNhc3Q8U2hhZG93Um9vdD4ocm9vdCku
dHlwZSgpICE9IFNoYWRvd1Jvb3Q6OlR5cGU6Ok9wZW4pCisgICAgICAgIGlmIChpczxTaGFkb3dS
b290Pihyb290KSAmJiBkb3duY2FzdDxTaGFkb3dSb290Pihyb290KS5tb2RlKCkgIT0gU2hhZG93
Um9vdDo6TW9kZTo6T3BlbikKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMTExMSw3
ICsxMTExLDcgQEAgSFRNTFNsb3RFbGVtZW50KiBOb2RlOjphc3NpZ25lZFNsb3QoKSBjb25zdAog
SFRNTFNsb3RFbGVtZW50KiBOb2RlOjphc3NpZ25lZFNsb3RGb3JCaW5kaW5ncygpIGNvbnN0CiB7
CiAgICAgYXV0byogc2hhZG93Um9vdCA9IHBhcmVudFNoYWRvd1Jvb3QoKnRoaXMpOwotICAgIGlm
IChzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPnR5cGUoKSA9PSBTaGFkb3dSb290OjpUeXBlOjpP
cGVuKQorICAgIGlmIChzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPm1vZGUoKSA9PSBTaGFkb3dS
b290OjpNb2RlOjpPcGVuKQogICAgICAgICByZXR1cm4gc2hhZG93Um9vdC0+ZmluZEFzc2lnbmVk
U2xvdCgqdGhpcyk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC0xMTI5LDcgKzExMjksNyBA
QCBDb250YWluZXJOb2RlKiBOb2RlOjpwYXJlbnRJbkNvbXBvc2VkVHJlZSgpIGNvbnN0CiBib29s
IE5vZGU6OmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgY29uc3QKIHsKICAgICBhdXRvKiBzaGFk
b3dSb290ID0gY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKLSAgICByZXR1cm4gc2hhZG93Um9vdCAm
JiBzaGFkb3dSb290LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50OworICAg
IHJldHVybiBzaGFkb3dSb290ICYmIHNoYWRvd1Jvb3QtPm1vZGUoKSA9PSBTaGFkb3dSb290OjpN
b2RlOjpVc2VyQWdlbnQ7CiB9CiAKIE5vZGUqIE5vZGU6Om5vbkJvdW5kYXJ5U2hhZG93VHJlZVJv
b3ROb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCA4MTg1ZGMzNWQzMGU0MGQ3
MzU3MzJmMjAyODFmNzI2M2RjNzI2ODk4Li4yYWJhZGJiMzg5YjZkZDQ3OTFhNGQ0MDMzZDI4MTFl
MDk4MDY3ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IHN0cnVjdCBTYW1lU2l6ZUFzU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBw
dWJsaWMgVHJlZVNjb3BlIHsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFNoYWRvd1Jvb3QpID09
IHNpemVvZihTYW1lU2l6ZUFzU2hhZG93Um9vdCksIHNoYWRvd3Jvb3Rfc2hvdWxkX3N0YXlfc21h
bGwpOwogCi1TaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50JiBkb2N1bWVudCwgVHlwZSB0
eXBlKQorU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCYgZG9jdW1lbnQsIE1vZGUgdHlw
ZSkKICAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIENyZWF0ZVNoYWRvd1Jvb3QpCiAg
ICAgLCBUcmVlU2NvcGUoKnRoaXMsIGRvY3VtZW50KQogICAgICwgbV90eXBlKHR5cGUpCkBAIC02
MCw3ICs2MCw3IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQmIGRvY3VtZW50LCBU
eXBlIHR5cGUpCiBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50JiBkb2N1bWVudCwgc3Rk
Ojp1bmlxdWVfcHRyPFNsb3RBc3NpZ25tZW50PiYmIHNsb3RBc3NpZ25tZW50KQogICAgIDogRG9j
dW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29w
ZSgqdGhpcywgZG9jdW1lbnQpCi0gICAgLCBtX3R5cGUoVHlwZTo6VXNlckFnZW50KQorICAgICwg
bV90eXBlKE1vZGU6OlVzZXJBZ2VudCkKICAgICAsIG1fc2xvdEFzc2lnbm1lbnQoV1RGTW92ZShz
bG90QXNzaWdubWVudCkpCiB7CiB9CkBAIC04Miw3ICs4Miw3IEBAIFNoYWRvd1Jvb3Q6On5TaGFk
b3dSb290KCkKIAogU3R5bGVSZXNvbHZlciYgU2hhZG93Um9vdDo6c3R5bGVSZXNvbHZlcigpCiB7
Ci0gICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpVc2VyQWdlbnQpCisgICAgaWYgKG1fdHlwZSA9PSBN
b2RlOjpVc2VyQWdlbnQpCiAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLnVzZXJBZ2VudFNoYWRv
d1RyZWVTdHlsZVJlc29sdmVyKCk7CiAKICAgICBpZiAoIW1fc3R5bGVSZXNvbHZlcikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmgKaW5kZXggN2NkYzk0Y2EyMmEyY2E1ZTYwZjY5NTZkZWU5MmE1N2Qw
NWNjOTE1Zi4uY2NmMWMzZTQzMzZmM2RlN2QxYTI4ZDAyYzk0Yzk4ZWJhZjYzYzEzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oCkBAIC00MiwxMyArNDIsMTMgQEAgY2xhc3MgU2xvdEFzc2lnbm1l
bnQ7CiAKIGNsYXNzIFNoYWRvd1Jvb3QgZmluYWwgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCwg
cHVibGljIFRyZWVTY29wZSB7CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBUeXBlIDogdWludDhf
dCB7CisgICAgZW51bSBjbGFzcyBNb2RlIDogdWludDhfdCB7CiAgICAgICAgIFVzZXJBZ2VudCA9
IDAsCiAgICAgICAgIENsb3NlZCwKICAgICAgICAgT3BlbiwKICAgICB9OwogCi0gICAgc3RhdGlj
IFJlZjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBUeXBlIHR5cGUpCisg
ICAgc3RhdGljIFJlZjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBNb2Rl
IHR5cGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFkb3dSb290KGRv
Y3VtZW50LCB0eXBlKSk7CiAgICAgfQpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAKICAgICBF
bGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CiAKLSAgICBUeXBlIHR5cGUoKSBjb25zdCB7
IHJldHVybiBtX3R5cGU7IH0KKyAgICBNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KIAogICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKIApAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPE5vZGUqPiogYXNzaWduZWRO
b2Rlc0ZvclNsb3QoY29uc3QgSFRNTFNsb3RFbGVtZW50Jik7CiAKIHByb3RlY3RlZDoKLSAgICBT
aGFkb3dSb290KERvY3VtZW50JiwgVHlwZSk7CisgICAgU2hhZG93Um9vdChEb2N1bWVudCYsIE1v
ZGUpOwogCiAgICAgU2hhZG93Um9vdChEb2N1bWVudCYsIHN0ZDo6dW5pcXVlX3B0cjxTbG90QXNz
aWdubWVudD4mJik7CiAKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIFJlZjxOb2Rl
PiBjbG9uZU5vZGVJbnRlcm5hbChEb2N1bWVudCYsIENsb25pbmdPcGVyYXRpb24pIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBtX3Jlc2V0U3R5bGVJbmhlcml0YW5jZSB7IGZhbHNlIH07Ci0gICAgVHlw
ZSBtX3R5cGUgeyBUeXBlOjpVc2VyQWdlbnQgfTsKKyAgICBNb2RlIG1fdHlwZSB7IE1vZGU6OlVz
ZXJBZ2VudCB9OwogCiAgICAgRWxlbWVudCogbV9ob3N0IHsgbnVsbHB0ciB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5pZGwKaW5kZXggZDE3YWFjMDgwMzM1MTA4NDdiOWU5MjAzMDI0NTdjM2Nm
NDA1M2JhMC4uY2EyNTE1N2U1Y2IxZDJiYmNkM2UwYThhMWIwYTU5YTVmMzU2ZWQ5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMjcsOCArMjcsMTIgQEAKICAgICBFbmFibGVkQXRS
dW50aW1lPVNoYWRvd0RPTSwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAogXSBpbnRlcmZhY2Ug
U2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgeworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBT
aGFkb3dSb290TW9kZSAgIG1vZGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgICAg
ICAgICAgYWN0aXZlRWxlbWVudDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCAgICAg
ICAgICBob3N0OwogCiAgICAgW1RyZWF0TnVsbEFzPUVtcHR5U3RyaW5nLCBTZXR0ZXJSYWlzZXNF
eGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJIVE1MOwogfTsKKworLy8gInVzZXIt
YWdlbnQiIGlzIGEgV2ViS2l0IGV4dGVuc2lvbiB0aGF0IGlzIG5vdCBleHBvc2VkIHRvIHRoZSBX
ZWIuCitlbnVtIFNoYWRvd1Jvb3RNb2RlIHsgInVzZXItYWdlbnQiLCAiY2xvc2VkIiwgIm9wZW4i
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Nsb3RBc3NpZ25tZW50LmNwcAppbmRleCAwMGFiNTdmMTY1M2I5
MTcwZjMyYzI1ZjhlODg4MDc3ZTU3NGJkYjQ1Li44Yzg1N2I0NjQ3MjY4MzIwYTBiNGM1MjBkNTg2
NmRiZmY1MzEyOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2xvdEFzc2lnbm1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TbG90QXNzaWdubWVudC5jcHAKQEAgLTE1
OCw3ICsxNTgsNyBAQCB2b2lkIFNsb3RBc3NpZ25tZW50OjpkaWRDaGFuZ2VTbG90KGNvbnN0IEF0
b21pY1N0cmluZyYgc2xvdEF0dHJWYWx1ZSwgQ2hhbmdlVHlwZQogICAgICAgICBtX3Nsb3RBc3Np
Z25tZW50c0lzVmFsaWQgPSBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoc2hhZG93Um9vdC50eXBl
KCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAgIGlmIChzaGFkb3dSb290Lm1v
ZGUoKSA9PSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHJlY3Vyc2l2ZWx5RmlyZVNsb3RDaGFuZ2VFdmVudCgqc2xvdEVsZW1lbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCmluZGV4IGI0M2U4ZTM4OTYyYzk4
NzA4ZDQ2ZjQ3MjEyODg4MWE4MDViOTdlZDYuLmExNmVkMzg4ODZiODY4MWNmNmZhZjA3Y2Y2Yzlk
OTk1MTEyN2Y1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdW1tYXJ5RWxlbWVudC5j
cHAKQEAgLTQwLDcgKzQwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIFJlZjxIVE1M
U3VtbWFyeUVsZW1lbnQ+IEhUTUxTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWY8SFRNTFN1bW1h
cnlFbGVtZW50PiBzdW1tYXJ5ID0gYWRvcHRSZWYoKm5ldyBIVE1MU3VtbWFyeUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKLSAgICBzdW1tYXJ5LT5hZGRTaGFkb3dSb290KFNoYWRvd1Jvb3Q6
OmNyZWF0ZShkb2N1bWVudCwgU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KSk7CisgICAgc3Vt
bWFyeS0+YWRkU2hhZG93Um9vdChTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1lbnQsIFNoYWRvd1Jv
b3Q6Ok1vZGU6OlVzZXJBZ2VudCkpOwogICAgIHJldHVybiBzdW1tYXJ5OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAyZDNlMDNh
ZjRkZDlhMzQ5ZGNjYTdmYTVmMmMwZTIxY2RjY2YxNDk4Li4zMTg0ZTJmYWJmYmY1MDJhZDVlM2M3
ZjQ0NDhjOWRiMjJhOWQzOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKQEAgLTEyODAsMTQgKzEyODAsMTQgQEAgc3RhdGljIGJvb2wgcHNl
dWRvRWxlbWVudFR5cGUoUHNldWRvSWQgcHNldWRvSWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6UHNldWQKICAgICB9CiB9CiAKLXN0YXRpYyBJbnNwZWN0b3I6OlByb3RvY29sOjpET006OlNo
YWRvd1Jvb3RUeXBlIHNoYWRvd1Jvb3RUeXBlKFNoYWRvd1Jvb3Q6OlR5cGUgdHlwZSkKK3N0YXRp
YyBJbnNwZWN0b3I6OlByb3RvY29sOjpET006OlNoYWRvd1Jvb3RUeXBlIHNoYWRvd1Jvb3RUeXBl
KFNoYWRvd1Jvb3Q6Ok1vZGUgbW9kZSkKIHsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNl
IFNoYWRvd1Jvb3Q6OlR5cGU6OlVzZXJBZ2VudDoKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBj
YXNlIFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudDoKICAgICAgICAgcmV0dXJuIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6U2hhZG93Um9vdFR5cGU6OlVzZXJBZ2VudDsKLSAgICBjYXNlIFNo
YWRvd1Jvb3Q6OlR5cGU6OkNsb3NlZDoKKyAgICBjYXNlIFNoYWRvd1Jvb3Q6Ok1vZGU6OkNsb3Nl
ZDoKICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6U2hhZG93Um9vdFR5
cGU6OkNsb3NlZDsKLSAgICBjYXNlIFNoYWRvd1Jvb3Q6OlR5cGU6Ok9wZW46CisgICAgY2FzZSBT
aGFkb3dSb290OjpNb2RlOjpPcGVuOgogICAgICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2Nv
bDo6RE9NOjpTaGFkb3dSb290VHlwZTo6T3BlbjsKICAgICB9CiAKQEAgLTE0MDcsNyArMTQwNyw3
IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50
OjpidWlsZE9iamVjdEZvck5vZGUoTm9kZSoKICAgICAgICAgdmFsdWUtPnNldFZhbHVlKGF0dHJp
YnV0ZS52YWx1ZSgpKTsKICAgICB9IGVsc2UgaWYgKGlzPFNoYWRvd1Jvb3Q+KCpub2RlKSkgewog
ICAgICAgICBTaGFkb3dSb290JiBzaGFkb3dSb290ID0gZG93bmNhc3Q8U2hhZG93Um9vdD4oKm5v
ZGUpOwotICAgICAgICB2YWx1ZS0+c2V0U2hhZG93Um9vdFR5cGUoc2hhZG93Um9vdFR5cGUoc2hh
ZG93Um9vdC50eXBlKCkpKTsKKyAgICAgICAgdmFsdWUtPnNldFNoYWRvd1Jvb3RUeXBlKHNoYWRv
d1Jvb3RUeXBlKHNoYWRvd1Jvb3QubW9kZSgpKSk7CiAgICAgfQogCiAgICAgLy8gTmVlZCB0byBl
bmFibGUgQVggdG8gZ2V0IHRoZSBjb21wdXRlZCByb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IGNjYTIzZTVjMzQ3ZWRiODAyZmU5NWU4MzJiZWNl
YjY5NDcxYjI3YzkuLjA0NTcyNWM1Y2Y4NDg0ZGZhZWU2MDk4ZDkxYzhhYWNiOTQxMWQxMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTEyNyw3ICsx
MjcsNyBAQCBzdGF0aWMgTm9kZSogbW92ZU91dE9mVXNlckFnZW50U2hhZG93VHJlZShOb2RlJiBu
b2RlKQogewogICAgIGlmIChub2RlLmlzSW5TaGFkb3dUcmVlKCkpIHsKICAgICAgICAgaWYgKFNo
YWRvd1Jvb3QqIHJvb3QgPSBub2RlLmNvbnRhaW5pbmdTaGFkb3dSb290KCkpIHsKLSAgICAgICAg
ICAgIGlmIChyb290LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAg
ICAgICAgICAgaWYgKHJvb3QtPm1vZGUoKSA9PSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJvb3QtPmhvc3QoKTsKICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBiOTFmZTAw
YmQ3NTMwMDMwMTdkZTg5MzNiMmQ4Mjk2OTI0MjhmYzI0Li40OGI0MzVmYThlYjkzNjNhZWU1M2Ri
NmU0MWE4ZTY1NWNjNTQ0NWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCkBAIC0xNTgzLDcgKzE1ODMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5
bGU+IFJlbmRlckVsZW1lbnQ6OnNlbGVjdGlvblBzZXVkb1N0eWxlKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQoKS0+
Y29udGFpbmluZ1NoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAocm9vdC0+dHlwZSgpID09IFNo
YWRvd1Jvb3Q6OlR5cGU6OlVzZXJBZ2VudCkgeworICAgICAgICBpZiAocm9vdC0+bW9kZSgpID09
IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCkgewogICAgICAgICAgICAgaWYgKEVsZW1lbnQq
IHNoYWRvd0hvc3QgPSBlbGVtZW50KCktPnNoYWRvd0hvc3QoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gc2hhZG93SG9zdC0+cmVuZGVyZXIoKS0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1
ZG9TdHlsZVJlcXVlc3QoU0VMRUNUSU9OKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGYzOGNmMDk1ZDJhMGY5OGExMzI4Mjg2ZWYyYzdl
YmRiYzI0YmZkNDYuLjlkMzM2NjUyYjg4NjQxMjUyMTI5MWRiNzE1ODc5ZDVlMGI2ZTExMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzA5Niw3ICszMDk2
LDcgQEAgc3RhdGljIGlubGluZSBSZW5kZXJFbGVtZW50KiByZW5kZXJlckZvclNjcm9sbGJhcihS
ZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXIKIHsKICAgICBpZiAoRWxlbWVudCogZWxlbWVu
dCA9IHJlbmRlcmVyLmVsZW1lbnQoKSkgewogICAgICAgICBpZiAoU2hhZG93Um9vdCogc2hhZG93
Um9vdCA9IGVsZW1lbnQtPmNvbnRhaW5pbmdTaGFkb3dSb290KCkpIHsKLSAgICAgICAgICAgIGlm
IChzaGFkb3dSb290LT50eXBlKCkgPT0gU2hhZG93Um9vdDo6VHlwZTo6VXNlckFnZW50KQorICAg
ICAgICAgICAgaWYgKHNoYWRvd1Jvb3QtPm1vZGUoKSA9PSBTaGFkb3dSb290OjpNb2RlOjpVc2Vy
QWdlbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKS0+cmVuZGVy
ZXIoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBm
Yjc5YmQ5ZTI0YWM1ZGRhODBiYWFiM2UwYzg3OWYwNjEyYmJlMjQzLi43NDJmMzg1NTgxYzkwMDZj
YTQ2ZjBiMDQ3YTIwYTFhMDRkNTZkNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBA
IC00MzgsNyArNDM4LDcgQEAgU1ZHVXNlRWxlbWVudCogU1ZHRWxlbWVudDo6Y29ycmVzcG9uZGlu
Z1VzZUVsZW1lbnQoKSBjb25zdAogICAgIGF1dG8qIHJvb3QgPSBjb250YWluaW5nU2hhZG93Um9v
dCgpOwogICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgaWYgKHJv
b3QtPnR5cGUoKSAhPSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQpCisgICAgaWYgKHJvb3Qt
Pm1vZGUoKSAhPSBTaGFkb3dSb290OjpNb2RlOjpVc2VyQWdlbnQpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGF1dG8qIGhvc3QgPSByb290LT5ob3N0KCk7CiAgICAgaWYgKCFpczxTVkdV
c2VFbGVtZW50Pihob3N0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5
ZDc1NjhmNzMxZmYwMjg1MTVlYzUyMjBiN2JjZTFhMTlhMjM0NGY2Li4yZDc0ZjBjYWExYzA0ZWI3
ZmY3MmI1NzhhNTUwMTZkODgzN2NhZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC04MjIsMTIgKzgyMiwxMiBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzaGFkb3dSb290VHlw
ZShjb25zdCBOb2RlJiByb290LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogICAgIH0KIAotICAgIHN3aXRjaCAoZG93bmNhc3Q8U2hhZG93Um9vdD4o
cm9vdCkudHlwZSgpKSB7Ci0gICAgY2FzZSBTaGFkb3dSb290OjpUeXBlOjpVc2VyQWdlbnQ6Cisg
ICAgc3dpdGNoIChkb3duY2FzdDxTaGFkb3dSb290Pihyb290KS5tb2RlKCkpIHsKKyAgICBjYXNl
IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudDoKICAgICAgICAgcmV0dXJuIFN0cmluZygiVXNl
ckFnZW50U2hhZG93Um9vdCIpOwotICAgIGNhc2UgU2hhZG93Um9vdDo6VHlwZTo6Q2xvc2VkOgor
ICAgIGNhc2UgU2hhZG93Um9vdDo6TW9kZTo6Q2xvc2VkOgogICAgICAgICByZXR1cm4gU3RyaW5n
KCJDbG9zZWRTaGFkb3dSb290Iik7Ci0gICAgY2FzZSBTaGFkb3dSb290OjpUeXBlOjpPcGVuOgor
ICAgIGNhc2UgU2hhZG93Um9vdDo6TW9kZTo6T3BlbjoKICAgICAgICAgcmV0dXJuIFN0cmluZygi
T3BlblNoYWRvd1Jvb3QiKTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAyMTI2MGQwMDFiN2FmYjg1MWIwNTQ3ZjlhN2YyZmYwZTRhOTkyZGY1Li5l
ZGNmMDBhYzRkNzY1Yjg2NmQ1ZWYzMmJhZGY3YWRiMjVhZjQ0YjVmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTcgQEAKIDIwMTYtMDgtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAorICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgU2hhZG93Um9vdC5tb2RlIGF0dHJpYnV0ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwOTE5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3Zl
cmFnZS4KKworICAgICAgICAqIGZhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LW1vZGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2Rl
Lmh0bWw6IEFkZGVkLgorCisyMDE2LTA4LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKICAgICAgICAgRE9NNDogZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSBzaG91bGQgaW5jbHVk
ZSBub24gU3R5bGVkRWxlbWVudHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk0NzE4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQy
MWVmZWJjNzk5YjFiMTVjZmIzMTM3MDgxMDljMGJjMTJjMjRlNmIuLmQzYzk4ZTdhNjI0ODBjMzFk
OWNjY2JkZGMzY2MyNzI3ZjNjYmM3ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDE2IEBACiAyMDE2LTA4LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNoYWRvd1Jvb3QubW9kZSBhdHRyaWJ1dGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDkxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBSZWJhc2VsaW5l
IFczQyB0ZXN0IG5vdyB0aGF0IG9uZSBtb3JlIGNoZWNrIGlzIHBhc3NpbmcuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0OgorCisyMDE2
LTA4LTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgUmUtc3lu
YyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRp
b25zLmh0bWwgd2l0aCB1cHN0cmVhbQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwOTAzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hh
ZG93LWRvbS9TaGFkb3dSb290LW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9z
aGFkb3ctZG9tL1NoYWRvd1Jvb3QtbW9kZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ1MjBi
YmEwZTRkNDk0MDNiYmFmZWUxNGJjZDRmZmZkNmQzM2Y4MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LW1vZGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHN1cHBvcnQgZm9yIFNoYWRvd1Jvb3QubW9kZSBhdHRyaWJ1
dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNoYWRvd1Jvb3QxLm1v
ZGUgaXMgIm9wZW4iCitQQVNTIHNoYWRvd1Jvb3QyLm1vZGUgaXMgImNsb3NlZCIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NoYWRvdy1kb20vU2hhZG93Um9vdC1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUy
NTEyN2YzMjc1YzQ0MjFlOGEzNTU3NjRlOWZiNTExMmJmMmRjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2hhZG93LWRvbS9TaGFkb3dSb290LW1vZGUuaHRtbApAQCAtMCww
ICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgc3VwcG9ydCBmb3IgU2hhZG93Um9vdC5tb2RlIGF0dHJpYnV0ZS4iKTsK
KwordmFyIGVsZW1lbnQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cit2YXIgc2hh
ZG93Um9vdDEgPSBlbGVtZW50MS5hdHRhY2hTaGFkb3coeyBtb2RlOiAib3BlbiIgfSk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInNoYWRvd1Jvb3QxLm1vZGUiLCAib3BlbiIpOworCit2YXIgZWxl
bWVudDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK3ZhciBzaGFkb3dSb290MiA9
IGVsZW1lbnQyLmF0dGFjaFNoYWRvdyh7IG1vZGU6ICJjbG9zZWQiIH0pOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzaGFkb3dSb290Mi5tb2RlIiwgImNsb3NlZCIpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0
CmluZGV4IDI0YTZjY2I1MDIwOGQ2YWQyMTIxNjkyMGRiYmViYzg2YmYzYjA3OTYuLjNhODVjZWFl
YmY5ZDUxNjE4ODQ5Mjc3MTE3ZWY2MzUyYWIwNGNhMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL2ludGVyZmFjZXMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0CkBAIC03MjUsNyArNzI1LDcgQEAgUEFTUyBTaGFkb3dS
b290IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCiBQQVNTIFNoYWRvd1Jvb3QgaW50ZXJmYWNlIG9i
amVjdCBuYW1lIAogUEFTUyBTaGFkb3dSb290IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9w
ZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0IAogUEFTUyBTaGFkb3dSb290IGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSAKLUZBSUwgU2hhZG93Um9vdCBpbnRlcmZh
Y2U6IGF0dHJpYnV0ZSBtb2RlIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0
IGhhdmUgYSBwcm9wZXJ0eSAibW9kZSIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1MgU2hh
ZG93Um9vdCBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBtb2RlIAogUEFTUyBTaGFkb3dSb290IGludGVy
ZmFjZTogYXR0cmlidXRlIGhvc3QgCiBQQVNTIEVsZW1lbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCAKIFBBU1MgRWxlbWVudCBpbnRlcmZh
Y2Ugb2JqZWN0IGxlbmd0aCAK
</data>

          </attachment>
      

    </bug>

</bugzilla>