<?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>124096</bug_id>
          
          <creation_ts>2013-11-08 19:15:38 -0800</creation_ts>
          <short_desc>Change collectStyleForPresentationAttribute and related functions to take a MutableStylePropertySet by reference</short_desc>
          <delta_ts>2013-11-08 19:22:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948984</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 19:15:38 -0800</bug_when>
    <thetext>Change collectStyleForPresentationAttribute and related functions to take a MutableStylePropertySet by reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948985</commentid>
    <comment_count>1</comment_count>
      <attachid>216476</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 19:16:51 -0800</bug_when>
    <thetext>Created attachment 216476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948986</commentid>
    <comment_count>2</comment_count>
      <attachid>216476</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-11-08 19:19:31 -0800</bug_when>
    <thetext>Comment on attachment 216476
Patch

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948988</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 19:22:52 -0800</bug_when>
    <thetext>Committed r158985: &lt;http://trac.webkit.org/changeset/158985&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216476</attachid>
            <date>2013-11-08 19:16:51 -0800</date>
            <delta_ts>2013-11-08 19:19:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124096-20131108191650.patch</filename>
            <type>text/plain</type>
            <size>58462</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODk4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTExLTA4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgdG8gdGFrZSBhIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0IGJ5IHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MDk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCBieSBy
ZWZlcmVuY2UuIEl0IGlzIG5ldmVyIG51bGwuCisKIDIwMTMtMTEtMDggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZW5jb2Rpbmcgb2Yg
YXJyYXlzIG9mIG9iamVjdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAJKHJldmlzaW9uIDE1ODk3MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDkg
KzE4Nyw5IEBAIENTU1N0eWxlRGVjbGFyYXRpb24qIEF0dHI6OnN0eWxlKCkKIHsKICAgICAvLyBU
aGlzIGZ1bmN0aW9uIG9ubHkgZXhpc3RzIHRvIHN1cHBvcnQgdGhlIE9iai1DIGJpbmRpbmdzLgog
ICAgIGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1lbnQtPmlzU3R5bGVkRWxlbWVudCgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgbV9zdHlsZSA9IE11
dGFibGVTdHlsZVByb3BlcnR5U2V0OjpjcmVhdGUoKTsKLSAgICBzdGF0aWNfY2FzdDxTdHlsZWRF
bGVtZW50Kj4obV9lbGVtZW50KS0+Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KHF1YWxpZmllZE5hbWUoKSwgdmFsdWUoKSwgbV9zdHlsZS5nZXQoKSk7CisgICAgc3RhdGljX2Nh
c3Q8U3R5bGVkRWxlbWVudCo+KG1fZWxlbWVudCktPmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlv
bkF0dHJpYnV0ZShxdWFsaWZpZWROYW1lKCksIHZhbHVlKCksICptX3N0eWxlKTsKICAgICByZXR1
cm4gbV9zdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzOCw3ICsz
MzgsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OnJlYnVpbGRQcmVzZW50YXRpb25BCiAgICAgICAg
IHVuc2lnbmVkIHNpemUgPSBhdHRyaWJ1dGVDb3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICBjb25zdCBBdHRyaWJ1dGUmIGF0
dHJpYnV0ZSA9IGF0dHJpYnV0ZUF0KGkpOwotICAgICAgICAgICAgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGF0dHJpYnV0ZS5uYW1lKCksIGF0dHJpYnV0ZS52YWx1ZSgpLCBz
dGF0aWNfY2FzdDxNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCo+KHN0eWxlLmdldCgpKSk7CisgICAg
ICAgICAgICBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoYXR0cmlidXRlLm5h
bWUoKSwgYXR0cmlidXRlLnZhbHVlKCksIHN0YXRpY19jYXN0PE11dGFibGVTdHlsZVByb3BlcnR5
U2V0Jj4oKnN0eWxlKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM2NCwxOSArMzY0LDE5IEBA
IHZvaWQgU3R5bGVkRWxlbWVudDo6cmVidWlsZFByZXNlbnRhdGlvbkEKICAgICAgICAgY2FjaGVJ
dGVyYXRvci0+dmFsdWUgPSBuZXdFbnRyeS5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgU3R5bGVkRWxl
bWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11dGFibGVTdHls
ZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBDU1NWYWx1ZUlE
IGlkZW50aWZpZXIpCit2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRp
b25BdHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUsIENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBpZGVudGlmaWVyKQogewotICAgIHN0eWxlLT5z
ZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFs
dWUoaWRlbnRpZmllcikpOworICAgIHN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5SUQsIGNzc1Zh
bHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShpZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQg
U3R5bGVkRWxlbWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11
dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBk
b3VibGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgdW5pdCkKK3ZvaWQgU3R5
bGVkRWxlbWVudDo6YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlELCBkb3Vi
bGUgdmFsdWUsIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMgdW5pdCkKIHsKLSAgICBzdHls
ZS0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUodmFs
dWUsIHVuaXQpKTsKKyAgICBzdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCBjc3NWYWx1ZVBv
b2woKS5jcmVhdGVWYWx1ZSh2YWx1ZSwgdW5pdCkpOwogfQogICAgIAotdm9pZCBTdHlsZWRFbGVt
ZW50OjphZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCit2b2lkIFN0eWxlZEVsZW1lbnQ6OmFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUsIENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBzdHlsZS0+c2V0UHJv
cGVydHkocHJvcGVydHlJRCwgdmFsdWUsIGZhbHNlLCAmZG9jdW1lbnQoKS5lbGVtZW50U2hlZXQo
KS5jb250ZW50cygpKTsKKyAgICBzdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCB2YWx1ZSwg
ZmFsc2UsICZkb2N1bWVudCgpLmVsZW1lbnRTaGVldCgpLmNvbnRlbnRzKCkpOwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcg
KzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUo
KSBPVkVSUklERSBGSU5BTDsKIAogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByZXNlbnRh
dGlvbkF0dHJpYnV0ZVN0eWxlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIHsgfQogCiBwcm90
ZWN0ZWQ6CiAgICAgU3R5bGVkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5cGUgdHlwZSkKQEAgLTcyLDkgKzcyLDkgQEAg
cHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBh
ZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQqLCBDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZUlEIGlkZW50aWZpZXIpOwotICAgIHZvaWQg
YWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0KiwgQ1NTUHJvcGVydHlJRCwgZG91YmxlIHZhbHVlLCBDU1NQcmltaXRpdmVWYWx1ZTo6
VW5pdFR5cGVzKTsKLSAgICB2b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCosIENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOworICAgIHZvaWQgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0
eWxlKE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiwgQ1NTUHJvcGVydHlJRCwgQ1NTVmFsdWVJRCBp
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYsIENTU1Byb3BlcnR5SUQsIGRvdWJsZSB2YWx1
ZSwgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyk7CisgICAgdm9pZCBhZGRQcm9wZXJ0eVRv
UHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmLCBDU1NQ
cm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRT
dWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8VVJMPiYpIGNvbnN0IE9WRVJSSURF
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBIVE1MQlJFbGVtZW50Ojppc1ByZXNlbnRhdGlv
bkF0dHJpYgogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
bmFtZSk7CiB9CiAKLXZvaWQgSFRNTEJSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTEJSRWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBjbGVhckF0dHIpIHsKICAgICAgICAg
Ly8gSWYgdGhlIHN0cmluZyBpcyBlbXB0eSwgdGhlbiBkb24ndCBhZGQgdGhlIGNsZWFyIHByb3Bl
cnR5LgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQlJFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIHByaXZhdGU6CiAgICAgSFRNTEJSRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlv
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQq
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBSZW5kZXJFbGVt
ZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4
OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OCwxNCArNjgsMTQgQEAgYm9vbCBIVE1MQm9keUVsZW1lbnQ6OmlzUHJlc2Vu
dGF0aW9uQXR0cgogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEJvZHlFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1M
Qm9keUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIp
IHsKICAgICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNl
cyh2YWx1ZSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgYXV0
byBpbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVV
UkwodXJsKS5zdHJpbmcoKSk7CiAgICAgICAgICAgICBpbWFnZVZhbHVlLmdldCgpLnNldEluaXRp
YXRvcihsb2NhbE5hbWUoKSk7Ci0gICAgICAgICAgICBzdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJv
cGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kSW1hZ2UsIHN0ZDo6bW92ZShpbWFnZVZhbHVlKSkp
OworICAgICAgICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlC
YWNrZ3JvdW5kSW1hZ2UsIHN0ZDo6bW92ZShpbWFnZVZhbHVlKSkpOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChuYW1lID09IG1hcmdpbndpZHRoQXR0ciB8fCBuYW1lID09IGxlZnRtYXJnaW5B
dHRyKSB7CiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eU1h
cmdpblJpZ2h0LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgaW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUmKSBPVkVSUklERTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgSFRNTERpdkVsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmkKICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpOwogfQogCi12b2lkIEhUTUxEaXZFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1MRGl2RWxl
bWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsKICAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAibWlkZGxlIikgfHwgZXF1YWxJZ25vcmluZ0Nh
c2UodmFsdWUsICJjZW50ZXIiKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50
LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0Jikg
T1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOCwxMyArMTM4LDEzIEBA
IHVuc2lnbmVkIEhUTUxFbGVtZW50OjpwYXJzZUJvcmRlcldpZHRoQXQKICAgICByZXR1cm4gYm9y
ZGVyV2lkdGg7CiB9CiAKLXZvaWQgSFRNTEVsZW1lbnQ6OmFwcGx5Qm9yZGVyQXR0cmlidXRlVG9T
dHlsZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCog
c3R5bGUpCit2b2lkIEhUTUxFbGVtZW50OjphcHBseUJvcmRlckF0dHJpYnV0ZVRvU3R5bGUoY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQog
ewogICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NT
UHJvcGVydHlCb3JkZXJXaWR0aCwgcGFyc2VCb3JkZXJXaWR0aEF0dHJpYnV0ZSh2YWx1ZSksIENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogICAgIGFkZFByb3BlcnR5VG9QcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJTdHlsZSwgQ1NTVmFsdWVTb2xp
ZCk7CiB9CiAKLXZvaWQgSFRNTEVsZW1lbnQ6Om1hcExhbmd1YWdlQXR0cmlidXRlVG9Mb2NhbGUo
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxl
KQordm9pZCBIVE1MRWxlbWVudDo6bWFwTGFuZ3VhZ2VBdHRyaWJ1dGVUb0xvY2FsZShjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAg
ICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gSGF2ZSB0byBxdW90ZSBzbyB0
aGUgbG9jYWxlIGlkIGlzIHRyZWF0ZWQgYXMgYSBzdHJpbmcgaW5zdGVhZCBvZiBhcyBhIENTUyBr
ZXl3b3JkLgpAQCAtMTYyLDcgKzE2Miw3IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0
aW9uQXR0cmlidXQKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxF
bGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IGFsaWduQXR0cikgewogICAgICAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWUsICJtaWRkbGUiKSkKQEAgLTYwMiw3ICs2MDIs
NyBAQCB2b2lkIEhUTUxFbGVtZW50OjppbnNlcnRBZGphY2VudFRleHQoY29uCiAgICAgaW5zZXJ0
QWRqYWNlbnQod2hlcmUsIHRleHROb2RlLmdldCgpLCBlYyk7CiB9CiAKLXZvaWQgSFRNTEVsZW1l
bnQ6OmFwcGx5QWxpZ25tZW50QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9taWNTdHJpbmcmIGFs
aWdubWVudCwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1MRWxlbWVu
dDo6YXBwbHlBbGlnbm1lbnRBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYgYWxp
Z25tZW50LCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgLy8gVmVydGlj
YWwgYWxpZ25tZW50IHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBiYXNlbGluZSBvZiB0aGUg
dGV4dAogICAgIC8vIHJpZ2h0IG9yIGxlZnQgbWVhbnMgZmxvYXRpbmcgaW1hZ2VzLgpAQCAtOTY1
LDcgKzk2NSw3IEBAIGJvb2wgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEEKICAg
ICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAot
dm9pZCBIVE1MRWxlbWVudDo6YWRkSFRNTExlbmd0aFRvU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpCit2b2lkIEhUTUxFbGVtZW50OjphZGRIVE1MTGVuZ3RoVG9TdHlsZShNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldCYgc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5n
JiB2YWx1ZSkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IHNwaW4g
dXAgdGhlIENTUyBwYXJzZXIsIGJ1dCBzaG91bGQgaW5zdGVhZCBqdXN0IGZpZ3VyZSBvdXQgdGhl
IGNvcnJlY3QKICAgICAvLyBsZW5ndGggdW5pdCBhbmQgbWFrZSB0aGUgYXBwcm9wcmlhdGUgcGFy
c2VkIHZhbHVlLgpAQCAtMTA1NCw3ICsxMDU0LDcgQEAgc3RhdGljIFJHQkEzMiBwYXJzZUNvbG9y
U3RyaW5nV2l0aENyYXp5TAogfQogCiAvLyBDb2xvciBwYXJzaW5nIHRoYXQgbWF0Y2hlcyBIVE1M
J3MgInJ1bGVzIGZvciBwYXJzaW5nIGEgbGVnYWN5IGNvbG9yIHZhbHVlIgotdm9pZCBIVE1MRWxl
bWVudDo6YWRkSFRNTENvbG9yVG9TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUs
IENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiBhdHRyaWJ1dGVWYWx1ZSkK
K3ZvaWQgSFRNTEVsZW1lbnQ6OmFkZEhUTUxDb2xvclRvU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQmIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgYXR0
cmlidXRlVmFsdWUpCiB7CiAgICAgLy8gQW4gZW1wdHkgc3RyaW5nIGRvZXNuJ3QgYXBwbHkgYSBj
b2xvci4gKE9uZSBjb250YWluaW5nIG9ubHkgd2hpdGVzcGFjZSBkb2VzLCB3aGljaCBpcyB3aHkg
dGhpcyBjaGVjayBvY2N1cnMgYmVmb3JlIHN0cmlwcGluZy4pCiAgICAgaWYgKGF0dHJpYnV0ZVZh
bHVlLmlzRW1wdHkoKSkKQEAgLTEwNzEsNyArMTA3MSw3IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OmFk
ZEhUTUxDb2xvclRvU3R5bGUoTXUKICAgICBpZiAoIXBhcnNlZENvbG9yLmlzVmFsaWQoKSkKICAg
ICAgICAgcGFyc2VkQ29sb3Iuc2V0UkdCKHBhcnNlQ29sb3JTdHJpbmdXaXRoQ3JhenlMZWdhY3lS
dWxlcyhjb2xvclN0cmluZykpOwogCi0gICAgc3R5bGUtPnNldFByb3BlcnR5KHByb3BlcnR5SUQs
IGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUNvbG9yVmFsdWUocGFyc2VkQ29sb3IucmdiKCkpKTsKKyAg
ICBzdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCBjc3NWYWx1ZVBvb2woKS5jcmVhdGVDb2xv
clZhbHVlKHBhcnNlZENvbG9yLnJnYigpKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsMTUg
Kzk4LDE1IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUpOwogCi0gICAg
dm9pZCBhZGRIVE1MTGVuZ3RoVG9TdHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCosIENTU1By
b3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZvaWQgYWRkSFRNTENvbG9yVG9T
dHlsZShNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCosIENTU1Byb3BlcnR5SUQsIGNvbnN0IFN0cmlu
ZyYgY29sb3IpOworICAgIHZvaWQgYWRkSFRNTExlbmd0aFRvU3R5bGUoTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICB2b2lk
IGFkZEhUTUxDb2xvclRvU3R5bGUoTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmLCBDU1NQcm9wZXJ0
eUlELCBjb25zdCBTdHJpbmcmIGNvbG9yKTsKIAotICAgIHZvaWQgYXBwbHlBbGlnbm1lbnRBdHRy
aWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0
Kik7Ci0gICAgdm9pZCBhcHBseUJvcmRlckF0dHJpYnV0ZVRvU3R5bGUoY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKTsKKyAgICB2b2lkIGFwcGx5QWxpZ25tZW50
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCYpOworICAgIHZvaWQgYXBwbHlCb3JkZXJBdHRyaWJ1dGVUb1N0eWxlKGNvbnN0IEF0b21p
Y1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxl
Y3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCYpIE9WRVJSSURFOwogICAgIHVuc2lnbmVkIHBhcnNlQm9yZGVyV2lkdGhBdHRyaWJ1dGUo
Y29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CkBAIC0xMTcsNyArMTE3LDcgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogCi0gICAgdm9pZCBtYXBMYW5ndWFnZUF0dHJpYnV0ZVRvTG9jYWxl
KGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kik7CisgICAgdm9p
ZCBtYXBMYW5ndWFnZUF0dHJpYnV0ZVRvTG9jYWxlKGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0Jik7CiAKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCogdmly
dHVhbEZvcm0oKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bWJlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgSFRN
TEVtYmVkRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHQKICAgICByZXR1cm4gSFRNTFBsdWdJbklt
YWdlRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRN
TEVtYmVkRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVT
dHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6Y29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkK
IHsKICAgICBpZiAobmFtZSA9PSBoaWRkZW5BdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZSh2YWx1ZSwgInllcyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAidHJ1ZSIp
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNpb24g
MTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVj
dFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9udEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3ICsxODYsNyBAQCBib29sIEhUTUxG
b250RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojpp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MRm9udEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dCogc3R5bGUpCit2b2lkIEhUTUxGb250RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFt
ZSA9PSBzaXplQXR0cikgewogICAgICAgICBDU1NWYWx1ZUlEIHNpemUgPSBDU1NWYWx1ZUludmFs
aWQ7CkBAIC0xOTYsNyArMTk2LDcgQEAgdm9pZCBIVE1MRm9udEVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZQogICAgICAgICBhZGRIVE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUNv
bG9yLCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBmYWNlQXR0cikgewogICAgICAgICBp
ZiAoUmVmUHRyPENTU1ZhbHVlTGlzdD4gZm9udEZhY2VWYWx1ZSA9IGNzc1ZhbHVlUG9vbCgpLmNy
ZWF0ZUZvbnRGYWNlVmFsdWUodmFsdWUpKQotICAgICAgICAgICAgc3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5Rm9udEZhbWlseSwgZm9udEZhY2VWYWx1ZS5yZWxlYXNl
KCkpKTsKKyAgICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3Bl
cnR5Rm9udEZhbWlseSwgZm9udEZhY2VWYWx1ZS5yZWxlYXNlKCkpKTsKICAgICB9IGVsc2UKICAg
ICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSwgc3R5bGUpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9u
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxl
bWVudC5oCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAgICAg
SFRNTEZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAg
dmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZVNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3
IEBAIGJvb2wgSFRNTEZyYW1lU2V0RWxlbWVudDo6aXNQcmVzZW50YXRpb24KICAgICByZXR1cm4g
SFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYg
c3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYm9yZGVyY29sb3JBdHRyKQogICAgICAgICBhZGRI
VE1MQ29sb3JUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJvcmRlckNvbG9yLCB2YWx1ZSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkocmV2aXNpb24g
MTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29s
bGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnR5U2V0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVy
cygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBIVE1MSFJFbGVtZW50Ojppc1By
ZXNlbnRhdGlvbkF0dHJpYgogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEhSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQg
SFRNTEhSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVT
dHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBhbGlnbkF0dHIpIHsK
ICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAibGVmdCIpKSB7CkBAIC04NSw4
ICs4NSw4IEBAIHZvaWQgSFRNTEhSRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2UKICAgICAg
ICAgYWRkUHJvcGVydHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9w
ZXJ0eUJvcmRlclN0eWxlLCBDU1NWYWx1ZVNvbGlkKTsKIAogICAgICAgICBSZWZQdHI8Q1NTUHJp
bWl0aXZlVmFsdWU+IGRhcmtHcmF5VmFsdWUgPSBjc3NWYWx1ZVBvb2woKS5jcmVhdGVDb2xvclZh
bHVlKENvbG9yOjpkYXJrR3JheSk7Ci0gICAgICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUJvcmRlckNvbG9yLCBkYXJrR3JheVZhbHVlKTsKLSAgICAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBkYXJrR3JheVZhbHVlKTsKKyAgICAgICAg
c3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlCb3JkZXJDb2xvciwgZGFya0dyYXlWYWx1ZSk7
CisgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yLCBk
YXJrR3JheVZhbHVlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gc2l6ZUF0dHIpIHsKICAgICAg
ICAgU3RyaW5nSW1wbCogc2kgPSB2YWx1ZS5pbXBsKCk7CiAgICAgICAgIGludCBzaXplID0gc2kt
PnRvSW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuaAkocmV2aXNpb24g
MTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKICAgICBIVE1MSFJFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYs
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNw
cAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBIVE1MSUZyYW1l
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdAogICAgIHJldHVybiBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTElGcmFtZUVs
ZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9w
ZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxJRnJhbWVFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQogewogICAg
IGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5
bGUsIENTU1Byb3BlcnR5V2lkdGgsIHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJRnJhbWVFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZv
clByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVh
bCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5kZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBIVE1MSW1hZ2VFbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dAogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6Y29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkK
K3ZvaWQgSFRNTEltYWdlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUs
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0
aEF0dHIpCiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdp
ZHRoLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAko
cmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1
YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWlj
U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVu
ZGVyZXJzKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJFbGVtZW50KiBjcmVhdGVSZW5k
ZXJlcihQYXNzUmVmPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5Myw3
ICs1OTMsNyBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0CiAgICAg
cmV0dXJuIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1M
SW5wdXRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IHZzcGFjZUF0dHIpIHsK
ICAgICAgICAgYWRkSFRNTExlbmd0aFRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5TWFyZ2luVG9w
LCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2
aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2MSw3ICszNjEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0No
aWxkcmVuKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXNGcm9tRWxlbWVudChjb25zdCBFbGVtZW50JikgT1ZFUlJJREU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcg
KzU3LDcgQEAgYm9vbCBIVE1MTElFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYgogICAgIHJl
dHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZv
aWQgSFRNTExJRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTExJRWxlbWVudDo6Y29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkK
IHsKICAgICBpZiAobmFtZSA9PSB0eXBlQXR0cikgewogICAgICAgICBpZiAodmFsdWUgPT0gImEi
KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBIVE1MTWFycXVlZUVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQQogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTE1hcnF1ZWVFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxl
KQordm9pZCBIVE1MTWFycXVlZUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
d2lkdGhBdHRyKSB7CiAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWFycXVlZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCShyZXZpc2lvbiAxNTg5NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgSFRNTE1hcnF1ZWVFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11
dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiAKICAgICAvLyBBY3RpdmVET01PYmpl
Y3QKICAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MSw3ICs2MSw3IEBAIGJvb2wgSFRNTE9MaXN0RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHQKICAg
ICByZXR1cm4gSFRNTEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUpOwogfQog
Ci12b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgaWYgKHZh
bHVlID09ICJhIikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCShy
ZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIGludCBtX3N0YXJ0OwogICAgIHVuc2lnbmVk
IG1faXRlbUNvdW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgSFRNTE9i
amVjdEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXQKICAgICByZXR1cm4gSFRNTFBsdWdJbkltYWdl
RWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTE9i
amVjdEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQog
ewogICAgIGlmIChuYW1lID09IGJvcmRlckF0dHIpCiAgICAgICAgIGFwcGx5Qm9yZGVyQXR0cmli
dXRlVG9TdHlsZSh2YWx1ZSwgc3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T2JqZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9i
amVjdEVsZW1lbnQuaAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBJ
bnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlJikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmKSBP
VkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJh
Z3JhcGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBib29sIEhU
TUxQYXJhZ3JhcGhFbGVtZW50Ojppc1ByZXNlbnRhdGlvCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MUGFyYWdyYXBo
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTFBhcmFncmFwaEVsZW1lbnQ6OmNvbGxlY3RTdHls
ZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7
CiAgICAgaWYgKG5hbWUgPT0gYWxpZ25BdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZSh2YWx1ZSwgIm1pZGRsZSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAiY2VudGVy
IikpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5oCShy
ZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToKICAgICBIVE1M
UGFyYWdyYXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURF
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsNyAr
MTY3LDcgQEAgYm9vbCBIVE1MUGx1Z0luRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdAogICAgIHJl
dHVybiBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5hbWUp
OwogfQogCi12b2lkIEhUTUxQbHVnSW5FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRp
b25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1MUGx1Z0lu
RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVBy
b3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAg
IGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRoLCB2YWx1ZSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luRWxlbWVudC5oCShyZXZpc2lvbiAxNTg5
NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTg1LDcgKzg1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50
YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwg
TXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCB1
c2VGYWxsYmFja0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4OTcxKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDEwICs1MCwxMCBAQCBib29sIEhUTUxQcmVFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpCiAg
ICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0K
IAotdm9pZCBIVE1MUHJlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUs
IE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTFByZUVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYg
c3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd3JhcEF0dHIpCi0gICAgICAgIHN0eWxlLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eVdoaXRlU3BhY2UsIENTU1ZhbHVlUHJlV3JhcCk7CisgICAgICAg
IHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVQcmVXcmFw
KTsKICAgICBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50
YXRpb25BdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcmVFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBw
cml2YXRlOgogICAgIEhUTUxQcmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0
JikgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcAkocmV2aXNpb24g
MTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgYm9vbCBIVE1MVGFibGVDYXB0aW9u
RWxlbWVudDo6aXNQcmVzZW50YQogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNQcmVzZW50YXRp
b25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6OmNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCog
c3R5bGUpCit2b2lkIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQogewogICAgIGlm
IChuYW1lID09IGFsaWduQXR0cikgewogICAgICAgICBpZiAoIXZhbHVlLmlzRW1wdHkoKSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgJKHJl
dmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRlOgogICAgIEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9y
UHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZF
UlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
Miw3ICs4Miw3IEBAIGJvb2wgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmlzUHJlc2VudGF0aW8KICAg
ICByZXR1cm4gSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRlKG5h
bWUpOwogfQogCi12b2lkIEhUTUxUYWJsZUNlbGxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBIVE1M
VGFibGVDZWxsRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFi
bGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSBub3dyYXBBdHRy
KQogICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUs
IENTU1Byb3BlcnR5V2hpdGVTcGFjZSwgQ1NTVmFsdWVXZWJraXROb3dyYXApOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAkocmV2aXNpb24gMTU4OTcx
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNl
dCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogYWRkaXRp
b25hbFByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgYm9vbCBIVE1MVGFibGVDb2xFbGVt
ZW50Ojppc1ByZXNlbnRhdGlvbgogICAgIHJldHVybiBIVE1MVGFibGVQYXJ0RWxlbWVudDo6aXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ29sRWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBp
ZiAobmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxl
LCBDU1NQcm9wZXJ0eVdpZHRoLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNvbEVsZW1lbnQuaAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBTdHlsZVByb3BlcnR5U2V0KiBhZGRpdGlvbmFsUHJlc2VudGF0aW9uQXR0cmli
dXRlU3R5bGUoKSBPVkVSUklERTsKIAogICAgIGludCBtX3NwYW47CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
OSw3ICsyOTksNyBAQCBzdGF0aWMgYm9vbCBnZXRCb3JkZXJzRnJvbUZyYW1lQXR0cmlidXRlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3Zv
aWQgSFRNTFRhYmxlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsIE11
dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAobmFtZSA9PSB3aWR0aEF0
dHIpCiAgICAgICAgIGFkZEhUTUxMZW5ndGhUb1N0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVdpZHRo
LCB2YWx1ZSk7CkBAIC0zMTUsNyArMzE1LDcgQEAgdm9pZCBIVE1MVGFibGVFbGVtZW50Ojpjb2xs
ZWN0U3R5bGVGb3JQcgogICAgIGVsc2UgaWYgKG5hbWUgPT0gYmFja2dyb3VuZEF0dHIpIHsKICAg
ICAgICAgU3RyaW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyh2YWx1
ZSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHN0eWxlLT5zZXRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91bmRJbWFnZSwgQ1NTSW1hZ2VW
YWx1ZTo6Y3JlYXRlKGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJsKS5zdHJpbmcoKSkpKTsKKyAg
ICAgICAgICAgIHN0eWxlLnNldFByb3BlcnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dy
b3VuZEltYWdlLCBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1
cmwpLnN0cmluZygpKSkpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSB2YWxpZ25BdHRyKSB7CiAg
ICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWRkUHJvcGVydHlUb1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24s
IHZhbHVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCShyZXZp
c2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBj
b2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydHlTZXQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICAvLyBVc2VkIHRvIG9idGFpbiBl
aXRoZXIgYSBzb2xpZCBvciBvdXRzZXQgYm9yZGVyIGRlY2wgYW5kIHRvIGRlYWwgd2l0aCB0aGUg
ZnJhbWUgYW5kIHJ1bGVzIGF0dHJpYnV0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZVBhcnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZVBhcnRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDE0ICs0NiwxNCBAQCBib29sIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvCiAg
ICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0K
IAotdm9pZCBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9u
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSkKK3ZvaWQgSFRNTFRhYmxlUGFy
dEVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gYmdjb2xvckF0dHIpCiAgICAg
ICAgIGFkZEhUTUxDb2xvclRvU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9y
LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBiYWNrZ3JvdW5kQXR0cikgewogICAgICAg
ICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKTsK
ICAgICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQotICAgICAgICAgICAgc3R5bGUtPnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5KENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlLCBDU1NJbWFnZVZhbHVl
OjpjcmVhdGUoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTCh1cmwpLnN0cmluZygpKSkpOworICAgICAg
ICAgICAgc3R5bGUuc2V0UHJvcGVydHkoQ1NTUHJvcGVydHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5k
SW1hZ2UsIENTU0ltYWdlVmFsdWU6OmNyZWF0ZShkb2N1bWVudCgpLmNvbXBsZXRlVVJMKHVybCku
c3RyaW5nKCkpKSk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHZhbGlnbkF0dHIpIHsKICAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlLCAidG9wIikpCiAgICAgICAgICAgICBhZGRQ
cm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUoc3R5bGUsIENTU1Byb3BlcnR5VmVy
dGljYWxBbGlnbiwgQ1NTVmFsdWVUb3ApOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVQYXJ0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlUGFydEVsZW1lbnQuaAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3
IEBAIHByb3RlY3RlZDoKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25B
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklERTsKIAogICAgIEhUTUxUYWJsZUVsZW1lbnQqIGZp
bmRQYXJlbnRUYWJsZSgpIGNvbnN0OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDcg
KzE1MSw3IEBAIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aXNQcmVzZW50YXRpb24KICAgICBy
ZXR1cm4gSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmlidXRl
KG5hbWUpOwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhU
TUxUZXh0QXJlYUVsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd3JhcEF0dHIp
IHsKICAgICAgICAgaWYgKHNob3VsZFdyYXBUZXh0KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtOTks
NyArOTksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgUmVuZGVyRWxlbWVudCogY3JlYXRlUmVuZGVyZXIoUGFzc1JlZjxS
ZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShG
b3JtRGF0YUxpc3QmLCBib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSBP
VkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBib29sIEhUTUxVTGlzdEVsZW1l
bnQ6OmlzUHJlc2VudGF0aW9uQXR0CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1ByZXNlbnRh
dGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MVUxpc3RFbGVtZW50Ojpjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxl
KQordm9pZCBIVE1MVUxpc3RFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQogewogICAgIGlmIChuYW1lID09IHR5
cGVBdHRyKQogICAgICAgICBhZGRQcm9wZXJ0eVRvUHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUo
c3R5bGUsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSwgdmFsdWUpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVUxpc3RFbGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFVMaXN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICsz
Niw3IEBAIHByaXZhdGU6CiAgICAgSFRNTFVMaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0eVNldCYpIE9WRVJSSURFOwogfTsKIAogfSAvL25hbWVzcGFjZQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05Niw3ICs5Niw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXIK
ICNlbmRpZgogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIEhUTUxW
aWRlb0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0eVNldCYgc3R5bGUpCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQogICAg
ICAgICBhZGRIVE1MTGVuZ3RoVG9TdHlsZShzdHlsZSwgQ1NTUHJvcGVydHlXaWR0aCwgdmFsdWUp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHJldmlzaW9uIDE1
ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEF0
dGFjaFJlbmRlcmVycygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJl
c2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGlzVmlkZW8oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc1ZpZGVvKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1
cm4gcGxheWVyKCkgJiYgcGxheWVyKCktPmhhc1ZpZGVvKCk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgz
LDcgQEAgYm9vbCBNYXRoTUxFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYgogICAgIHJldHVy
biBTdHlsZWRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9p
ZCBNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJs
ZVN0eWxlUHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBNYXRoTUxFbGVtZW50Ojpjb2xsZWN0U3R5
bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmIHN0eWxlKQog
ewogICAgIGlmIChuYW1lID09IG1hdGhiYWNrZ3JvdW5kQXR0cikKICAgICAgICAgYWRkUHJvcGVy
dHlUb1ByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKHN0eWxlLCBDU1NQcm9wZXJ0eUJhY2tncm91
bmRDb2xvciwgdmFsdWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5o
CShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0
ZTogICAgCiAgICAgdmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0
eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0
JikgT1ZFUlJJREU7CiB9OwogCiB2b2lkIGlzTWF0aE1MRWxlbWVudChjb25zdCBNYXRoTUxFbGVt
ZW50Jik7IC8vIENhdGNoIHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBh
dCBjb21waWxlIHRpbWUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTg5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk2Niw3ICs5NjYsNyBAQCBib29sIFNWR0VsZW1lbnQ6OmlzUHJlc2VudGF0aW9u
QXR0cmlidXRlCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzUHJlc2VudGF0aW9uQXR0cmli
dXRlKG5hbWUpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRh
dGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUpCit2b2lkIFNWR0VsZW1l
bnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCYgc3R5bGUpCiB7CiAgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVy
dHlJZEZvclNWR0F0dHJpYnV0ZU5hbWUobmFtZSk7CiAgICAgaWYgKHByb3BlcnR5SUQgPiAwKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCShyZXZpc2lvbiAxNTg5NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcg
QEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5SWRGb3JT
VkdBdHRyaWJ1dGVOYW1lKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxl
Rm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oQ29udGFpbmVyTm9k
ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbShDb250YWluZXJOb2Rl
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIGJvb2wgU1ZHSW1hZ2VF
bGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHIKICAgICByZXR1cm4gU1ZHR3JhcGhpY3NFbGVtZW50
Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lKTsKIH0KIAotdm9pZCBTVkdJbWFnZUVsZW1l
bnQ6OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldCogc3R5bGUpCit2b2lkIFNWR0ltYWdlRWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0JiBzdHlsZSkKIHsKICAgICBpZiAo
IWlzU3VwcG9ydGVkQXR0cmlidXRlKG5hbWUpKQogICAgICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OmNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gMTU4OTcx
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVz
ZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQmKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU4OTcxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw3ICsyMjgsNyBAQCBib29sIFNWR1RleHRD
b250ZW50RWxlbWVudDo6aXNQcmVzZW50YXRpCiAgICAgcmV0dXJuIFNWR0dyYXBoaWNzRWxlbWVu
dDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgU1ZHVGV4dENvbnRl
bnRFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlKQordm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RT
dHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYgc3R5bGUp
CiB7CiAgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShuYW1lKSkKICAgICAgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50Ojpjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUobmFtZSwg
dmFsdWUsIHN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmgJKHJldmlzaW9uIDE1ODk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNl
bnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2Vu
dGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBNdXRhYmxlU3R5bGVQcm9wZXJ0eVNldCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7Cg==
</data>
<flag name="review"
          id="239447"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>