<?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>143281</bug_id>
          
          <creation_ts>2015-03-31 16:27:24 -0700</creation_ts>
          <short_desc>Content extensions should properly handle regexes that match everything</short_desc>
          <delta_ts>2015-04-02 12:44:50 -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>WebCore Misc.</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1081822</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-31 16:27:24 -0700</bug_when>
    <thetext>Right now, when you only have regexes that match everything, infinite loops happen.  Let&apos;s make it safer, faster, and more correct!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081836</commentid>
    <comment_count>1</comment_count>
      <attachid>249870</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-03-31 17:13:41 -0700</bug_when>
    <thetext>Created attachment 249870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081845</commentid>
    <comment_count>2</comment_count>
      <attachid>249870</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-03-31 17:59:51 -0700</bug_when>
    <thetext>Comment on attachment 249870
Patch

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

&gt; Source/WebCore/contentextensions/CombinedURLFilters.cpp:205
&gt; +    if (!nfas.size())
&gt; +        nfas.append(NFA());

I think I would do this in the ExtensionCompiler only if there are universal actions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082307</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-02 12:44:50 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182239</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249870</attachid>
            <date>2015-03-31 17:13:41 -0700</date>
            <delta_ts>2015-03-31 17:59:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143281-20150331171257.patch</filename>
            <type>text/plain</type>
            <size>36715</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE1LTAzLTMxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NvbnRlbnQg
RXh0ZW5zaW9uc10gUHJvcGVybHkgaGFuZGxlIHJlZ2V4ZXMgdGhhdCBtYXRjaCBldmVyeXRoaW5n
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzMjgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250
ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkNvbWJpbmVkVVJMRmlsdGVyczo6Y3JlYXRlTkZBcyk6CisgICAg
ICAgIE1ha2Ugc3VyZSB3ZSBhbHdheXMgaGF2ZSBhdCBsZWFzdCBvbmUgTkZBIGZvciBydWxlIGxp
c3RzIHdpdGggdHJpZ2dlcnMgdGhhdCBhbGwgbWF0Y2ggZXZlcnl0aGluZy4KKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZUludGVycHJldGVyOjppbnRlcnBy
ZXRBcHBlbmRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVycHJldFRlc3RGbGFnc0FuZEFwcGVuZEFjdGlvbik6
CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRvIHJlZHVjZSBkdXBsaWNhdGUgY29kZS4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRlY29kZUludGVycHJl
dGVyOjphY3Rpb25zRnJvbURGQVJvb3QpOgorICAgICAgICBHZXQgYWxsIGFjdGlvbnMgd2l0aG91
dCBmbGFncyBmcm9tIHRoZSBERkEgcm9vdC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zOjpERkFCeXRlY29kZUludGVycHJldGVyOjppbnRlcnByZXQpOgorICAgICAgICBSZW1v
dmUgYnJhbmNoZXMgd2hlbiBpbnRlcnByZXRpbmcuCisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvREZBQnl0ZWNvZGVJbnRlcnByZXRlci5oOgorICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9u
cyB0byByZWR1Y2UgZHVwbGljYXRlIGNvZGUuCisKIDIwMTUtMDMtMzEgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBj
b21wdXRlIGEgcmVnaW9uIGZvciBlbGVtZW50cyBvbiB0aGUgcGFnZSB0aGF0IGhhdmUgd2hlZWwg
ZXZlbnQgaGFuZGxlcnMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bWJpbmVkVVJMRmlsdGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAkocmV2aXNpb24gMTgyMjEyKQorKysg
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjAxLDYgKzIwMSw4IEBAIFZlY3RvcjxORkE+IENvbWJpbmVkVVJM
RmlsdGVyczo6Y3JlYXRlTkYKICAgICAgICAgKythY3RpdmVTdGFjay5sYXN0KCkuaXRlcmF0b3I7
CiAgICAgfQogCisgICAgaWYgKCFuZmFzLnNpemUoKSkKKyAgICAgICAgbmZhcy5hcHBlbmQoTkZB
KCkpOwogICAgIHJldHVybiBuZmFzOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAko
cmV2aXNpb24gMTgyMjEyKQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZB
Qnl0ZWNvZGVJbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE4ICs0MSwzOSBA
QCBzdGF0aWMgaW5saW5lIEludFR5cGUgZ2V0Qml0cyhjb25zdCBERkFCCiAgICAgcmV0dXJuICpy
ZWludGVycHJldF9jYXN0PGNvbnN0IEludFR5cGUqPigmYnl0ZWNvZGVbaW5kZXhdKTsKIH0KICAg
ICAKK3ZvaWQgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6aW50ZXJwcmV0QXBwZW5kQWN0aW9uKHVu
c2lnbmVkJiBwcm9ncmFtQ291bnRlciwgQWN0aW9ucyYgYWN0aW9ucykKK3sKKyAgICBBU1NFUlQo
Z2V0Qml0czxERkFCeXRlY29kZUluc3RydWN0aW9uPihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVu
Z3RoLCBwcm9ncmFtQ291bnRlcikgPT0gREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0
aW9uKTsKKyAgICBhY3Rpb25zLmFkZChzdGF0aWNfY2FzdDx1aW50NjRfdD4oZ2V0Qml0czx1bnNp
Z25lZD4obV9ieXRlY29kZSwgbV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXpl
b2YoREZBQnl0ZWNvZGUpKSkpOworICAgIHByb2dyYW1Db3VudGVyICs9IGluc3RydWN0aW9uU2l6
ZVdpdGhBcmd1bWVudHMoREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uKTsKK30K
Kwordm9pZCBERkFCeXRlY29kZUludGVycHJldGVyOjppbnRlcnByZXRUZXN0RmxhZ3NBbmRBcHBl
bmRBY3Rpb24odW5zaWduZWQmIHByb2dyYW1Db3VudGVyLCB1aW50MTZfdCBmbGFncywgQWN0aW9u
cyYgYWN0aW9ucykKK3sKKyAgICBBU1NFUlQoZ2V0Qml0czxERkFCeXRlY29kZUluc3RydWN0aW9u
PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlcikgPT0gREZBQnl0
ZWNvZGVJbnN0cnVjdGlvbjo6VGVzdEZsYWdzQW5kQXBwZW5kQWN0aW9uKTsKKyAgICBpZiAoZmxh
Z3MgJiBnZXRCaXRzPHVpbnQxNl90PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9n
cmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZSkpKQorICAgICAgICBhY3Rpb25zLmFkZChz
dGF0aWNfY2FzdDx1aW50NjRfdD4oZ2V0Qml0czx1bnNpZ25lZD4obV9ieXRlY29kZSwgbV9ieXRl
Y29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2YoREZBQnl0ZWNvZGUpICsgc2l6ZW9m
KHVpbnQxNl90KSkpKTsKKyAgICBwcm9ncmFtQ291bnRlciArPSBpbnN0cnVjdGlvblNpemVXaXRo
QXJndW1lbnRzKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OlRlc3RGbGFnc0FuZEFwcGVuZEFjdGlv
bik7Cit9CisKIERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMgREZBQnl0ZWNvZGVJbnRl
cnByZXRlcjo6YWN0aW9uc0Zyb21ERkFSb290KCkKIHsKLSAgICBERkFCeXRlY29kZUludGVycHJl
dGVyOjpBY3Rpb25zIHVuaXZlcnNhbEFjdGlvbkxvY2F0aW9uczsKKyAgICBBY3Rpb25zIGFjdGlv
bnM7CiAKLSAgICAvLyBTa2lwIGZpcnN0IERGQSBoZWFkZXIuIEFsbCB1bml2ZXJzYWwgYWN0aW9u
cyBhcmUgaW4gdGhlIGZpcnN0IERGQSByb290LgorICAgIC8vIERGQSBoZWFkZXIuCisgICAgdW5z
aWduZWQgZGZhQnl0ZWNvZGVMZW5ndGggPSBnZXRCaXRzPHVuc2lnbmVkPihtX2J5dGVjb2RlLCBt
X2J5dGVjb2RlTGVuZ3RoLCAwKTsKICAgICB1bnNpZ25lZCBwcm9ncmFtQ291bnRlciA9IHNpemVv
Zih1bnNpZ25lZCk7CiAKLSAgICB3aGlsZSAoc3RhdGljX2Nhc3Q8REZBQnl0ZWNvZGVJbnN0cnVj
dGlvbj4obV9ieXRlY29kZVtwcm9ncmFtQ291bnRlcl0pID09IERGQUJ5dGVjb2RlSW5zdHJ1Y3Rp
b246OkFwcGVuZEFjdGlvbikgewotICAgICAgICB1bml2ZXJzYWxBY3Rpb25Mb2NhdGlvbnMuYWRk
KHN0YXRpY19jYXN0PHVpbnQ2NF90PihnZXRCaXRzPHVuc2lnbmVkPihtX2J5dGVjb2RlLCBtX2J5
dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZSkpKSk7Ci0g
ICAgICAgIHByb2dyYW1Db3VudGVyICs9IGluc3RydWN0aW9uU2l6ZVdpdGhBcmd1bWVudHMoREZB
Qnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uKTsKKyAgICB3aGlsZSAocHJvZ3JhbUNv
dW50ZXIgPCBkZmFCeXRlY29kZUxlbmd0aCkgeworICAgICAgICBERkFCeXRlY29kZUluc3RydWN0
aW9uIGluc3RydWN0aW9uID0gc3RhdGljX2Nhc3Q8REZBQnl0ZWNvZGVJbnN0cnVjdGlvbj4obV9i
eXRlY29kZVtwcm9ncmFtQ291bnRlcl0pOworICAgICAgICBpZiAoaW5zdHJ1Y3Rpb24gPT0gREZB
Qnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uKQorICAgICAgICAgICAgaW50ZXJwcmV0
QXBwZW5kQWN0aW9uKHByb2dyYW1Db3VudGVyLCBhY3Rpb25zKTsKKyAgICAgICAgZWxzZSBpZiAo
aW5zdHJ1Y3Rpb24gPT0gREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6VGVzdEZsYWdzQW5kQXBwZW5k
QWN0aW9uKQorICAgICAgICAgICAgcHJvZ3JhbUNvdW50ZXIgKz0gaW5zdHJ1Y3Rpb25TaXplV2l0
aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0aW9uOjpUZXN0RmxhZ3NBbmRBcHBlbmRBY3Rp
b24pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcmV0dXJu
IHVuaXZlcnNhbEFjdGlvbkxvY2F0aW9uczsKKyAgICByZXR1cm4gYWN0aW9uczsKIH0KICAgICAK
IERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6
aW50ZXJwcmV0KGNvbnN0IENTdHJpbmcmIHVybENTdHJpbmcsIHVpbnQxNl90IGZsYWdzKQpAQCAt
NzEsOSArOTIsMjIgQEAgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6QWN0aW9ucyBERkFCeXRlYwog
ICAgICAgICBwcm9ncmFtQ291bnRlciArPSBzaXplb2YodW5zaWduZWQpOwogCiAgICAgICAgIC8v
IFNraXAgdGhlIGFjdGlvbnMgb24gdGhlIERGQSByb290LiBUaGVzZSBhcmUgYWNjZXNzZWQgdmlh
IGFjdGlvbnNGcm9tREZBUm9vdC4KLSAgICAgICAgd2hpbGUgKHN0YXRpY19jYXN0PERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGVbcHJvZ3JhbUNvdW50ZXJdKSA9PSBERkFCeXRlY29k
ZUluc3RydWN0aW9uOjpBcHBlbmRBY3Rpb24pIHsKLSAgICAgICAgICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UoIWRmYVN0YXJ0LCAiVHJpZ2dlcnMgdGhhdCBtYXRjaCBldmVyeXRoaW5nIHNob3VsZCBv
bmx5IGJlIGluIHRoZSBmaXJzdCBERkEuIik7Ci0gICAgICAgICAgICBwcm9ncmFtQ291bnRlciAr
PSBpbnN0cnVjdGlvblNpemVXaXRoQXJndW1lbnRzKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkFw
cGVuZEFjdGlvbik7CisgICAgICAgIGlmICghZGZhU3RhcnQpIHsKKyAgICAgICAgICAgIHdoaWxl
IChwcm9ncmFtQ291bnRlciA8IGRmYUJ5dGVjb2RlTGVuZ3RoKSB7CisgICAgICAgICAgICAgICAg
REZBQnl0ZWNvZGVJbnN0cnVjdGlvbiBpbnN0cnVjdGlvbiA9IHN0YXRpY19jYXN0PERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGVbcHJvZ3JhbUNvdW50ZXJdKTsKKyAgICAgICAgICAg
ICAgICBpZiAoaW5zdHJ1Y3Rpb24gPT0gREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0
aW9uKQorICAgICAgICAgICAgICAgICAgICBwcm9ncmFtQ291bnRlciArPSBpbnN0cnVjdGlvblNp
emVXaXRoQXJndW1lbnRzKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkFwcGVuZEFjdGlvbik7Cisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5zdHJ1Y3Rpb24gPT0gREZBQnl0ZWNvZGVJbnN0cnVj
dGlvbjo6VGVzdEZsYWdzQW5kQXBwZW5kQWN0aW9uKQorICAgICAgICAgICAgICAgICAgICBpbnRl
cnByZXRUZXN0RmxhZ3NBbmRBcHBlbmRBY3Rpb24ocHJvZ3JhbUNvdW50ZXIsIGZsYWdzLCBhY3Rp
b25zKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHByb2dyYW1Db3VudGVyID49IG1fYnl0ZWNv
ZGVMZW5ndGgpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbnM7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHN0YXRpY19jYXN0PERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGVbcHJvZ3JhbUNvdW50ZXJdKSAhPSBERkFCeXRlY29k
ZUluc3RydWN0aW9uOjpBcHBlbmRBY3Rpb24gCisgICAgICAgICAgICAgICAgJiYgc3RhdGljX2Nh
c3Q8REZBQnl0ZWNvZGVJbnN0cnVjdGlvbj4obV9ieXRlY29kZVtwcm9ncmFtQ291bnRlcl0pICE9
IERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OlRlc3RGbGFnc0FuZEFwcGVuZEFjdGlvbiwgCisgICAg
ICAgICAgICAgICAgIlRyaWdnZXJzIHRoYXQgbWF0Y2ggZXZlcnl0aGluZyBzaG91bGQgb25seSBi
ZSBpbiB0aGUgZmlyc3QgREZBLiIpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBJ
bnRlcnByZXQgdGhlIGJ5dGVjb2RlIGZyb20gdGhpcyBERkEuCkBAIC04Nyw0NiArMTIxLDY3IEBA
IERGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OkFjdGlvbnMgREZBQnl0ZWMKICAgICAgICAgICAgIGNh
c2UgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6VGVybWluYXRlOgogICAgICAgICAgICAgICAgIGdv
dG8gbmV4dERGQTsKICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIERGQUJ5
dGVjb2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVDYXNlU2Vuc2l0aXZlOgotICAgICAgICAgICAg
Y2FzZSBERkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlQ2FzZUluc2Vuc2l0aXZlOiB7
CisgICAgICAgICAgICBjYXNlIERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVDYXNl
U2Vuc2l0aXZlOiB7CiAgICAgICAgICAgICAgICAgaWYgKHVybEluZGV4SXNBZnRlckVuZE9mU3Ry
aW5nKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRERkE7CiAKKyAgICAgICAgICAgICAg
ICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGluIHRoZSB1cmwgaXMgdGhl
IHZhbHVlIHN0b3JlZCB3aXRoIHRoZSBieXRlY29kZS4KICAgICAgICAgICAgICAgICBjaGFyIGNo
YXJhY3RlciA9IHVybFt1cmxJbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0
PERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGVbcHJvZ3JhbUNvdW50ZXJdKSA9PSBE
RkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlQ2FzZUluc2Vuc2l0aXZlKQotICAgICAg
ICAgICAgICAgICAgICBjaGFyYWN0ZXIgPSB0b0FTQ0lJTG93ZXIoY2hhcmFjdGVyKTsKKyAgICAg
ICAgICAgICAgICBpZiAoY2hhcmFjdGVyID09IGdldEJpdHM8dWludDhfdD4obV9ieXRlY29kZSwg
bV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2YoREZBQnl0ZWNvZGUpKSkg
eworICAgICAgICAgICAgICAgICAgICBwcm9ncmFtQ291bnRlciA9IGdldEJpdHM8dW5zaWduZWQ+
KG1fYnl0ZWNvZGUsIG1fYnl0ZWNvZGVMZW5ndGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERG
QUJ5dGVjb2RlKSArIHNpemVvZih1aW50OF90KSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
Y2hhcmFjdGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgdXJsSW5kZXhJc0FmdGVyRW5kT2ZT
dHJpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB1cmxJbmRleCsrOyAvLyBUaGlzIHJl
cHJlc2VudHMgYW4gZWRnZSBpbiB0aGUgREZBLgorICAgICAgICAgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgICAgICAgICBwcm9ncmFtQ291bnRlciArPSBpbnN0cnVjdGlvblNpemVXaXRoQXJn
dW1lbnRzKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVDYXNlU2Vuc2l0aXZlKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY2Fz
ZSBERkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlQ2FzZUluc2Vuc2l0aXZlOiB7Cisg
ICAgICAgICAgICAgICAgaWYgKHVybEluZGV4SXNBZnRlckVuZE9mU3RyaW5nKQorICAgICAgICAg
ICAgICAgICAgICBnb3RvIG5leHRERkE7CiAKICAgICAgICAgICAgICAgICAvLyBDaGVjayB0byBz
ZWUgaWYgdGhlIG5leHQgY2hhcmFjdGVyIGluIHRoZSB1cmwgaXMgdGhlIHZhbHVlIHN0b3JlZCB3
aXRoIHRoZSBieXRlY29kZS4KKyAgICAgICAgICAgICAgICBjaGFyIGNoYXJhY3RlciA9IHRvQVND
SUlMb3dlcih1cmxbdXJsSW5kZXhdKTsKICAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyID09
IGdldEJpdHM8dWludDhfdD4obV9ieXRlY29kZSwgbV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNv
dW50ZXIgKyBzaXplb2YoREZBQnl0ZWNvZGUpKSkgewogICAgICAgICAgICAgICAgICAgICBwcm9n
cmFtQ291bnRlciA9IGdldEJpdHM8dW5zaWduZWQ+KG1fYnl0ZWNvZGUsIG1fYnl0ZWNvZGVMZW5n
dGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5dGVjb2RlKSArIHNpemVvZih1aW50OF90
KSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghY2hhcmFjdGVyKQogICAgICAgICAgICAgICAg
ICAgICAgICAgdXJsSW5kZXhJc0FmdGVyRW5kT2ZTdHJpbmcgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICB1cmxJbmRleCsrOyAvLyBUaGlzIHJlcHJlc2VudHMgYW4gZWRnZSBpbiB0aGUgREZB
LgotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHByb2dyYW1D
b3VudGVyICs9IGluc3RydWN0aW9uU2l6ZVdpdGhBcmd1bWVudHMoREZBQnl0ZWNvZGVJbnN0cnVj
dGlvbjo6Q2hlY2tWYWx1ZUNhc2VTZW5zaXRpdmUpOwotICAgICAgICAgICAgICAgICAgICBBU1NF
UlQoaW5zdHJ1Y3Rpb25TaXplV2l0aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0aW9uOjpD
aGVja1ZhbHVlQ2FzZVNlbnNpdGl2ZSkgPT0gaW5zdHJ1Y3Rpb25TaXplV2l0aEFyZ3VtZW50cyhE
RkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlQ2FzZUluc2Vuc2l0aXZlKSk7Ci0gICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAg
ICBwcm9ncmFtQ291bnRlciArPSBpbnN0cnVjdGlvblNpemVXaXRoQXJndW1lbnRzKERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVDYXNlSW5zZW5zaXRpdmUpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGNhc2UgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6Q2hlY2tWYWx1ZVJhbmdlQ2FzZVNlbnNp
dGl2ZToKLSAgICAgICAgICAgIGNhc2UgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6Q2hlY2tWYWx1
ZVJhbmdlQ2FzZUluc2Vuc2l0aXZlOiB7CisgICAgICAgICAgICBjYXNlIERGQUJ5dGVjb2RlSW5z
dHJ1Y3Rpb246OkNoZWNrVmFsdWVSYW5nZUNhc2VTZW5zaXRpdmU6IHsKICAgICAgICAgICAgICAg
ICBpZiAodXJsSW5kZXhJc0FmdGVyRW5kT2ZTdHJpbmcpCiAgICAgICAgICAgICAgICAgICAgIGdv
dG8gbmV4dERGQTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjaGFyIGNoYXJh
Y3RlciA9IHVybFt1cmxJbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PERG
QUJ5dGVjb2RlSW5zdHJ1Y3Rpb24+KG1fYnl0ZWNvZGVbcHJvZ3JhbUNvdW50ZXJdKSA9PSBERkFC
eXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlUmFuZ2VDYXNlSW5zZW5zaXRpdmUpCi0gICAg
ICAgICAgICAgICAgICAgIGNoYXJhY3RlciA9IHRvQVNDSUlMb3dlcihjaGFyYWN0ZXIpOwogICAg
ICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXIgPj0gZ2V0Qml0czx1aW50OF90PihtX2J5dGVjb2Rl
LCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZSkp
CiAgICAgICAgICAgICAgICAgICAgICYmIGNoYXJhY3RlciA8PSBnZXRCaXRzPHVpbnQ4X3Q+KG1f
Ynl0ZWNvZGUsIG1fYnl0ZWNvZGVMZW5ndGgsIHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5
dGVjb2RlKSArIHNpemVvZih1aW50OF90KSkpIHsKICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jh
bUNvdW50ZXIgPSBnZXRCaXRzPHVuc2lnbmVkPihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3Ro
LCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZSkgKyBzaXplb2YodWludDhfdCkg
KyBzaXplb2YodWludDhfdCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNoYXJhY3RlcikK
ICAgICAgICAgICAgICAgICAgICAgICAgIHVybEluZGV4SXNBZnRlckVuZE9mU3RyaW5nID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgdXJsSW5kZXgrKzsgLy8gVGhpcyByZXByZXNlbnRzIGFu
IGVkZ2UgaW4gdGhlIERGQS4KLSAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICBwcm9ncmFtQ291bnRlciArPSBpbnN0cnVj
dGlvblNpemVXaXRoQXJndW1lbnRzKERGQUJ5dGVjb2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVS
YW5nZUNhc2VTZW5zaXRpdmUpOwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaW5zdHJ1Y3Rp
b25TaXplV2l0aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlUmFu
Z2VDYXNlU2Vuc2l0aXZlKSA9PSBpbnN0cnVjdGlvblNpemVXaXRoQXJndW1lbnRzKERGQUJ5dGVj
b2RlSW5zdHJ1Y3Rpb246OkNoZWNrVmFsdWVSYW5nZUNhc2VJbnNlbnNpdGl2ZSkpOwotICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgY2FzZSBERkFCeXRlY29kZUluc3RydWN0aW9uOjpDaGVja1ZhbHVlUmFuZ2VDYXNl
SW5zZW5zaXRpdmU6IHsKKyAgICAgICAgICAgICAgICBpZiAodXJsSW5kZXhJc0FmdGVyRW5kT2ZT
dHJpbmcpCisgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dERGQTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBjaGFyIGNoYXJhY3RlciA9IHRvQVNDSUlMb3dlcih1cmxbdXJs
SW5kZXhdKTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyID49IGdldEJpdHM8dWludDhf
dD4obV9ieXRlY29kZSwgbV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2Yo
REZBQnl0ZWNvZGUpKQorICAgICAgICAgICAgICAgICAgICAmJiBjaGFyYWN0ZXIgPD0gZ2V0Qml0
czx1aW50OF90PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciAr
IHNpemVvZihERkFCeXRlY29kZSkgKyBzaXplb2YodWludDhfdCkpKSB7CisgICAgICAgICAgICAg
ICAgICAgIHByb2dyYW1Db3VudGVyID0gZ2V0Qml0czx1bnNpZ25lZD4obV9ieXRlY29kZSwgbV9i
eXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2YoREZBQnl0ZWNvZGUpICsgc2l6
ZW9mKHVpbnQ4X3QpICsgc2l6ZW9mKHVpbnQ4X3QpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFjaGFyYWN0ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICB1cmxJbmRleElzQWZ0ZXJFbmRP
ZlN0cmluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIHVybEluZGV4Kys7IC8vIFRoaXMg
cmVwcmVzZW50cyBhbiBlZGdlIGluIHRoZSBERkEuCisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHByb2dyYW1Db3VudGVyICs9IGluc3RydWN0aW9uU2l6ZVdpdGhB
cmd1bWVudHMoREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6Q2hlY2tWYWx1ZVJhbmdlQ2FzZUluc2Vu
c2l0aXZlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApAQCAtMTM5
LDE0ICsxOTQsMTEgQEAgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6QWN0aW9ucyBERkFCeXRlYwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
IGNhc2UgREZBQnl0ZWNvZGVJbnN0cnVjdGlvbjo6QXBwZW5kQWN0aW9uOgotICAgICAgICAgICAg
ICAgIGFjdGlvbnMuYWRkKHN0YXRpY19jYXN0PHVpbnQ2NF90PihnZXRCaXRzPHVuc2lnbmVkPiht
X2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFC
eXRlY29kZSkpKSk7Ci0gICAgICAgICAgICAgICAgcHJvZ3JhbUNvdW50ZXIgKz0gaW5zdHJ1Y3Rp
b25TaXplV2l0aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0aW9uOjpBcHBlbmRBY3Rpb24p
OworICAgICAgICAgICAgICAgIGludGVycHJldEFwcGVuZEFjdGlvbihwcm9ncmFtQ291bnRlciwg
YWN0aW9ucyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2FzZSBERkFCeXRlY29kZUluc3RydWN0aW9uOjpUZXN0RmxhZ3NBbmRBcHBl
bmRBY3Rpb246Ci0gICAgICAgICAgICAgICAgaWYgKGZsYWdzICYgZ2V0Qml0czx1aW50MTZfdD4o
bV9ieXRlY29kZSwgbV9ieXRlY29kZUxlbmd0aCwgcHJvZ3JhbUNvdW50ZXIgKyBzaXplb2YoREZB
Qnl0ZWNvZGUpKSkKLSAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5hZGQoc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KGdldEJpdHM8dW5zaWduZWQ+KG1fYnl0ZWNvZGUsIG1fYnl0ZWNvZGVMZW5ndGgs
IHByb2dyYW1Db3VudGVyICsgc2l6ZW9mKERGQUJ5dGVjb2RlKSArIHNpemVvZih1aW50MTZfdCkp
KSk7Ci0gICAgICAgICAgICAgICAgcHJvZ3JhbUNvdW50ZXIgKz0gaW5zdHJ1Y3Rpb25TaXplV2l0
aEFyZ3VtZW50cyhERkFCeXRlY29kZUluc3RydWN0aW9uOjpUZXN0RmxhZ3NBbmRBcHBlbmRBY3Rp
b24pOworICAgICAgICAgICAgICAgIGludGVycHJldFRlc3RGbGFnc0FuZEFwcGVuZEFjdGlvbihw
cm9ncmFtQ291bnRlciwgZmxhZ3MsIGFjdGlvbnMpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0xNTUsNiArMjA3
LDcgQEAgREZBQnl0ZWNvZGVJbnRlcnByZXRlcjo6QWN0aW9ucyBERkFCeXRlYwogICAgICAgICAg
ICAgLy8gV2Ugc2hvdWxkIGFsd2F5cyB0ZXJtaW5hdGUgYmVmb3JlIG9yIGF0IGEgbnVsbCBjaGFy
YWN0ZXIgYXQgdGhlIGVuZCBvZiBhIFN0cmluZy4KICAgICAgICAgICAgIEFTU0VSVCh1cmxJbmRl
eCA8PSB1cmxDU3RyaW5nLmxlbmd0aCgpIHx8ICh1cmxJbmRleElzQWZ0ZXJFbmRPZlN0cmluZyAm
JiB1cmxJbmRleCA8PSB1cmxDU3RyaW5nLmxlbmd0aCgpICsgMSkpOwogICAgICAgICB9CisgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIFRoZSB3aGlsZSBsb29wIGNhbiBv
bmx5IGJlIGV4aXRlZCB1c2luZyBnb3RvIG5leHRERkEuCiAgICAgICAgIG5leHRERkE6CiAgICAg
ICAgIEFTU0VSVChkZmFCeXRlY29kZUxlbmd0aCk7CiAgICAgICAgIHByb2dyYW1Db3VudGVyID0g
ZGZhU3RhcnQgKyBkZmFCeXRlY29kZUxlbmd0aDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmgJKHJl
dmlzaW9uIDE4MjIxMikKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0RGQUJ5
dGVjb2RlSW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBwdWJs
aWM6CiAgICAgQWN0aW9ucyBhY3Rpb25zRnJvbURGQVJvb3QoKTsKIAogcHJpdmF0ZToKKyAgICB2
b2lkIGludGVycHJldEFwcGVuZEFjdGlvbih1bnNpZ25lZCYgcHJvZ3JhbUNvdW50ZXIsIEFjdGlv
bnMmKTsKKyAgICB2b2lkIGludGVycHJldFRlc3RGbGFnc0FuZEFwcGVuZEFjdGlvbih1bnNpZ25l
ZCYgcHJvZ3JhbUNvdW50ZXIsIHVpbnQxNl90IGZsYWdzLCBBY3Rpb25zJik7CiAgICAgY29uc3Qg
REZBQnl0ZWNvZGUqIG1fYnl0ZWNvZGU7CiAgICAgY29uc3QgdW5zaWduZWQgbV9ieXRlY29kZUxl
bmd0aDsKIH07CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxODIyMTUpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wMy0zMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFtDb250ZW50IEV4dGVuc2lvbnNdIFByb3Bl
cmx5IGhhbmRsZSByZWdleGVzIHRoYXQgbWF0Y2ggZXZlcnl0aGluZy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzI4MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnRl
c3RSZXF1ZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Om1ha2VCYWNrZW5kKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgIFJlbW92ZWQgZHVwbGljYXRlIGNv
ZGUgYW5kIGFkZGVkIHRlc3QuCisKIDIwMTUtMDMtMzEgIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udGVudCBFeHRlbnNpb25zOiBzcGxpdCB0aGUg
c3RhdGUgbWFjaGluZXMgdG8gbWluaW1pemUgcHJlZml4IHN0YXRlcwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwCShyZXZpc2lvbiAxODIyMTIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsOSArMTM2LDgg
QEAgcHJpdmF0ZToKIHZvaWQgc3RhdGljIHRlc3RSZXF1ZXN0KENvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgY29udGVudEV4dGVuc2lvbnNCYWNrZW5kLCBjb25zdCBS
ZXNvdXJjZUxvYWRJbmZvJiByZXNvdXJjZUxvYWRJbmZvLCBWZWN0b3I8Q29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU+IGV4cGVjdGVkQWN0aW9ucywgYm9vbCBpZ25vcmVQcmV2aW91c1J1bGVz
ID0gZmFsc2UpCiB7CiAgICAgYXV0byBhY3Rpb25zID0gY29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmFjdGlvbnNGb3JSZXNvdXJjZUxvYWQocmVzb3VyY2VMb2FkSW5mbyk7Ci0KICAgICB1bnNpZ25l
ZCBleHBlY3RlZFNpemUgPSBhY3Rpb25zLnNpemUoKTsKLSAgICBpZiAoYWN0aW9ucy5zaXplKCkg
JiYgIWlnbm9yZVByZXZpb3VzUnVsZXMpCisgICAgaWYgKCFpZ25vcmVQcmV2aW91c1J1bGVzKQog
ICAgICAgICBleHBlY3RlZFNpemUtLTsgLy8gVGhlIGxhc3QgYWN0aW9uIGlzIGFwcGx5aW5nIHRo
ZSBjb21waWxlZCBzdHlsZXNoZWV0LgogICAgIAogICAgIEVYUEVDVF9FUShleHBlY3RlZEFjdGlv
bnMuc2l6ZSgpLCBleHBlY3RlZFNpemUpOwpAQCAtMTU2LDI2ICsxNTUsMjUgQEAgUmVzb3VyY2VM
b2FkSW5mbyBtYWluRG9jdW1lbnRSZXF1ZXN0KGNvbgogICAgIHJldHVybiB7IFVSTChVUkwoKSwg
dXJsKSwgVVJMKFVSTCgpLCB1cmwpLCByZXNvdXJjZVR5cGUgfTsKIH0KIAotY29uc3QgY2hhciog
YmFzaWNGaWx0ZXIgPSAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIn19XSI7Ci0KLVRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgQmFzaWMpCitDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bnNCYWNrZW5kIG1ha2VCYWNrZW5kKGNvbnN0IGNoYXIqIGpzb24pCiB7Ci0gICAgYXV0byBleHRl
bnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJvbUZpbHRl
cihiYXNpY0ZpbHRlcik7Ci0KKyAgICBhdXRvIGV4dGVuc2lvbiA9IEluTWVtb3J5Q29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uOjpjcmVhdGVGcm9tRmlsdGVyKGpzb24pOwogICAgIENvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFja2VuZDsKICAgICBiYWNrZW5kLmFk
ZENvbnRlbnRFeHRlbnNpb24oInRlc3RGaWx0ZXIiLCBleHRlbnNpb24pOworICAgIHJldHVybiBi
YWNrZW5kOworfQorCitURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEJhc2ljKQoreworICAg
IGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxv
Y2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid2Via2l0Lm9yZ1wifX1dIik7CiAK
ICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Vi
a2l0Lm9yZy8iKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0p
OwogfQogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFJhbmdlQmFzaWMpCiB7Ci0gICAg
Y29uc3QgY2hhciogcmFuZ2VCYXNpY0ZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwid1swLTldY1wiLCBcInVybC1m
aWx0ZXItaXMtY2FzZS1zZW5zaXRpdmVcIjp0cnVlfX0sIgotICAgICAgICAie1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2stY29va2llc1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJbQS1IXVthLXpdY2tvXCIsIFwidXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZVwiOnRydWV9
fV0iOwotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRlbnNp
b246OmNyZWF0ZUZyb21GaWx0ZXIocmFuZ2VCYXNpY0ZpbHRlcik7Ci0KLSAgICBDb250ZW50RXh0
ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5h
ZGRDb250ZW50RXh0ZW5zaW9uKCJQYXR0ZXJuTmVzdGVkR3JvdXBzRmlsdGVyIiwgZXh0ZW5zaW9u
KTsKKyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZCgiW3tcImFjdGlvblwiOntcInR5cGVc
IjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIndbMC05XWNcIiwgXCJ1
cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlXCI6dHJ1ZX19LCIKKyAgICAgICAgIntcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrLWNvb2tpZXNcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwiW0EtSF1bYS16XWNrb1wiLCBcInVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmVcIjp0
cnVlfX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0
KCJodHRwOi8vdzNjLm9yZyIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9j
a0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
dzJjOi8vd2hhdHdnLm9yZy8iKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6Qmxv
Y2tMb2FkIH0pOwpAQCAtMTk3LDExICsxOTUsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFJhbmdlQmFzaWMpCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFJhbmdlRXhjbHVz
aW9uR2VuZXJhdGluZ1VuaXZlcnNhbFRyYW5zaXRpb24pCiB7CiAgICAgLy8gVHJhbnNpdGlvbiBv
ZiB0aGUgdHlwZSAoW15YXVgpIGVmZmljdGl2ZWx5IHRyYW5zaXRpb24gb24gZXZlcnkgaW5wdXQu
Ci0gICAgY29uc3QgY2hhciogcmFuZ2VFeGNsdXNpb25HZW5lcmF0aW5nVW5pdmVyc2FsVHJhbnNp
dGlvbkZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwiW15hXSthZm9vYmFyXCJ9fV0iOwotICAgIGF1dG8gZXh0ZW5z
aW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZUZyb21GaWx0ZXIo
cmFuZ2VFeGNsdXNpb25HZW5lcmF0aW5nVW5pdmVyc2FsVHJhbnNpdGlvbkZpbHRlcik7Ci0KLSAg
ICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0g
ICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJQYXR0ZXJuTmVzdGVkR3JvdXBzRmlsdGVy
IiwgZXh0ZW5zaW9uKTsKKyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZCgiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIlte
YV0rYWZvb2JhclwifX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1l
bnRSZXF1ZXN0KCJodHRwOi8vdzNjLm9yZyIpLCB7IH0pOwogCkBAIC0yMTksMTEgKzIxMyw3IEBA
IFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUmFuZ2VFeGNsdXMKIAogVEVTVF9GKENvbnRl
bnRFeHRlbnNpb25UZXN0LCBQYXR0ZXJuU3RhcnRpbmdXaXRoR3JvdXApCiB7Ci0gICAgY29uc3Qg
Y2hhciogcGF0dGVybnNTdGFydGluZ1dpdGhHcm91cEZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXihodHRwOi8v
d2hhdHdnXFxcXC5vcmcvKT93ZWJraXRcMTM0XDEzNC5vcmdcIn19XSI7Ci0gICAgYXV0byBleHRl
bnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJvbUZpbHRl
cihwYXR0ZXJuc1N0YXJ0aW5nV2l0aEdyb3VwRmlsdGVyKTsKLQotICAgIENvbnRlbnRFeHRlbnNp
b25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFja2VuZDsKLSAgICBiYWNrZW5kLmFkZENv
bnRlbnRFeHRlbnNpb24oIlBhdHRlcm5OZXN0ZWRHcm91cHNGaWx0ZXIiLCBleHRlbnNpb24pOwor
ICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXihodHRwOi8vd2hhdHdnXFxc
XC5vcmcvKT93ZWJraXRcMTM0XDEzNC5vcmdcIn19XSIpOwogCiAgICAgdGVzdFJlcXVlc3QoYmFj
a2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3doYXR3Zy5vcmcvd2Via2l0Lm9yZy8i
KSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRl
c3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93aGF0d2cub3Jn
L3dlYmtpdC5vcmciKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2Fk
IH0pOwpAQCAtMjM0LDEyICsyMjQsNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFBh
dHRlcm5TdGFyCiAKIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUGF0dGVybk5lc3RlZEdy
b3VwcykKIHsKLSAgICBjb25zdCBjaGFyKiBwYXR0ZXJuTmVzdGVkR3JvdXBzRmlsdGVyID0gIlt7
XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVy
XCI6XCJeaHR0cDovL3dlYmtpdFxcXFwub3JnLyhmb28oYmFyKSopK1wifX1dIjsKLQotICAgIGF1
dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZUZy
b21GaWx0ZXIocGF0dGVybk5lc3RlZEdyb3Vwc0ZpbHRlcik7Ci0KLSAgICBDb250ZW50RXh0ZW5z
aW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5hZGRD
b250ZW50RXh0ZW5zaW9uKCJQYXR0ZXJuTmVzdGVkR3JvdXBzRmlsdGVyIiwgZXh0ZW5zaW9uKTsK
KyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZCgiW3tcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl5odHRwOi8vd2Via2l0XFxc
XC5vcmcvKGZvbyhiYXIpKikrXCJ9fV0iKTsKIAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1h
aW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL2ZvbyIpLCB7IENvbnRlbnRFeHRl
bnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvZm9vYmFyIiksIHsgQ29u
dGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKQEAgLTI1NiwxMiArMjQx
LDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBQYXR0ZXJuTmVzdAogCiBURVNUX0Yo
Q29udGVudEV4dGVuc2lvblRlc3QsIE1hdGNoUGFzdEVuZE9mU3RyaW5nKQogewotICAgIGNvbnN0
IGNoYXIqIG1hdGNoUGFzdEVuZE9mU3RyaW5nRmlsdGVyID0gIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuK1wifX1dIjsKLQot
ICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNy
ZWF0ZUZyb21GaWx0ZXIobWF0Y2hQYXN0RW5kT2ZTdHJpbmdGaWx0ZXIpOwotCi0gICAgQ29udGVu
dEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kOwotICAgIGJhY2tl
bmQuYWRkQ29udGVudEV4dGVuc2lvbigiTWF0Y2hQYXN0RW5kT2ZTdHJpbmciLCBleHRlbnNpb24p
OworICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLitcIn19XSIpOwogCiAg
ICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtp
dC5vcmcvIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsK
ICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Vi
a2l0Lm9yZy9mb28iKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2Fk
IH0pOwpAQCAtMjczLDE0ICsyNTMsOSBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIE1h
dGNoUGFzdEVuCiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
aHR0cDovL3dlYmtpdC5vcmcvZm9vciIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBl
OjpCbG9ja0xvYWQgfSk7CiB9CiAKLWNvbnN0IGNoYXIqIHN0YXJ0T2ZMaW5lQXNzZXJ0aW9uRmls
dGVyID0gIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJeZm9vYmFyXCJ9fV0iOwotCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFN0YXJ0T2ZMaW5lQXNzZXJ0aW9uKQogewotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1v
cnlDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZUZyb21GaWx0ZXIoc3RhcnRPZkxpbmVB
c3NlcnRpb25GaWx0ZXIpOwotCi0gICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNp
b25zQmFja2VuZCBiYWNrZW5kOwotICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiU3Rh
cnRPZkxpbmVBc3NlcnRpb24iLCBleHRlbnNpb24pOworICAgIGF1dG8gYmFja2VuZCA9IG1ha2VC
YWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1wi
dXJsLWZpbHRlclwiOlwiXmZvb2JhclwifX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5k
LCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJmb29iYXI6Ly93ZWJraXQub3JnL2Zvb2JhciIpLCB7IENv
bnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiZm9vYmFyczovLy9mb29iYXIiKSwgeyBD
b250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwpAQCAtMjk0LDExICsy
NjksNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFN0YXJ0T2ZMaW5lCiAKIFRFU1Rf
RihDb250ZW50RXh0ZW5zaW9uVGVzdCwgRW5kT2ZMaW5lQXNzZXJ0aW9uKQogewotICAgIGNvbnN0
IGNoYXIqIGVuZE9mTGluZUFzc2VydGlvbkZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiZm9vYmFyJFwifX1dIjsK
LSAgICBhdXRvIGV4dGVuc2lvbiA9IEluTWVtb3J5Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOjpj
cmVhdGVGcm9tRmlsdGVyKGVuZE9mTGluZUFzc2VydGlvbkZpbHRlcik7Ci0KLSAgICBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2Vu
ZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJFbmRPZkxpbmVBc3NlcnRpb24iLCBleHRlbnNpb24pOwor
ICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwi
YmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiZm9vYmFyJFwifX1dIik7CiAK
ICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Vi
a2l0Lm9yZy9mb29iYXIiKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tM
b2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImZp
bGU6Ly8vZm9vYmFyIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9h
ZCB9KTsKQEAgLTMxMCwxMSArMjgxLDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBF
bmRPZkxpbmVBcwogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIEVuZE9mTGluZUFzc2Vy
dGlvbldpdGhJbnZlcnRlZENoYXJhY3RlclNldCkKIHsKLSAgICBjb25zdCBjaGFyKiBlbmRPZkxp
bmVBc3NlcnRpb25XaXRoSW52ZXJ0ZWRDaGFyYWN0ZXJTZXRGaWx0ZXIgPSAiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIlteeV0k
XCJ9fV0iOwotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRl
bnNpb246OmNyZWF0ZUZyb21GaWx0ZXIoZW5kT2ZMaW5lQXNzZXJ0aW9uV2l0aEludmVydGVkQ2hh
cmFjdGVyU2V0RmlsdGVyKTsKLQotICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uc0JhY2tlbmQgYmFja2VuZDsKLSAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oIkVu
ZE9mTGluZUFzc2VydGlvbiIsIGV4dGVuc2lvbik7CisgICAgYXV0byBiYWNrZW5kID0gbWFrZUJh
Y2tlbmQoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1
cmwtZmlsdGVyXCI6XCJbXnldJFwifX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwgeyBDb250ZW50RXh0ZW5z
aW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQs
IG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL2EiKSwgeyBDb250ZW50RXh0
ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwpAQCAtMzI5LDE0ICsyOTYsMTAgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBFbmRPZkxpbmVBcwogCiBURVNUX0YoQ29udGVu
dEV4dGVuc2lvblRlc3QsIFByZWZpeEluZml4U3VmZml4RXhhY3RNYXRjaCkKIHsKLSAgICBjb25z
dCBjaGFyKiBwcmVmaXhJbmZpeFN1ZmZpeEV4YWN0TWF0Y2hGaWx0ZXIgPSAiW3tcImFjdGlvblwi
OntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImluZml4
XCJ9fSwiCisgICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQoIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJpbmZpeFwifX0s
IgogICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6
e1widXJsLWZpbHRlclwiOlwiXnByZWZpeFwifX0sIgogICAgICAgICAie1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwic3VmZml4JFwi
fX0sIgotICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwiXmh0dHA6Ly9leGFjdFxcXFwub3JnLyRcIn19XSI7Ci0gICAg
YXV0byBleHRlbnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRl
RnJvbUZpbHRlcihwcmVmaXhJbmZpeFN1ZmZpeEV4YWN0TWF0Y2hGaWx0ZXIpOwotCi0gICAgQ29u
dGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kOwotICAgIGJh
Y2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiUHJlZml4SW5maXhTdWZmaXhFeGFjdE1hdGNoIiwg
ZXh0ZW5zaW9uKTsKKyAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwi
dHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl5odHRwOi8vZXhhY3RcXFxcLm9yZy8kXCJ9fV0i
KTsKIAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImluZml4
Oi8vd2Via2l0Lm9yZy8iKSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tM
b2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0
dHA6Ly9pbmZpeC5vcmcvIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2Nr
TG9hZCB9KTsKQEAgLTM1NiwxMiArMzE5LDggQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0
LCBQcmVmaXhJbmZpeAogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIER1cGxpY2F0ZWRN
YXRjaEFsbFRlcm1zSW5WYXJpb3VzRm9ybWF0KQogewotICAgIGNvbnN0IGNoYXIqIGR1cGxpY2F0
ZWRNYXRjaEFsbFRlcm1zSW5WYXJpb3VzRm9ybWF0RmlsdGVyID0gIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKi4qKC4pKigu
KikoLispKiguPykqaW5maXhcIn19LCIKLSAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcInByZSguPykrKC4rKT9wb3N0
XCJ9fV0iOwotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRl
bnNpb246OmNyZWF0ZUZyb21GaWx0ZXIoZHVwbGljYXRlZE1hdGNoQWxsVGVybXNJblZhcmlvdXNG
b3JtYXRGaWx0ZXIpOwotCi0gICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZCBiYWNrZW5kOwotICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiRHVwbGlj
YXRlZE1hdGNoQWxsVGVybXNJblZhcmlvdXNGb3JtYXQiLCBleHRlbnNpb24pOworICAgIGF1dG8g
YmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLiouKiguKSooLiopKC4rKSooLj8pKmluZml4
XCJ9fSwiCisgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJwcmUoLj8pKyguKyk/cG9zdFwifX1dIik7CiAKICAgICB0
ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJpbmZpeDovL3dlYmtpdC5v
cmcvIiksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKICAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vaW5maXgu
b3JnLyIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CkBA
IC0zODAsNyArMzM5LDcgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBEdXBsaWNhdGVk
TQogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFRlcm1zS25vd25Ub01hdGNoQW55dGhp
bmcpCiB7Ci0gICAgY29uc3QgY2hhciogdGVybXNLbm93blRvTWF0Y2hBbnl0aGluZ0ZpbHRlciA9
ICJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwiXnByZTEuKnBvc3QxJFwifX0sIgorICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNr
ZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiXnByZTEuKnBvc3QxJFwifX0sIgogICAgICAgICAie1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXnByZTIoLiop
cG9zdDIkXCJ9fSwiCiAgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJecHJlMyguKik/cG9zdDMkXCJ9fSwiCiAgICAg
ICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwt
ZmlsdGVyXCI6XCJecHJlNCguKikrcG9zdDQkXCJ9fSwiCkBAIC0zODksMTEgKzM0OCw3IEBAIFRF
U1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgVGVybXNLbm93blQKICAgICAgICAgIntcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl5w
cmU3KC4rKSpwb3N0NyRcIn19LCIKICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJs
b2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl5wcmU4KC4/KSpwb3N0OCRcIn19
LCIKICAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwi
OntcInVybC1maWx0ZXJcIjpcIl5wcmU5KC4rKT9wb3N0OSRcIn19LCIKLSAgICAgICAgIntcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
Il5wcmUwKC4/KStwb3N0MCRcIn19XSI7Ci0gICAgYXV0byBleHRlbnNpb24gPSBJbk1lbW9yeUNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJvbUZpbHRlcih0ZXJtc0tub3duVG9NYXRj
aEFueXRoaW5nRmlsdGVyKTsKLQotICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uc0JhY2tlbmQgYmFja2VuZDsKLSAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oIlRl
cm1zS25vd25Ub01hdGNoQW55dGhpbmciLCBleHRlbnNpb24pOworICAgICAgICAie1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXnBy
ZTAoLj8pK3Bvc3QwJFwifX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9j
dW1lbnRSZXF1ZXN0KCJwcmUxOi8vd2Via2l0Lm9yZy9wb3N0MSIpLCB7IENvbnRlbnRFeHRlbnNp
b25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwg
bWFpbkRvY3VtZW50UmVxdWVzdCgicHJlMjovL3dlYmtpdC5vcmcvcG9zdDIiKSwgeyBDb250ZW50
RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwpAQCAtNDMxLDEyICszODYsOCBA
QCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFRlcm1zS25vd25UCiAKIFRFU1RfRihDb250
ZW50RXh0ZW5zaW9uVGVzdCwgVHJhaWxpbmdEb3RTdGFyKQogewotICAgIGNvbnN0IGNoYXIqIHRy
YWlsaW5nRG90U3RhckZpbHRlciA9ICJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiZm9vLiokXCJ9fSwiCi0gICAgICAgICJ7XCJh
Y3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6
XCJiYXIoLiopJFwifX1dIjsKLSAgICBhdXRvIGV4dGVuc2lvbiA9IEluTWVtb3J5Q29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uOjpjcmVhdGVGcm9tRmlsdGVyKHRyYWlsaW5nRG90U3RhckZpbHRlcik7
Ci0KLSAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tl
bmQ7Ci0gICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJUcmFpbGluZ0RvdFN0YXIiLCBl
eHRlbnNpb24pOworICAgIGF1dG8gYmFja2VuZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiZm9vLiok
XCJ9fSwiCisgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJiYXIoLiopJFwifX1dIik7CiAKICAgICB0ZXN0UmVxdWVz
dChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwczovL3dlYmtpdC5vcmcvIiksIHsg
fSk7CiAKQEAgLTQ1MywxMyArNDA0LDkgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBU
cmFpbGluZ0RvdAogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFRyYWlsaW5nVGVybXND
YXJyeWluZ05vRGF0YSkKIHsKLSAgICBjb25zdCBjaGFyKiB0cmFpbGluZ1Rlcm1zQ2FycnlpbmdO
b0RhdGFGaWx0ZXIgPSAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcImZvb2I/YT9yP1wifX0sIgorICAgIGF1dG8gYmFja2VuZCA9
IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwiZm9vYj9hP3I/XCJ9fSwiCiAgICAgICAgICJ7XCJhY3Rpb25c
Ijp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJiYXpv
KG9rKT9hPyRcIn19LCIKLSAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9
LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImNhdHMqJFwifX1dIjsKLSAgICBhdXRvIGV4
dGVuc2lvbiA9IEluTWVtb3J5Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOjpjcmVhdGVGcm9tRmls
dGVyKHRyYWlsaW5nVGVybXNDYXJyeWluZ05vRGF0YUZpbHRlcik7Ci0KLSAgICBDb250ZW50RXh0
ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5h
ZGRDb250ZW50RXh0ZW5zaW9uKCJUcmFpbGluZ1Rlcm1zQ2FycnlpbmdOb0RhdGEiLCBleHRlbnNp
b24pOworICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwiY2F0cyokXCJ9fV0iKTsKIAogICAgIHRlc3RSZXF1ZXN0KGJh
Y2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHBzOi8vd2Via2l0Lm9yZy8iKSwgeyB9KTsK
IApAQCAtNDk0LDE1ICs0NDEsMTAgQEAgVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBUcmFp
bGluZ1RlcgogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIExvYWRUeXBlKQogewotICAg
IGNvbnN0IGNoYXIqIGxvYWRUeXBlRmlsdGVyID0gIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJi
bG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ3ZWJraXQub3JnXCIsXCJsb2Fk
LXR5cGVcIjpbXCJ0aGlyZC1wYXJ0eVwiXX19LCIKKyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFj
a2VuZCgiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIndlYmtpdC5vcmdcIixcImxvYWQtdHlwZVwiOltcInRoaXJkLXBhcnR5XCJd
fX0sIgogICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2Vy
XCI6e1widXJsLWZpbHRlclwiOlwid2hhdHdnLm9yZ1wiLFwibG9hZC10eXBlXCI6W1wiZmlyc3Qt
cGFydHlcIl19fSwiCi0gICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxc
InRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJhbHdheXNibG9jay5wZGZcIn19XSI7Ci0KLSAg
ICBhdXRvIGV4dGVuc2lvbiA9IEluTWVtb3J5Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOjpjcmVh
dGVGcm9tRmlsdGVyKGxvYWRUeXBlRmlsdGVyKTsKLSAgICAgICAgCi0gICAgQ29udGVudEV4dGVu
c2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBiYWNrZW5kOwotICAgIGJhY2tlbmQuYWRk
Q29udGVudEV4dGVuc2lvbigiTG9hZFR5cGVGaWx0ZXIiLCBleHRlbnNpb24pOwotICAgICAgICAK
KyAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcImFsd2F5c2Jsb2NrLnBkZlwifX1dIik7CisgICAgCiAgICAgdGVzdFJl
cXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmciKSwg
eyB9KTsKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7VVJMKFVSTCgpLCAiaHR0cDovL3dlYmtp
dC5vcmciKSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQub3JnIiksIFJlc291cmNlVHlw
ZTo6RG9jdW1lbnR9LCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQg
fSk7CiAgICAgICAgIApAQCAtNTE1LDEzICs0NTcsOCBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lv
blRlc3QsIExvYWRUeXBlKQogCiBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFJlc291cmNl
VHlwZSkKIHsKLSAgICBjb25zdCBjaGFyKiByZXNvdXJjZVR5cGVGaWx0ZXIgPSAiW3tcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImJs
b2NrX2FsbF90eXBlcy5vcmdcIixcInJlc291cmNlLXR5cGVcIjpbXCJkb2N1bWVudFwiLFwiaW1h
Z2VcIixcInN0eWxlLXNoZWV0XCIsXCJzY3JpcHRcIixcImZvbnRcIixcInJhd1wiLFwic3ZnLWRv
Y3VtZW50XCIsXCJtZWRpYVwiXX19LCIKLSAgICAgICAgIntcImFjdGlvblwiOntcInR5cGVcIjpc
ImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcImJsb2NrX29ubHlfaW1hZ2Vz
XCIsXCJyZXNvdXJjZS10eXBlXCI6W1wiaW1hZ2VcIl19fV0iOwotCi0gICAgYXV0byBleHRlbnNp
b24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJvbUZpbHRlcihy
ZXNvdXJjZVR5cGVGaWx0ZXIpOwotICAgICAgICAKLSAgICBDb250ZW50RXh0ZW5zaW9uczo6Q29u
dGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2VuZC5hZGRDb250ZW50RXh0
ZW5zaW9uKCJSZXNvdXJjZVR5cGVGaWx0ZXIiLCBleHRlbnNpb24pOworICAgIGF1dG8gYmFja2Vu
ZCA9IG1ha2VCYWNrZW5kKCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiYmxvY2tfYWxsX3R5cGVzLm9yZ1wiLFwicmVzb3VyY2Ut
dHlwZVwiOltcImRvY3VtZW50XCIsXCJpbWFnZVwiLFwic3R5bGUtc2hlZXRcIixcInNjcmlwdFwi
LFwiZm9udFwiLFwicmF3XCIsXCJzdmctZG9jdW1lbnRcIixcIm1lZGlhXCJdfX0sIgorICAgICAg
ICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZp
bHRlclwiOlwiYmxvY2tfb25seV9pbWFnZXNcIixcInJlc291cmNlLXR5cGVcIjpbXCJpbWFnZVwi
XX19XSIpOwogCiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
aHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6OkRvY3VtZW50KSwgeyBD
b250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1
ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19hbGxfdHlwZXMu
b3JnIiwgUmVzb3VyY2VUeXBlOjpJbWFnZSksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5
cGU6OkJsb2NrTG9hZCB9KTsKQEAgLTUzNSw2ICs0NzIsMTcgQEAgVEVTVF9GKENvbnRlbnRFeHRl
bnNpb25UZXN0LCBSZXNvdXJjZVR5cAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1
bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19vbmx5X2ltYWdlcy5vcmciLCBSZXNvdXJjZVR5cGU6
OkRvY3VtZW50KSwgeyB9KTsKIH0KIAorVEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBSZXNv
dXJjZU9yTG9hZFR5cGVNYXRjaGluZ0V2ZXJ5dGhpbmcpCit7CisgICAgYXV0byBiYWNrZW5kID0g
bWFrZUJhY2tlbmQoIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwiLFwicmVzb3VyY2UtdHlwZVwiOltcImltYWdlXCJdfX0s
IgorICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2stY29va2llc1wifSxcInRy
aWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCIuKlwiLFwibG9hZC10eXBlXCI6W1widGhpcmQtcGFy
dHlcIl19fSwiCisgICAgICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJpZ25vcmUtcHJldmlv
dXMtcnVsZXNcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIixcImxvYWQtdHlw
ZVwiOltcImZpcnN0LXBhcnR5XCJdfX1dIik7CisgICAgCisgICAgdGVzdFJlcXVlc3QoYmFja2Vu
ZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmciKSwgeyB9LCB0cnVlKTsK
KyAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCB7VVJMKFVSTCgpLCAiaHR0cDovL3dlYmtpdC5vcmci
KSwgVVJMKFVSTCgpLCAiaHR0cDovL25vdF93ZWJraXQub3JnIiksIFJlc291cmNlVHlwZTo6RG9j
dW1lbnR9LCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0Nvb2tpZXMgfSk7
CisgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwge1VSTChVUkwoKSwgImh0dHA6Ly93ZWJraXQub3Jn
IiksIFVSTChVUkwoKSwgImh0dHA6Ly9ub3Rfd2Via2l0Lm9yZyIpLCBSZXNvdXJjZVR5cGU6Oklt
YWdlfSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tDb29raWVzLCBDb250
ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOworfQorICAgIAogVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBNdWx0aURGQSkKIHsKICAgICAvLyBNYWtlIGFuIE5GQSB3
aXRoIGFib3V0IDE0MDAgbm9kZXMuCkBAIC01NjMsMTAgKzUxMSw3IEBAIFRFU1RfRihDb250ZW50
RXh0ZW5zaW9uVGVzdCwgTXVsdGlERkEpCiAgICAgfQogICAgIHJ1bGVMaXN0LmFwcGVuZCgnXScp
OwogICAgIAotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRl
bnNpb246OmNyZWF0ZUZyb21GaWx0ZXIocnVsZUxpc3QudG9TdHJpbmcoKSk7Ci0gICAgICAgIAot
ICAgIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgYmFja2VuZDsK
LSAgICBiYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oIlJlc291cmNlVHlwZUZpbHRlciIsIGV4
dGVuc2lvbik7CisgICAgYXV0byBiYWNrZW5kID0gbWFrZUJhY2tlbmQocnVsZUxpc3QudG9TdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1
bWVudFJlcXVlc3QoImh0dHA6Ly93ZWJraXQub3JnL0FBQSIpLCB7IENvbnRlbnRFeHRlbnNpb25z
OjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFp
bkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL3dlYmtpdC5vcmcvWkFBIiksIHsgQ29udGVudEV4dGVu
c2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKQEAgLTYyNCwxNCArNTY5LDkgQEAgVEVT
VF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBJbnZhbGlkSlNPTgogCiBURVNUX0YoQ29udGVudEV4
dGVuc2lvblRlc3QsIFN0cmljdFByZWZpeFNlcGFyYXRlZE1hY2hpbmVzMSkKIHsKLSAgICBjb25z
dCBjaGFyKiBzdHJpY3RQcmVmaXhTZXBhcmF0ZWRNYWNoaW5lc0ZpbHRlciA9ICJbe1wiYWN0aW9u
XCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXi4q
Zm9vXCJ9fSwiCi0gICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dl
clwiOntcInVybC1maWx0ZXJcIjpcImJhciRcIn19LCIKLSAgICAie1wiYWN0aW9uXCI6e1widHlw
ZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiXlthYl0rYmFuZ1wi
fX1dIjsKLQotICAgIGF1dG8gZXh0ZW5zaW9uID0gSW5NZW1vcnlDb21waWxlZENvbnRlbnRFeHRl
bnNpb246OmNyZWF0ZUZyb21GaWx0ZXIoc3RyaWN0UHJlZml4U2VwYXJhdGVkTWFjaGluZXNGaWx0
ZXIpOwotCi0gICAgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBi
YWNrZW5kOwotICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbigiU3RyaWN0UHJlZml4U2Vw
YXJhdGVkTWFjaGluZXMxIiwgZXh0ZW5zaW9uKTsKKyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFj
a2VuZCgiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVy
bC1maWx0ZXJcIjpcIl4uKmZvb1wifX0sIgorICAgICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwi
OlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYmFyJFwifX0sIgorICAg
ICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJs
LWZpbHRlclwiOlwiXlthYl0rYmFuZ1wifX1dIik7CiAKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5k
LCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy9mb28iKSwgeyBDb250ZW50
RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0KGJh
Y2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImZvbzovL3dlYmtpdC5vcmcvYmFyIiksIHsgQ29u
dGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKQEAgLTY2MiwxNSArNjAy
LDEwIEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgU3RyaWN0UHJlZmkKIAogVEVTVF9G
KENvbnRlbnRFeHRlbnNpb25UZXN0LCBTdHJpY3RQcmVmaXhTZXBhcmF0ZWRNYWNoaW5lczIpCiB7
Ci0gICAgY29uc3QgY2hhciogc3RyaWN0UHJlZml4U2VwYXJhdGVkTWFjaGluZXNGaWx0ZXIgPSAi
W3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0
ZXJcIjpcIl5mb29cIn19LCIKKyAgICBhdXRvIGJhY2tlbmQgPSBtYWtlQmFja2VuZCgiW3tcImFj
dGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpc
Il5mb29cIn19LCIKICAgICAie1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmln
Z2VyXCI6e1widXJsLWZpbHRlclwiOlwiXi4qW2EtY10rYmFyXCJ9fSwiCiAgICAgIntcImFjdGlv
blwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntcInVybC1maWx0ZXJcIjpcIl53
ZWJraXQ6XCJ9fSwiCi0gICAgIntcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJp
Z2dlclwiOntcInVybC1maWx0ZXJcIjpcIlthLWNdK2Irb29tXCJ9fV0iOwotCi0gICAgYXV0byBl
eHRlbnNpb24gPSBJbk1lbW9yeUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJvbUZp
bHRlcihzdHJpY3RQcmVmaXhTZXBhcmF0ZWRNYWNoaW5lc0ZpbHRlcik7Ci0KLSAgICBDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGJhY2tlbmQ7Ci0gICAgYmFja2Vu
ZC5hZGRDb250ZW50RXh0ZW5zaW9uKCJTdHJpY3RQcmVmaXhTZXBhcmF0ZWRNYWNoaW5lczIiLCBl
eHRlbnNpb24pOworICAgICJ7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdn
ZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJbYS1jXStiK29vbVwifX1dIik7CiAKICAgICB0ZXN0UmVx
dWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vd2Via2l0Lm9yZy8iKSwg
eyB9KTsKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJmb286
Ly93ZWJraXQub3JnLyIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xv
YWQgfSk7Cg==
</data>
<flag name="review"
          id="274711"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>