<?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>70398</bug_id>
          
          <creation_ts>2011-10-18 22:03:16 -0700</creation_ts>
          <short_desc>Some rope cleanup following r97827</short_desc>
          <delta_ts>2011-10-19 12:44:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>barraclough</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>486558</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-18 22:03:16 -0700</bug_when>
    <thetext>Some rope cleanup following r97827</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486562</commentid>
    <comment_count>1</comment_count>
      <attachid>111564</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-18 22:11:56 -0700</bug_when>
    <thetext>Created attachment 111564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486929</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-19 12:44:34 -0700</bug_when>
    <thetext>Committed r97872: &lt;http://trac.webkit.org/changeset/97872&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111564</attachid>
            <date>2011-10-18 22:11:56 -0700</date>
            <delta_ts>2011-10-19 11:56:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70398-20111018221154.patch</filename>
            <type>text/plain</type>
            <size>37650</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTc4MzEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzEgQEAK
KzIwMTEtMTAtMTggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBTb21lIHJvcGUgY2xlYW51cCBmb2xsb3dpbmcgcjk3ODI3CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM5OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDklIHNwZWVkdXAgb24gZGF0ZS1mb3JtYXQteHBh
cmIsIG5ldXRyYWwgb3ZlcmFsbC4KKyAgICAgICAgCisgICAgICAgIC0gUmVtb3ZlZCBSb3BlSW1w
bCouCisgICAgICAgIC0gUmVtb3ZlZCBKU1N0cmluZzo6bV9maWJlckNvdW50LCBzaW5jZSB0aGlz
IGNhbiBiZSBkZWR1Y2VkIGZyb20gb3RoZXIgZGF0YS4KKyAgICAgICAgLSBSZW5hbWVkIGEganNT
dHJpbmcoKSB2YXJpYW50IHRvIGpzU3RyaW5nRnJvbUFyZ3VtZW50cyBmb3IgY2xhcml0eS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUub3JkZXI6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUucHJvOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogUmVtb3ZlZCBSb3BlSW1wbCouCisKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0Q2hhckNvZGVBdCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVHZXRCeVZhbE9uU3RyaW5nKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lTWV0aG9k
cy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRMb2FkQ2hhcmFjdGVyU3RyaW5nKToKKyAgICAg
ICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnN0cmlu
Z0dldEJ5VmFsU3R1YkdlbmVyYXRvcik6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNz
MzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnN0cmluZ0dldEJ5VmFsU3R1YkdlbmVyYXRv
cik6CisgICAgICAgICogaml0L1NwZWNpYWxpemVkVGh1bmtKSVQuaDoKKyAgICAgICAgKEpTQzo6
U3BlY2lhbGl6ZWRUaHVua0pJVDo6bG9hZEpTU3RyaW5nQXJndW1lbnQpOgorICAgICAgICAqIGpp
dC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdDaGFyTG9hZCk6IFVz
ZSBhIE5VTEwgbV92YWx1ZSB0byBzaWduYWwgcm9wZS1pbmVzcywgaW5zdGVhZAorICAgICAgICBv
ZiB0ZXN0aW5nIG1fZmliZXJDb3VudCwgc2luY2UgbV9maWJlckNvdW50IGlzIGdvbmUgbm93Lgor
CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6OkpTU3RyaW5n
OjpSb3BlQnVpbGRlcjo6ZXhwYW5kKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnZpc2l0Q2hp
bGRyZW4pOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6cmVzb2x2ZVJvcGUpOgorICAgICAgICAo
SlNDOjpKU1N0cmluZzo6cmVzb2x2ZVJvcGVTbG93Q2FzZSk6CisgICAgICAgIChKU0M6OkpTU3Ry
aW5nOjpvdXRPZk1lbW9yeSk6IFVzZSBhIE5VTEwgZmliZXIgdG8gaW5kaWNhdGUgImxhc3QgZmli
ZXIKKyAgICAgICAgaW4gdGhlIHZlY3RvciIgaW5zdGVhZCBvZiB0ZXN0aW5nIG1fZmliZXJDb3Vu
dCwgc2luY2UgbV9maWJlckNvdW50IGlzIGdvbmUgbm93LgorCisgICAgICAgICogcnVudGltZS9K
U1N0cmluZy5oOgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6SlNTdHJpbmcpOgorICAgICAg
ICAoSlNDOjpSb3BlQnVpbGRlcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpSb3Bl
QnVpbGRlcjo6b2Zmc2V0T2ZMZW5ndGgpOgorICAgICAgICAoSlNDOjpSb3BlQnVpbGRlcjo6aXNS
b3BlKToKKyAgICAgICAgKEpTQzo6Um9wZUJ1aWxkZXI6OnN0cmluZyk6IFJlbW92ZWQgbV9maWJl
ckNvdW50LiBSZW5hbWVkCisgICAgICAgIGpzU3RyaW5nID0+IGpzU3RyaW5nRnJvbUFyZ3VtZW50
cyBmb3IgY2xhcml0eS4KKworICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5oOgorICAgICAg
ICAoSlNDOjpqc1N0cmluZ0Zyb21Bcmd1bWVudHMpOiBSZW5hbWVkLgorCisgICAgICAgICogcnVu
dGltZS9Sb3BlSW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9Sb3BlSW1wbC5o
OiBSZW1vdmVkLgorCisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwOgorICAgICAg
ICAoSlNDOjpTbWFsbFN0cmluZ3M6OmNyZWF0ZUVtcHR5U3RyaW5nKTogU3dpdGNoZWQgdG8gU3Ry
aW5nSW1wbDo6ZW1wdHksCisgICAgICAgIHdoaWNoIGlzIHNsaWdodGx5IGZhc3Rlci4KKworICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6c3RyaW5n
UHJvdG9GdW5jQ29uY2F0KTogVXBkYXRlZCBmb3IgcmVuYW1lLgorCisgICAgICAgICogd3RmL3Rl
eHQvU3RyaW5nSW1wbEJhc2UuaDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbEJhc2U6OlN0cmlu
Z0ltcGxCYXNlKTogUmVtb3ZlZCB0aGUgY29uY2VwdCBvZiBhbiBpbnZhbGlkCisgICAgICAgIFN0
cmluZ0ltcGwsIHNpbmNlIHRoaXMgd2FzIG9ubHkgdXNlZCBieSBSb3BlSW1wbCwgd2hpY2ggaXMg
bm93IGdvbmUuCisKIDIwMTEtMTAtMTggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBSb2xsZWQgb3V0IGxhc3QgV2luZG93cyBidWlsZCBmaXggYmVjYXVzZSBp
dCB3YXMgd3JvbmcuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiA5NzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTU3LDcgKzE1Nyw2IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKICAgICBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAKICAgICBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKLSAgICBydW50aW1lL1Jv
cGVJbXBsLmNwcAogICAgIHJ1bnRpbWUvU2NvcGVDaGFpbi5jcHAKICAgICBydW50aW1lL1NtYWxs
U3RyaW5ncy5jcHAKICAgICBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDk3ODMw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQzNiw4ICs0MzYsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JvcGVJbXBsLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUm9wZUltcGwuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdD
b3VudGVyLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2FtcGxpbmdDb3Vu
dGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uY3BwIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHJldmlz
aW9uIDk3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVy
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ3LDggKzEwNDcsNiBAQCBfX1pOM0pTQzZSZWdFeHA1bWF0
Y2hFUktOU183VVN0cmluZ0VpUE4zCiBfX1pOM0pTQzRZYXJyN2V4ZWN1dGVFUk5TMF8xM1lhcnJD
b2RlQmxvY2tFUEt0ampQaQogX19aTjNKU0MzSklUMTFlbWl0X29wX2FkZEVQTlNfMTFJbnN0cnVj
dGlvbkUKIF9jdGlfb3BfYWRkCi1fX1pOM0pTQzhSb3BlSW1wbDIwZGVzdHJ1Y3ROb25SZWN1cnNp
dmVFdgotX19aTjNKU0M4Um9wZUltcGwyM2RlcmVmRmliZXJzTm9uUmVjdXJzaXZlRVJOM1dURjZW
ZWN0b3JJUFMwX0xtMzJFRUUKIF9jdGlfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbgogX19aTjNKU0M5
SklUVGh1bmtzMTV0cnlDYWNoZUdldEJ5SURFUE5TXzlFeGVjU3RhdGVFUE5TXzlDb2RlQmxvY2tF
TlNfMTZSZXR1cm5BZGRyZXNzUHRyRU5TXzdKU1ZhbHVlRVJLTlNfMTBJZGVudGlmaWVyRVJLTlNf
MTJQcm9wZXJ0eVNsb3RFUE5TXzE3U3RydWN0dXJlU3R1YkluZm9FCiBfX1pOM0pTQzNKSVQzM3By
aXZhdGVDb21waWxlUGF0Y2hHZXRBcnJheUxlbmd0aEVOU18xNlJldHVybkFkZHJlc3NQdHJFCkBA
IC0yMzg5LDcgKzIzODcsNiBAQCBfX1pOM0pTQzE1SWRlbnRpZmllckFyZW5hMjFtYWtlTnVtZXJp
Y0lkCiBfX1pOM0pTQzZKU0NlbGwzcHV0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDNkpTQ2VsbDNwdXRF
UE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRQogX19aTjNXVEYxNmNvZGVQb2ludENvbXBhcmVF
UktOU182U3RyaW5nRVMyXwotX19aTjNXVEY2VmVjdG9ySVBOM0pTQzhSb3BlSW1wbEVMbTMyRUUx
NGV4cGFuZENhcGFjaXR5RW0KIF9fWk4zSlNDM0pJVDI1ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2Fs
bEVQTlNfMTFJbnN0cnVjdGlvbkUKIF9fWk4zSlNDM0pJVDI0ZW1pdF9vcF9wcm9maWxlX2RpZF9j
YWxsRVBOU18xMUluc3RydWN0aW9uRQogX19aTjNKU0M4UHJvZmlsZXI4cHJvZmlsZXJFdgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCShyZXZpc2lvbiA5Nzgz
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTE3Nyw3ICsxNzcsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBydW50aW1lL1JlZ0V4
cE9iamVjdC5jcHAgXAogICAgIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBcCiAgICAgcnVu
dGltZS9SZWdFeHBDYWNoZS5jcHAgXAotICAgIHJ1bnRpbWUvUm9wZUltcGwuY3BwIFwKICAgICBy
dW50aW1lL1NhbXBsaW5nQ291bnRlci5jcHAgXAogICAgIHJ1bnRpbWUvU2NvcGVDaGFpbi5jcHAg
XAogICAgIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkocmV2aXNpb24g
OTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTEw
MiwxNCArMTEwMiw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcUm9wZUltcGwuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXFJvcGVJbXBsLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVc
U2NvcGVDaGFpbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDk3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTMzNiw4ICszMzYsNiBAQAogCQk4NkFFNjRBQTEzNUU1RTFDMDA5NjMwMTIgLyogU0g0QXNzZW1i
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFF
NjRBNzEzNUU1RTFDMDA5NjMwMTIgLyogU0g0QXNzZW1ibGVyLmggKi87IH07CiAJCTg2QUU2QzRE
MTM2QTExRTQwMDk2MzAxMiAvKiBERkdGUFJJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NkFFNkM0QjEzNkExMUU0MDA5NjMwMTIgLyogREZHRlBS
SW5mby5oICovOyB9OwogCQk4NkFFNkM0RTEzNkExMUU0MDA5NjMwMTIgLyogREZHR1BSSW5mby5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZBRTZDNEMx
MzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQUkluZm8uaCAqLzsgfTsKLQkJODZCOTlBQjgxMTdFMzkx
RTAwREY1QTkwIC8qIFJvcGVJbXBsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg2Qjk5QUI2MTE3RTM5MUUwMERGNUE5MCAvKiBSb3BlSW1wbC5jcHAg
Ki87IH07Ci0JCTg2Qjk5QUI5MTE3RTM5MUUwMERGNUE5MCAvKiBSb3BlSW1wbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCOTlBQjcxMTdFMzkxRTAw
REY1QTkwIC8qIFJvcGVJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODZCOTlBRTMxMTdFNTc4MTAwREY1QTkwIC8qIFN0cmluZ0J1ZmZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODZCOTlBRTEx
MTdFNTc4MTAwREY1QTkwIC8qIFN0cmluZ0J1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg2Qjk5QUU0MTE3RTU3ODEwMERGNUE5MCAvKiBT
dHJpbmdJbXBsQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODZCOTlBRTIxMTdFNTc4MTAwREY1QTkwIC8qIFN0cmluZ0ltcGxCYXNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODZCQjA5QzAxMzhF
MzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0Y2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODZCQjA5QkUxMzhFMzgxQjAwNTY3MDJGIC8qIERGR1JlcGF0
Y2guY3BwICovOyB9OwpAQCAtMTExNSw4ICsxMTEzLDYgQEAKIAkJODZBRTY0QTcxMzVFNUUxQzAw
OTYzMDEyIC8qIFNINEFzc2VtYmxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTSDRBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZBRTZDNEIx
MzZBMTFFNDAwOTYzMDEyIC8qIERGR0ZQUkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gREZHRlBSSW5mby5oOyBwYXRoID0gZGZnL0RGR0ZQUkluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZBRTZDNEMxMzZBMTFFNDAwOTYzMDEyIC8qIERGR0dQUklu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHR1BSSW5mby5oOyBwYXRo
ID0gZGZnL0RGR0dQUkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODZCOTlB
QjYxMTdFMzkxRTAwREY1QTkwIC8qIFJvcGVJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJvcGVJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODZCOTlBQjcxMTdFMzkxRTAwREY1QTkwIC8qIFJvcGVJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJvcGVJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg2Qjk5QUUxMTE3RTU3ODEwMERGNUE5MCAvKiBTdHJpbmdCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3RyaW5nQnVmZmVyLmg7IHBhdGggPSB0ZXh0L1N0cmlu
Z0J1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NkI5OUFFMjExN0U1Nzgx
MDBERjVBOTAgLyogU3RyaW5nSW1wbEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU3RyaW5nSW1wbEJhc2UuaDsgcGF0aCA9IHRleHQvU3RyaW5nSW1wbEJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODZCQjA5QkUxMzhFMzgxQjAwNTY3MDJGIC8qIERG
R1JlcGF0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHUmVw
YXRjaC5jcHA7IHBhdGggPSBkZmcvREZHUmVwYXRjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMjA4LDggKzIyMDQsNiBAQAogCQkJCUY2OTJBODdDMDI1NTU5N0QwMUZGNjBG
NyAvKiBSZWdFeHBPYmplY3QuaCAqLywKIAkJCQlCQ0QyMDJCRjBFMTcwNkE3MDAyQzdFODIgLyog
UmVnRXhwUHJvdG90eXBlLmNwcCAqLywKIAkJCQlCQ0QyMDJDMDBFMTcwNkE3MDAyQzdFODIgLyog
UmVnRXhwUHJvdG90eXBlLmggKi8sCi0JCQkJODZCOTlBQjYxMTdFMzkxRTAwREY1QTkwIC8qIFJv
cGVJbXBsLmNwcCAqLywKLQkJCQk4NkI5OUFCNzExN0UzOTFFMDBERjVBOTAgLyogUm9wZUltcGwu
aCAqLywKIAkJCQk5Mzc0RDNBODAzOEQ5RDc0MDA4NjM1Q0UgLyogU2NvcGVDaGFpbi5jcHAgKi8s
CiAJCQkJOTM3NEQzQTcwMzhEOUQ3NDAwODYzNUNFIC8qIFNjb3BlQ2hhaW4uaCAqLywKIAkJCQk3
RTJDNkM5ODBEMzFDNkI2MDAyRDQ0RTIgLyogU2NvcGVDaGFpbk1hcmsuaCAqLywKQEAgLTI3ODAs
NyArMjc3NCw2IEBACiAJCQkJODZEM0IzQzQxMDE1OUQ3RjAwMjg2NUU3IC8qIFJlcGF0Y2hCdWZm
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2OUVCQ0I3MEU4QzZENEEwMDg3MjJDQyAvKiBSZXN1
bHRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ2MDBFMTZGNUNEMDBCMzQ0NjAgLyog
UmV0YWluUHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4NkI5OUFCOTExN0UzOTFFMDBERjVBOTAg
LyogUm9wZUltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MjlEODg2MEVEMjFDM0QwMEI4OTYx
OSAvKiBTYW1wbGluZ1Rvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDYxMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBTY29wZUNoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NjlBMDcyQzBFRDFD
RTY5MDBGMUY2ODEgLyogU2VnbWVudGVkVmVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNzMs
NyArMzM2Niw2IEBACiAJCQkJMTQyODA4NDMxMDdFQzA5MzAwMTNFN0IyIC8qIFJlZ0V4cE9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0NDEwN0VDMDkzMDAxM0U3QjIgLyogUmVn
RXhwUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjgwODNBMTA3RUMwNzUwMDEz
RTdCMiAvKiBSZWdpc3RlckZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODZCOTlBQjgxMTdF
MzkxRTAwREY1QTkwIC8qIFJvcGVJbXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MjlEODg1
MEVEMjFDM0QwMEI4OTYxOSAvKiBTYW1wbGluZ1Rvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ0NjlERUExMDdFQzdFNzAwNjUwNDQ2IC8qIFNjb3BlQ2hhaW4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNzZGQjlGMTExMkU4NTE5NjAwNTFBMkVCIC8qIFNIQTEuY3BwIGluIFNvdXJjZXMgKi8s
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAkocmV2aXNpb24gOTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYxLDE0ICs1NjEsMTUgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldENoYXJDb2RlQQogICAgIC8vIHVuc2lnbmVkIGNv
bXBhcmlzb24gc28gd2UgY2FuIGZpbHRlciBvdXQgbmVnYXRpdmUgaW5kaWNlcyBhbmQgaW5kaWNl
cyB0aGF0IGFyZSB0b28gbGFyZ2UKICAgICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaDMy
KE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIGluZGV4UmVnLCBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcyhzdHJpbmdSZWcsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSkpOwogICAgIAot
ICAgIC8vIFNwZWN1bGF0ZSB0aGF0IHdlJ3JlIG5vdCBhY2Nlc3NpbmcgYSByb3BlCi0gICAgc3Bl
Y3VsYXRpb25DaGVjayhtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8s
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0cmluZ1JlZywgSlNTdHJpbmc6Om9mZnNldE9mRmli
ZXJDb3VudCgpKSkpOwotICAgIAogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogICAg
IEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKKworICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3RyaW5nUmVnLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1
ZSgpKSwgc2NyYXRjaFJlZyk7CisgICAgCisgICAgLy8gU3BlY3VsYXRlIHRoYXQgd2UncmUgbm90
IGFjY2Vzc2luZyBhIHJvcGUKKyAgICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaFRlc3Qz
MihNYWNyb0Fzc2VtYmxlcjo6WmVybywgc2NyYXRjaFJlZykpOwogICAgIAogICAgIC8vIExvYWQg
dGhlIGNoYXJhY3RlciBpbnRvIHNjcmF0Y2hSZWcKLSAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKHN0cmluZ1JlZywgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHNj
cmF0Y2hSZWcpOwogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc2Ny
YXRjaFJlZywgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSwgc2NyYXRjaFJlZyk7CiAgICAgbV9q
aXQubG9hZDE2KE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2NyYXRjaFJlZywgaW5kZXhSZWcs
IE1hY3JvQXNzZW1ibGVyOjpUaW1lc1R3bywgMCksIHNjcmF0Y2hSZWcpOwogCkBAIC01OTAsMTQg
KzU5MSwxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPblN0CiAgICAg
Ly8gdW5zaWduZWQgY29tcGFyaXNvbiBzbyB3ZSBjYW4gZmlsdGVyIG91dCBuZWdhdGl2ZSBpbmRp
Y2VzIGFuZCBpbmRpY2VzIHRoYXQgYXJlIHRvbyBsYXJnZQogICAgIHNwZWN1bGF0aW9uQ2hlY2so
bV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcs
IE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0
aCgpKSkpOwogCi0gICAgLy8gU3BlY3VsYXRlIHRoYXQgd2UncmUgbm90IGFjY2Vzc2luZyBhIHJv
cGUKLSAgICBzcGVjdWxhdGlvbkNoZWNrKG1faml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxl
cjo6Tm9uWmVybywgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgSlNTdHJpbmc6Om9m
ZnNldE9mRmliZXJDb3VudCgpKSkpOwotICAgIAogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRo
aXMpOwogICAgIEdQUlJlZyBzY3JhdGNoUmVnID0gc2NyYXRjaC5ncHIoKTsKICAgICAKLSAgICAv
LyBMb2FkIHRoZSBjaGFyYWN0ZXIgaW50byBzY3JhdGNoUmVnCiAgICAgbV9qaXQubG9hZFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgp
KSwgc2NyYXRjaFJlZyk7CisKKyAgICAvLyBTcGVjdWxhdGUgdGhhdCB3ZSdyZSBub3QgYWNjZXNz
aW5nIGEgcm9wZQorICAgIHNwZWN1bGF0aW9uQ2hlY2sobV9qaXQuYnJhbmNoVGVzdDMyKE1hY3Jv
QXNzZW1ibGVyOjpaZXJvLCBzY3JhdGNoUmVnKSk7CisgICAgCisgICAgLy8gTG9hZCB0aGUgY2hh
cmFjdGVyIGludG8gc2NyYXRjaFJlZwogICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3Moc2NyYXRjaFJlZywgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSwgc2NyYXRjaFJl
Zyk7CiAgICAgbV9qaXQubG9hZDE2KE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5kZXgoc2NyYXRjaFJl
ZywgcHJvcGVydHlSZWcsIE1hY3JvQXNzZW1ibGVyOjpUaW1lc1R3bywgMCksIHNjcmF0Y2hSZWcp
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMu
aAkocmV2aXNpb24gOTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZU1ldGhvZHMuaAkod29ya2luZyBjb3B5KQpAQCAtODUsOSArODUsOSBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgSklUOjplbWl0R2V0RnJvbUNhbGxGCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjplbWl0
TG9hZENoYXJhY3RlclN0cmluZyhSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkc3QsIEp1bXBM
aXN0JiBmYWlsdXJlcykKIHsKICAgICBmYWlsdXJlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFs
LCBBZGRyZXNzKHNyYyksIFRydXN0ZWRJbW1QdHIobV9nbG9iYWxEYXRhLT5qc1N0cmluZ1ZQdHIp
KSk7Ci0gICAgZmFpbHVyZXMuYXBwZW5kKGJyYW5jaFRlc3QzMihOb25aZXJvLCBBZGRyZXNzKHNy
YywgT0JKRUNUX09GRlNFVE9GKEpTU3RyaW5nLCBtX2ZpYmVyQ291bnQpKSkpOwogICAgIGZhaWx1
cmVzLmFwcGVuZChicmFuY2gzMihOb3RFcXVhbCwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3Moc3Jj
LCBUaHVua0hlbHBlcnM6OmpzU3RyaW5nTGVuZ3RoT2Zmc2V0KCkpLCBUcnVzdGVkSW1tMzIoMSkp
KTsKICAgICBsb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNyYywgVGh1bmtIZWxwZXJz
Ojpqc1N0cmluZ1ZhbHVlT2Zmc2V0KCkpLCBkc3QpOworICAgIGZhaWx1cmVzLmFwcGVuZChicmFu
Y2hUZXN0MzIoWmVybywgZHN0KSk7CiAgICAgbG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhkc3QsIFRodW5rSGVscGVyczo6c3RyaW5nSW1wbERhdGFPZmZzZXQoKSksIGRzdCk7CiAgICAg
bG9hZDE2KE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGRzdCwgMCksIGRzdCk7CiB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82
NC5jcHAJKHJldmlzaW9uIDk3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDExICsxNzEsMTEg
QEAgSklUOjpDb2RlUmVmIEpJVDo6c3RyaW5nR2V0QnlWYWxTdHViR2VuZQogICAgIEpTSW50ZXJm
YWNlSklUIGppdDsKICAgICBKdW1wTGlzdCBmYWlsdXJlczsKICAgICBmYWlsdXJlcy5hcHBlbmQo
aml0LmJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdUMCksIFRydXN0ZWRJbW1QdHIoZ2xv
YmFsRGF0YS0+anNTdHJpbmdWUHRyKSkpOwotICAgIGZhaWx1cmVzLmFwcGVuZChqaXQuYnJhbmNo
VGVzdDMyKE5vblplcm8sIEFkZHJlc3MocmVnVDAsIE9CSkVDVF9PRkZTRVRPRihKU1N0cmluZywg
bV9maWJlckNvdW50KSkpKTsKICAgICAKICAgICAvLyBMb2FkIHN0cmluZyBsZW5ndGggdG8gcmVn
VDEsIGFuZCBzdGFydCB0aGUgcHJvY2VzcyBvZiBsb2FkaW5nIHRoZSBkYXRhIHBvaW50ZXIgaW50
byByZWdUMAogICAgIGppdC5sb2FkMzIoQWRkcmVzcyhyZWdUMCwgVGh1bmtIZWxwZXJzOjpqc1N0
cmluZ0xlbmd0aE9mZnNldCgpKSwgcmVnVDEpOwogICAgIGppdC5sb2FkUHRyKEFkZHJlc3MocmVn
VDAsIFRodW5rSGVscGVyczo6anNTdHJpbmdWYWx1ZU9mZnNldCgpKSwgcmVnVDApOworICAgIGZh
aWx1cmVzLmFwcGVuZChqaXQuYnJhbmNoVGVzdDMyKFplcm8sIHJlZ1QwKSk7CiAgICAgaml0Lmxv
YWRQdHIoQWRkcmVzcyhyZWdUMCwgVGh1bmtIZWxwZXJzOjpzdHJpbmdJbXBsRGF0YU9mZnNldCgp
KSwgcmVnVDApOwogICAgIAogICAgIC8vIERvIGFuIHVuc2lnbmVkIGNvbXBhcmUgdG8gc2ltdWx0
YW5lb3VzbHkgZmlsdGVyIG5lZ2F0aXZlIGluZGljZXMgYXMgd2VsbCBhcyBpbmRpY2VzIHRoYXQg
YXJlIHRvbyBsYXJnZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAJKHJldmlzaW9uIDk3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1
NSwxMSBAQCBKSVQ6OkNvZGVSZWYgSklUOjpzdHJpbmdHZXRCeVZhbFN0dWJHZW5lCiAgICAgSlNJ
bnRlcmZhY2VKSVQgaml0OwogICAgIEp1bXBMaXN0IGZhaWx1cmVzOwogICAgIGZhaWx1cmVzLmFw
cGVuZChqaXQuYnJhbmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QwKSwgVHJ1c3RlZEltbVB0
cihnbG9iYWxEYXRhLT5qc1N0cmluZ1ZQdHIpKSk7Ci0gICAgZmFpbHVyZXMuYXBwZW5kKGppdC5i
cmFuY2hUZXN0MzIoTm9uWmVybywgQWRkcmVzcyhyZWdUMCwgT0JKRUNUX09GRlNFVE9GKEpTU3Ry
aW5nLCBtX2ZpYmVyQ291bnQpKSkpOwogCiAgICAgLy8gTG9hZCBzdHJpbmcgbGVuZ3RoIHRvIHJl
Z1QyLCBhbmQgc3RhcnQgdGhlIHByb2Nlc3Mgb2YgbG9hZGluZyB0aGUgZGF0YSBwb2ludGVyIGlu
dG8gcmVnVDAKICAgICBqaXQubG9hZDMyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVyczo6anNT
dHJpbmdMZW5ndGhPZmZzZXQoKSksIHJlZ1QyKTsKICAgICBqaXQubG9hZFB0cihBZGRyZXNzKHJl
Z1QwLCBUaHVua0hlbHBlcnM6OmpzU3RyaW5nVmFsdWVPZmZzZXQoKSksIHJlZ1QwKTsKKyAgICBm
YWlsdXJlcy5hcHBlbmQoaml0LmJyYW5jaFRlc3QzMihaZXJvLCByZWdUMCkpOwogICAgIGppdC5s
b2FkUHRyKEFkZHJlc3MocmVnVDAsIFRodW5rSGVscGVyczo6c3RyaW5nSW1wbERhdGFPZmZzZXQo
KSksIHJlZ1QwKTsKICAgICAKICAgICAvLyBEbyBhbiB1bnNpZ25lZCBjb21wYXJlIHRvIHNpbXVs
dGFuZW91c2x5IGZpbHRlciBuZWdhdGl2ZSBpbmRpY2VzIGFzIHdlbGwgYXMgaW5kaWNlcyB0aGF0
IGFyZSB0b28gbGFyZ2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3BlY2lhbGl6
ZWRUaHVua0pJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU3Bl
Y2lhbGl6ZWRUaHVua0pJVC5oCShyZXZpc2lvbiA5NzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2
MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBsb2FkQ2VsbEFy
Z3VtZW50KGFyZ3VtZW50LCBkc3QpOwogICAgICAgICAgICAgbV9mYWlsdXJlcy5hcHBlbmQoYnJh
bmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKGRzdCwgMCksIFRydXN0ZWRJbW1QdHIobV9nbG9iYWxE
YXRhLT5qc1N0cmluZ1ZQdHIpKSk7Ci0gICAgICAgICAgICBtX2ZhaWx1cmVzLmFwcGVuZChicmFu
Y2hUZXN0MzIoTm9uWmVybywgQWRkcmVzcyhkc3QsIE9CSkVDVF9PRkZTRVRPRihKU1N0cmluZywg
bV9maWJlckNvdW50KSkpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgdm9pZCBsb2Fk
SW50MzJBcmd1bWVudChpbnQgYXJndW1lbnQsIFJlZ2lzdGVySUQgZHN0LCBKdW1wJiBmYWlsVGFy
Z2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3Jz
LmNwcAkocmV2aXNpb24gOTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDExICszOCwxMSBAQCBzdGF0aWMg
dm9pZCBzdHJpbmdDaGFyTG9hZChTcGVjaWFsaXplZFRoCiB7CiAgICAgLy8gbG9hZCBzdHJpbmcK
ICAgICBqaXQubG9hZEpTU3RyaW5nQXJndW1lbnQoU3BlY2lhbGl6ZWRUaHVua0pJVDo6VGhpc0Fy
Z3VtZW50LCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMCk7Ci0gICAgLy8gcmVnVDAgbm93IGNv
bnRhaW5zIHRoaXMsIGFuZCBpcyBhIG5vbi1yb3BlIEpTU3RyaW5nKgogCiAgICAgLy8gTG9hZCBz
dHJpbmcgbGVuZ3RoIHRvIHJlZ1QyLCBhbmQgc3RhcnQgdGhlIHByb2Nlc3Mgb2YgbG9hZGluZyB0
aGUgZGF0YSBwb2ludGVyIGludG8gcmVnVDAKICAgICBqaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVy
OjpBZGRyZXNzKFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwLCBUaHVua0hlbHBlcnM6OmpzU3Ry
aW5nTGVuZ3RoT2Zmc2V0KCkpLCBTcGVjaWFsaXplZFRodW5rSklUOjpyZWdUMik7CiAgICAgaml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIFRodW5rSGVscGVyczo6anNTdHJpbmdWYWx1ZU9mZnNldCgpKSwgU3BlY2lhbGl6ZWRUaHVu
a0pJVDo6cmVnVDApOworICAgIGppdC5hcHBlbmRGYWlsdXJlKGppdC5icmFuY2hUZXN0MzIoTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OnJlZ1QwKSk7CiAgICAgaml0
LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoU3BlY2lhbGl6ZWRUaHVua0pJVDo6cmVn
VDAsIFRodW5rSGVscGVyczo6c3RyaW5nSW1wbERhdGFPZmZzZXQoKSksIFNwZWNpYWxpemVkVGh1
bmtKSVQ6OnJlZ1QwKTsKIAogICAgIC8vIGxvYWQgaW5kZXgKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAJKHJldmlzaW9uIDk3ODMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCw5ICszOCwxMCBAQCBjb25zdCBDbGFzc0luZm8gSlNTdHJpbmc6OnNfaW5mbyA9IHsgInN0CiAK
IHZvaWQgSlNTdHJpbmc6OlJvcGVCdWlsZGVyOjpleHBhbmQoKQogewotICAgIEFTU0VSVChtX2pz
U3RyaW5nLT5tX2ZpYmVyQ291bnQgPT0gSlNTdHJpbmc6OnNfbWF4SW50ZXJuYWxSb3BlTGVuZ3Ro
KTsKKyAgICBBU1NFUlQobV9pbmRleCA9PSBKU1N0cmluZzo6c19tYXhJbnRlcm5hbFJvcGVMZW5n
dGgpOwogICAgIEpTU3RyaW5nKiBqc1N0cmluZyA9IG1fanNTdHJpbmc7CiAgICAgbV9qc1N0cmlu
ZyA9IGpzU3RyaW5nQnVpbGRlcigmbV9nbG9iYWxEYXRhKTsKKyAgICBtX2luZGV4ID0gMDsKICAg
ICBhcHBlbmQoanNTdHJpbmcpOwogfQogCkBAIC01Myw3ICs1NCw3IEBAIHZvaWQgSlNTdHJpbmc6
OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWwKIHsKICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oY2VsbCk7CiAgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0
aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRoaXNPYmpl
Y3QtPm1fZmliZXJDb3VudDsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc19tYXhJ
bnRlcm5hbFJvcGVMZW5ndGggJiYgdGhpc09iamVjdC0+bV9maWJlcnNbaV07ICsraSkKICAgICAg
ICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fZmliZXJzW2ldKTsKIH0KIApAQCAtNjks
MjEgKzcwLDIwIEBAIHZvaWQgSlNTdHJpbmc6OnJlc29sdmVSb3BlKEV4ZWNTdGF0ZSogZXgKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9maWJl
ckNvdW50OyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxS
b3BlTGVuZ3RoICYmIG1fZmliZXJzW2ldOyArK2kpIHsKICAgICAgICAgaWYgKG1fZmliZXJzW2ld
LT5pc1JvcGUoKSkKICAgICAgICAgICAgIHJldHVybiByZXNvbHZlUm9wZVNsb3dDYXNlKGV4ZWMs
IGJ1ZmZlcik7CiAgICAgfQogCiAgICAgVUNoYXIqIHBvc2l0aW9uID0gYnVmZmVyOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9maWJlckNvdW50OyArK2kpIHsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIG1fZmliZXJzW2ldOyArK2kp
IHsKICAgICAgICAgU3RyaW5nSW1wbCogc3RyaW5nID0gbV9maWJlcnNbaV0tPm1fdmFsdWUuaW1w
bCgpOwogICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmctPmxlbmd0aCgpOwogICAgICAg
ICBTdHJpbmdJbXBsOjpjb3B5Q2hhcnMocG9zaXRpb24sIHN0cmluZy0+Y2hhcmFjdGVycygpLCBs
ZW5ndGgpOwogICAgICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CisgICAgICAgIG1fZmliZXJzW2ld
LmNsZWFyKCk7CiAgICAgfQogICAgIEFTU0VSVCgoYnVmZmVyICsgbV9sZW5ndGgpID09IHBvc2l0
aW9uKTsKLQotICAgIG1fZmliZXJDb3VudCA9IDA7CiAgICAgQVNTRVJUKCFpc1JvcGUoKSk7CiB9
CiAKQEAgLTEwMSw0MyArMTAxLDM2IEBAIHZvaWQgSlNTdHJpbmc6OnJlc29sdmVSb3BlU2xvd0Nh
c2UoRXhlY1MKIHsKICAgICBVTlVTRURfUEFSQU0oZXhlYyk7CiAKLSAgICBVQ2hhciogcG9zaXRp
b24gPSBidWZmZXIgKyBtX2xlbmd0aDsKLQorICAgIFVDaGFyKiBwb3NpdGlvbiA9IGJ1ZmZlciAr
IG1fbGVuZ3RoOyAvLyBXZSB3aWxsIGJlIHdvcmtpbmcgYmFja3dhcmRzIG92ZXIgdGhlIHJvcGUu
CiAgICAgVmVjdG9yPEpTU3RyaW5nKiwgMzI+IHdvcmtRdWV1ZTsgLy8gVGhlc2Ugc3RyaW5ncyBh
cmUga2VwdCBhbGl2ZSBieSB0aGUgcGFyZW50IHJvcGUsIHNvIHVzaW5nIGEgVmVjdG9yIGlzIE9L
LgotICAgIEpTU3RyaW5nKiBjdXJyZW50RmliZXI7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IChtX2ZpYmVyQ291bnQgLSAxKTsgKytpKQorICAgIAorICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggJiYgbV9maWJlcnNbaV07ICsraSkKICAgICAg
ICAgd29ya1F1ZXVlLmFwcGVuZChtX2ZpYmVyc1tpXS5nZXQoKSk7Ci0gICAgY3VycmVudEZpYmVy
ID0gbV9maWJlcnNbbV9maWJlckNvdW50IC0gMV0uZ2V0KCk7Ci0gICAgd2hpbGUgKHRydWUpIHsK
KworICAgIHdoaWxlICghd29ya1F1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICBKU1N0cmluZyog
Y3VycmVudEZpYmVyID0gd29ya1F1ZXVlLmxhc3QoKTsKKyAgICAgICAgd29ya1F1ZXVlLnJlbW92
ZUxhc3QoKTsKKwogICAgICAgICBpZiAoY3VycmVudEZpYmVyLT5pc1JvcGUoKSkgewotICAgICAg
ICAgICAgLy8gQ29weSB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgcm9wZSBpbnRvIHRoZSB3
b3JrUXVldWUsIHdpdGggdGhlIGxhc3QgaXRlbSBpbiAnY3VycmVudEZpYmVyJwotICAgICAgICAg
ICAgLy8gKHdlIHdpbGwgYmUgd29ya2luZyBiYWNrd2FyZHMgb3ZlciB0aGUgcm9wZSkuCi0gICAg
ICAgICAgICB1bnNpZ25lZCBmaWJlckNvdW50TWludXNPbmUgPSBjdXJyZW50RmliZXItPmZpYmVy
Q291bnQoKSAtIDE7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmliZXJD
b3VudE1pbnVzT25lOyArK2kpCisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNf
bWF4SW50ZXJuYWxSb3BlTGVuZ3RoICYmIGN1cnJlbnRGaWJlci0+bV9maWJlcnNbaV07ICsraSkK
ICAgICAgICAgICAgICAgICB3b3JrUXVldWUuYXBwZW5kKGN1cnJlbnRGaWJlci0+bV9maWJlcnNb
aV0uZ2V0KCkpOwotICAgICAgICAgICAgY3VycmVudEZpYmVyID0gY3VycmVudEZpYmVyLT5tX2Zp
YmVyc1tmaWJlckNvdW50TWludXNPbmVdLmdldCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgU3RyaW5nSW1wbCogc3RyaW5nID0gc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KGN1cnJl
bnRGaWJlci0+bV92YWx1ZS5pbXBsKCkpOwotICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0g
c3RyaW5nLT5sZW5ndGgoKTsKLSAgICAgICAgICAgIHBvc2l0aW9uIC09IGxlbmd0aDsKLSAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFycyhwb3NpdGlvbiwgc3RyaW5nLT5jaGFyYWN0ZXJz
KCksIGxlbmd0aCk7Ci0KLSAgICAgICAgICAgIGlmICh3b3JrUXVldWUuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9maWJlckNvdW50ID0gMDsKLSAgICAgICAgICAgICAgICBBU1NFUlQo
YnVmZmVyID09IHBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIWlzUm9wZSgpKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGN1
cnJlbnRGaWJlciA9IHdvcmtRdWV1ZS5sYXN0KCk7Ci0gICAgICAgICAgICB3b3JrUXVldWUucmVt
b3ZlTGFzdCgpOworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBT
dHJpbmdJbXBsKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxTdHJpbmdJbXBsKj4oY3VycmVudEZpYmVy
LT5tX3ZhbHVlLmltcGwoKSk7CisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmluZy0+bGVu
Z3RoKCk7CisgICAgICAgIHBvc2l0aW9uIC09IGxlbmd0aDsKKyAgICAgICAgU3RyaW5nSW1wbDo6
Y29weUNoYXJzKHBvc2l0aW9uLCBzdHJpbmctPmNoYXJhY3RlcnMoKSwgbGVuZ3RoKTsKICAgICB9
CisKKyAgICBBU1NFUlQoYnVmZmVyID09IHBvc2l0aW9uKTsKKyAgICBBU1NFUlQoIWlzUm9wZSgp
KTsKIH0KIAogdm9pZCBKU1N0cmluZzo6b3V0T2ZNZW1vcnkoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogewotICAgIG1fZmliZXJDb3VudCA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBz
X21heEludGVybmFsUm9wZUxlbmd0aCAmJiBtX2ZpYmVyc1tpXTsgKytpKQorICAgICAgICBtX2Zp
YmVyc1tpXS5jbGVhcigpOwogICAgIEFTU0VSVCghaXNSb3BlKCkpOwogICAgIEFTU0VSVChtX3Zh
bHVlID09IFVTdHJpbmcoKSk7CiAgICAgaWYgKGV4ZWMpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgJKHJldmlzaW9uIDk3ODMwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgs
NiBAQAogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0
b3IuaCIKICNpbmNsdWRlICJQcm9wZXJ0eVNsb3QuaCIKLSNpbmNsdWRlICJSb3BlSW1wbC5oIgog
I2luY2x1ZGUgIlN0cnVjdHVyZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTc2LDE1ICs3NSwx
NSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJvcGVCdWlsZGVyKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgICAgICAgICA6IG1fZ2xvYmFsRGF0YShnbG9iYWxEYXRh
KQogICAgICAgICAgICAgICAgICwgbV9qc1N0cmluZyhqc1N0cmluZ0J1aWxkZXIoJmdsb2JhbERh
dGEpKQorICAgICAgICAgICAgICAgICwgbV9pbmRleCgwKQogICAgICAgICAgICAgewogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICB2b2lkIGFwcGVuZChKU1N0cmluZyoganNTdHJpbmcpCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fanNTdHJpbmctPm1fZmliZXJDb3Vu
dCA9PSBKU1N0cmluZzo6c19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpCisgICAgICAgICAgICAgICAg
aWYgKG1faW5kZXggPT0gSlNTdHJpbmc6OnNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoKQogICAgICAg
ICAgICAgICAgICAgICBleHBhbmQoKTsKLSAgICAgICAgICAgICAgICBtX2pzU3RyaW5nLT5tX2Zp
YmVyc1ttX2pzU3RyaW5nLT5tX2ZpYmVyQ291bnRdLnNldChtX2dsb2JhbERhdGEsIG1fanNTdHJp
bmcsIGpzU3RyaW5nKTsKLSAgICAgICAgICAgICAgICBtX2pzU3RyaW5nLT5tX2ZpYmVyQ291bnQg
Kz0gMTsKKyAgICAgICAgICAgICAgICBtX2pzU3RyaW5nLT5tX2ZpYmVyc1ttX2luZGV4KytdLnNl
dChtX2dsb2JhbERhdGEsIG1fanNTdHJpbmcsIGpzU3RyaW5nKTsKICAgICAgICAgICAgICAgICBt
X2pzU3RyaW5nLT5tX2xlbmd0aCArPSBqc1N0cmluZy0+bV9sZW5ndGg7CiAgICAgICAgICAgICB9
CiAKQEAgLTEwMiwxOSArMTAxLDE4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgICAgICBK
U0dsb2JhbERhdGEmIG1fZ2xvYmFsRGF0YTsKICAgICAgICAgICAgIEpTU3RyaW5nKiBtX2pzU3Ry
aW5nOworICAgICAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIH07CiAKICAgICBwcml2
YXRlOgogICAgICAgICBKU1N0cmluZyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFBhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gdmFsdWUpCiAgICAgICAgICAgICA6IEpTQ2VsbChnbG9iYWxEYXRhLCBn
bG9iYWxEYXRhLnN0cmluZ1N0cnVjdHVyZS5nZXQoKSkKICAgICAgICAgICAgICwgbV92YWx1ZSh2
YWx1ZSkKLSAgICAgICAgICAgICwgbV9maWJlckNvdW50KDApCiAgICAgICAgIHsKICAgICAgICAg
fQogCiAgICAgICAgIEpTU3RyaW5nKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAg
ICAgIDogSlNDZWxsKGdsb2JhbERhdGEsIGdsb2JhbERhdGEuc3RyaW5nU3RydWN0dXJlLmdldCgp
KQotICAgICAgICAgICAgLCBtX2ZpYmVyQ291bnQoMCkKICAgICAgICAgewogICAgICAgICB9CiAK
QEAgLTE0Myw3ICsxNDEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBtX2xlbmd0
aCA9IHMxLT5sZW5ndGgoKSArIHMyLT5sZW5ndGgoKTsKLSAgICAgICAgICAgIG1fZmliZXJDb3Vu
dCA9IDI7CiAgICAgICAgICAgICBtX2ZpYmVyc1swXS5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgczEp
OwogICAgICAgICAgICAgbV9maWJlcnNbMV0uc2V0KGdsb2JhbERhdGEsIHRoaXMsIHMyKTsKICAg
ICAgICAgfQpAQCAtMTUyLDcgKzE0OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAg
ICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgICAg
IG1fbGVuZ3RoID0gczEtPmxlbmd0aCgpICsgczItPmxlbmd0aCgpICsgczMtPmxlbmd0aCgpOwot
ICAgICAgICAgICAgbV9maWJlckNvdW50ID0gMzsKICAgICAgICAgICAgIG1fZmliZXJzWzBdLnNl
dChnbG9iYWxEYXRhLCB0aGlzLCBzMSk7CiAgICAgICAgICAgICBtX2ZpYmVyc1sxXS5zZXQoZ2xv
YmFsRGF0YSwgdGhpcywgczIpOwogICAgICAgICAgICAgbV9maWJlcnNbMl0uc2V0KGdsb2JhbERh
dGEsIHRoaXMsIHMzKTsKQEAgLTIzNSw3ICsyMzEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZMZW5ndGgoKSB7IHJldHVybiBP
QkpFQ1RfT0ZGU0VUT0YoSlNTdHJpbmcsIG1fbGVuZ3RoKTsgfQotICAgICAgICBzdGF0aWMgc2l6
ZV90IG9mZnNldE9mRmliZXJDb3VudCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU1N0cmlu
ZywgbV9maWJlckNvdW50KTsgfQogICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mVmFsdWUo
KSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoSlNTdHJpbmcsIG1fdmFsdWUpOyB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC0yNDUsNyArMjQwLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNTdHJpbmcoVlB0clN0ZWFsaW5n
SGFja1R5cGUpIAogICAgICAgICAgICAgOiBKU0NlbGwoVlB0clN0ZWFsaW5nSGFjaykKLSAgICAg
ICAgICAgICwgbV9maWJlckNvdW50KDApCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC0yNjQs
MjAgKzI1OCwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggPSAzOwogCi0gICAgICAgIC8vIEEgc3RyaW5n
IGlzIHJlcHJlc2VudGVkIGVpdGhlciBieSBhIFVTdHJpbmcgb3IgYSBSb3BlSW1wbC4KKyAgICAg
ICAgLy8gQSBzdHJpbmcgaXMgcmVwcmVzZW50ZWQgZWl0aGVyIGJ5IGEgVVN0cmluZyBvciBhIHJv
cGUgb2YgZmliZXJzLgogICAgICAgICB1bnNpZ25lZCBtX2xlbmd0aDsKICAgICAgICAgbXV0YWJs
ZSBVU3RyaW5nIG1fdmFsdWU7Ci0gICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9maWJlckNvdW50
OwogICAgICAgICBtdXRhYmxlIEZpeGVkQXJyYXk8V3JpdGVCYXJyaWVyPEpTU3RyaW5nPiwgc19t
YXhJbnRlcm5hbFJvcGVMZW5ndGg+IG1fZmliZXJzOwogCi0gICAgICAgIGJvb2wgaXNSb3BlKCkg
Y29uc3QgeyByZXR1cm4gbV9maWJlckNvdW50OyB9CisgICAgICAgIGJvb2wgaXNSb3BlKCkgY29u
c3QgeyByZXR1cm4gbV92YWx1ZS5pc051bGwoKTsgfQogICAgICAgICBVU3RyaW5nJiBzdHJpbmco
KSB7IEFTU0VSVCghaXNSb3BlKCkpOyByZXR1cm4gbV92YWx1ZTsgfQotICAgICAgICB1bnNpZ25l
ZCBmaWJlckNvdW50KCkgeyByZXR1cm4gbV9maWJlckNvdW50ID8gbV9maWJlckNvdW50IDogMTsg
fQogCi0gICAgICAgIGZyaWVuZCBKU1ZhbHVlIGpzU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNT
dHJpbmcqIHMxLCBKU1N0cmluZyogczIpOwotICAgICAgICBmcmllbmQgSlNWYWx1ZSBqc1N0cmlu
ZyhFeGVjU3RhdGUqIGV4ZWMsIFJlZ2lzdGVyKiBzdHJpbmdzLCB1bnNpZ25lZCBjb3VudCk7Ci0g
ICAgICAgIGZyaWVuZCBKU1ZhbHVlIGpzU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB0
aGlzVmFsdWUpOwotICAgICAgICBmcmllbmQgSlNTdHJpbmcqIGpzU3Vic3RyaW5nKEV4ZWNTdGF0
ZSogZXhlYywgSlNTdHJpbmcqIHMsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsK
KyAgICAgICAgZnJpZW5kIEpTVmFsdWUganNTdHJpbmcoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBK
U1N0cmluZyopOworICAgICAgICBmcmllbmQgSlNWYWx1ZSBqc1N0cmluZyhFeGVjU3RhdGUqLCBS
ZWdpc3RlciosIHVuc2lnbmVkIGNvdW50KTsKKyAgICAgICAgZnJpZW5kIEpTVmFsdWUganNTdHJp
bmdGcm9tQXJndW1lbnRzKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdGhpc1ZhbHVlKTsKKyAgICAgICAg
ZnJpZW5kIEpTU3RyaW5nKiBqc1N1YnN0cmluZyhFeGVjU3RhdGUqLCBKU1N0cmluZyosIHVuc2ln
bmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICB9OwogCiAgICAgSlNTdHJpbmcqIGFz
U3RyaW5nKEpTVmFsdWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3Bl
cmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
ZXJhdGlvbnMuaAkocmV2aXNpb24gOTc4MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHJldHVybiByb3BlQnVpbGRlci5yZWxlYXNlKCk7CiAgICAgfQog
Ci0gICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB0aGlzVmFsdWUpCisgICAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGpzU3RyaW5nRnJvbUFy
Z3VtZW50cyhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGhpc1ZhbHVlKQogICAgIHsKICAgICAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICAg
ICAgSlNTdHJpbmc6OlJvcGVCdWlsZGVyIHJvcGVCdWlsZGVyKCpnbG9iYWxEYXRhKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JvcGVJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Sb3BlSW1wbC5jcHAJKHJldmlzaW9uIDk3
ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUm9wZUltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJvcGVJbXBs
LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi12b2lkIFJvcGVJbXBsOjpkZXJlZkZpYmVyc05vblJl
Y3Vyc2l2ZShWZWN0b3I8Um9wZUltcGwqLCAzMj4mIHdvcmtRdWV1ZSkKLXsKLSAgICB1bnNpZ25l
ZCBmaWJlckNvdW50ID0gdGhpcy0+ZmliZXJDb3VudCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBmaWJlckNvdW50OyArK2kpIHsKLSAgICAgICAgRmliZXImIGZpYmVyID0gbV9maWJl
cnNbaV07Ci0gICAgICAgIGlmIChpc1JvcGUoZmliZXIpKSB7Ci0gICAgICAgICAgICBSb3BlSW1w
bCogbmV4dFJvcGUgPSBzdGF0aWNfY2FzdDxSb3BlSW1wbCo+KGZpYmVyKTsKLSAgICAgICAgICAg
IGlmIChuZXh0Um9wZS0+aGFzT25lUmVmKCkpCi0gICAgICAgICAgICAgICAgd29ya1F1ZXVlLmFw
cGVuZChuZXh0Um9wZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbmV4dFJv
cGUtPmRlcmVmKCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U3Ry
aW5nSW1wbCo+KGZpYmVyKS0+ZGVyZWYoKTsKLSAgICB9Ci19Ci0KLXZvaWQgUm9wZUltcGw6OmRl
c3RydWN0Tm9uUmVjdXJzaXZlKCkKLXsKLSAgICBWZWN0b3I8Um9wZUltcGwqLCAzMj4gd29ya1F1
ZXVlOwotCi0gICAgZGVyZWZGaWJlcnNOb25SZWN1cnNpdmUod29ya1F1ZXVlKTsKLSAgICBkZWxl
dGUgdGhpczsKLQotICAgIHdoaWxlICghd29ya1F1ZXVlLmlzRW1wdHkoKSkgewotICAgICAgICBS
b3BlSW1wbCogcm9wZSA9IHdvcmtRdWV1ZS5sYXN0KCk7Ci0gICAgICAgIHdvcmtRdWV1ZS5yZW1v
dmVMYXN0KCk7Ci0gICAgICAgIHJvcGUtPmRlcmVmRmliZXJzTm9uUmVjdXJzaXZlKHdvcmtRdWV1
ZSk7Ci0gICAgICAgIGRlbGV0ZSByb3BlOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Sb3BlSW1wbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JvcGVJbXBsLmgJKHJldmlzaW9u
IDk3ODMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUm9wZUltcGwuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUm9wZUltcGxfaAotI2RlZmluZSBSb3Bl
SW1wbF9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+Ci0KLW5hbWVzcGFjZSBK
U0MgewotCi1jbGFzcyBSb3BlSW1wbCA6IHB1YmxpYyBTdHJpbmdJbXBsQmFzZSB7Ci1wdWJsaWM6
Ci0gICAgLy8gQSBSb3BlSW1wbCBpcyBjb21wb3NlZCBmcm9tIGEgc2V0IG9mIHNtYWxsZXIgc3Ry
aW5ncyBjYWxsZWQgRmliZXJzLgotICAgIC8vIEVhY2ggRmliZXIgaW4gYSByb3BlIGlzIGVpdGhl
ciBTdHJpbmdJbXBsIG9yIGFub3RoZXIgUm9wZUltcGwuCi0gICAgdHlwZWRlZiBTdHJpbmdJbXBs
QmFzZSogRmliZXI7Ci0KLSAgICAvLyBDcmVhdGVzIGEgUm9wZUltcGwgY29tcHJpc2luZyBvZiAn
ZmliZXJDb3VudCcgRmliZXJzLgotICAgIC8vIFRoZSBSb3BlSW1wbCBpcyBjb25zdHJ1Y3RlZCBp
biBhbiB1bmluaXRpYWxpemVkIHN0YXRlIC0gaW5pdGlhbGl6ZSBtdXN0IGJlIGNhbGxlZCBmb3Ig
ZWFjaCBGaWJlciBpbiB0aGUgUm9wZUltcGwuCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Um9wZUlt
cGw+IHRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgZmliZXJDb3VudCkKLSAgICB7Ci0g
ICAgICAgIHZvaWQqIGFsbG9jYXRpb247Ci0gICAgICAgIGlmICh0cnlGYXN0TWFsbG9jKHNpemVv
ZihSb3BlSW1wbCkgKyAoZmliZXJDb3VudCAtIDEpICogc2l6ZW9mKEZpYmVyKSkuZ2V0VmFsdWUo
YWxsb2NhdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IChhbGxvY2F0aW9u
KSBSb3BlSW1wbChmaWJlckNvdW50KSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAg
IHN0YXRpYyBib29sIGlzUm9wZShGaWJlciBmaWJlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiAh
ZmliZXItPmlzU3RyaW5nSW1wbCgpOwotICAgIH0KLQotICAgIHN0YXRpYyB2b2lkIGRlcmVmKEZp
YmVyIGZpYmVyKQotICAgIHsKLSAgICAgICAgaWYgKGlzUm9wZShmaWJlcikpCi0gICAgICAgICAg
ICBzdGF0aWNfY2FzdDxSb3BlSW1wbCo+KGZpYmVyKS0+ZGVyZWYoKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgc3RhdGljX2Nhc3Q8U3RyaW5nSW1wbCo+KGZpYmVyKS0+ZGVyZWYoKTsKLSAg
ICB9Ci0KLSAgICB2b2lkIGluaXRpYWxpemVGaWJlcih1bnNpZ25lZCAmaW5kZXgsIEZpYmVyIGZp
YmVyKQotICAgIHsKLSAgICAgICAgbV9maWJlcnNbaW5kZXgrK10gPSBmaWJlcjsKLSAgICAgICAg
ZmliZXItPnJlZigpOwotICAgICAgICBtX2xlbmd0aCArPSBmaWJlci0+bGVuZ3RoKCk7Ci0gICAg
fQotCi0gICAgdW5zaWduZWQgZmliZXJDb3VudCgpIHsgcmV0dXJuIG1fc2l6ZTsgfQotICAgIEZp
YmVyKiBmaWJlcnMoKSB7IHJldHVybiBtX2ZpYmVyczsgfQotCi0gICAgQUxXQVlTX0lOTElORSB2
b2lkIGRlcmVmKCkKLSAgICB7Ci0gICAgICAgIG1fcmVmQ291bnRBbmRGbGFncyAtPSBzX3JlZkNv
dW50SW5jcmVtZW50OwotICAgICAgICBpZiAoIShtX3JlZkNvdW50QW5kRmxhZ3MgJiBzX3JlZkNv
dW50TWFzaykpCi0gICAgICAgICAgICBkZXN0cnVjdE5vblJlY3Vyc2l2ZSgpOwotICAgIH0KLQot
cHJpdmF0ZToKLSAgICBSb3BlSW1wbCh1bnNpZ25lZCBmaWJlckNvdW50KQotICAgICAgICA6IFN0
cmluZ0ltcGxCYXNlKENvbnN0cnVjdE5vblN0cmluZ0ltcGwpCi0gICAgICAgICwgbV9zaXplKGZp
YmVyQ291bnQpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgZGVzdHJ1Y3ROb25SZWN1cnNpdmUo
KTsKLSAgICB2b2lkIGRlcmVmRmliZXJzTm9uUmVjdXJzaXZlKFZlY3RvcjxSb3BlSW1wbCosIDMy
PiYgd29ya1F1ZXVlKTsKLQotICAgIGJvb2wgaGFzT25lUmVmKCkgeyByZXR1cm4gKG1fcmVmQ291
bnRBbmRGbGFncyAmIHNfcmVmQ291bnRNYXNrKSA9PSBzX3JlZkNvdW50SW5jcmVtZW50OyB9Ci0K
LSAgICB1bnNpZ25lZCBtX3NpemU7Ci0gICAgRmliZXIgbV9maWJlcnNbMV07Ci19OwotCi19Ci0K
LSNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0
cmluZ3MuY3BwCShyZXZpc2lvbiA5NzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3ICsxMDYsNyBAQCB1
bnNpZ25lZCBTbWFsbFN0cmluZ3M6OmNvdW50KCkgY29uc3QKIHZvaWQgU21hbGxTdHJpbmdzOjpj
cmVhdGVFbXB0eVN0cmluZyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCiB7CiAgICAgQVNTRVJU
KCFtX2VtcHR5U3RyaW5nKTsKLSAgICBtX2VtcHR5U3RyaW5nID0gSlNTdHJpbmc6OmNyZWF0ZUhh
c090aGVyT3duZXIoKmdsb2JhbERhdGEsIFVTdHJpbmcoIiIpLmltcGwoKSk7CisgICAgbV9lbXB0
eVN0cmluZyA9IEpTU3RyaW5nOjpjcmVhdGVIYXNPdGhlck93bmVyKCpnbG9iYWxEYXRhLCBTdHJp
bmdJbXBsOjplbXB0eSgpKTsKIH0KIAogdm9pZCBTbWFsbFN0cmluZ3M6OmNyZWF0ZVNpbmdsZUNo
YXJhY3RlclN0cmluZyhKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIHVuc2lnbmVkIGNoYXIgY2hh
cmFjdGVyKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdQcm90b3R5cGUuY3BwCShyZXZpc2lvbiA5NzgzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0MSw3ICs2
NDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgfQog
ICAgIGlmICh0aGlzVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgLy8gQ2hlY2tPYmplY3RDb2Vy
Y2libGUKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCB0aGlzVmFsdWUpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nRnJvbUFyZ3VtZW50cyhleGVjLCB0aGlzVmFsdWUpKTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9m
KEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9T
dHJpbmdJbXBsQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dGV4dC9TdHJpbmdJbXBsQmFzZS5oCShyZXZpc2lvbiA5NzgzMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw2IEBAIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgU3RyaW5nSW1wbEJhc2UgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFN0cmluZ0ltcGxCYXNlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgYm9vbCBpc1N0cmluZ0ltcGwoKSB7IHJldHVybiAobV9yZWZDb3Vu
dEFuZEZsYWdzICYgc19yZWZDb3VudEludmFsaWRGb3JTdHJpbmdJbXBsKSAhPSBzX3JlZkNvdW50
SW52YWxpZEZvclN0cmluZ0ltcGw7IH0KICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBtX2xlbmd0aDsgfQogICAgIHZvaWQgcmVmKCkgeyBtX3JlZkNvdW50QW5kRmxhZ3MgKz0g
c19yZWZDb3VudEluY3JlbWVudDsgfQogCkBAIC01Miw3ICs1MSw2IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgOiBtX3JlZkNvdW50QW5kRmxhZ3Moc19yZWZDb3VudEluY3JlbWVudCB8IHNfcmVmQ291
bnRGbGFnU2hvdWxkUmVwb3J0ZWRDb3N0IHwgb3duZXJzaGlwKQogICAgICAgICAsIG1fbGVuZ3Ro
KGxlbmd0aCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChpc1N0cmluZ0ltcGwoKSk7CiAgICAgfQog
CiAgICAgZW51bSBTdGF0aWNTdHJpbmdDb25zdHJ1Y3RUeXBlIHsgQ29uc3RydWN0U3RhdGljU3Ry
aW5nIH07CkBAIC02MCwxNyArNTgsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIDogbV9yZWZDb3Vu
dEFuZEZsYWdzKHNfcmVmQ291bnRGbGFnU3RhdGljIHwgc19yZWZDb3VudEZsYWdJc0lkZW50aWZp
ZXIgfCBCdWZmZXJPd25lZCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgewotICAg
ICAgICBBU1NFUlQoaXNTdHJpbmdJbXBsKCkpOwotICAgIH0KLQotICAgIC8vIFRoaXMgY29uc3Ry
dWN0b3IgaXMgbm90IHVzZWQgd2hlbiBjcmVhdGluZyBTdHJpbmdJbXBsIG9iamVjdHMsCi0gICAg
Ly8gYW5kIHNldHMgdGhlIGZsYWdzIGludG8gYSBzdGF0ZSBtYXJraW5nIHRoZSBvYmplY3QgYXMg
c3VjaC4KLSAgICBlbnVtIE5vblN0cmluZ0ltcGxDb25zdHJ1Y3RUeXBlIHsgQ29uc3RydWN0Tm9u
U3RyaW5nSW1wbCB9OwotICAgIFN0cmluZ0ltcGxCYXNlKE5vblN0cmluZ0ltcGxDb25zdHJ1Y3RU
eXBlKQotICAgICAgICA6IG1fcmVmQ291bnRBbmRGbGFncyhzX3JlZkNvdW50SW5jcmVtZW50IHwg
c19yZWZDb3VudEludmFsaWRGb3JTdHJpbmdJbXBsKQotICAgICAgICAsIG1fbGVuZ3RoKDApCi0g
ICAgewotICAgICAgICBBU1NFUlQoIWlzU3RyaW5nSW1wbCgpKTsKICAgICB9CiAKICAgICAvLyBU
aGUgYm90dG9tIDcgYml0cyBob2xkIGZsYWdzLCB0aGUgdG9wIDI1IGJpdHMgaG9sZCB0aGUgcmVm
IGNvdW50LgpAQCAtODQsMTAgKzcxLDYgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBzX3JlZkNvdW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdCA9IDB4ODsKICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgc19yZWZDb3VudEZsYWdJc0lkZW50aWZpZXIgPSAweDQ7CiAgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfcmVmQ291bnRNYXNrQnVmZmVyT3duZXJzaGlwID0gMHgz
OwotICAgIC8vIEFuIGludmFsaWQgcGVybXV0YXRpb24gb2YgZmxhZ3MgKHN0YXRpYyAmIHNob3Vs
ZFJlcG9ydGVkQ29zdCAtIHN0YXRpYyBzdHJpbmdzIGRvIG5vdAotICAgIC8vIHNldCBzaG91bGRS
ZXBvcnRlZENvc3QgaW4gdGhlIGNvbnN0cnVjdG9yLCBhbmQgdGhpcyBiaXQgaXMgb25seSBldmVy
IGNsZWFyZWQsIG5vdCBzZXQpLgotICAgIC8vIFVzZWQgYnkgIkNvbnN0cnVjdE5vblN0cmluZ0lt
cGwiIGNvbnN0cnVjdG9yLCBhYm92ZS4KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZD
b3VudEludmFsaWRGb3JTdHJpbmdJbXBsID0gc19yZWZDb3VudEZsYWdTdGF0aWMgfCBzX3JlZkNv
dW50RmxhZ1Nob3VsZFJlcG9ydGVkQ29zdDsKIAogICAgIHVuc2lnbmVkIG1fcmVmQ291bnRBbmRG
bGFnczsKICAgICB1bnNpZ25lZCBtX2xlbmd0aDsK
</data>
<flag name="review"
          id="109429"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>