<?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>201488</bug_id>
          
          <creation_ts>2019-09-04 19:57:38 -0700</creation_ts>
          <short_desc>[JSC] Promise resolve/reject functions should be created more efficiently</short_desc>
          <delta_ts>2019-09-09 15:13:10 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>198849</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567972</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-04 19:57:38 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567973</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-04 20:00:02 -0700</bug_when>
    <thetext>bug 198849 fixes the critical issue, but it makes @resolve / @reject function creation more costly. And we know that this causes 7-8% regression in JetStream2/async-fs.
We should have a good mechanism to produce such a function without allocating FunctionRareData so that we can recover async-fs regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567974</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-04 20:00:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/55052212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569109</commentid>
    <comment_count>3</comment_count>
      <attachid>378360</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-09 03:40:07 -0700</bug_when>
    <thetext>Created attachment 378360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569110</commentid>
    <comment_count>4</comment_count>
      <attachid>378361</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-09 03:43:00 -0700</bug_when>
    <thetext>Created attachment 378361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569112</commentid>
    <comment_count>5</comment_count>
      <attachid>378363</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-09 04:01:28 -0700</bug_when>
    <thetext>Created attachment 378363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569141</commentid>
    <comment_count>6</comment_count>
      <attachid>378363</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-09 08:36:23 -0700</bug_when>
    <thetext>Comment on attachment 378363
Patch

Nice.  r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569190</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-09 10:52:12 -0700</bug_when>
    <thetext>Committed r249650: &lt;https://trac.webkit.org/changeset/249650&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569311</commentid>
    <comment_count>8</comment_count>
      <attachid>378363</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-09-09 15:13:10 -0700</bug_when>
    <thetext>Comment on attachment 378363
Patch

nice. r=me too</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378360</attachid>
            <date>2019-09-09 03:40:07 -0700</date>
            <delta_ts>2019-09-09 03:42:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201488-20190909034006.patch</filename>
            <type>text/plain</type>
            <size>12850</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODMyZDE4YjhjYzIyYjRmNDQyMTBhZWVmMDk2M2NlMzJjNTMwZjUwLi45NjRhZGQ0MDBlODY5NmVl
ODQ3NjdjNmNhMWNkZDVmZGNjOGFjYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0wOS0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFByb21pc2UgcmVzb2x2ZS9yZWplY3QgZnVuY3Rpb25zIHNob3Vs
ZCBiZSBjcmVhdGVkIG1vcmUgZWZmaWNpZW50bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIHIyNDY1NTMgZml4ZWQgdGhlIGlzc3VlLCBpdCBt
YWtlcyBhbm9ueW1vdXMtYnVpbHRpbi1mdW5jdGlvbiBjcmVhdGlvbiB2ZXJ5IGNvc3RseS4KKyAg
ICAgICAgVW5mb3J0dW5hdGVseSwgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY3JlYXRlZCBmcmVxdWVu
dGx5IHNpbmNlIHRoaXMgdHlwZSBvZiBmdW5jdGlvbiBpcyB1c2VkCisgICAgICAgIGZvciBgcmVz
b2x2ZWAgYW5kIGByZWplY3RgIGFyZ3VtZW50cyBvZiBQcm9taXNlJ3MgZXhlY3V0b3IgKGUuZy4g
YG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IC4uLilgJ3MgcmVzb2x2ZSBhbmQgcmVq
ZWN0KS4KKyAgICAgICAgU2luY2Ugd2UgYXJlIG5vdyBhbHdheXMgY3JlYXRpbmcgRnVuY3Rpb25S
YXJlRGF0YSBmb3IgdGhlc2UgZnVuY3Rpb25zLCB0aGlzIGFkZGl0aW9uYWwgYWxsb2NhdGlvbiBt
YWtlcyBwcm9taXNlIGNyZWF0aW9uIHNsb3dlci4KKworICAgICAgICBJbiB0aGlzIHBhdGNoLCB3
ZSB1c2UgYGlzQW5vbnltb3VzQnVpbHRpbmAgaW5mb3JtYXRpb24gZm9yIGBoYXNSZWlmaWVkTmFt
ZWAgY29ycmVjdGx5LiBBbmQgd2UgcHJvcGFnYXRlIGBpc0Fub255bW91c0J1aWx0aW5gIGluZm9y
bWF0aW9uCisgICAgICAgIHRvIEZ1bmN0aW9uUmFyZURhdGEgdG8gaW5pdGlhbGl6ZSBgbV9oYXNS
ZWlmaWVkTmFtZWAgY29ycmVjdGx5LiBUaGVuIHdlIGNhbiBhdm9pZCB1bm5lY2Vzc2FyeSBGdW5j
dGlvblJhcmVEYXRhIGFsbG9jYXRpb24sIHdoaWNoIG1ha2VzCisgICAgICAgIGFub255bW91cy1i
dWlsdGluLWZ1bmN0aW9uIGNyZWF0aW9uIGZhc3Rlci4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVOZXdGdW5jdGlvbkNvbW1vbik6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVOZXdGdW5jdGlv
bik6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcDoKKyAgICAgICAgKEpT
Qzo6RnVuY3Rpb25SYXJlRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25SYXJl
RGF0YTo6RnVuY3Rpb25SYXJlRGF0YSk6CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblJhcmVE
YXRhLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjph
bGxvY2F0ZVJhcmVEYXRhKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6YWxsb2NhdGVBbmRJ
bml0aWFsaXplUmFyZURhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6aGFzUmVpZmllZE5hbWUgY29uc3QpOgorCiAy
MDE5LTA5LTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBwZXJm
b3JtSklUTWVtY3B5KCkgc291cmNlIGJ1ZmZlciBzaG91bGQgbm90IGJlIGluIHRoZSBHaWdhY2Fn
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAK
aW5kZXggMjdjYzFiNDU3YTg5ZjNkNDM1MzAyZWEwNzMxMjVmZjEzZjM4ZWNmYy4uNTI4ZTExM2Y3
Njg2ZmZlMjZkMmNhMmQzOTI0MjA1ZDdkNTRiODUwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTcyMTIsMjkgKzcyMTIsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTmV3RnVuY3Rpb25Db21tb24oR1BSUmVnIHJlc3Vs
dEdQUiwgUmVnaXN0ZXJlZFN0cnVjdAogICAgIG1faml0LnN0b3JlUHRyKHNjb3BlR1BSLCBKSVRD
b21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTRnVuY3Rpb246Om9mZnNldE9mU2NvcGVDaGFp
bigpKSk7CiAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9q
aXQuZ3JhcGgoKSwgZXhlY3V0YWJsZSksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpKTsKICAgICBtX2ppdC5zdG9yZVB0cihU
cnVzdGVkSW1tUHRyKG51bGxwdHIpLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpT
RnVuY3Rpb246Om9mZnNldE9mUmFyZURhdGEoKSkpOwotICAgIAotICAgIGlmIChleGVjdXRhYmxl
LT5pc0Fub255bW91c0J1aWx0aW5GdW5jdGlvbigpKSB7Ci0gICAgICAgIFZNJiB2bSA9IHRoaXMt
PnZtKCk7Ci0gICAgICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSk7Ci0gICAgICAgIEdQUlRlbXBv
cmFyeSBhbGxvY2F0b3IodGhpcyk7Ci0gICAgICAgIEFsbG9jYXRvciBhbGxvY2F0b3JWYWx1ZSA9
IGFsbG9jYXRvckZvck5vblZpcnR1YWxDb25jdXJyZW50bHk8RnVuY3Rpb25SYXJlRGF0YT4odm0s
IHNpemVvZihGdW5jdGlvblJhcmVEYXRhKSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZF
eGlzdHMpOwotICAgICAgICBlbWl0QWxsb2NhdGVKU0NlbGwoc2NyYXRjaDFHUFIsIEpJVEFsbG9j
YXRvcjo6Y29uc3RhbnQoYWxsb2NhdG9yVmFsdWUpLCBhbGxvY2F0b3IuZ3ByKCksIFRydXN0ZWRJ
bW1QdHIobV9qaXQuZ3JhcGgoKS5yZWdpc3RlclN0cnVjdHVyZSh2bS5mdW5jdGlvblJhcmVEYXRh
U3RydWN0dXJlLmdldCgpKSksIHNjcmF0Y2gyR1BSLCBzbG93UGF0aCk7Ci0KLSAgICAgICAgcHRy
ZGlmZl90IG9iamVjdEFsbG9jYXRpb25Qcm9maWxlT2Zmc2V0ID0gRnVuY3Rpb25SYXJlRGF0YTo6
b2Zmc2V0T2ZPYmplY3RBbGxvY2F0aW9uUHJvZmlsZSgpOwotICAgICAgICBtX2ppdC5zdG9yZVB0
cihUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBKSVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNoMUdQ
Uiwgb2JqZWN0QWxsb2NhdGlvblByb2ZpbGVPZmZzZXQgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmls
ZVdpdGhQcm90b3R5cGU6Om9mZnNldE9mQWxsb2NhdG9yKCkpKTsKLSAgICAgICAgbV9qaXQuc3Rv
cmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRj
aDFHUFIsIG9iamVjdEFsbG9jYXRpb25Qcm9maWxlT2Zmc2V0ICsgT2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGVXaXRoUHJvdG90eXBlOjpvZmZzZXRPZlN0cnVjdHVyZSgpKSk7Ci0gICAgICAgIG1faml0
LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNj
cmF0Y2gxR1BSLCBvYmplY3RBbGxvY2F0aW9uUHJvZmlsZU9mZnNldCArIE9iamVjdEFsbG9jYXRp
b25Qcm9maWxlV2l0aFByb3RvdHlwZTo6b2Zmc2V0T2ZQcm90b3R5cGUoKSkpOwotICAgICAgICBt
X2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKDB4MSksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNj
cmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkFsbG9jYXRpb25Qcm9maWxlV2F0
Y2hwb2ludFNldCgpKSk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVs
bHB0ciksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRh
OjpvZmZzZXRPZkludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJvZmlsZSgpICsgSW50ZXJuYWxG
dW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlOjpvZmZzZXRPZlN0cnVjdHVyZSgpKSk7Ci0gICAgICAg
IG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENvbXBpbGVyOjpBZGRy
ZXNzKHNjcmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkJvdW5kRnVuY3Rpb25T
dHJ1Y3R1cmUoKSkpOwotICAgICAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKG51bGxw
dHIpLCBKSVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgRnVuY3Rpb25SYXJlRGF0YTo6
b2Zmc2V0T2ZBbGxvY2F0aW9uUHJvZmlsZUNsZWFyaW5nV2F0Y2hwb2ludCgpKSk7Ci0gICAgICAg
IG1faml0LnN0b3JlOChUcnVzdGVkSW1tMzIoMCksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0
Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkhhc1JlaWZpZWRMZW5ndGgoKSkpOwot
ICAgICAgICBtX2ppdC5zdG9yZTgoVHJ1c3RlZEltbTMyKDEpLCBKSVRDb21waWxlcjo6QWRkcmVz
cyhzY3JhdGNoMUdQUiwgRnVuY3Rpb25SYXJlRGF0YTo6b2Zmc2V0T2ZIYXNSZWlmaWVkTmFtZSgp
KSk7Ci0gICAgICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSk7Ci0gICAgICAgIG1faml0LnN0b3Jl
UHRyKHNjcmF0Y2gxR1BSLCBKSVRDb21waWxlcjo6QWRkcmVzcyhyZXN1bHRHUFIsIEpTRnVuY3Rp
b246Om9mZnNldE9mUmFyZURhdGEoKSkpOwotICAgIH0gZWxzZQotICAgICAgICBtX2ppdC5tdXRh
dG9yRmVuY2Uodm0oKSk7Ci0KKyAgICBtX2ppdC5tdXRhdG9yRmVuY2Uodm0oKSk7CiB9CiAKIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdGdW5jdGlvbihOb2RlKiBub2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDhjMDkxYzY2
NDUxYzAxNTUzMDBiNTJmNDlhMmE4MmU1MDI1MjQ0MjUuLjNjMWYyODhiNmJlZTIxZTRhMjZmNTQx
NWIzY2IyY2JmMDY4ODk0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKQEAgLTU1NzUsMjUgKzU1NzUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMg
ewogICAgICAgICBtX291dC5zdG9yZVB0cihzY29wZSwgZmFzdE9iamVjdCwgbV9oZWFwcy5KU0Z1
bmN0aW9uX3Njb3BlKTsKICAgICAgICAgbV9vdXQuc3RvcmVQdHIod2Vha1BvaW50ZXIoZXhlY3V0
YWJsZSksIGZhc3RPYmplY3QsIG1faGVhcHMuSlNGdW5jdGlvbl9leGVjdXRhYmxlKTsKICAgICAg
ICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgZmFzdE9iamVjdCwgbV9oZWFwcy5K
U0Z1bmN0aW9uX3JhcmVEYXRhKTsKLSAgICAgICAgCi0gICAgICAgIFZNJiB2bSA9IHRoaXMtPnZt
KCk7Ci0gICAgICAgIGlmIChleGVjdXRhYmxlLT5pc0Fub255bW91c0J1aWx0aW5GdW5jdGlvbigp
KSB7Ci0gICAgICAgICAgICBtdXRhdG9yRmVuY2UoKTsKLSAgICAgICAgICAgIEFsbG9jYXRvciBh
bGxvY2F0b3IgPSBhbGxvY2F0b3JGb3JOb25WaXJ0dWFsQ29uY3VycmVudGx5PEZ1bmN0aW9uUmFy
ZURhdGE+KHZtLCBzaXplb2YoRnVuY3Rpb25SYXJlRGF0YSksIEFsbG9jYXRvckZvck1vZGU6OkFs
bG9jYXRvcklmRXhpc3RzKTsKLSAgICAgICAgICAgIExWYWx1ZSByYXJlRGF0YSA9IGFsbG9jYXRl
Q2VsbChtX291dC5jb25zdEludFB0cihhbGxvY2F0b3IubG9jYWxBbGxvY2F0b3IoKSksIHZtLmZ1
bmN0aW9uUmFyZURhdGFTdHJ1Y3R1cmUuZ2V0KCksIHNsb3dQYXRoKTsKLSAgICAgICAgICAgIG1f
b3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8sIHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9u
UmFyZURhdGFfYWxsb2NhdG9yKTsKLSAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0Lmlu
dFB0clplcm8sIHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfc3RydWN0dXJlKTsK
LSAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8sIHJhcmVEYXRhLCBt
X2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfcHJvdG90eXBlKTsKLSAgICAgICAgICAgIG1fb3V0LnN0
b3JlUHRyKG1fb3V0LmludFB0ck9uZSwgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0
YV9hbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnRTZXQpOwotICAgICAgICAgICAgbV9vdXQuc3Rv
cmVQdHIobV9vdXQuaW50UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0
YV9pbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGVfc3RydWN0dXJlKTsKLSAgICAgICAg
ICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8sIHJhcmVEYXRhLCBtX2hlYXBzLkZ1
bmN0aW9uUmFyZURhdGFfYm91bmRGdW5jdGlvblN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBtX291
dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCByYXJlRGF0YSwgbV9oZWFwcy5GdW5jdGlvblJh
cmVEYXRhX2FsbG9jYXRpb25Qcm9maWxlQ2xlYXJpbmdXYXRjaHBvaW50KTsKLSAgICAgICAgICAg
IG1fb3V0LnN0b3JlMzJBczgobV9vdXQuaW50MzJPbmUsIHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0
aW9uUmFyZURhdGFfaGFzUmVpZmllZE5hbWUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmUzMkFz
OChtX291dC5pbnQzMlplcm8sIHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfaGFz
UmVpZmllZExlbmd0aCk7Ci0gICAgICAgICAgICBtdXRhdG9yRmVuY2UoKTsKLSAgICAgICAgICAg
IG1fb3V0LnN0b3JlUHRyKHJhcmVEYXRhLCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTRnVuY3Rpb25f
cmFyZURhdGEpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG11dGF0b3JGZW5jZSgpOwor
ICAgICAgICBtdXRhdG9yRmVuY2UoKTsKIAogICAgICAgICBWYWx1ZUZyb21CbG9jayBmYXN0UmVz
dWx0ID0gbV9vdXQuYW5jaG9yKGZhc3RPYmplY3QpOwogICAgICAgICBtX291dC5qdW1wKGNvbnRp
bnVhdGlvbik7CkBAIC01NjAyLDYgKzU1ODQsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogCiAg
ICAgICAgIFZlY3RvcjxMVmFsdWU+IHNsb3dQYXRoQXJndW1lbnRzOwogICAgICAgICBzbG93UGF0
aEFyZ3VtZW50cy5hcHBlbmQoc2NvcGUpOworICAgICAgICBWTSYgdm0gPSB0aGlzLT52bSgpOwog
ICAgICAgICBMVmFsdWUgY2FsbFJlc3VsdCA9IGxhenlTbG93UGF0aCgKICAgICAgICAgICAgIFs9
LCAmdm1dIChjb25zdCBWZWN0b3I8TG9jYXRpb24+JiBsb2NhdGlvbnMpIC0+IFJlZlB0cjxMYXp5
U2xvd1BhdGg6OkdlbmVyYXRvcj4gewogICAgICAgICAgICAgICAgIGF1dG8qIG9wZXJhdGlvbiA9
IG9wZXJhdGlvbk5ld0Z1bmN0aW9uV2l0aEludmFsaWRhdGVkUmVhbGxvY2F0aW9uV2F0Y2hwb2lu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFy
ZURhdGEuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0
YS5jcHAKaW5kZXggMTMwNjI1N2UwYzcwMWU5ZjEzY2Y5NDc1ZmU3MTEzZDQwMjYxNjU5NS4uOWRi
NzM1ODM4YTVkYjY4OGJhZDZiZmQ0NjcwNzVjNTYwN2QwMzU0YiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAKQEAgLTMzLDkgKzMz
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBGdW5jdGlvblJhcmVEYXRh
OjpzX2luZm8gPSB7ICJGdW5jdGlvblJhcmVEYXRhIiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvblJhcmVEYXRhKSB9OwogCi1GdW5jdGlvblJh
cmVEYXRhKiBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUoVk0mIHZtKQorRnVuY3Rpb25SYXJlRGF0
YSogRnVuY3Rpb25SYXJlRGF0YTo6Y3JlYXRlKFZNJiB2bSwgSlNGdW5jdGlvbiogZnVuY3Rpb24p
CiB7Ci0gICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9j
YXRlQ2VsbDxGdW5jdGlvblJhcmVEYXRhPih2bS5oZWFwKSkgRnVuY3Rpb25SYXJlRGF0YSh2bSk7
CisgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxGdW5jdGlvblJhcmVEYXRhPih2bS5oZWFwKSkgRnVuY3Rpb25SYXJlRGF0YSh2bSwgZnVu
Y3Rpb24pOwogICAgIHJhcmVEYXRhLT5maW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmV0dXJuIHJh
cmVEYXRhOwogfQpAQCAtNjIsMTMgKzYyLDE0IEBAIHZvaWQgRnVuY3Rpb25SYXJlRGF0YTo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0
b3IuYXBwZW5kKHJhcmVEYXRhLT5tX2JvdW5kRnVuY3Rpb25TdHJ1Y3R1cmUpOwogfQogCi1GdW5j
dGlvblJhcmVEYXRhOjpGdW5jdGlvblJhcmVEYXRhKFZNJiB2bSkKK0Z1bmN0aW9uUmFyZURhdGE6
OkZ1bmN0aW9uUmFyZURhdGEoVk0mIHZtLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbikKICAgICA6IEJh
c2Uodm0sIHZtLmZ1bmN0aW9uUmFyZURhdGFTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgLCBtX29iamVj
dEFsbG9jYXRpb25Qcm9maWxlKCkKICAgICAvLyBXZSBpbml0aWFsaXplIGJsaW5kIHNvIHRoYXQg
Y2hhbmdlcyB0byB0aGUgcHJvdG90eXBlIGFmdGVyIGZ1bmN0aW9uIGNyZWF0aW9uIGJ1dCBiZWZv
cmUKICAgICAvLyB0aGUgZmlyc3QgYWxsb2NhdGlvbiBkb24ndCBkaXNhYmxlIG9wdGltaXphdGlv
bnMuIFRoaXMgaXNuJ3Qgc3VwZXIgaW1wb3J0YW50LCBzaW5jZSB0aGUKICAgICAvLyBmdW5jdGlv
biBpcyB1bmxpa2VseSB0byBhbGxvY2F0ZSBhIHJhcmUgZGF0YSB1bnRpbCB0aGUgZmlyc3QgYWxs
b2NhdGlvbiBhbnl3YXkuCiAgICAgLCBtX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNldChD
bGVhcldhdGNocG9pbnQpCisgICAgLCBtX2hhc1JlaWZpZWROYW1lKGZ1bmN0aW9uLT5pc0Fub255
bW91c0J1aWx0aW5GdW5jdGlvbigpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKaW5kZXggYjAxNjA2ZmI4ZjA4YWY2OWNjZjJj
Y2VjMWZhZGNhZjlmOTExYzBlZi4uNGVlMmQ0ODUxNGEzZjY2YjNhOWU5MjJiMTI5Y2Y4ZmY4Zjlm
NDFhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25S
YXJlRGF0YS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFy
ZURhdGEuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZpbmFsIDog
cHVibGljIEpTQ2VsbCB7CiAgICAgdHlwZWRlZiBKU0NlbGwgQmFzZTsKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVj
dHVyZUlzSW1tb3J0YWw7CiAKLSAgICBzdGF0aWMgRnVuY3Rpb25SYXJlRGF0YSogY3JlYXRlKFZN
Jik7CisgICAgc3RhdGljIEZ1bmN0aW9uUmFyZURhdGEqIGNyZWF0ZShWTSYsIEpTRnVuY3Rpb24q
KTsKIAogICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAg
IHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CkBAIC0xMTksNyArMTE5LDcgQEAgY2xhc3Mg
RnVuY3Rpb25SYXJlRGF0YSBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIGNsYXNzIEFsbG9j
YXRpb25Qcm9maWxlQ2xlYXJpbmdXYXRjaHBvaW50OwogCiBwcm90ZWN0ZWQ6Ci0gICAgRnVuY3Rp
b25SYXJlRGF0YShWTSYpOworICAgIEZ1bmN0aW9uUmFyZURhdGEoVk0mLCBKU0Z1bmN0aW9uKik7
CiAgICAgfkZ1bmN0aW9uUmFyZURhdGEoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggOTJiZDFiODllNTlkZmY5MDYzN2Mx
ZDcxNWNmNGRjZjYyODc4MDNkZi4uMmNhZTQ0ZGE3MWJkMTdlYmMzOGEwOWQ5NmIxNzhkZGViYjJh
YWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAK
QEAgLTEyNSwxMCArMTI1LDYgQEAgdm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0pCiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFTU0VSVChqc0R5bmFtaWND
YXN0PEpTRnVuY3Rpb24qPih2bSwgdGhpcykpOwogICAgIEFTU0VSVCh0eXBlKCkgPT0gSlNGdW5j
dGlvblR5cGUpOwotICAgIGlmIChpc0Fub255bW91c0J1aWx0aW5GdW5jdGlvbigpKSB7Ci0gICAg
ICAgIC8vIFRoaXMgaXMgYW5vbnltb3VzIGJ1aWx0aW4gZnVuY3Rpb24uCi0gICAgICAgIHJhcmVE
YXRhKHZtKS0+c2V0SGFzUmVpZmllZE5hbWUoKTsKLSAgICB9CiB9CiAKIHZvaWQgSlNGdW5jdGlv
bjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBp
bnQgbGVuZ3RoLCBjb25zdCBTdHJpbmcmIG5hbWUpCkBAIC0xNDYsNyArMTQyLDcgQEAgdm9pZCBK
U0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1
dGFibGUsIGludCBsZW5ndGgKIEZ1bmN0aW9uUmFyZURhdGEqIEpTRnVuY3Rpb246OmFsbG9jYXRl
UmFyZURhdGEoVk0mIHZtKQogewogICAgIEFTU0VSVCghbV9yYXJlRGF0YSk7Ci0gICAgRnVuY3Rp
b25SYXJlRGF0YSogcmFyZURhdGEgPSBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUodm0pOworICAg
IEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gRnVuY3Rpb25SYXJlRGF0YTo6Y3JlYXRlKHZt
LCB0aGlzKTsKIAogICAgIC8vIEEgREZHIGNvbXBpbGF0aW9uIHRocmVhZCBtYXkgYmUgdHJ5aW5n
IHRvIHJlYWQgdGhlIHJhcmUgZGF0YQogICAgIC8vIFdlIHdhbnQgdG8gZW5zdXJlIHRoYXQgaXQg
c2VlcyBpdCBwcm9wZXJseSBhbGxvY2F0ZWQKQEAgLTE4Niw3ICsxODIsNyBAQCBGdW5jdGlvblJh
cmVEYXRhKiBKU0Z1bmN0aW9uOjphbGxvY2F0ZUFuZEluaXRpYWxpemVSYXJlRGF0YShFeGVjU3Rh
dGUqIGV4ZWMsIHNpegogICAgIEFTU0VSVChjYW5Vc2VBbGxvY2F0aW9uUHJvZmlsZSgpKTsKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBwcm90b3R5
cGVGb3JDb25zdHJ1Y3Rpb24odm0sIGV4ZWMpOwotICAgIEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVE
YXRhID0gRnVuY3Rpb25SYXJlRGF0YTo6Y3JlYXRlKHZtKTsKKyAgICBGdW5jdGlvblJhcmVEYXRh
KiByYXJlRGF0YSA9IEZ1bmN0aW9uUmFyZURhdGE6OmNyZWF0ZSh2bSwgdGhpcyk7CiAgICAgcmFy
ZURhdGEtPmluaXRpYWxpemVPYmplY3RBbGxvY2F0aW9uUHJvZmlsZSh2bSwgZ2xvYmFsT2JqZWN0
KHZtKSwgcHJvdG90eXBlLCBpbmxpbmVDYXBhY2l0eSwgdGhpcyk7CiAKICAgICAvLyBBIERGRyBj
b21waWxhdGlvbiB0aHJlYWQgbWF5IGJlIHRyeWluZyB0byByZWFkIHRoZSByYXJlIGRhdGEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oCmlu
ZGV4IDcxZThiZDE3MDVkOGRkNWIwOGNkYWMyNGI3Zjc4ZGMxNDJiZGRlNjYuLjE4NzI2ODRkYTQw
Y2VhYzRlYjk4YWQyZDAzODU0YmNkOTg0YzRhYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaApAQCAtMTEwLDcgKzExMCwxMSBAQCBp
bmxpbmUgYm9vbCBKU0Z1bmN0aW9uOjpoYXNSZWlmaWVkTGVuZ3RoKCkgY29uc3QKIAogaW5saW5l
IGJvb2wgSlNGdW5jdGlvbjo6aGFzUmVpZmllZE5hbWUoKSBjb25zdAogewotICAgIHJldHVybiBt
X3JhcmVEYXRhID8gbV9yYXJlRGF0YS0+aGFzUmVpZmllZE5hbWUoKSA6IGZhbHNlOworICAgIGlm
IChtX3JhcmVEYXRhKQorICAgICAgICByZXR1cm4gbV9yYXJlRGF0YS0+aGFzUmVpZmllZE5hbWUo
KTsKKyAgICBpZiAoaXNBbm9ueW1vdXNCdWlsdGluRnVuY3Rpb24oKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBpbmxpbmUgYm9vbCBKU0Z1bmN0aW9uOjpj
YW5Vc2VBbGxvY2F0aW9uUHJvZmlsZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378361</attachid>
            <date>2019-09-09 03:43:00 -0700</date>
            <delta_ts>2019-09-09 04:01:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201488-20190909034259.patch</filename>
            <type>text/plain</type>
            <size>12876</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODMyZDE4YjhjYzIyYjRmNDQyMTBhZWVmMDk2M2NlMzJjNTMwZjUwLi5iODUwM2FjNWJhZDhmYzU1
N2FhZGU3NTcxMjI4YWI0Y2IzZjMyNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNCBAQAorMjAxOS0wOS0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFByb21pc2UgcmVzb2x2ZS9yZWplY3QgZnVuY3Rpb25zIHNob3Vs
ZCBiZSBjcmVhdGVkIG1vcmUgZWZmaWNpZW50bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIHIyNDY1NTMgZml4ZWQgdGhlIGltcG9ydGFudCBp
c3N1ZSwgaXQgbWFrZXMgYW5vbnltb3VzLWJ1aWx0aW4tZnVuY3Rpb24gY3JlYXRpb24gdmVyeSBj
b3N0bHkuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNyZWF0
ZWQgZnJlcXVlbnRseSBzaW5jZSB0aGlzIHR5cGUgb2YgZnVuY3Rpb24gaXMgdXNlZAorICAgICAg
ICBmb3IgYHJlc29sdmVgIGFuZCBgcmVqZWN0YCBhcmd1bWVudHMgb2YgUHJvbWlzZSdzIGV4ZWN1
dG9yIChlLmcuIGBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAuLi4pYCdzIHJlc29s
dmUgYW5kIHJlamVjdCkuCisgICAgICAgIFNpbmNlIHdlIGFyZSBub3cgYWx3YXlzIGNyZWF0aW5n
IEZ1bmN0aW9uUmFyZURhdGEgZm9yIHRoZXNlIGZ1bmN0aW9ucywgdGhpcyBhZGRpdGlvbmFsIGFs
bG9jYXRpb24gbWFrZXMgcHJvbWlzZSBjcmVhdGlvbiBzbG93ZXIuCisKKyAgICAgICAgSW4gdGhp
cyBwYXRjaCwgd2UgdXNlIGBpc0Fub255bW91c0J1aWx0aW5GdW5jdGlvbmAgaW5mb3JtYXRpb24g
Zm9yIGBoYXNSZWlmaWVkTmFtZWAgY29ycmVjdGx5LiBBbmQgd2UgcHJvcGFnYXRlIGBpc0Fub255
bW91c0J1aWx0aW5GdW5jdGlvbmAgaW5mb3JtYXRpb24KKyAgICAgICAgdG8gRnVuY3Rpb25SYXJl
RGF0YSB0byBpbml0aWFsaXplIGBtX2hhc1JlaWZpZWROYW1lYCBjb3JyZWN0bHkuIFRoZW4gd2Ug
Y2FuIGF2b2lkIHVubmVjZXNzYXJ5IEZ1bmN0aW9uUmFyZURhdGEgYWxsb2NhdGlvbiwgd2hpY2gg
bWFrZXMKKyAgICAgICAgYW5vbnltb3VzLWJ1aWx0aW4tZnVuY3Rpb24gY3JlYXRpb24gZmFzdGVy
LgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29tbW9uKToKKyAgICAgICAg
KiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2Vy
REZHVG9CMzo6Y29tcGlsZU5ld0Z1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9u
UmFyZURhdGEuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUpOgor
ICAgICAgICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjpGdW5jdGlvblJhcmVEYXRhKToKKyAgICAg
ICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFsbG9jYXRlUmFyZURhdGEpOgorICAgICAgICAoSlND
OjpKU0Z1bmN0aW9uOjphbGxvY2F0ZUFuZEluaXRpYWxpemVSYXJlRGF0YSk6CisgICAgICAgICog
cnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpo
YXNSZWlmaWVkTmFtZSBjb25zdCk6CisKIDIwMTktMDktMDcgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIHBlcmZvcm1KSVRNZW1jcHkoKSBzb3VyY2UgYnVmZmVyIHNo
b3VsZCBub3QgYmUgaW4gdGhlIEdpZ2FjYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAyN2NjMWI0NTdhODlmM2Q0MzUzMDJlYTA3
MzEyNWZmMTNmMzhlY2ZjLi41MjhlMTEzZjc2ODZmZmUyNmQyY2EyZDM5MjQyMDVkN2Q1NGI4NTAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cApAQCAtNzIxMiwyOSArNzIxMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVOZXdG
dW5jdGlvbkNvbW1vbihHUFJSZWcgcmVzdWx0R1BSLCBSZWdpc3RlcmVkU3RydWN0CiAgICAgbV9q
aXQuc3RvcmVQdHIoc2NvcGVHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNG
dW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpKTsKICAgICBtX2ppdC5zdG9yZVB0cihUcnVz
dGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBleGVjdXRhYmxlKSwgSklUQ29t
cGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGUo
KSkpOwogICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENvbXBp
bGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZSYXJlRGF0YSgpKSk7
Ci0gICAgCi0gICAgaWYgKGV4ZWN1dGFibGUtPmlzQW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9uKCkp
IHsKLSAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgbV9qaXQubXV0YXRvckZl
bmNlKHZtKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IGFsbG9jYXRvcih0aGlzKTsKLSAgICAgICAg
QWxsb2NhdG9yIGFsbG9jYXRvclZhbHVlID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbENvbmN1cnJl
bnRseTxGdW5jdGlvblJhcmVEYXRhPih2bSwgc2l6ZW9mKEZ1bmN0aW9uUmFyZURhdGEpLCBBbGxv
Y2F0b3JGb3JNb2RlOjpBbGxvY2F0b3JJZkV4aXN0cyk7Ci0gICAgICAgIGVtaXRBbGxvY2F0ZUpT
Q2VsbChzY3JhdGNoMUdQUiwgSklUQWxsb2NhdG9yOjpjb25zdGFudChhbGxvY2F0b3JWYWx1ZSks
IGFsbG9jYXRvci5ncHIoKSwgVHJ1c3RlZEltbVB0cihtX2ppdC5ncmFwaCgpLnJlZ2lzdGVyU3Ry
dWN0dXJlKHZtLmZ1bmN0aW9uUmFyZURhdGFTdHJ1Y3R1cmUuZ2V0KCkpKSwgc2NyYXRjaDJHUFIs
IHNsb3dQYXRoKTsKLQotICAgICAgICBwdHJkaWZmX3Qgb2JqZWN0QWxsb2NhdGlvblByb2ZpbGVP
ZmZzZXQgPSBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9maWxl
KCk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENv
bXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gxR1BSLCBvYmplY3RBbGxvY2F0aW9uUHJvZmlsZU9mZnNl
dCArIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlV2l0aFByb3RvdHlwZTo6b2Zmc2V0T2ZBbGxvY2F0
b3IoKSkpOwotICAgICAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKG51bGxwdHIpLCBK
SVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgb2JqZWN0QWxsb2NhdGlvblByb2ZpbGVP
ZmZzZXQgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGU6Om9mZnNldE9mU3Ry
dWN0dXJlKCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRy
KSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIG9iamVjdEFsbG9jYXRpb25Qcm9m
aWxlT2Zmc2V0ICsgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90eXBlOjpvZmZzZXRP
ZlByb3RvdHlwZSgpKSk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoMHgx
KSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9m
ZnNldE9mQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkpKTsKLSAgICAgICAgbV9qaXQu
c3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2Ny
YXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9mZnNl
dE9mU3RydWN0dXJlKCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihu
dWxscHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURh
dGE6Om9mZnNldE9mQm91bmRGdW5jdGlvblN0cnVjdHVyZSgpKSk7Ci0gICAgICAgIG1faml0LnN0
b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0
Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkFsbG9jYXRpb25Qcm9maWxlQ2xlYXJp
bmdXYXRjaHBvaW50KCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmU4KFRydXN0ZWRJbW0zMigwKSwg
SklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNl
dE9mSGFzUmVpZmllZExlbmd0aCgpKSk7Ci0gICAgICAgIG1faml0LnN0b3JlOChUcnVzdGVkSW1t
MzIoMSksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRh
OjpvZmZzZXRPZkhhc1JlaWZpZWROYW1lKCkpKTsKLSAgICAgICAgbV9qaXQubXV0YXRvckZlbmNl
KHZtKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoc2NyYXRjaDFHUFIsIEpJVENvbXBpbGVyOjpB
ZGRyZXNzKHJlc3VsdEdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZSYXJlRGF0YSgpKSk7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKLQorICAgIG1faml0Lm11
dGF0b3JGZW5jZSh2bSgpKTsKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1
bmN0aW9uKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKaW5kZXggOGMwOTFjNjY0NTFjMDE1NTMwMGI1MmY0OWEyYTgyZTUwMjUyNDQy
NS4uM2MxZjI4OGI2YmVlMjFlNGEyNmY1NDE1YjNjYjJjYmYwNjg4OTQ1YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNTU3NSwyNSArNTU3
NSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIG1fb3V0LnN0b3JlUHRyKHNjb3Bl
LCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTRnVuY3Rpb25fc2NvcGUpOwogICAgICAgICBtX291dC5z
dG9yZVB0cih3ZWFrUG9pbnRlcihleGVjdXRhYmxlKSwgZmFzdE9iamVjdCwgbV9oZWFwcy5KU0Z1
bmN0aW9uX2V4ZWN1dGFibGUpOwogICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJa
ZXJvLCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTRnVuY3Rpb25fcmFyZURhdGEpOwotICAgICAgICAK
LSAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgaWYgKGV4ZWN1dGFibGUtPmlz
QW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9uKCkpIHsKLSAgICAgICAgICAgIG11dGF0b3JGZW5jZSgp
OwotICAgICAgICAgICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZpcnR1
YWxDb25jdXJyZW50bHk8RnVuY3Rpb25SYXJlRGF0YT4odm0sIHNpemVvZihGdW5jdGlvblJhcmVE
YXRhKSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMpOwotICAgICAgICAgICAg
TFZhbHVlIHJhcmVEYXRhID0gYWxsb2NhdGVDZWxsKG1fb3V0LmNvbnN0SW50UHRyKGFsbG9jYXRv
ci5sb2NhbEFsbG9jYXRvcigpKSwgdm0uZnVuY3Rpb25SYXJlRGF0YVN0cnVjdHVyZS5nZXQoKSwg
c2xvd1BhdGgpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywg
cmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0b3IpOwotICAgICAgICAg
ICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVu
Y3Rpb25SYXJlRGF0YV9zdHJ1Y3R1cmUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9v
dXQuaW50UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9wcm90b3R5
cGUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyT25lLCByYXJlRGF0
YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludFNl
dCk7Ci0gICAgICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCByYXJlRGF0
YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9uUHJv
ZmlsZV9zdHJ1Y3R1cmUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRy
WmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9ib3VuZEZ1bmN0aW9uU3Ry
dWN0dXJlKTsKLSAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8sIHJh
cmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfYWxsb2NhdGlvblByb2ZpbGVDbGVhcmlu
Z1dhdGNocG9pbnQpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmUzMkFzOChtX291dC5pbnQzMk9u
ZSwgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9oYXNSZWlmaWVkTmFtZSk7Ci0g
ICAgICAgICAgICBtX291dC5zdG9yZTMyQXM4KG1fb3V0LmludDMyWmVybywgcmFyZURhdGEsIG1f
aGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9oYXNSZWlmaWVkTGVuZ3RoKTsKLSAgICAgICAgICAgIG11
dGF0b3JGZW5jZSgpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIocmFyZURhdGEsIGZhc3RP
YmplY3QsIG1faGVhcHMuSlNGdW5jdGlvbl9yYXJlRGF0YSk7Ci0gICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbXV0YXRvckZlbmNlKCk7CisgICAgICAgIG11dGF0b3JGZW5jZSgpOwogCiAgICAg
ICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoZmFzdE9iamVjdCk7
CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTU2MDIsNiArNTU4NCw3IEBA
IGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAgVmVjdG9yPExWYWx1ZT4gc2xvd1BhdGhB
cmd1bWVudHM7CiAgICAgICAgIHNsb3dQYXRoQXJndW1lbnRzLmFwcGVuZChzY29wZSk7CisgICAg
ICAgIFZNJiB2bSA9IHRoaXMtPnZtKCk7CiAgICAgICAgIExWYWx1ZSBjYWxsUmVzdWx0ID0gbGF6
eVNsb3dQYXRoKAogICAgICAgICAgICAgWz0sICZ2bV0gKGNvbnN0IFZlY3RvcjxMb2NhdGlvbj4m
IGxvY2F0aW9ucykgLT4gUmVmUHRyPExhenlTbG93UGF0aDo6R2VuZXJhdG9yPiB7CiAgICAgICAg
ICAgICAgICAgYXV0byogb3BlcmF0aW9uID0gb3BlcmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52YWxp
ZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcAppbmRleCAxMzA2MjU3ZTBjNzAxZTlmMTNj
Zjk0NzVmZTcxMTNkNDAyNjE2NTk1Li45ZGI3MzU4MzhhNWRiNjg4YmFkNmJmZDQ2NzA3NWM1NjA3
ZDAzNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
blJhcmVEYXRhLmNwcApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3Qg
Q2xhc3NJbmZvIEZ1bmN0aW9uUmFyZURhdGE6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uUmFyZURhdGEi
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9u
UmFyZURhdGEpIH07CiAKLUZ1bmN0aW9uUmFyZURhdGEqIEZ1bmN0aW9uUmFyZURhdGE6OmNyZWF0
ZShWTSYgdm0pCitGdW5jdGlvblJhcmVEYXRhKiBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUoVk0m
IHZtLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbikKIHsKLSAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJl
RGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUmFyZURhdGE+KHZtLmhl
YXApKSBGdW5jdGlvblJhcmVEYXRhKHZtKTsKKyAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJlRGF0
YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUmFyZURhdGE+KHZtLmhlYXAp
KSBGdW5jdGlvblJhcmVEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgcmFyZURhdGEtPmZpbmlzaENy
ZWF0aW9uKHZtKTsKICAgICByZXR1cm4gcmFyZURhdGE7CiB9CkBAIC02MiwxMyArNjIsMTQgQEAg
dm9pZCBGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91bmRGdW5j
dGlvblN0cnVjdHVyZSk7CiB9CiAKLUZ1bmN0aW9uUmFyZURhdGE6OkZ1bmN0aW9uUmFyZURhdGEo
Vk0mIHZtKQorRnVuY3Rpb25SYXJlRGF0YTo6RnVuY3Rpb25SYXJlRGF0YShWTSYgdm0sIEpTRnVu
Y3Rpb24qIGZ1bmN0aW9uKQogICAgIDogQmFzZSh2bSwgdm0uZnVuY3Rpb25SYXJlRGF0YVN0cnVj
dHVyZS5nZXQoKSkKICAgICAsIG1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGUoKQogICAgIC8vIFdl
IGluaXRpYWxpemUgYmxpbmQgc28gdGhhdCBjaGFuZ2VzIHRvIHRoZSBwcm90b3R5cGUgYWZ0ZXIg
ZnVuY3Rpb24gY3JlYXRpb24gYnV0IGJlZm9yZQogICAgIC8vIHRoZSBmaXJzdCBhbGxvY2F0aW9u
IGRvbid0IGRpc2FibGUgb3B0aW1pemF0aW9ucy4gVGhpcyBpc24ndCBzdXBlciBpbXBvcnRhbnQs
IHNpbmNlIHRoZQogICAgIC8vIGZ1bmN0aW9uIGlzIHVubGlrZWx5IHRvIGFsbG9jYXRlIGEgcmFy
ZSBkYXRhIHVudGlsIHRoZSBmaXJzdCBhbGxvY2F0aW9uIGFueXdheS4KICAgICAsIG1fYWxsb2Nh
dGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KENsZWFyV2F0Y2hwb2ludCkKKyAgICAsIG1faGFzUmVp
ZmllZE5hbWUoZnVuY3Rpb24tPmlzQW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9uKCkpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURh
dGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaApp
bmRleCBiMDE2MDZmYjhmMDhhZjY5Y2NmMmNjZWMxZmFkY2FmOWY5MTFjMGVmLi40ZWUyZDQ4NTE0
YTNmNjZiM2E5ZTkyMmIxMjljZjhmZjhmOWY0MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNz
IEZ1bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB0eXBlZGVmIEpT
Q2VsbCBCYXNlOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJh
c2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIHN0YXRpYyBG
dW5jdGlvblJhcmVEYXRhKiBjcmVhdGUoVk0mKTsKKyAgICBzdGF0aWMgRnVuY3Rpb25SYXJlRGF0
YSogY3JlYXRlKFZNJiwgSlNGdW5jdGlvbiopOwogCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgbmVl
ZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsK
QEAgLTExOSw3ICsxMTksNyBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZpbmFsIDogcHVibGlj
IEpTQ2VsbCB7CiAgICAgY2xhc3MgQWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9pbnQ7
CiAKIHByb3RlY3RlZDoKLSAgICBGdW5jdGlvblJhcmVEYXRhKFZNJik7CisgICAgRnVuY3Rpb25S
YXJlRGF0YShWTSYsIEpTRnVuY3Rpb24qKTsKICAgICB+RnVuY3Rpb25SYXJlRGF0YSgpOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApp
bmRleCA5MmJkMWI4OWU1OWRmZjkwNjM3YzFkNzE1Y2Y0ZGNmNjI4NzgwM2RmLi4yY2FlNDRkYTcx
YmQxN2ViYzM4YTA5ZDk2YjE3OGRkZWJiMmFhZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTI1LDEwICsxMjUsNiBAQCB2b2lkIEpTRnVu
Y3Rpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7CiAgICAgQVNTRVJUKGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCB0aGlzKSk7CiAg
ICAgQVNTRVJUKHR5cGUoKSA9PSBKU0Z1bmN0aW9uVHlwZSk7Ci0gICAgaWYgKGlzQW5vbnltb3Vz
QnVpbHRpbkZ1bmN0aW9uKCkpIHsKLSAgICAgICAgLy8gVGhpcyBpcyBhbm9ueW1vdXMgYnVpbHRp
biBmdW5jdGlvbi4KLSAgICAgICAgcmFyZURhdGEodm0pLT5zZXRIYXNSZWlmaWVkTmFtZSgpOwot
ICAgIH0KIH0KIAogdm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGludCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFtZSkK
QEAgLTE0Niw3ICsxNDIsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgaW50IGxlbmd0aAogRnVuY3Rpb25SYXJl
RGF0YSogSlNGdW5jdGlvbjo6YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCiB7CiAgICAgQVNTRVJU
KCFtX3JhcmVEYXRhKTsKLSAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJlRGF0YSA9IEZ1bmN0aW9u
UmFyZURhdGE6OmNyZWF0ZSh2bSk7CisgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSBG
dW5jdGlvblJhcmVEYXRhOjpjcmVhdGUodm0sIHRoaXMpOwogCiAgICAgLy8gQSBERkcgY29tcGls
YXRpb24gdGhyZWFkIG1heSBiZSB0cnlpbmcgdG8gcmVhZCB0aGUgcmFyZSBkYXRhCiAgICAgLy8g
V2Ugd2FudCB0byBlbnN1cmUgdGhhdCBpdCBzZWVzIGl0IHByb3Blcmx5IGFsbG9jYXRlZApAQCAt
MTg2LDcgKzE4Miw3IEBAIEZ1bmN0aW9uUmFyZURhdGEqIEpTRnVuY3Rpb246OmFsbG9jYXRlQW5k
SW5pdGlhbGl6ZVJhcmVEYXRhKEV4ZWNTdGF0ZSogZXhlYywgc2l6CiAgICAgQVNTRVJUKGNhblVz
ZUFsbG9jYXRpb25Qcm9maWxlKCkpOwogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgSlNP
YmplY3QqIHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckNvbnN0cnVjdGlvbih2bSwgZXhlYyk7Ci0g
ICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUo
dm0pOworICAgIEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gRnVuY3Rpb25SYXJlRGF0YTo6
Y3JlYXRlKHZtLCB0aGlzKTsKICAgICByYXJlRGF0YS0+aW5pdGlhbGl6ZU9iamVjdEFsbG9jYXRp
b25Qcm9maWxlKHZtLCBnbG9iYWxPYmplY3Qodm0pLCBwcm90b3R5cGUsIGlubGluZUNhcGFjaXR5
LCB0aGlzKTsKIAogICAgIC8vIEEgREZHIGNvbXBpbGF0aW9uIHRocmVhZCBtYXkgYmUgdHJ5aW5n
IHRvIHJlYWQgdGhlIHJhcmUgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKaW5kZXggNzFlOGJkMTcwNWQ4ZGQ1YjA4Y2RhYzI0Yjdm
NzhkYzE0MmJkZGU2Ni4uMTg3MjY4NGRhNDBjZWFjNGViOThhZDJkMDM4NTRiY2Q5ODRjNGFjNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5l
cy5oCkBAIC0xMTAsNyArMTEwLDExIEBAIGlubGluZSBib29sIEpTRnVuY3Rpb246Omhhc1JlaWZp
ZWRMZW5ndGgoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBKU0Z1bmN0aW9uOjpoYXNSZWlmaWVkTmFt
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5oYXNSZWlm
aWVkTmFtZSgpIDogZmFsc2U7CisgICAgaWYgKG1fcmFyZURhdGEpCisgICAgICAgIHJldHVybiBt
X3JhcmVEYXRhLT5oYXNSZWlmaWVkTmFtZSgpOworICAgIGlmIChpc0Fub255bW91c0J1aWx0aW5G
dW5jdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IGlubGluZSBib29sIEpTRnVuY3Rpb246OmNhblVzZUFsbG9jYXRpb25Qcm9maWxlKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378363</attachid>
            <date>2019-09-09 04:01:28 -0700</date>
            <delta_ts>2019-09-09 08:36:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201488-20190909040127.patch</filename>
            <type>text/plain</type>
            <size>14473</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODMyZDE4YjhjYzIyYjRmNDQyMTBhZWVmMDk2M2NlMzJjNTMwZjUwLi5jOWI0MjUyYTI3M2UwMzkw
MDI1NDdiM2EzNzA3N2JhYjIxOGYzN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxOS0wOS0wOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFByb21pc2UgcmVzb2x2ZS9yZWplY3QgZnVuY3Rpb25zIHNob3Vs
ZCBiZSBjcmVhdGVkIG1vcmUgZWZmaWNpZW50bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIHIyNDY1NTMgZml4ZWQgYW4gaW1wb3J0YW50IGlz
c3VlLCBpdCBtYWtlcyBhbm9ueW1vdXMtYnVpbHRpbi1mdW5jdGlvbiBjcmVhdGlvbiBjb3N0bHkg
c2luY2UgaXQgZW5mb3JjZXMgRnVuY3Rpb25SYXJlRGF0YSBhbGxvY2F0aW9ucy4KKyAgICAgICAg
VW5mb3J0dW5hdGVseSwgYW5vbnltb3VzLWJ1aWx0aW4tZnVuY3Rpb24gZnVuY3Rpb24gY2FuIGJl
IGNyZWF0ZWQgZnJlcXVlbnRseSBzaW5jZSB0aGlzIHR5cGUgb2YgZnVuY3Rpb24gaXMgdXNlZAor
ICAgICAgICBmb3IgYHJlc29sdmVgIGFuZCBgcmVqZWN0YCBhcmd1bWVudHMgb2YgUHJvbWlzZSdz
IGV4ZWN1dG9yIChlLmcuIGBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAuLi4pYCdz
IHJlc29sdmUgYW5kIHJlamVjdCkuCisgICAgICAgIFNpbmNlIHdlIGFyZSBub3cgYWx3YXlzIGNy
ZWF0aW5nIEZ1bmN0aW9uUmFyZURhdGEgZm9yIHRoZXNlIGZ1bmN0aW9ucywgdGhpcyBhZGRpdGlv
bmFsIGFsbG9jYXRpb24gbWFrZXMgcHJvbWlzZSBjcmVhdGlvbiBzbG93ZXIuCisKKyAgICAgICAg
SW4gdGhpcyBwYXRjaCwgd2UgdXNlIGBpc0Fub255bW91c0J1aWx0aW5GdW5jdGlvbmAgaW5mb3Jt
YXRpb24gZm9yIGBoYXNSZWlmaWVkTmFtZWAgY29ycmVjdGx5LiBBbmQgd2UgcHJvcGFnYXRlIGBp
c0Fub255bW91c0J1aWx0aW5GdW5jdGlvbmAgaW5mb3JtYXRpb24KKyAgICAgICAgdG8gRnVuY3Rp
b25SYXJlRGF0YSB0byBpbml0aWFsaXplIGBtX2hhc1JlaWZpZWROYW1lYCBjb3JyZWN0bHkuIFRo
ZW4gd2UgY2FuIGF2b2lkIHVubmVjZXNzYXJ5IEZ1bmN0aW9uUmFyZURhdGEgYWxsb2NhdGlvbiwg
d2hpY2ggbWFrZXMKKyAgICAgICAgYW5vbnltb3VzLWJ1aWx0aW4tZnVuY3Rpb24gY3JlYXRpb24g
ZmFzdGVyLgorCisgICAgICAgIFdlIGNhbiBlbnN1cmUgdGhhdCB0aGlzIHBhdGNoIGRvZXMgbm90
IHJldmVydCByMjQ2NTUzJ3MgZml4IGJ5IHJ1bm5pbmcgSlNUZXN0cy9zdHJlc3MvYnVpbHRpbi1w
cml2YXRlLWZ1bmN0aW9uLW5hbWUuanMgdGVzdC4KKyAgICAgICAgVGhlIHNpbXBsZSBtaWNyb2Jl
bmNobWFyayBzaG93cyAxLjd4IGltcHJvdmVtZW50LgorCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAgUGF0Y2hlZAor
CisgICAgICAgICAgICBwcm9taXNlLWNyZWF0aW9uLW1hbnkgICAgICAgNDUuNjcwMSstMC4xNDg4
ICAgICBeICAgICAyNi44NjYzKy0xLjgzMzYgICAgICAgIF4gZGVmaW5pdGVseSAxLjY5OTl4IGZh
c3RlcgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5ld0Z1bmN0aW9uQ29tbW9uKToKKyAgICAg
ICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZU5ld0Z1bmN0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0
aW9uUmFyZURhdGEuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpGdW5jdGlvblJhcmVEYXRhOjpGdW5jdGlvblJhcmVEYXRhKToKKyAg
ICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmFsbG9jYXRlUmFyZURhdGEpOgorICAgICAgICAo
SlNDOjpKU0Z1bmN0aW9uOjphbGxvY2F0ZUFuZEluaXRpYWxpemVSYXJlRGF0YSk6CisgICAgICAg
ICogcnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9u
OjpoYXNSZWlmaWVkTmFtZSBjb25zdCk6CisKIDIwMTktMDktMDcgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIHBlcmZvcm1KSVRNZW1jcHkoKSBzb3VyY2UgYnVmZmVy
IHNob3VsZCBub3QgYmUgaW4gdGhlIEdpZ2FjYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAyN2NjMWI0NTdhODlmM2Q0MzUzMDJl
YTA3MzEyNWZmMTNmMzhlY2ZjLi41MjhlMTEzZjc2ODZmZmUyNmQyY2EyZDM5MjQyMDVkN2Q1NGI4
NTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcApAQCAtNzIxMiwyOSArNzIxMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVO
ZXdGdW5jdGlvbkNvbW1vbihHUFJSZWcgcmVzdWx0R1BSLCBSZWdpc3RlcmVkU3RydWN0CiAgICAg
bV9qaXQuc3RvcmVQdHIoc2NvcGVHUFIsIEpJVENvbXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZTY29wZUNoYWluKCkpKTsKICAgICBtX2ppdC5zdG9yZVB0cihU
cnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2ppdC5ncmFwaCgpLCBleGVjdXRhYmxlKSwgSklU
Q29tcGlsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFi
bGUoKSkpOwogICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENv
bXBpbGVyOjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZSYXJlRGF0YSgp
KSk7Ci0gICAgCi0gICAgaWYgKGV4ZWN1dGFibGUtPmlzQW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9u
KCkpIHsKLSAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgbV9qaXQubXV0YXRv
ckZlbmNlKHZtKTsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IGFsbG9jYXRvcih0aGlzKTsKLSAgICAg
ICAgQWxsb2NhdG9yIGFsbG9jYXRvclZhbHVlID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbENvbmN1
cnJlbnRseTxGdW5jdGlvblJhcmVEYXRhPih2bSwgc2l6ZW9mKEZ1bmN0aW9uUmFyZURhdGEpLCBB
bGxvY2F0b3JGb3JNb2RlOjpBbGxvY2F0b3JJZkV4aXN0cyk7Ci0gICAgICAgIGVtaXRBbGxvY2F0
ZUpTQ2VsbChzY3JhdGNoMUdQUiwgSklUQWxsb2NhdG9yOjpjb25zdGFudChhbGxvY2F0b3JWYWx1
ZSksIGFsbG9jYXRvci5ncHIoKSwgVHJ1c3RlZEltbVB0cihtX2ppdC5ncmFwaCgpLnJlZ2lzdGVy
U3RydWN0dXJlKHZtLmZ1bmN0aW9uUmFyZURhdGFTdHJ1Y3R1cmUuZ2V0KCkpKSwgc2NyYXRjaDJH
UFIsIHNsb3dQYXRoKTsKLQotICAgICAgICBwdHJkaWZmX3Qgb2JqZWN0QWxsb2NhdGlvblByb2Zp
bGVPZmZzZXQgPSBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZk9iamVjdEFsbG9jYXRpb25Qcm9m
aWxlKCk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJ
VENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gxR1BSLCBvYmplY3RBbGxvY2F0aW9uUHJvZmlsZU9m
ZnNldCArIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlV2l0aFByb3RvdHlwZTo6b2Zmc2V0T2ZBbGxv
Y2F0b3IoKSkpOwotICAgICAgICBtX2ppdC5zdG9yZVB0cihUcnVzdGVkSW1tUHRyKG51bGxwdHIp
LCBKSVRDb21waWxlcjo6QWRkcmVzcyhzY3JhdGNoMUdQUiwgb2JqZWN0QWxsb2NhdGlvblByb2Zp
bGVPZmZzZXQgKyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZVdpdGhQcm90b3R5cGU6Om9mZnNldE9m
U3RydWN0dXJlKCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxs
cHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIG9iamVjdEFsbG9jYXRpb25Q
cm9maWxlT2Zmc2V0ICsgT2JqZWN0QWxsb2NhdGlvblByb2ZpbGVXaXRoUHJvdG90eXBlOjpvZmZz
ZXRPZlByb3RvdHlwZSgpKSk7Ci0gICAgICAgIG1faml0LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIo
MHgxKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6
Om9mZnNldE9mQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KCkpKTsKLSAgICAgICAgbV9q
aXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihudWxscHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Mo
c2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlKCkgKyBJbnRlcm5hbEZ1bmN0aW9uQWxsb2NhdGlvblByb2ZpbGU6Om9m
ZnNldE9mU3RydWN0dXJlKCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoVHJ1c3RlZEltbVB0
cihudWxscHRyKSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFy
ZURhdGE6Om9mZnNldE9mQm91bmRGdW5jdGlvblN0cnVjdHVyZSgpKSk7Ci0gICAgICAgIG1faml0
LnN0b3JlUHRyKFRydXN0ZWRJbW1QdHIobnVsbHB0ciksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNj
cmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVEYXRhOjpvZmZzZXRPZkFsbG9jYXRpb25Qcm9maWxlQ2xl
YXJpbmdXYXRjaHBvaW50KCkpKTsKLSAgICAgICAgbV9qaXQuc3RvcmU4KFRydXN0ZWRJbW0zMigw
KSwgSklUQ29tcGlsZXI6OkFkZHJlc3Moc2NyYXRjaDFHUFIsIEZ1bmN0aW9uUmFyZURhdGE6Om9m
ZnNldE9mSGFzUmVpZmllZExlbmd0aCgpKSk7Ci0gICAgICAgIG1faml0LnN0b3JlOChUcnVzdGVk
SW1tMzIoMSksIEpJVENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gxR1BSLCBGdW5jdGlvblJhcmVE
YXRhOjpvZmZzZXRPZkhhc1JlaWZpZWROYW1lKCkpKTsKLSAgICAgICAgbV9qaXQubXV0YXRvckZl
bmNlKHZtKTsKLSAgICAgICAgbV9qaXQuc3RvcmVQdHIoc2NyYXRjaDFHUFIsIEpJVENvbXBpbGVy
OjpBZGRyZXNzKHJlc3VsdEdQUiwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZSYXJlRGF0YSgpKSk7Ci0g
ICAgfSBlbHNlCi0gICAgICAgIG1faml0Lm11dGF0b3JGZW5jZSh2bSgpKTsKLQorICAgIG1faml0
Lm11dGF0b3JGZW5jZSh2bSgpKTsKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU5l
d0Z1bmN0aW9uKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAKaW5kZXggOGMwOTFjNjY0NTFjMDE1NTMwMGI1MmY0OWEyYTgyZTUwMjUy
NDQyNS4uM2MxZjI4OGI2YmVlMjFlNGEyNmY1NDE1YjNjYjJjYmYwNjg4OTQ1YSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNTU3NSwyNSAr
NTU3NSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIG1fb3V0LnN0b3JlUHRyKHNj
b3BlLCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTRnVuY3Rpb25fc2NvcGUpOwogICAgICAgICBtX291
dC5zdG9yZVB0cih3ZWFrUG9pbnRlcihleGVjdXRhYmxlKSwgZmFzdE9iamVjdCwgbV9oZWFwcy5K
U0Z1bmN0aW9uX2V4ZWN1dGFibGUpOwogICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQ
dHJaZXJvLCBmYXN0T2JqZWN0LCBtX2hlYXBzLkpTRnVuY3Rpb25fcmFyZURhdGEpOwotICAgICAg
ICAKLSAgICAgICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICAgICAgaWYgKGV4ZWN1dGFibGUt
PmlzQW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9uKCkpIHsKLSAgICAgICAgICAgIG11dGF0b3JGZW5j
ZSgpOwotICAgICAgICAgICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZp
cnR1YWxDb25jdXJyZW50bHk8RnVuY3Rpb25SYXJlRGF0YT4odm0sIHNpemVvZihGdW5jdGlvblJh
cmVEYXRhKSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMpOwotICAgICAgICAg
ICAgTFZhbHVlIHJhcmVEYXRhID0gYWxsb2NhdGVDZWxsKG1fb3V0LmNvbnN0SW50UHRyKGFsbG9j
YXRvci5sb2NhbEFsbG9jYXRvcigpKSwgdm0uZnVuY3Rpb25SYXJlRGF0YVN0cnVjdHVyZS5nZXQo
KSwgc2xvd1BhdGgpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVy
bywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9hbGxvY2F0b3IpOwotICAgICAg
ICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMu
RnVuY3Rpb25SYXJlRGF0YV9zdHJ1Y3R1cmUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIo
bV9vdXQuaW50UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9wcm90
b3R5cGUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50UHRyT25lLCByYXJl
RGF0YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2FsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2lu
dFNldCk7Ci0gICAgICAgICAgICBtX291dC5zdG9yZVB0cihtX291dC5pbnRQdHJaZXJvLCByYXJl
RGF0YSwgbV9oZWFwcy5GdW5jdGlvblJhcmVEYXRhX2ludGVybmFsRnVuY3Rpb25BbGxvY2F0aW9u
UHJvZmlsZV9zdHJ1Y3R1cmUpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIobV9vdXQuaW50
UHRyWmVybywgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9ib3VuZEZ1bmN0aW9u
U3RydWN0dXJlKTsKLSAgICAgICAgICAgIG1fb3V0LnN0b3JlUHRyKG1fb3V0LmludFB0clplcm8s
IHJhcmVEYXRhLCBtX2hlYXBzLkZ1bmN0aW9uUmFyZURhdGFfYWxsb2NhdGlvblByb2ZpbGVDbGVh
cmluZ1dhdGNocG9pbnQpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmUzMkFzOChtX291dC5pbnQz
Mk9uZSwgcmFyZURhdGEsIG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9oYXNSZWlmaWVkTmFtZSk7
Ci0gICAgICAgICAgICBtX291dC5zdG9yZTMyQXM4KG1fb3V0LmludDMyWmVybywgcmFyZURhdGEs
IG1faGVhcHMuRnVuY3Rpb25SYXJlRGF0YV9oYXNSZWlmaWVkTGVuZ3RoKTsKLSAgICAgICAgICAg
IG11dGF0b3JGZW5jZSgpOwotICAgICAgICAgICAgbV9vdXQuc3RvcmVQdHIocmFyZURhdGEsIGZh
c3RPYmplY3QsIG1faGVhcHMuSlNGdW5jdGlvbl9yYXJlRGF0YSk7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgbXV0YXRvckZlbmNlKCk7CisgICAgICAgIG11dGF0b3JGZW5jZSgpOwogCiAg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IoZmFzdE9iamVj
dCk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKQEAgLTU2MDIsNiArNTU4NCw3
IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAKICAgICAgICAgVmVjdG9yPExWYWx1ZT4gc2xvd1Bh
dGhBcmd1bWVudHM7CiAgICAgICAgIHNsb3dQYXRoQXJndW1lbnRzLmFwcGVuZChzY29wZSk7Cisg
ICAgICAgIFZNJiB2bSA9IHRoaXMtPnZtKCk7CiAgICAgICAgIExWYWx1ZSBjYWxsUmVzdWx0ID0g
bGF6eVNsb3dQYXRoKAogICAgICAgICAgICAgWz0sICZ2bV0gKGNvbnN0IFZlY3RvcjxMb2NhdGlv
bj4mIGxvY2F0aW9ucykgLT4gUmVmUHRyPExhenlTbG93UGF0aDo6R2VuZXJhdG9yPiB7CiAgICAg
ICAgICAgICAgICAgYXV0byogb3BlcmF0aW9uID0gb3BlcmF0aW9uTmV3RnVuY3Rpb25XaXRoSW52
YWxpZGF0ZWRSZWFsbG9jYXRpb25XYXRjaHBvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmNwcAppbmRleCAxMzA2MjU3ZTBjNzAxZTlm
MTNjZjk0NzVmZTcxMTNkNDAyNjE2NTk1Li45ZGI3MzU4MzhhNWRiNjg4YmFkNmJmZDQ2NzA3NWM1
NjA3ZDAzNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvblJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvblJhcmVEYXRhLmNwcApAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29u
c3QgQ2xhc3NJbmZvIEZ1bmN0aW9uUmFyZURhdGE6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uUmFyZURh
dGEiLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0
aW9uUmFyZURhdGEpIH07CiAKLUZ1bmN0aW9uUmFyZURhdGEqIEZ1bmN0aW9uUmFyZURhdGE6OmNy
ZWF0ZShWTSYgdm0pCitGdW5jdGlvblJhcmVEYXRhKiBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUo
Vk0mIHZtLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbikKIHsKLSAgICBGdW5jdGlvblJhcmVEYXRhKiBy
YXJlRGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUmFyZURhdGE+KHZt
LmhlYXApKSBGdW5jdGlvblJhcmVEYXRhKHZtKTsKKyAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJl
RGF0YSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUmFyZURhdGE+KHZtLmhl
YXApKSBGdW5jdGlvblJhcmVEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgcmFyZURhdGEtPmZpbmlz
aENyZWF0aW9uKHZtKTsKICAgICByZXR1cm4gcmFyZURhdGE7CiB9CkBAIC02MiwxMyArNjIsMTQg
QEAgdm9pZCBGdW5jdGlvblJhcmVEYXRhOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQocmFyZURhdGEtPm1fYm91bmRG
dW5jdGlvblN0cnVjdHVyZSk7CiB9CiAKLUZ1bmN0aW9uUmFyZURhdGE6OkZ1bmN0aW9uUmFyZURh
dGEoVk0mIHZtKQorRnVuY3Rpb25SYXJlRGF0YTo6RnVuY3Rpb25SYXJlRGF0YShWTSYgdm0sIEpT
RnVuY3Rpb24qIGZ1bmN0aW9uKQogICAgIDogQmFzZSh2bSwgdm0uZnVuY3Rpb25SYXJlRGF0YVN0
cnVjdHVyZS5nZXQoKSkKICAgICAsIG1fb2JqZWN0QWxsb2NhdGlvblByb2ZpbGUoKQogICAgIC8v
IFdlIGluaXRpYWxpemUgYmxpbmQgc28gdGhhdCBjaGFuZ2VzIHRvIHRoZSBwcm90b3R5cGUgYWZ0
ZXIgZnVuY3Rpb24gY3JlYXRpb24gYnV0IGJlZm9yZQogICAgIC8vIHRoZSBmaXJzdCBhbGxvY2F0
aW9uIGRvbid0IGRpc2FibGUgb3B0aW1pemF0aW9ucy4gVGhpcyBpc24ndCBzdXBlciBpbXBvcnRh
bnQsIHNpbmNlIHRoZQogICAgIC8vIGZ1bmN0aW9uIGlzIHVubGlrZWx5IHRvIGFsbG9jYXRlIGEg
cmFyZSBkYXRhIHVudGlsIHRoZSBmaXJzdCBhbGxvY2F0aW9uIGFueXdheS4KICAgICAsIG1fYWxs
b2NhdGlvblByb2ZpbGVXYXRjaHBvaW50U2V0KENsZWFyV2F0Y2hwb2ludCkKKyAgICAsIG1faGFz
UmVpZmllZE5hbWUoZnVuY3Rpb24tPmlzQW5vbnltb3VzQnVpbHRpbkZ1bmN0aW9uKCkpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFy
ZURhdGEuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUmFyZURhdGEu
aAppbmRleCBiMDE2MDZmYjhmMDhhZjY5Y2NmMmNjZWMxZmFkY2FmOWY5MTFjMGVmLi40ZWUyZDQ4
NTE0YTNmNjZiM2E5ZTkyMmIxMjljZjhmZjhmOWY0MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblJhcmVEYXRhLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25SYXJlRGF0YS5oCkBAIC01MCw3ICs1MCw3IEBAIGNs
YXNzIEZ1bmN0aW9uUmFyZURhdGEgZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKICAgICB0eXBlZGVm
IEpTQ2VsbCBCYXNlOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgU3RydWN0dXJlSXNJbW1vcnRhbDsKIAotICAgIHN0YXRp
YyBGdW5jdGlvblJhcmVEYXRhKiBjcmVhdGUoVk0mKTsKKyAgICBzdGF0aWMgRnVuY3Rpb25SYXJl
RGF0YSogY3JlYXRlKFZNJiwgSlNGdW5jdGlvbiopOwogCiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
bmVlZHNEZXN0cnVjdGlvbiA9IHRydWU7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwq
KTsKQEAgLTExOSw3ICsxMTksNyBAQCBjbGFzcyBGdW5jdGlvblJhcmVEYXRhIGZpbmFsIDogcHVi
bGljIEpTQ2VsbCB7CiAgICAgY2xhc3MgQWxsb2NhdGlvblByb2ZpbGVDbGVhcmluZ1dhdGNocG9p
bnQ7CiAKIHByb3RlY3RlZDoKLSAgICBGdW5jdGlvblJhcmVEYXRhKFZNJik7CisgICAgRnVuY3Rp
b25SYXJlRGF0YShWTSYsIEpTRnVuY3Rpb24qKTsKICAgICB+RnVuY3Rpb25SYXJlRGF0YSgpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cAppbmRleCA5MmJkMWI4OWU1OWRmZjkwNjM3YzFkNzE1Y2Y0ZGNmNjI4NzgwM2RmLi4yY2FlNDRk
YTcxYmQxN2ViYzM4YTA5ZDk2YjE3OGRkZWJiMmFhZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMTI1LDEwICsxMjUsNiBAQCB2b2lkIEpT
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bih2bSk7CiAgICAgQVNTRVJUKGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+KHZtLCB0aGlzKSk7
CiAgICAgQVNTRVJUKHR5cGUoKSA9PSBKU0Z1bmN0aW9uVHlwZSk7Ci0gICAgaWYgKGlzQW5vbnlt
b3VzQnVpbHRpbkZ1bmN0aW9uKCkpIHsKLSAgICAgICAgLy8gVGhpcyBpcyBhbm9ueW1vdXMgYnVp
bHRpbiBmdW5jdGlvbi4KLSAgICAgICAgcmFyZURhdGEodm0pLT5zZXRIYXNSZWlmaWVkTmFtZSgp
OwotICAgIH0KIH0KIAogdm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIE5h
dGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGludCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFt
ZSkKQEAgLTE0Niw3ICsxNDIsNyBAQCB2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgaW50IGxlbmd0aAogRnVuY3Rpb25S
YXJlRGF0YSogSlNGdW5jdGlvbjo6YWxsb2NhdGVSYXJlRGF0YShWTSYgdm0pCiB7CiAgICAgQVNT
RVJUKCFtX3JhcmVEYXRhKTsKLSAgICBGdW5jdGlvblJhcmVEYXRhKiByYXJlRGF0YSA9IEZ1bmN0
aW9uUmFyZURhdGE6OmNyZWF0ZSh2bSk7CisgICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEg
PSBGdW5jdGlvblJhcmVEYXRhOjpjcmVhdGUodm0sIHRoaXMpOwogCiAgICAgLy8gQSBERkcgY29t
cGlsYXRpb24gdGhyZWFkIG1heSBiZSB0cnlpbmcgdG8gcmVhZCB0aGUgcmFyZSBkYXRhCiAgICAg
Ly8gV2Ugd2FudCB0byBlbnN1cmUgdGhhdCBpdCBzZWVzIGl0IHByb3Blcmx5IGFsbG9jYXRlZApA
QCAtMTg2LDcgKzE4Miw3IEBAIEZ1bmN0aW9uUmFyZURhdGEqIEpTRnVuY3Rpb246OmFsbG9jYXRl
QW5kSW5pdGlhbGl6ZVJhcmVEYXRhKEV4ZWNTdGF0ZSogZXhlYywgc2l6CiAgICAgQVNTRVJUKGNh
blVzZUFsbG9jYXRpb25Qcm9maWxlKCkpOwogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAg
SlNPYmplY3QqIHByb3RvdHlwZSA9IHByb3RvdHlwZUZvckNvbnN0cnVjdGlvbih2bSwgZXhlYyk7
Ci0gICAgRnVuY3Rpb25SYXJlRGF0YSogcmFyZURhdGEgPSBGdW5jdGlvblJhcmVEYXRhOjpjcmVh
dGUodm0pOworICAgIEZ1bmN0aW9uUmFyZURhdGEqIHJhcmVEYXRhID0gRnVuY3Rpb25SYXJlRGF0
YTo6Y3JlYXRlKHZtLCB0aGlzKTsKICAgICByYXJlRGF0YS0+aW5pdGlhbGl6ZU9iamVjdEFsbG9j
YXRpb25Qcm9maWxlKHZtLCBnbG9iYWxPYmplY3Qodm0pLCBwcm90b3R5cGUsIGlubGluZUNhcGFj
aXR5LCB0aGlzKTsKIAogICAgIC8vIEEgREZHIGNvbXBpbGF0aW9uIHRocmVhZCBtYXkgYmUgdHJ5
aW5nIHRvIHJlYWQgdGhlIHJhcmUgZGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKaW5kZXggNzFlOGJkMTcwNWQ4ZGQ1YjA4Y2RhYzI0
YjdmNzhkYzE0MmJkZGU2Ni4uMTg3MjY4NGRhNDBjZWFjNGViOThhZDJkMDM4NTRiY2Q5ODRjNGFj
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklu
bGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5s
aW5lcy5oCkBAIC0xMTAsNyArMTEwLDExIEBAIGlubGluZSBib29sIEpTRnVuY3Rpb246Omhhc1Jl
aWZpZWRMZW5ndGgoKSBjb25zdAogCiBpbmxpbmUgYm9vbCBKU0Z1bmN0aW9uOjpoYXNSZWlmaWVk
TmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmFyZURhdGEgPyBtX3JhcmVEYXRhLT5oYXNS
ZWlmaWVkTmFtZSgpIDogZmFsc2U7CisgICAgaWYgKG1fcmFyZURhdGEpCisgICAgICAgIHJldHVy
biBtX3JhcmVEYXRhLT5oYXNSZWlmaWVkTmFtZSgpOworICAgIGlmIChpc0Fub255bW91c0J1aWx0
aW5GdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIGlubGluZSBib29sIEpTRnVuY3Rpb246OmNhblVzZUFsbG9jYXRpb25Qcm9maWxlKCkKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTJh
ZmRkZTE2MmUzYzYyOWNhNzc5MDk3ODQ5NWNiMTZlZjZhZTQyOS4uMzJkYWRlZDdkMDRhMjZlZjdi
Y2VmYmI0MjAwNDAwZDE2MGJmNjc1NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0wOS0wOSAgWXVzdWtl
IFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFByb21pc2UgcmVz
b2x2ZS9yZWplY3QgZnVuY3Rpb25zIHNob3VsZCBiZSBjcmVhdGVkIG1vcmUgZWZmaWNpZW50bHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9i
ZW5jaG1hcmtzL3Byb21pc2UtY3JlYXRpb24tbWFueS5qczogQWRkZWQuCisgICAgICAgIChleGVj
dXRvcik6CisKIDIwMTktMDktMDcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFRoZSBqc2Mgc2hlbGwgc2hvdWxkIGFsbG93IGRpc2FibGluZyBvZiB0aGUgR2lnYWNh
Z2UgZm9yIHRlc3RpbmcgcHVycG9zZXMuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9wcm9taXNlLWNyZWF0aW9uLW1hbnkuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9w
cm9taXNlLWNyZWF0aW9uLW1hbnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFhZWVlODQ4YzkwZjI2ZDBmZTQ1
Mjk3NWVjNmU0MjhmNjg4ODhlNwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5j
aG1hcmtzL3Byb21pc2UtY3JlYXRpb24tbWFueS5qcwpAQCAtMCwwICsxLDYgQEAKK2Z1bmN0aW9u
IGV4ZWN1dG9yKHJlc29sdmUsIHJlamVjdCkgeworfQorbm9JbmxpbmUoZXhlY3V0b3IpOyAvLyBF
bnN1cmUgYHJlc29sdmVgIGFuZCBgcmVqZWN0YCdzIG1hdGVyaWFsaXphdGlvbi4KKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAgICBuZXcgUHJvbWlzZShleGVjdXRvcik7Cg==
</data>
<flag name="review"
          id="393988"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>