<?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>151416</bug_id>
          
          <creation_ts>2015-11-18 15:33:46 -0800</creation_ts>
          <short_desc>Roll out r192436</short_desc>
          <delta_ts>2015-11-19 03:11:33 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>151417</dup_id>
          
          <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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143023</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-18 15:33:46 -0800</bug_when>
    <thetext>Roll our r192436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143024</commentid>
    <comment_count>1</comment_count>
      <attachid>265787</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-18 15:34:49 -0800</bug_when>
    <thetext>Created attachment 265787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143056</commentid>
    <comment_count>2</comment_count>
      <attachid>265787</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-18 16:05:40 -0800</bug_when>
    <thetext>Comment on attachment 265787
Patch

Rejecting attachment 265787 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 265787, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
fs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 192594 = 996870462061063f1f510d6fcbfa79addadb71d3
r192595 = 0595a530cdded6b18ef3b70f73152597eea53f1d
r192596 = b3f3a09706cffaac7ab508955529a3562d8df595
r192597 = 74fcb30666074a64d6a5b0a65435915e11a8fcfa
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/447401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143246</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-11-19 03:11:33 -0800</bug_when>
    <thetext>Already rolled out by https://trac.webkit.org/changeset/192597

*** This bug has been marked as a duplicate of bug 151417 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265787</attachid>
            <date>2015-11-18 15:34:49 -0800</date>
            <delta_ts>2015-11-18 16:05:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151416-20151118153438.patch</filename>
            <type>text/plain</type>
            <size>30441</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkyNTkzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY1IEBA
CisyMDE1LTExLTE4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUm9sbCBvdXQgcjE5MjQzNgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxNDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2F1c2VkIGEgaGFuZyBpbiB0aGUgaW5zcGVjdG9yIGFuZCBhIGNyYXNoIEAg
Z29vZ2xlLmNvbS4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nTm9kZTo6Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMpOgorICAg
ICAgICAoSlNDOjpTcHJlYWRFeHByZXNzaW9uTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAg
KEpTQzo6QXNzaWdubWVudEVsZW1lbnROb2RlOjpjb2xsZWN0Qm91bmRJZGVudGlmaWVycyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6YmluZFZhbHVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QXNzaWdubWVudEVsZW1lbnROb2RlOjp0b1N0cmluZyk6
IERlbGV0ZWQuCisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpTQzo6
QVNUQnVpbGRlcjo6aXNCaW5kaW5nTm9kZSk6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNy
ZWF0ZUVtcHR5U3RhdGVtZW50KToKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlRGVj
bGFyYXRpb25TdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVCaW5k
aW5nTG9jYXRpb24pOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpzZXRFbmRPZmZzZXQpOgor
ICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjppc0Fzc2lnbm1lbnRMb2NhdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmlzT2JqZWN0TGl0ZXJhbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmlzQXJyYXlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6QVNUQnVpbGRlcjo6aXNPYmplY3RPckFycmF5TGl0ZXJhbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZUFzc2lnbm1lbnRFbGVtZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpC
aW5kaW5nTm9kZTo6QmluZGluZ05vZGUpOgorICAgICAgICAoSlNDOjpEZXN0cnVjdHVyaW5nQXNz
aWdubWVudE5vZGU6OkRlc3RydWN0dXJpbmdBc3NpZ25tZW50Tm9kZSk6CisgICAgICAgIChKU0M6
OkFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6QXNzaWdubWVudEVsZW1lbnROb2RlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6RXhwcmVzc2lvbk5vZGU6
OmlzTnVtYmVyKToKKyAgICAgICAgKEpTQzo6RXhwcmVzc2lvbk5vZGU6OmlzU3RyaW5nKToKKyAg
ICAgICAgKEpTQzo6RXhwcmVzc2lvbk5vZGU6OmlzTnVsbCk6CisgICAgICAgIChKU0M6OkV4cHJl
c3Npb25Ob2RlOjppc1B1cmUpOgorICAgICAgICAoSlNDOjpFeHByZXNzaW9uTm9kZTo6aXNDb25z
dGFudCk6CisgICAgICAgIChKU0M6OkFycmF5Tm9kZTo6ZWxlbWVudHMpOgorICAgICAgICAoSlND
OjpFeHByZXNzaW9uTm9kZTo6aXNPYmplY3RMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6RXhwcmVzc2lvbk5vZGU6OmlzQXJyYXlMaXRlcmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6QXNzaWdubWVudEVsZW1lbnROb2RlOjphc3NpZ25tZW50VGFyZ2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6QXNzaWdubWVudEVsZW1lbnROb2RlOjpkaXZvdFN0YXJ0KTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6QXNzaWdubWVudEVsZW1lbnROb2RlOjpkaXZvdEVuZCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpjcmVhdGVCaW5kaW5nUGF0dGVybik6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhl
clR5cGU+OjpwYXJzZUFycm93RnVuY3Rpb25TaW5nbGVFeHByZXNzaW9uQm9keVNvdXJjZUVsZW1l
bnRzKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnRyeVBhcnNlRGVzdHJ1Y3R1
cmluZ1BhdHRlcm5FeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46
OnBhcnNlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4pOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJU
eXBlPjo6cGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik6CisgICAgICAgIChKU0M6OlBhcnNlcjxM
ZXhlclR5cGU+OjpjcmVhdGVBc3NpZ25tZW50RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmRpbmdPckFzc2lnbm1lbnRFbGVtZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQXNzaWdubWVu
dEVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAgICAg
KiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpTeW50YXhDaGVja2VyOjpv
cGVyYXRvclN0YWNrUG9wKToKKyAgICAgICAgKiB0ZXN0cy9lczYueWFtbDoKKyAgICAgICAgKiB0
ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19hc3NpZ25tZW50X25vbl9zaW1wbGVfdGFyZ2V0LmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIHRlc3RzL2VzNi9kZXN0cnVjdHVyaW5nX2luaXRpYWxpemVyX3Nj
b3BpbmcuanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Rlc3RydWN0dXJpbmct
YXNzaWdubWVudC1zeW50YXguanM6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Jl
c3QtZWxlbWVudHMuanM6CisgICAgICAgICh0ZXN0U3ludGF4RXJyb3IuU3RyaW5nLnJhdyk6Cisg
ICAgICAgIChzaG91bGRUaHJvdyk6CisKIDIwMTUtMTEtMTggIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gTWFrZSBMQmFzaWNCbG9jayBpbnRv
IGFuIGFsaWFzIGZvciBCMzo6QmFzaWNCbG9jay4gI2lmZGVmIGFueXRoaW5nIHRoYXQgZG9lcyBu
b3QgY29tcGlsZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMTkyNTkzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMzk3LDY1ICszMzk3LDcgQEAgdm9pZCBCaW5kaW5nTm9kZTo6Y29sbGVjdEJvdW5kSWRlbnRp
ZmllcgogewogICAgIGlkZW50aWZpZXJzLmFwcGVuZChtX2JvdW5kUHJvcGVydHkpOwogfQotCi12
b2lkIEFzc2lnbm1lbnRFbGVtZW50Tm9kZTo6Y29sbGVjdEJvdW5kSWRlbnRpZmllcnMoVmVjdG9y
PElkZW50aWZpZXI+JikgY29uc3QKLXsKLX0KLQotdm9pZCBBc3NpZ25tZW50RWxlbWVudE5vZGU6
OmJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2YWx1
ZSkgY29uc3QKLXsKLSAgICBpZiAobV9hc3NpZ25tZW50VGFyZ2V0LT5pc1Jlc29sdmVOb2RlKCkp
IHsKLSAgICAgICAgUmVzb2x2ZU5vZGUqIGxocyA9IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4o
bV9hc3NpZ25tZW50VGFyZ2V0KTsKLSAgICAgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZh
cmlhYmxlKGxocy0+aWRlbnRpZmllcigpKTsKLSAgICAgICAgYm9vbCBpc1JlYWRPbmx5ID0gdmFy
LmlzUmVhZE9ubHkoKTsKLSAgICAgICAgaWYgKFJlZ2lzdGVySUQqIGxvY2FsID0gdmFyLmxvY2Fs
KCkpIHsKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0VERaQ2hlY2tJZk5lY2Vzc2FyeSh2YXIs
IGxvY2FsLCBudWxscHRyKTsKLQotICAgICAgICAgICAgaWYgKGlzUmVhZE9ubHkpCi0gICAgICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZWFkT25seUV4Y2VwdGlvbklmTmVlZGVkKHZhcik7Ci0g
ICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3IuaW52YWxpZGF0ZUZv
ckluQ29udGV4dEZvckxvY2FsKGxvY2FsKTsKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3IubW92
ZVRvRGVzdGluYXRpb25JZk5lZWRlZChsb2NhbCwgdmFsdWUpOwotICAgICAgICAgICAgICAgIGdl
bmVyYXRvci5lbWl0UHJvZmlsZVR5cGUobG9jYWwsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKGdlbmVyYXRvci5pc1N0cmljdE1vZGUoKSkKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0
RXhwcmVzc2lvbkluZm8oZGl2b3RFbmQoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2Nv
cGUobnVsbHB0ciwgdmFyKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRURFpDaGVja0lmTmVjZXNz
YXJ5KHZhciwgbnVsbHB0ciwgc2NvcGUuZ2V0KCkpOwotICAgICAgICBpZiAoaXNSZWFkT25seSkg
ewotICAgICAgICAgICAgYm9vbCB0aHJld0V4Y2VwdGlvbiA9IGdlbmVyYXRvci5lbWl0UmVhZE9u
bHlFeGNlcHRpb25JZk5lZWRlZCh2YXIpOwotICAgICAgICAgICAgaWYgKHRocmV3RXhjZXB0aW9u
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90RW5kKCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7
Ci0gICAgICAgIGlmICghaXNSZWFkT25seSkgewotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
dXRUb1Njb3BlKHNjb3BlLmdldCgpLCB2YXIsIHZhbHVlLCBnZW5lcmF0b3IuaXNTdHJpY3RNb2Rl
KCkgPyBUaHJvd0lmTm90Rm91bmQgOiBEb05vdFRocm93SWZOb3RGb3VuZCwgTm90SW5pdGlhbGl6
YXRpb24pOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQcm9maWxlVHlwZSh2YWx1ZSwgdmFy
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICht
X2Fzc2lnbm1lbnRUYXJnZXQtPmlzRG90QWNjZXNzb3JOb2RlKCkpIHsKLSAgICAgICAgRG90QWNj
ZXNzb3JOb2RlKiBsaHMgPSBzdGF0aWNfY2FzdDxEb3RBY2Nlc3Nvck5vZGUqPihtX2Fzc2lnbm1l
bnRUYXJnZXQpOwotICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5l
bWl0Tm9kZUZvckxlZnRIYW5kU2lkZShsaHMtPmJhc2UoKSwgdHJ1ZSwgZmFsc2UpOwotICAgICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90RW5kKCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgpLCBs
aHMtPmlkZW50aWZpZXIoKSwgdmFsdWUpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdFByb2ZpbGVU
eXBlKHZhbHVlLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwotICAgIH0gZWxzZSBpZiAobV9h
c3NpZ25tZW50VGFyZ2V0LT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewotICAgICAgICBCcmFj
a2V0QWNjZXNzb3JOb2RlKiBsaHMgPSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4o
bV9hc3NpZ25tZW50VGFyZ2V0KTsKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBn
ZW5lcmF0b3IuZW1pdE5vZGVGb3JMZWZ0SGFuZFNpZGUobGhzLT5iYXNlKCksIHRydWUsIGZhbHNl
KTsKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb3BlcnR5ID0gZ2VuZXJhdG9yLmVtaXRO
b2RlRm9yTGVmdEhhbmRTaWRlKGxocy0+c3Vic2NyaXB0KCksIHRydWUsIGZhbHNlKTsKLSAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdEVuZCgpLCBkaXZvdFN0YXJ0KCks
IGRpdm90RW5kKCkpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5VmFsKGJhc2UuZ2V0KCks
IHByb3BlcnR5LmdldCgpLCB2YWx1ZSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0UHJvZmlsZVR5
cGUodmFsdWUsIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgfQotfQotCi12b2lkIEFz
c2lnbm1lbnRFbGVtZW50Tm9kZTo6dG9TdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVpbGRlcikgY29u
c3QKLXsKLSAgICBpZiAobV9hc3NpZ25tZW50VGFyZ2V0LT5pc1Jlc29sdmVOb2RlKCkpCi0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4obV9hc3NpZ25tZW50
VGFyZ2V0KS0+aWRlbnRpZmllcigpLnN0cmluZygpKTsKLX0KLQorICAgIAogUmVnaXN0ZXJJRCog
U3ByZWFkRXhwcmVzc2lvbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJl
Z2lzdGVySUQqKQogewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkocmV2aXNpb24gMTkyNTkz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMSw3ICsxMjEsNiBAQCBwdWJsaWM6CiAgICAgdHlwZWRlZiBBcnJheVBhdHRl
cm5Ob2RlKiBBcnJheVBhdHRlcm47CiAgICAgdHlwZWRlZiBPYmplY3RQYXR0ZXJuTm9kZSogT2Jq
ZWN0UGF0dGVybjsKICAgICB0eXBlZGVmIEJpbmRpbmdOb2RlKiBCaW5kaW5nUGF0dGVybjsKLSAg
ICB0eXBlZGVmIEFzc2lnbm1lbnRFbGVtZW50Tm9kZSogQXNzaWdubWVudEVsZW1lbnQ7CiAgICAg
c3RhdGljIGNvbnN0IGJvb2wgQ3JlYXRlc0FTVCA9IHRydWU7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgTmVlZHNGcmVlVmFyaWFibGVJbmZvID0gdHJ1ZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBD
YW5Vc2VGdW5jdGlvbkNhY2hlID0gdHJ1ZTsKQEAgLTUyNSwyNiArNTI0LDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gcGF0dGVybi0+aXNCaW5kaW5nTm9kZSgpOwogICAgIH0KIAotICAgIGJv
b2wgaXNBc3NpZ25tZW50TG9jYXRpb24oY29uc3QgRXhwcmVzc2lvbiYgcGF0dGVybikKLSAgICB7
Ci0gICAgICAgIHJldHVybiBwYXR0ZXJuLT5pc0Fzc2lnbm1lbnRMb2NhdGlvbigpOwotICAgIH0K
LQotICAgIGJvb2wgaXNPYmplY3RMaXRlcmFsKGNvbnN0IEV4cHJlc3Npb24mIG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gbm9kZS0+aXNPYmplY3RMaXRlcmFsKCk7Ci0gICAgfQotCi0gICAg
Ym9vbCBpc0FycmF5TGl0ZXJhbChjb25zdCBFeHByZXNzaW9uJiBub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5vZGUtPmlzQXJyYXlMaXRlcmFsKCk7Ci0gICAgfQotCi0gICAgYm9vbCBpc09i
amVjdE9yQXJyYXlMaXRlcmFsKGNvbnN0IEV4cHJlc3Npb24mIG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gaXNPYmplY3RMaXRlcmFsKG5vZGUpIHx8IGlzQXJyYXlMaXRlcmFsKG5vZGUpOwot
ICAgIH0KLQogICAgIFN0YXRlbWVudE5vZGUqIGNyZWF0ZUVtcHR5U3RhdGVtZW50KGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24pIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgRW1w
dHlTdGF0ZW1lbnROb2RlKGxvY2F0aW9uKTsgfQogCiAgICAgU3RhdGVtZW50Tm9kZSogY3JlYXRl
RGVjbGFyYXRpb25TdGF0ZW1lbnQoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhw
cmVzc2lvbk5vZGUqIGV4cHIsIGludCBzdGFydCwgaW50IGVuZCkKQEAgLTg1NywxMSArODM2LDYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBCaW5kaW5nTm9k
ZShib3VuZFByb3BlcnR5LCBzdGFydCwgZW5kLCBjb250ZXh0KTsKICAgICB9CiAKLSAgICBBc3Np
Z25tZW50RWxlbWVudCBjcmVhdGVBc3NpZ25tZW50RWxlbWVudChjb25zdCBFeHByZXNzaW9uJiBh
c3NpZ25tZW50VGFyZ2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBlbmQpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5h
KSBBc3NpZ25tZW50RWxlbWVudE5vZGUoYXNzaWdubWVudFRhcmdldCwgc3RhcnQsIGVuZCk7Ci0g
ICAgfQotCiAgICAgdm9pZCBzZXRFbmRPZmZzZXQoTm9kZSogbm9kZSwgaW50IG9mZnNldCkKICAg
ICB7CiAgICAgICAgIG5vZGUtPnNldEVuZE9mZnNldChvZmZzZXQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgJKHJldmlzaW9uIDE5
MjU5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIwLDE1ICsxMDIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICwgbV9iaW5kaW5nQ29udGV4dChjb250ZXh0KQogICAgIHsKICAgICB9Ci0KLSAgICBp
bmxpbmUgQXNzaWdubWVudEVsZW1lbnROb2RlOjpBc3NpZ25tZW50RWxlbWVudE5vZGUoRXhwcmVz
c2lvbk5vZGUqIGFzc2lnbm1lbnRUYXJnZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBzdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGVuZCkKLSAgICAgICAgOiBEZXN0cnVjdHVyaW5nUGF0dGVy
bk5vZGUoKQotICAgICAgICAsIG1fZGl2b3RTdGFydChzdGFydCkKLSAgICAgICAgLCBtX2Rpdm90
RW5kKGVuZCkKLSAgICAgICAgLCBtX2Fzc2lnbm1lbnRUYXJnZXQoYXNzaWdubWVudFRhcmdldCkK
LSAgICB7Ci0gICAgfQotCisgICAgCiAgICAgaW5saW5lIERlc3RydWN0dXJpbmdBc3NpZ25tZW50
Tm9kZTo6RGVzdHJ1Y3R1cmluZ0Fzc2lnbm1lbnROb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIERlc3RydWN0dXJpbmdQYXR0ZXJuTm9kZSogYmluZGluZ3MsIEV4cHJlc3Npb25O
b2RlKiBpbml0aWFsaXplcikKICAgICAgICAgOiBFeHByZXNzaW9uTm9kZShsb2NhdGlvbikKICAg
ICAgICAgLCBtX2JpbmRpbmdzKGJpbmRpbmdzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Ob2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvTm9kZXMuaAkocmV2aXNpb24gMTkyNTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTMsOCArMTUzLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzTnVtYmVyKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGlzT2JqZWN0TGl0ZXJhbCgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc0FycmF5TGl0ZXJhbCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc051bGwoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQdXJlKEJ5dGVjb2Rl
R2VuZXJhdG9yJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0gICAgICAgIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC01OTQsOCAr
NTkyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFycmF5Tm9kZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBFbGVtZW50Tm9kZSopOwogICAgICAgICBBcnJheU5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgaW50IGVsaXNpb24sIEVsZW1lbnROb2RlKik7CiAKLSAgICAgICAgdmlydHVh
bCBib29sIGlzQXJyYXlMaXRlcmFsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQot
CiAgICAgICAgIEFyZ3VtZW50TGlzdE5vZGUqIHRvQXJndW1lbnRMaXN0KFBhcnNlckFyZW5hJiwg
aW50LCBpbnQpIGNvbnN0OwogCiAgICAgICAgIEVsZW1lbnROb2RlKiBlbGVtZW50cygpIGNvbnN0
IHsgQVNTRVJUKGlzU2ltcGxlQXJyYXkoKSk7IHJldHVybiBtX2VsZW1lbnQ7IH0KQEAgLTY1MSw3
ICs2NDcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIE9iamVjdExp
dGVyYWxOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYpOwogICAgICAgICBPYmplY3RMaXRlcmFs
Tm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBQcm9wZXJ0eUxpc3ROb2RlKik7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBpc09iamVjdExpdGVyYWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0
cnVlOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gMCkgb3ZlcnJpZGU7CkBA
IC0yMDUzLDI0ICsyMDQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFzc2lnbm1lbnRD
b250ZXh0IG1fYmluZGluZ0NvbnRleHQ7CiAgICAgfTsKIAotICAgIGNsYXNzIEFzc2lnbm1lbnRF
bGVtZW50Tm9kZSA6IHB1YmxpYyBEZXN0cnVjdHVyaW5nUGF0dGVybk5vZGUgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgQXNzaWdubWVudEVsZW1lbnROb2RlKEV4cHJlc3Npb25Ob2RlKiBhc3NpZ25t
ZW50VGFyZ2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBlbmQpOwotICAgICAgICBjb25zdCBFeHByZXNzaW9uTm9kZSogYXNzaWdubWVudFRhcmdl
dCgpIHsgcmV0dXJuIG1fYXNzaWdubWVudFRhcmdldDsgfQotCi0gICAgICAgIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdFN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9kaXZvdFN0YXJ0OyB9Ci0g
ICAgICAgIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGl2b3RFbmQ7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
Qm91bmRJZGVudGlmaWVycyhWZWN0b3I8SWRlbnRpZmllcj4mKSBjb25zdCBvdmVycmlkZTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGJpbmRWYWx1ZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVy
SUQqKSBjb25zdCBvdmVycmlkZTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRvU3RyaW5nKFN0cmlu
Z0J1aWxkZXImKSBjb25zdCBvdmVycmlkZTsKLQotICAgICAgICBKU1RleHRQb3NpdGlvbiBtX2Rp
dm90U3RhcnQ7Ci0gICAgICAgIEpTVGV4dFBvc2l0aW9uIG1fZGl2b3RFbmQ7Ci0gICAgICAgIEV4
cHJlc3Npb25Ob2RlKiBtX2Fzc2lnbm1lbnRUYXJnZXQ7Ci0gICAgfTsKLQogICAgIGNsYXNzIERl
c3RydWN0dXJpbmdBc3NpZ25tZW50Tm9kZSA6IHB1YmxpYyBFeHByZXNzaW9uTm9kZSB7CiAgICAg
cHVibGljOgogICAgICAgICBEZXN0cnVjdHVyaW5nQXNzaWdubWVudE5vZGUoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgRGVzdHJ1Y3R1cmluZ1BhdHRlcm5Ob2RlKiwgRXhwcmVzc2lvbk5vZGUqKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAJKHJldmlzaW9uIDE5
MjU5MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzEyLDEyICs3MTIsNiBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+
IFRyZWVEZXN0cnVjCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci10ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRl
cm4gUGFyc2VyPExleGVyVHlwZT46OmNyZWF0ZUFzc2lnbm1lbnRFbGVtZW50KFRyZWVCdWlsZGVy
JiBjb250ZXh0LCBUcmVlRXhwcmVzc2lvbiYgYXNzaWdubWVudFRhcmdldCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIHN0YXJ0UG9zaXRpb24sIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmRQb3NpdGlv
bikKLXsKLSAgICByZXR1cm4gY29udGV4dC5jcmVhdGVBc3NpZ25tZW50RWxlbWVudChhc3NpZ25t
ZW50VGFyZ2V0LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7Ci19Ci0KLXRlbXBsYXRlIDx0
eXBlbmFtZSBMZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTb3Vy
Y2VFbGVtZW50cyBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VBcnJvd0Z1bmN0aW9uU2luZ2xlRXhw
cmVzc2lvbkJvZHlTb3VyY2VFbGVtZW50cyhUcmVlQnVpbGRlciYgY29udGV4dCkKIHsKICAgICBB
U1NFUlQoIW1hdGNoKE9QRU5CUkFDRSkpOwpAQCAtNzUzLDM0ICs3NDcsNiBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVEZXN0cnVjCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBM
ZXhlclR5cGU+Ci10ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVEZXN0cnVjdHVyaW5n
UGF0dGVybiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVu
dChUcmVlQnVpbGRlciYgY29udGV4dCwgRGVzdHJ1Y3R1cmluZ0tpbmQga2luZCwgRXhwb3J0VHlw
ZSBleHBvcnRUeXBlLCBjb25zdCBJZGVudGlmaWVyKiogZHVwbGljYXRlSWRlbnRpZmllciwgYm9v
bCogaGFzRGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIEFzc2lnbm1lbnRDb250ZXh0IGJpbmRpbmdDb250
ZXh0LCBpbnQgZGVwdGgpCi17Ci0gICAgaWYgKGtpbmQgPT0gRGVzdHJ1Y3R1cmVUb0V4cHJlc3Np
b25zKQotICAgICAgICByZXR1cm4gcGFyc2VBc3NpZ25tZW50RWxlbWVudChjb250ZXh0LCBraW5k
LCBleHBvcnRUeXBlLCBkdXBsaWNhdGVJZGVudGlmaWVyLCBoYXNEZXN0cnVjdHVyaW5nUGF0dGVy
biwgYmluZGluZ0NvbnRleHQsIGRlcHRoKTsKLSAgICByZXR1cm4gcGFyc2VEZXN0cnVjdHVyaW5n
UGF0dGVybihjb250ZXh0LCBraW5kLCBleHBvcnRUeXBlLCBkdXBsaWNhdGVJZGVudGlmaWVyLCBo
YXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgYmluZGluZ0NvbnRleHQsIGRlcHRoKTsKLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4KLXRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZURlc3RydWN0dXJpbmdQYXR0ZXJuIFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUFzc2lnbm1l
bnRFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBEZXN0cnVjdHVyaW5nS2luZCBraW5kLCBF
eHBvcnRUeXBlIGV4cG9ydFR5cGUsIGNvbnN0IElkZW50aWZpZXIqKiBkdXBsaWNhdGVJZGVudGlm
aWVyLCBib29sKiBoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgQXNzaWdubWVudENvbnRleHQgYmlu
ZGluZ0NvbnRleHQsIGludCBkZXB0aCkKLXsKLSAgICBTYXZlUG9pbnQgc2F2ZVBvaW50ID0gY3Jl
YXRlU2F2ZVBvaW50KCk7Ci0gICAgVHJlZURlc3RydWN0dXJpbmdQYXR0ZXJuIGFzc2lnbm1lbnRU
YXJnZXQgPSAwOwotCi0gICAgaWYgKG1hdGNoKE9QRU5CUkFDRSkgfHwgbWF0Y2goT1BFTkJSQUNL
RVQpKQotICAgICAgICBhc3NpZ25tZW50VGFyZ2V0ID0gcGFyc2VEZXN0cnVjdHVyaW5nUGF0dGVy
bihjb250ZXh0LCBraW5kLCBleHBvcnRUeXBlLCBkdXBsaWNhdGVJZGVudGlmaWVyLCBoYXNEZXN0
cnVjdHVyaW5nUGF0dGVybiwgYmluZGluZ0NvbnRleHQsIGRlcHRoKTsKLSAgICBpZiAoIWFzc2ln
bm1lbnRUYXJnZXQgfHwgbWF0Y2goRE9UKSB8fCBtYXRjaChPUEVOQlJBQ0tFVCkgfHwgbWF0Y2go
T1BFTlBBUkVOKSB8fCBtYXRjaChURU1QTEFURSkpIHsKLSAgICAgICAgcmVzdG9yZVNhdmVQb2lu
dChzYXZlUG9pbnQpOwotICAgICAgICBKU1RleHRQb3NpdGlvbiBzdGFydFBvc2l0aW9uID0gdG9r
ZW5TdGFydFBvc2l0aW9uKCk7Ci0gICAgICAgIGF1dG8gZWxlbWVudCA9IHBhcnNlTWVtYmVyRXhw
cmVzc2lvbihjb250ZXh0KTsKLQotICAgICAgICBzZW1hbnRpY0ZhaWxJZkZhbHNlKGVsZW1lbnQg
JiYgY29udGV4dC5pc0Fzc2lnbm1lbnRMb2NhdGlvbihlbGVtZW50KSwgIkludmFsaWQgZGVzdHJ1
Y3R1cmluZyBhc3NpZ25tZW50IHRhcmdldCIpOwotCi0gICAgICAgIHJldHVybiBjcmVhdGVBc3Np
Z25tZW50RWxlbWVudChjb250ZXh0LCBlbGVtZW50LCBzdGFydFBvc2l0aW9uLCBsYXN0VG9rZW5F
bmRQb3NpdGlvbigpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGFzc2lnbm1lbnRUYXJnZXQ7Ci19Ci0K
LXRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+CiB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxk
ZXI+IFRyZWVEZXN0cnVjdHVyaW5nUGF0dGVybiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VEZXN0
cnVjdHVyaW5nUGF0dGVybihUcmVlQnVpbGRlciYgY29udGV4dCwgRGVzdHJ1Y3R1cmluZ0tpbmQg
a2luZCwgRXhwb3J0VHlwZSBleHBvcnRUeXBlLCBjb25zdCBJZGVudGlmaWVyKiogZHVwbGljYXRl
SWRlbnRpZmllciwgYm9vbCogaGFzRGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIEFzc2lnbm1lbnRDb250
ZXh0IGJpbmRpbmdDb250ZXh0LCBpbnQgZGVwdGgpCiB7CiAgICAgZmFpbElmU3RhY2tPdmVyZmxv
dygpOwpAQCAtODEwLDcgKzc3Niw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJl
ZURlc3RydWMKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShtYXRjaChET1RET1RET1QpKSkgewog
ICAgICAgICAgICAgICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbiA9IG1fdG9rZW4ubV9sb2Nh
dGlvbjsKICAgICAgICAgICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICAgICAgYXV0byBpbm5l
clBhdHRlcm4gPSBwYXJzZUJpbmRpbmdPckFzc2lnbm1lbnRFbGVtZW50KGNvbnRleHQsIGtpbmQs
IGV4cG9ydFR5cGUsIGR1cGxpY2F0ZUlkZW50aWZpZXIsIGhhc0Rlc3RydWN0dXJpbmdQYXR0ZXJu
LCBiaW5kaW5nQ29udGV4dCwgZGVwdGggKyAxKTsKKyAgICAgICAgICAgICAgICBhdXRvIGlubmVy
UGF0dGVybiA9IHBhcnNlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4oY29udGV4dCwga2luZCwgZXhwb3J0
VHlwZSwgZHVwbGljYXRlSWRlbnRpZmllciwgaGFzRGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIGJpbmRp
bmdDb250ZXh0LCBkZXB0aCArIDEpOwogICAgICAgICAgICAgICAgIGlmIChraW5kID09IERlc3Ry
dWN0dXJlVG9FeHByZXNzaW9ucyAmJiAhaW5uZXJQYXR0ZXJuKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICBmYWlsSWZGYWxzZShpbm5lclBhdHRlcm4sICJD
YW5ub3QgcGFyc2UgdGhpcyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4iKTsKQEAgLTgyMyw3ICs3ODks
NyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVEZXN0cnVjCiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIEpTVG9rZW5Mb2NhdGlvbiBsb2NhdGlvbiA9IG1fdG9rZW4ubV9s
b2NhdGlvbjsKLSAgICAgICAgICAgIGF1dG8gaW5uZXJQYXR0ZXJuID0gcGFyc2VCaW5kaW5nT3JB
c3NpZ25tZW50RWxlbWVudChjb250ZXh0LCBraW5kLCBleHBvcnRUeXBlLCBkdXBsaWNhdGVJZGVu
dGlmaWVyLCBoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgYmluZGluZ0NvbnRleHQsIGRlcHRoICsg
MSk7CisgICAgICAgICAgICBhdXRvIGlubmVyUGF0dGVybiA9IHBhcnNlRGVzdHJ1Y3R1cmluZ1Bh
dHRlcm4oY29udGV4dCwga2luZCwgZXhwb3J0VHlwZSwgZHVwbGljYXRlSWRlbnRpZmllciwgaGFz
RGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIGJpbmRpbmdDb250ZXh0LCBkZXB0aCArIDEpOwogICAgICAg
ICAgICAgaWYgKGtpbmQgPT0gRGVzdHJ1Y3R1cmVUb0V4cHJlc3Npb25zICYmICFpbm5lclBhdHRl
cm4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShp
bm5lclBhdHRlcm4sICJDYW5ub3QgcGFyc2UgdGhpcyBkZXN0cnVjdHVyaW5nIHBhdHRlcm4iKTsK
QEAgLTgzMSw2ICs3OTcsOCBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVEZXN0
cnVjCiAgICAgICAgICAgICBjb250ZXh0LmFwcGVuZEFycmF5UGF0dGVybkVudHJ5KGFycmF5UGF0
dGVybiwgbG9jYXRpb24sIGlubmVyUGF0dGVybiwgZGVmYXVsdFZhbHVlKTsKICAgICAgICAgfSB3
aGlsZSAoY29uc3VtZShDT01NQSkpOwogCisgICAgICAgIGlmIChraW5kID09IERlc3RydWN0dXJl
VG9FeHByZXNzaW9ucyAmJiAhbWF0Y2goQ0xPU0VCUkFDS0VUKSkKKyAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICBjb25zdW1lT3JGYWlsKENMT1NFQlJBQ0tFVCwgcmVzdEVsZW1lbnRXYXNG
b3VuZCA/ICJFeHBlY3RlZCBhIGNsb3NpbmcgJ10nIGZvbGxvd2luZyBhIHJlc3QgZWxlbWVudCBk
ZXN0cnVjdHVyaW5nIHBhdHRlcm4iIDogIkV4cGVjdGVkIGVpdGhlciBhIGNsb3NpbmcgJ10nIG9y
IGEgJywnIGZvbGxvd2luZyBhbiBlbGVtZW50IGRlc3RydWN0dXJpbmcgcGF0dGVybiIpOwogICAg
ICAgICBjb250ZXh0LmZpbmlzaEFycmF5UGF0dGVybihhcnJheVBhdHRlcm4sIGRpdm90U3RhcnQs
IGRpdm90U3RhcnQsIGxhc3RUb2tlbkVuZFBvc2l0aW9uKCkpOwogICAgICAgICBwYXR0ZXJuID0g
YXJyYXlQYXR0ZXJuOwpAQCAtODU4LDcgKzgyNiw3IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVp
bGRlcj4gVHJlZURlc3RydWMKICAgICAgICAgICAgICAgICBKU1Rva2VuIGlkZW50aWZpZXJUb2tl
biA9IG1fdG9rZW47CiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgICAgIGlm
IChjb25zdW1lKENPTE9OKSkKLSAgICAgICAgICAgICAgICAgICAgaW5uZXJQYXR0ZXJuID0gcGFy
c2VCaW5kaW5nT3JBc3NpZ25tZW50RWxlbWVudChjb250ZXh0LCBraW5kLCBleHBvcnRUeXBlLCBk
dXBsaWNhdGVJZGVudGlmaWVyLCBoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgYmluZGluZ0NvbnRl
eHQsIGRlcHRoICsgMSk7CisgICAgICAgICAgICAgICAgICAgIGlubmVyUGF0dGVybiA9IHBhcnNl
RGVzdHJ1Y3R1cmluZ1BhdHRlcm4oY29udGV4dCwga2luZCwgZXhwb3J0VHlwZSwgZHVwbGljYXRl
SWRlbnRpZmllciwgaGFzRGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIGJpbmRpbmdDb250ZXh0LCBkZXB0
aCArIDEpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgaW5uZXJQ
YXR0ZXJuID0gY3JlYXRlQmluZGluZ1BhdHRlcm4oY29udGV4dCwga2luZCwgZXhwb3J0VHlwZSwg
KnByb3BlcnR5TmFtZSwgaWRlbnRpZmllclRva2VuLCBiaW5kaW5nQ29udGV4dCwgZHVwbGljYXRl
SWRlbnRpZmllcik7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtODkxLDcgKzg1OSw3IEBAIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZURlc3RydWMKICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgIGZhaWxXaXRoTWVzc2FnZSgiRXhwZWN0ZWQgYSAnOicg
cHJpb3IgdG8gYSBuYW1lZCBkZXN0cnVjdHVyaW5nIHByb3BlcnR5Iik7CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlubmVyUGF0dGVybiA9IHBhcnNlQmluZGluZ09yQXNzaWdu
bWVudEVsZW1lbnQoY29udGV4dCwga2luZCwgZXhwb3J0VHlwZSwgZHVwbGljYXRlSWRlbnRpZmll
ciwgaGFzRGVzdHJ1Y3R1cmluZ1BhdHRlcm4sIGJpbmRpbmdDb250ZXh0LCBkZXB0aCArIDEpOwor
ICAgICAgICAgICAgICAgIGlubmVyUGF0dGVybiA9IHBhcnNlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4o
Y29udGV4dCwga2luZCwgZXhwb3J0VHlwZSwgZHVwbGljYXRlSWRlbnRpZmllciwgaGFzRGVzdHJ1
Y3R1cmluZ1BhdHRlcm4sIGJpbmRpbmdDb250ZXh0LCBkZXB0aCArIDEpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgaWYgKGtpbmQgPT0gRGVzdHJ1Y3R1cmVUb0V4cHJlc3Npb25zICYmICFp
bm5lclBhdHRlcm4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0yNzAyLDcgKzI2NzAs
NiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVFeHByCiAgICAgSlNUb2tl
bkxvY2F0aW9uIGxvY2F0aW9uKHRva2VuTG9jYXRpb24oKSk7CiAgICAgaW50IGluaXRpYWxBc3Np
Z25tZW50Q291bnQgPSBtX2Fzc2lnbm1lbnRDb3VudDsKICAgICBpbnQgaW5pdGlhbE5vbkxIU0Nv
dW50ID0gbV9ub25MSFNDb3VudDsKLSAgICBTdHJpbmcgYXNzaWdubWVudFBhdHRlcm5FcnJvciA9
IFN0cmluZygpOwogICAgIGlmIChtYXRjaChPUEVOQlJBQ0UpIHx8IG1hdGNoKE9QRU5CUkFDS0VU
KSkgewogICAgICAgICBTYXZlUG9pbnQgc2F2ZVBvaW50ID0gY3JlYXRlU2F2ZVBvaW50KCk7CiAg
ICAgICAgIGF1dG8gcGF0dGVybiA9IHRyeVBhcnNlRGVzdHJ1Y3R1cmluZ1BhdHRlcm5FeHByZXNz
aW9uKGNvbnRleHQsIEFzc2lnbm1lbnRDb250ZXh0OjpBc3NpZ25tZW50RXhwcmVzc2lvbik7CkBA
IC0yNzExLDcgKzI2NzgsNiBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJlZUJ1aWxkZXI+IFRyZWVF
eHByCiAgICAgICAgICAgICBpZiAocmhzKQogICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0
LmNyZWF0ZURlc3RydWN0dXJpbmdBc3NpZ25tZW50KGxvY2F0aW9uLCBwYXR0ZXJuLCByaHMpOwog
ICAgICAgICB9Ci0gICAgICAgIGFzc2lnbm1lbnRQYXR0ZXJuRXJyb3IgPSBtX2Vycm9yTWVzc2Fn
ZTsKICAgICAgICAgcmVzdG9yZVNhdmVQb2ludChzYXZlUG9pbnQpOwogICAgIH0KIApAQCAtMjcy
NiwxMCArMjY5Miw2IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUcmVlQnVpbGRlcj4gVHJlZUV4cHIK
ICNlbmRpZgogICAgIAogICAgIFRyZWVFeHByZXNzaW9uIGxocyA9IHBhcnNlQ29uZGl0aW9uYWxF
eHByZXNzaW9uKGNvbnRleHQpOwotICAgIGlmICghYXNzaWdubWVudFBhdHRlcm5FcnJvci5pc051
bGwoKSAmJiAobGhzICYmIChjb250ZXh0LmlzT2JqZWN0T3JBcnJheUxpdGVyYWwobGhzKSAmJiBt
YXRjaChFUVVBTCkpKSkgewotICAgICAgICBzZXRFcnJvck1lc3NhZ2UoYXNzaWdubWVudFBhdHRl
cm5FcnJvcik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KICAgICBmYWlsSWZGYWxzZShsaHMs
ICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogICAgIGlmIChpbml0aWFsTm9uTEhTQ291bnQg
IT0gbV9ub25MSFNDb3VudCkgewogICAgICAgICBpZiAobV90b2tlbi5tX3R5cGUgPj0gRVFVQUwg
JiYgbV90b2tlbi5tX3R5cGUgPD0gT1JFUVVBTCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTkyNTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzOSw5ICsxMTM5LDYgQEAgcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTb3VyY2VFbGVtZW50
cyBwYXJzZUFycm93RnVuY3Rpb25TaW5nbGVFeHByZXNzaW9uQm9keVNvdXJjZUVsZW1lbnRzKFRy
ZWVCdWlsZGVyJik7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVz
c2lvbiBwYXJzZUFycm93RnVuY3Rpb25FeHByZXNzaW9uKFRyZWVCdWlsZGVyJik7CiAgICAgdGVt
cGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBORVZFUl9JTkxJTkUgVHJlZURlc3RydWN0dXJpbmdQ
YXR0ZXJuIGNyZWF0ZUJpbmRpbmdQYXR0ZXJuKFRyZWVCdWlsZGVyJiwgRGVzdHJ1Y3R1cmluZ0tp
bmQsIEV4cG9ydFR5cGUsIGNvbnN0IElkZW50aWZpZXImLCBKU1Rva2VuLCBBc3NpZ25tZW50Q29u
dGV4dCwgY29uc3QgSWRlbnRpZmllcioqIGR1cGxpY2F0ZUlkZW50aWZpZXIpOwotICAgIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVEZXN0cnVjdHVyaW5nUGF0
dGVybiBjcmVhdGVBc3NpZ25tZW50RWxlbWVudChUcmVlQnVpbGRlciYsIFRyZWVFeHByZXNzaW9u
JiwgY29uc3QgSlNUZXh0UG9zaXRpb24mLCBjb25zdCBKU1RleHRQb3NpdGlvbiYpOwotICAgIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVEZXN0cnVjdHVyaW5n
UGF0dGVybiBwYXJzZUJpbmRpbmdPckFzc2lnbm1lbnRFbGVtZW50KFRyZWVCdWlsZGVyJiBjb250
ZXh0LCBEZXN0cnVjdHVyaW5nS2luZCwgRXhwb3J0VHlwZSwgY29uc3QgSWRlbnRpZmllcioqIGR1
cGxpY2F0ZUlkZW50aWZpZXIsIGJvb2wqIGhhc0Rlc3RydWN0dXJpbmdQYXR0ZXJuLCBBc3NpZ25t
ZW50Q29udGV4dCBiaW5kaW5nQ29udGV4dCwgaW50IGRlcHRoKTsKLSAgICB0ZW1wbGF0ZSA8Y2xh
c3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRlcm4gcGFy
c2VBc3NpZ25tZW50RWxlbWVudChUcmVlQnVpbGRlciYgY29udGV4dCwgRGVzdHJ1Y3R1cmluZ0tp
bmQsIEV4cG9ydFR5cGUsIGNvbnN0IElkZW50aWZpZXIqKiBkdXBsaWNhdGVJZGVudGlmaWVyLCBi
b29sKiBoYXNEZXN0cnVjdHVyaW5nUGF0dGVybiwgQXNzaWdubWVudENvbnRleHQgYmluZGluZ0Nv
bnRleHQsIGludCBkZXB0aCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBORVZF
Ul9JTkxJTkUgVHJlZURlc3RydWN0dXJpbmdQYXR0ZXJuIHBhcnNlRGVzdHJ1Y3R1cmluZ1BhdHRl
cm4oVHJlZUJ1aWxkZXImLCBEZXN0cnVjdHVyaW5nS2luZCwgRXhwb3J0VHlwZSwgY29uc3QgSWRl
bnRpZmllcioqIGR1cGxpY2F0ZUlkZW50aWZpZXIgPSBudWxscHRyLCBib29sKiBoYXNEZXN0cnVj
dHVyaW5nUGF0dGVybiA9IG51bGxwdHIsIEFzc2lnbm1lbnRDb250ZXh0ID0gQXNzaWdubWVudENv
bnRleHQ6OkRlY2xhcmF0aW9uU3RhdGVtZW50LCBpbnQgZGVwdGggPSAwKTsKICAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBUcmVlRGVzdHJ1Y3R1cmluZ1BhdHRl
cm4gdHJ5UGFyc2VEZXN0cnVjdHVyaW5nUGF0dGVybkV4cHJlc3Npb24oVHJlZUJ1aWxkZXImLCBB
c3NpZ25tZW50Q29udGV4dCk7CiAgICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBORVZF
Ul9JTkxJTkUgVHJlZUV4cHJlc3Npb24gcGFyc2VEZWZhdWx0VmFsdWVGb3JEZXN0cnVjdHVyaW5n
UGF0dGVybihUcmVlQnVpbGRlciYpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9TeW50YXhDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9TeW50YXhDaGVja2VyLmgJKHJldmlzaW9uIDE5MjU5MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsMzYg
KzM0NiwxMiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gQmluZGluZ0Rlc3RydWN0
dXJpbmc7CiAgICAgfQotICAgIERlc3RydWN0dXJpbmdQYXR0ZXJuIGNyZWF0ZUFzc2lnbm1lbnRF
bGVtZW50KGNvbnN0IEV4cHJlc3Npb24mLCBjb25zdCBKU1RleHRQb3NpdGlvbiYsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJikKLSAgICB7Ci0gICAgICAgIHJldHVybiBCaW5kaW5nRGVzdHJ1Y3R1cmlu
ZzsKLSAgICB9CiAKICAgICBib29sIGlzQmluZGluZ05vZGUoRGVzdHJ1Y3R1cmluZ1BhdHRlcm4g
cGF0dGVybikKICAgICB7CiAgICAgICAgIHJldHVybiBwYXR0ZXJuID09IEJpbmRpbmdEZXN0cnVj
dHVyaW5nOwogICAgIH0KIAotICAgIGJvb2wgaXNBc3NpZ25tZW50TG9jYXRpb24oRXhwcmVzc2lv
blR5cGUgdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0eXBlID09IFJlc29sdmVFeHByIHx8
IHR5cGUgPT0gRG90RXhwciB8fCB0eXBlID09IEJyYWNrZXRFeHByOwotICAgIH0KLQotICAgIGJv
b2wgaXNPYmplY3RMaXRlcmFsKEV4cHJlc3Npb25UeXBlIHR5cGUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdHlwZSA9PSBPYmplY3RMaXRlcmFsRXhwcjsKLSAgICB9Ci0KLSAgICBib29sIGlzQXJy
YXlMaXRlcmFsKEV4cHJlc3Npb25UeXBlIHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gdHlw
ZSA9PSBBcnJheUxpdGVyYWxFeHByOwotICAgIH0KLQotICAgIGJvb2wgaXNPYmplY3RPckFycmF5
TGl0ZXJhbChFeHByZXNzaW9uVHlwZSB0eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGlzT2Jq
ZWN0TGl0ZXJhbCh0eXBlKSB8fCBpc0FycmF5TGl0ZXJhbCh0eXBlKTsKLSAgICB9Ci0KICAgICB2
b2lkIHNldEVuZE9mZnNldChpbnQsIGludCkgeyB9CiAgICAgaW50IGVuZE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KICAgICB2b2lkIHNldFN0YXJ0T2Zmc2V0KGludCwgaW50KSB7IH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwJKHJldmlzaW9uIDE5MjU5MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMjE0
LDEwICsyMTQsNiBAQAogICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCiAtIHBhdGg6IGVzNi9kZXN0cnVj
dHVyaW5nX3dpdGhfc3RyaW5ncy5qcwogICBjbWQ6IHJ1bkVTNiA6bm9ybWFsCi0tIHBhdGg6IGVz
Ni9kZXN0cnVjdHVyaW5nX2Fzc2lnbm1lbnRfbm9uX3NpbXBsZV90YXJnZXQuanMKLSAgY21kOiBy
dW5FUzYgOm5vcm1hbAotLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19pbml0aWFsaXplcl9zY29w
aW5nLmpzCi0gIGNtZDogcnVuRVM2IDpub3JtYWwKIC0gcGF0aDogZXM2L2Zvci4ub2ZfbG9vcHNf
d2l0aF9hcnJheXMuanMKICAgY21kOiBydW5FUzYgOm5vcm1hbAogLSBwYXRoOiBlczYvZm9yLi5v
Zl9sb29wc193aXRoX2FzdHJhbF9wbGFuZV9zdHJpbmdzLmpzCkBAIC03NTEsNyArNzQ3LDcgQEAK
IC0gcGF0aDogZXM2L2Rlc3RydWN0dXJpbmdfaXRlcmF0b3JfY2xvc2luZy5qcwogICBjbWQ6IHJ1
bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ19uZXN0ZWRfcmVzdC5qcwotICBj
bWQ6IHJ1bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi9kZXN0
cnVjdHVyaW5nX3dpdGhfZ2VuZXJhdG9yX2luc3RhbmNlcy5qcwogICBjbWQ6IHJ1bkVTNiA6ZmFp
bAogLSBwYXRoOiBlczYvZGVzdHJ1Y3R1cmluZ193aXRoX2dlbmVyaWNfaXRlcmFibGVzLmpzCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfYXNzaWdu
bWVudF9ub25fc2ltcGxlX3RhcmdldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfYXNzaWdubWVudF9ub25fc2ltcGxlX3Rhcmdl
dC5qcwkocmV2aXNpb24gMTkyNTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9kZXN0cnVjdHVyaW5nX2Fzc2lnbm1lbnRfbm9uX3NpbXBsZV90YXJnZXQuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTYgKzAsMCBAQAotZnVuY3Rpb24gdGVzdCgpIHsKLSAgICB2YXIgbXNnID0g
e307Ci0gICAgKHsKLSAgICAgICAgbmFtZTogbXNnLm5hbWUsCi0gICAgICAgICJwYXJhbWV0ZXJz
IjogW21zZy5jYWxsYmFjaywgLi4ubXNnWyJwYXJhbWV0ZXJzIl1dLAotICAgICAgICAwOiBtc2db
MF0KLSAgICB9ID0gewotICAgICAgICBuYW1lOiAidGVzdCIsCi0gICAgICAgIHBhcmFtZXRlcnM6
IFtmdW5jdGlvbiBjYigpIHsgcmV0dXJuICJ0ZXN0IjsgfSwgImEiLCAiYiIsICJjIl0sCi0gICAg
ICAgICIwIjogTmFOCi0gICAgfSk7Ci0gICAgcmV0dXJuIG1zZy5uYW1lID09PSAidGVzdCIgJiYg
bXNnWzBdICE9PSBtc2dbMF0gJiYgbXNnLmNhbGxiYWNrKCkgPT09ICJ0ZXN0IiAmJiAobXNnLnBh
cmFtZXRlcnMgKyAiIikgPT09ICJhLGIsYyI7Ci19Ci0KLWlmICghdGVzdCgpKQotICAgIHRocm93
IG5ldyBFcnJvcigiVGVzdCBmYWlsZWQiKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19pbml0aWFsaXplcl9zY29waW5nLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvZGVzdHJ1Y3R1cmluZ19pbml0aWFs
aXplcl9zY29waW5nLmpzCShyZXZpc2lvbiAxOTI1OTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvZXM2L2Rlc3RydWN0dXJpbmdfaW5pdGlhbGl6ZXJfc2NvcGluZy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNyArMCwwIEBACi12YXIgb3V0ZXIgPSBbXTsKLWZ1bmN0aW9uIHRlc3Qo
KSB7Ci0gICAgdmFyIGEgPSB7fTsKLSAgICB2YXIgZGVmYXVsdE9iaiA9IHsKLSAgICAgICAgbmFt
ZTogImRlZmF1bHQiLAotICAgICAgICBsZW5ndGg6IDMsCi0gICAgICAgIDA6ICJhIiwKLSAgICAg
ICAgMTogImIiLAotICAgICAgICAyOiAiYyIsCi0gICAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiBB
cnJheS5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXQotICAgIH07Ci0gICAgZnVuY3Rpb24gdGVz
dGVyKHsgbmFtZSB9ID0geyBuYW1lOiBhLm5hbWUgfSA9IFtvdXRlclswXSwgLi4ub3V0ZXJbMV1d
ID0gZGVmYXVsdE9iaikgeyByZXR1cm4gbmFtZTsgfQotICAgIHJldHVybiB0ZXN0ZXIoKSA9PT0g
ImRlZmF1bHQiICYmIGEubmFtZSA9PT0gImRlZmF1bHQiICYmIChvdXRlciArICIiKSA9PT0gImEs
YixjIjsKLX0KLQotaWYgKCF0ZXN0KCkpCi0gICAgdGhyb3cgbmV3IEVycm9yKCJUZXN0IGZhaWxl
ZCIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZXN0cnVjdHVy
aW5nLWFzc2lnbm1lbnQtc3ludGF4LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvZGVzdHJ1Y3R1cmluZy1hc3NpZ25tZW50LXN5bnRheC5qcwkocmV2
aXNpb24gMTkyNTkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZXN0
cnVjdHVyaW5nLWFzc2lnbm1lbnQtc3ludGF4LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU5ICsw
LDAgQEAKLQotZnVuY3Rpb24gdGVzdFN5bnRheChzY3JpcHQpIHsKLSAgICB0cnkgewotICAgICAg
ICBldmFsKHNjcmlwdCk7Ci0gICAgfSBjYXRjaCAoZXJyb3IpIHsKLSAgICAgICAgaWYgKGVycm9y
IGluc3RhbmNlb2YgU3ludGF4RXJyb3IpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdFN5
bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkgewotICAgIHZhciBlcnJvciA9IG51bGw7Ci0gICAg
dHJ5IHsKLSAgICAgICAgZXZhbChzY3JpcHQpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAg
ZXJyb3IgPSBlOwotICAgIH0KLSAgICBpZiAoIWVycm9yKQotICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkV4cGVjdGVkIHN5bnRheCBlcnJvciBub3QgdGhyb3duIik7Ci0KLSAgICBpZiAoU3RyaW5n
KGVycm9yKSAhPT0gbWVzc2FnZSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgZXJyb3I6
ICIgKyBTdHJpbmcoZXJyb3IpKTsKLX0KLQotdGVzdFN5bnRheCgiKHsgYTogdGhpcy5hIH0gPSB7
fSkiKTsKLXRlc3RTeW50YXgoIih7IGE6IHRoaXNbJ2EnXSB9ID0ge30pIik7Ci10ZXN0U3ludGF4
KCIoeyBhOiB0aGlzW1wiYVwiXSB9ID0ge30pIik7Ci10ZXN0U3ludGF4KCJbdGhpcy5hIF0gPSBb
XSIpOwotdGVzdFN5bnRheCgiW3RoaXNbJ2EnXV0gPSBbXSIpOwotdGVzdFN5bnRheCgiW3RoaXNb
MF1dID0gW10iKTsKLXRlc3RTeW50YXgoIlsuLi50aGlzWzBdXSA9IFtdIik7Ci10ZXN0U3ludGF4
KCJbLi4uW2Z1bmN0aW9uIGYoKSB7fS5wcm9wXV0gPSBbXSIpOwotdGVzdFN5bnRheCgiWy4uLlt7
cHJvcDogMX0ucHJvcF1dID0gW10iKTsKLXRlc3RTeW50YXgoIlsuLi5bdGhpc1swXSwgLi4udGhp
c1sxXV1dID0gW10iKTsKLXRlc3RTeW50YXgoIih7IGE6IG9iai5hIH0gPSB7fSkiKTsKLXRlc3RT
eW50YXgoIih7IGE6IG9ialsnYSddIH0gPSB7fSkiKTsKLXRlc3RTeW50YXgoIih7IGE6IG9ialtc
ImFcIl0gfSA9IHt9KSIpOwotdGVzdFN5bnRheCgiKHsgYTogZnVuY3Rpb24oKSB7fVsncHJvcCdd
IH0gPSB7fSkiKTsKLXRlc3RTeW50YXgoIih7IGE6IHtwcm9wOiAxfS5wcm9wIH0gPSB7fSkiKTsK
LXRlc3RTeW50YXgoIltvYmouYSBdID0gW10iKTsKLXRlc3RTeW50YXgoIltvYmpbJ2EnXV0gPSBb
XSIpOwotdGVzdFN5bnRheCgiW29ialswXV0gPSBbXSIpOwotdGVzdFN5bnRheCgiW2Z1bmN0aW9u
KCl7fS5wcm9wXSA9IFtdIik7Ci10ZXN0U3ludGF4KCJbe3Byb3A6IDF9LnByb3BdID0gW10iKTsK
LQotCi10ZXN0U3ludGF4RXJyb3IoIlsuLi5jID0gMV0gPSBbXSIsICJTeW50YXhFcnJvcjogVW5l
eHBlY3RlZCB0b2tlbiAnPScuIEV4cGVjdGVkIGEgY2xvc2luZyAnXScgZm9sbG93aW5nIGEgcmVz
dCBlbGVtZW50IGRlc3RydWN0dXJpbmcgcGF0dGVybi4iKTsKLXRlc3RTeW50YXhFcnJvcigiWy4u
LmMsIGRdID0gW10iLCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJywnLiBFeHBlY3Rl
ZCBhIGNsb3NpbmcgJ10nIGZvbGxvd2luZyBhIHJlc3QgZWxlbWVudCBkZXN0cnVjdHVyaW5nIHBh
dHRlcm4uIik7Ci10ZXN0U3ludGF4RXJyb3IoIlt0aGlzXSA9IFtdIiwgIlN5bnRheEVycm9yOiBJ
bnZhbGlkIGRlc3RydWN0dXJpbmcgYXNzaWdubWVudCB0YXJnZXQuIik7Ci10ZXN0U3ludGF4RXJy
b3IoIlt0aFxcdXs2OX1zXSA9IFtdIiwgIlN5bnRheEVycm9yOiBJbnZhbGlkIGRlc3RydWN0dXJp
bmcgYXNzaWdubWVudCB0YXJnZXQuIik7Ci10ZXN0U3ludGF4RXJyb3IoIltmdW5jdGlvbigpIHt9
XSA9IFtdIiwgIlN5bnRheEVycm9yOiBJbnZhbGlkIGRlc3RydWN0dXJpbmcgYXNzaWdubWVudCB0
YXJnZXQuIik7Ci10ZXN0U3ludGF4RXJyb3IoIlsnc3RyaW5nJ10gPSBbXSIsICJTeW50YXhFcnJv
cjogSW52YWxpZCBkZXN0cnVjdHVyaW5nIGFzc2lnbm1lbnQgdGFyZ2V0LiIpOwotdGVzdFN5bnRh
eEVycm9yKCJbMTIzXSA9IFtdIiwgIlN5bnRheEVycm9yOiBJbnZhbGlkIGRlc3RydWN0dXJpbmcg
YXNzaWdubWVudCB0YXJnZXQuIik7Ci10ZXN0U3ludGF4RXJyb3IoIlt0cnVlXSA9IFtdIiwgIlN5
bnRheEVycm9yOiBJbnZhbGlkIGRlc3RydWN0dXJpbmcgYXNzaWdubWVudCB0YXJnZXQuIik7Ci10
ZXN0U3ludGF4RXJyb3IoIlt0cnVcXHUwMDY1XSA9IFtdIiwgIlN5bnRheEVycm9yOiBJbnZhbGlk
IGRlc3RydWN0dXJpbmcgYXNzaWdubWVudCB0YXJnZXQuIik7Ci10ZXN0U3ludGF4RXJyb3IoIltm
YWxzZV0gPSBbXSIsICJTeW50YXhFcnJvcjogSW52YWxpZCBkZXN0cnVjdHVyaW5nIGFzc2lnbm1l
bnQgdGFyZ2V0LiIpOwotdGVzdFN5bnRheEVycm9yKCJbZlxcdTAwNjFsc2VdID0gW10iLCAiU3lu
dGF4RXJyb3I6IEludmFsaWQgZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50IHRhcmdldC4iKTsKLXRl
c3RTeW50YXhFcnJvcigiW251bGxdID0gW10iLCAiU3ludGF4RXJyb3I6IEludmFsaWQgZGVzdHJ1
Y3R1cmluZyBhc3NpZ25tZW50IHRhcmdldC4iKTsKLXRlc3RTeW50YXhFcnJvcigiW25cXHV7NzV9
bGxdID0gW10iLCAiU3ludGF4RXJyb3I6IEludmFsaWQgZGVzdHJ1Y3R1cmluZyBhc3NpZ25tZW50
IHRhcmdldC4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVz
dC1lbGVtZW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Jlc3QtZWxlbWVudHMuanMJKHJldmlzaW9uIDE5MjU5MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVzdC1lbGVtZW50cy5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTA5LDExICsxMDksMjEgQEAgdGVzdFN5bnRheEVycm9yKFN0cmluZy5yYXdgKGZ1bmN0aW9u
IChbYQogdGVzdFN5bnRheEVycm9yKFN0cmluZy5yYXdgKGZ1bmN0aW9uIChbYSwgLi4uW2IsIGNd
XSkgeyB9KWAsIFN0cmluZy5yYXdgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJ10nLiBF
eHBlY3RlZCBpZGVudGlmaWVyIGZvciBhIHJlc3QgZWxlbWVudCBkZXN0cnVjdHVyaW5nIHBhdHRl
cm4uYCk7CiB0ZXN0U3ludGF4RXJyb3IoU3RyaW5nLnJhd2AoZnVuY3Rpb24gKFthLCAuLi57IGIs
IGMgfV0pIHsgfSlgLCBTdHJpbmcucmF3YFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICdd
Jy4gRXhwZWN0ZWQgaWRlbnRpZmllciBmb3IgYSByZXN0IGVsZW1lbnQgZGVzdHJ1Y3R1cmluZyBw
YXR0ZXJuLmApOwogCi0KLXRlc3RTeW50YXhFcnJvcihTdHJpbmcucmF3YFthLCAuLi5iLCBjXSA9
IDIwYCwgU3RyaW5nLnJhd2BTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnLCcuIEV4cGVj
dGVkIGEgY2xvc2luZyAnXScgZm9sbG93aW5nIGEgcmVzdCBlbGVtZW50IGRlc3RydWN0dXJpbmcg
cGF0dGVybi5gKTsKLXRlc3RTeW50YXhFcnJvcihTdHJpbmcucmF3YFthLCAuLi5iLF0gPSAyMGAs
IFN0cmluZy5yYXdgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJywnLiBFeHBlY3RlZCBh
IGNsb3NpbmcgJ10nIGZvbGxvd2luZyBhIHJlc3QgZWxlbWVudCBkZXN0cnVjdHVyaW5nIHBhdHRl
cm4uYCk7Ci10ZXN0U3ludGF4RXJyb3IoU3RyaW5nLnJhd2BbYSwgLi4uYiwsXSA9IDIwYCwgU3Ry
aW5nLnJhd2BTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnLCcuIEV4cGVjdGVkIGEgY2xv
c2luZyAnXScgZm9sbG93aW5nIGEgcmVzdCBlbGVtZW50IGRlc3RydWN0dXJpbmcgcGF0dGVybi5g
KTsKLXRlc3RTeW50YXhFcnJvcihTdHJpbmcucmF3YFthLCAuLi5iID0gMjBdID0gMjBgLCBTdHJp
bmcucmF3YFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICc9Jy4gRXhwZWN0ZWQgYSBjbG9z
aW5nICddJyBmb2xsb3dpbmcgYSByZXN0IGVsZW1lbnQgZGVzdHJ1Y3R1cmluZyBwYXR0ZXJuLmAp
Oworc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeworICAgIFthLCAuLi5iLCBjXSA9IDIwOworfSwg
IlJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3QgYSByZWZlcmVu
Y2UuIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgpIHsKKyAgICBbYSwgLi4uYixdID0gMjAK
K30sICJSZWZlcmVuY2VFcnJvcjogTGVmdCBzaWRlIG9mIGFzc2lnbm1lbnQgaXMgbm90IGEgcmVm
ZXJlbmNlLiIpOworCitzaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7CisgICAgW2EsIC4uLmIsLF0g
PSAyMAorfSwgIlJlZmVyZW5jZUVycm9yOiBMZWZ0IHNpZGUgb2YgYXNzaWdubWVudCBpcyBub3Qg
YSByZWZlcmVuY2UuIik7CisKK3Nob3VsZFRocm93KGZ1bmN0aW9uICgpIHsKKyAgICBbYSwgLi4u
YiA9IDIwXSA9IDIwCit9LCAiUmVmZXJlbmNlRXJyb3I6IExlZnQgc2lkZSBvZiBhc3NpZ25tZW50
IGlzIG5vdCBhIHJlZmVyZW5jZS4iKTsKIAogKGZ1bmN0aW9uICgpIHsKICAgICB2YXIgYSwgYiwg
YzsK
</data>
<flag name="review"
          id="290814"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="290815"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>