<?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>44591</bug_id>
          
          <creation_ts>2010-08-25 00:45:31 -0700</creation_ts>
          <short_desc>Deploy adoptPtr to WebCore/loader</short_desc>
          <delta_ts>2010-08-26 00:28:22 -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>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269065</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 00:45:31 -0700</bug_when>
    <thetext>Deploy adoptPtr to WebCore/loader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269067</commentid>
    <comment_count>1</comment_count>
      <attachid>65382</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 00:49:12 -0700</bug_when>
    <thetext>Created attachment 65382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269099</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-25 02:01:42 -0700</bug_when>
    <thetext>Attachment 65382 did not build on chromium:
Build output: http://queues.webkit.org/results/3805075</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269296</commentid>
    <comment_count>3</comment_count>
      <attachid>65429</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 09:47:53 -0700</bug_when>
    <thetext>Created attachment 65429
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269317</commentid>
    <comment_count>4</comment_count>
      <attachid>65429</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-25 10:17:00 -0700</bug_when>
    <thetext>Comment on attachment 65429
Patch for landing

I don&apos;t think that using adoptPtr on classes derived from CachedResource is helpful until we figure out the ownership approach. Adding adoptPtr/leakPtr to call sites doesn&apos;t do a lot of harm, but I also don&apos;t think it does much good.

Since no icon database is ever deleted, it is too bad we are compiling code that calls the icon database destructor. It might be better for us to come up with a different way to handle immortal objects, rather than using OwnPtr which will compile in never-called code paths that destroy the object. I suggest omitting the IconDatabase changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269401</commentid>
    <comment_count>5</comment_count>
      <attachid>65451</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-25 11:40:01 -0700</bug_when>
    <thetext>Created attachment 65451
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269684</commentid>
    <comment_count>6</comment_count>
      <attachid>65451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 19:32:14 -0700</bug_when>
    <thetext>Comment on attachment 65451
Patch for landing

Rejecting patch 65451 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--wait-for-httpd&apos;, &apos;--ignore-tests&apos;, &apos;compositing,media&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20823 test cases.
svg/dom/SVGScriptElement/script-set-href.svg -&gt; failed

Exiting early after 1 failures. 18347 tests run.
542.96s total testing time

18346 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
26 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3740638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269733</commentid>
    <comment_count>7</comment_count>
      <attachid>65451</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 23:20:39 -0700</bug_when>
    <thetext>Comment on attachment 65451
Patch for landing

Another flaky test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269755</commentid>
    <comment_count>8</comment_count>
      <attachid>65451</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-26 00:28:17 -0700</bug_when>
    <thetext>Comment on attachment 65451
Patch for landing

Clearing flags on attachment: 65451

Committed r66083: &lt;http://trac.webkit.org/changeset/66083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269756</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-26 00:28:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65382</attachid>
            <date>2010-08-25 00:49:12 -0700</date>
            <delta_ts>2010-08-25 09:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44591-20100825004910.patch</filename>
            <type>text/plain</type>
            <size>19919</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTBkYjVlYzQyYTM4NDcxZmVkNzlhNGQxOWI4YWEzODRjYmZlYjBmYi4uMTAxMjA1MTA5YzE5NWRk
MGNmNjNkNmQ5M2UxYzNmMzlkMDE4ZWQ0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wOC0yNSAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlcGxveSBhZG9wdFB0ciB0byBXZWJDb3JlL2xvYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1OTEKKwor
ICAgICAgICBUaGlzIHBhdGNoIGNvdmVycyB0aGUgZWFzeSBjYXNlcy4gIFRoZXJlIGFyZSBhIGhh
bmRmdWwgb2YgdG91Z2hlciBjYXNlcworICAgICAgICB0aGF0IEknbSBsZWF2aW5nIHRvIGEgZnV0
dXJlIHBhdGNoLiAgSSBmaWxlZCBvbmUgYnVnIGFib3V0IGEgcG9zc2libGUKKyAgICAgICAgbWVt
b3J5IGxlYWsgYW5kIEkgZW1haWxlZCB3ZWJraXQtZGV2IGFib3V0IHNvbWUgaW5mcmFzdHJ1Y3R1
cmUgd2UnbGwKKyAgICAgICAgbmVlZCB0byB0YWNrbGUgc29tZSBvZiB0aGUgaGFyZGVyIGNhc2Vz
LgorCisgICAgICAgICogbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFhCTERvY3VtZW50OjpDYWNoZWRYQkxEb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRYQkxEb2N1bWVudDo6fkNhY2hlZFhCTERvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFhCTERvY3VtZW50OjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkWEJMRG9jdW1lbnQ6OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1l
bnQ6OmNoZWNrTm90aWZ5KToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhCTERvY3VtZW50Ojpkb2N1bWVudCk6CisgICAgICAg
ICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQpOgorICAgICAgICAo
V2ViQ29yZTo6aXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCk6CisgICAg
ICAgICogbG9hZGVyL0RvY0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6
OnJlcXVlc3RQcmVsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OkRvY3VtZW50TG9hZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphZGRBbGxBcmNoaXZlUmVzb3VyY2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjphZGRBcmNoaXZlUmVzb3VyY2UpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQpOgorICAgICAgICAqIGxvYWRl
ci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFn
ZSk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQcm9ncmVzc1RyYWNrZXI6OmluY3JlbWVudFByb2dyZXNzKToKKyAgICAgICAgKiBsb2Fk
ZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hl
ZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hl
ZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVkaXJl
Y3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6
UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbik6CisgICAgICAgICog
bG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2ZURhdGEpOgor
ICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWZhdWx0Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Omljb25EYXRhYmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpyZWFkeVNRTGl0ZVN0YXRlbWVudCk6CisgICAgICAgICogbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmg6CisgICAgICAgICAgICAtIE5vdGljZSB0aGF0IHRoZSBkZXN0cnVj
dG9yIGhhcyBBU1NFUlRfTk9UX1JFQUNIRUQgc28gbWFraW5nIGl0CisgICAgICAgICAgICAgIHB1
YmxpYyBpc24ndCBtdWNoIG9mIGEgcmlzay4KKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0
YWJhc2VOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omljb25EYXRhYmFzZSk6CisgICAgICAg
ICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9h
ZGVyOjpjcmVhdGUpOgorCiAyMDEwLTA4LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRY
QkxEb2N1bWVudC5jcHAKaW5kZXggMGZmMTdmMjg2NWZlNTUxYWM2NGI4MDgxZjhlNzU3N2IyMGJk
ZjZkMS4uZDEwMThhMmU2NDM5NjA0MGVjMDk4ODc1NmY5YTA1OWZiYjUwNGI0YSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9h
ZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcApAQCAtMzcsMjUgKzM3LDIzIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIENhY2hlZFhCTERvY3VtZW50OjpDYWNoZWRYQkxEb2N1bWVudChjb25zdCBT
dHJpbmcgJnVybCkKLTogQ2FjaGVkUmVzb3VyY2UodXJsLCBYQkwpLCBtX2RvY3VtZW50KDApCisg
ICAgOiBDYWNoZWRSZXNvdXJjZSh1cmwsIFhCTCkKIHsKICAgICAvLyBJdCdzIFhNTCB3ZSB3YW50
LgogICAgIHNldEFjY2VwdCgidGV4dC94bWwsIGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24v
eGh0bWwreG1sLCB0ZXh0L3hzbCwgYXBwbGljYXRpb24vcnNzK3htbCwgYXBwbGljYXRpb24vYXRv
bSt4bWwiKTsKIAotICAgIG1fZGVjb2RlciA9IG5ldyBUZXh0UmVzb3VyY2VEZWNvZGVyKCJhcHBs
aWNhdGlvbi94bWwiKTsKKyAgICBtX2RlY29kZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVh
dGUoImFwcGxpY2F0aW9uL3htbCIpOwogfQogCiBDYWNoZWRYQkxEb2N1bWVudDo6fkNhY2hlZFhC
TERvY3VtZW50KCkKIHsKLSAgICBpZiAobV9kb2N1bWVudCkKLSAgICAgICAgbV9kb2N1bWVudC0+
ZGVyZWYoKTsKIH0KIAogdm9pZCBDYWNoZWRYQkxEb2N1bWVudDo6cmVmKENhY2hlZFJlc291cmNl
Q2xpZW50ICpjKQogewogICAgIENhY2hlZFJlc291cmNlOjpyZWYoYyk7CiAgICAgaWYgKCFtX2xv
YWRpbmcpCi0gICAgICAgIGMtPnNldFhCTERvY3VtZW50KG1fdXJsLCBtX2RvY3VtZW50KTsKKyAg
ICAgICAgYy0+c2V0WEJMRG9jdW1lbnQobV91cmwsIGRvY3VtZW50KCkpOwogfQogCiB2b2lkIENh
Y2hlZFhCTERvY3VtZW50OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIGNocykKQEAgLTc1LDgg
KzczLDkgQEAgdm9pZCBDYWNoZWRYQkxEb2N1bWVudDo6ZGF0YShWZWN0b3I8Y2hhcj4mIGRhdGEs
IGJvb2wgKQogICAgIAogICAgIEFTU0VSVCghbV9kb2N1bWVudCk7CiAgICAgCi0gICAgbV9kb2N1
bWVudCA9IG5ldyBYQkw6OlhCTERvY3VtZW50KCk7Ci0gICAgbV9kb2N1bWVudC0+cmVmKCk7Cisg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCB1c2UgYSBjcmVhdGUgbWV0aG9kIGhlcmUsIGJ1dCBJIGNh
bid0IGZpbmQgdGhlCisgICAgLy8gZGVmaW5pdGlvbiBvZiBYQkxEb2N1bWVudC4KKyAgICBtX2Rv
Y3VtZW50ID0gYWRvcHRSZWYobmV3IFhCTDo6WEJMRG9jdW1lbnQoKSk7CiAgICAgbV9kb2N1bWVu
dC0+b3BlbigpOwogICAgIAogICAgIG1fZG9jdW1lbnQtPndyaXRlKG1fZGVjb2Rlci0+ZGVjb2Rl
KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwpAQCAtOTUsNyArOTQsNyBAQCB2b2lkIENhY2hl
ZFhCTERvY3VtZW50OjpjaGVja05vdGlmeSgpCiAgICAgCiAgICAgQ2FjaGVkUmVzb3VyY2VDbGll
bnRXYWxrZXIgdyhtX2NsaWVudHMpOwogICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVudCAq
YyA9IHcubmV4dCgpKQotICAgICAgICBjLT5zZXRYQkxEb2N1bWVudChtX3VybCwgbV9kb2N1bWVu
dCk7CisgICAgICAgIGMtPnNldFhCTERvY3VtZW50KG1fdXJsLCBkb2N1bWVudCgpKTsKIH0KIAog
dm9pZCBDYWNoZWRYQkxEb2N1bWVudDo6ZXJyb3IoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvQ2FjaGVkWEJMRG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50
LmgKaW5kZXggOWE4ZDM2Njc0YjBjNGZjOTE1ZDgzMjAzYjc1ZjY1MWJjMWI5MjYwOC4uM2YxYzI1
MzQ0OWNiMzkyMTgxYThiZmVjYTM2NDViNTUyNDIwNWQwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxE
b2N1bWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKICAgICBjbGFz
cyBSZXF1ZXN0OwogICAgIGNsYXNzIERvY0xvYWRlcjsKQEAgLTQyLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBDYWNoZWRYQkxEb2N1bWVudChjb25zdCBTdHJpbmcmIHVy
bCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hlZFhCTERvY3VtZW50KCk7CiAgICAgICAgIAotICAg
ICAgICBYQkw6OlhCTERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1l
bnQ7IH0KKyAgICAgICAgWEJMOjpYQkxEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50LmdldCgpOyB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRk
Q2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kik7CiAgICAgICAgIApAQCAtNTQsNyArNTUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY2hlY2tOb3RpZnkoKTsKICAgICAg
ICAgCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBYQkw6OlhCTERvY3VtZW50KiBtX2RvY3VtZW50
OworICAgICAgICBSZWZQdHI8WEJMOjpYQkxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICAgICAg
UmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCA2MzBmMmI3ODliMzU0
MGUxMGQ1ZDg1YzdkM2RmNTk1MDgwNTEzZDQ2Li5mNTEwNzA0N2VjMDcyNjBiNzg3YmNkZjFhMmI3
YzBlZTkwOTBkYWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5jcHAKQEAgLTcxLDkgKzcxLDkgQEAgYm9vbCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVx
dWVzdChjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYKIH0KIAogdHlw
ZWRlZiBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBIVFRQSGVhZGVyU2V0Owotc3Rh
dGljIEhUVFBIZWFkZXJTZXQqIGNyZWF0ZUFsbG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVy
c1NldCgpCitzdGF0aWMgUGFzc093blB0cjxIVFRQSGVhZGVyU2V0PiBjcmVhdGVBbGxvd2VkQ3Jv
c3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQoKQogewotICAgIEhUVFBIZWFkZXJTZXQqIGhlYWRl
clNldCA9IG5ldyBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPjsKKyAgICBPd25QdHI8
SFRUUEhlYWRlclNldD4gaGVhZGVyU2V0ID0gYWRvcHRQdHIobmV3IEhhc2hTZXQ8U3RyaW5nLCBD
YXNlRm9sZGluZ0hhc2g+KTsKICAgICAKICAgICBoZWFkZXJTZXQtPmFkZCgiY2FjaGUtY29udHJv
bCIpOwogICAgIGhlYWRlclNldC0+YWRkKCJjb250ZW50LWxhbmd1YWdlIik7CkBAIC04MiwxMiAr
ODIsMTIgQEAgc3RhdGljIEhUVFBIZWFkZXJTZXQqIGNyZWF0ZUFsbG93ZWRDcm9zc09yaWdpblJl
c3BvbnNlSGVhZGVyc1NldCgpCiAgICAgaGVhZGVyU2V0LT5hZGQoImxhc3QtbW9kaWZpZWQiKTsK
ICAgICBoZWFkZXJTZXQtPmFkZCgicHJhZ21hIik7CiAKLSAgICByZXR1cm4gaGVhZGVyU2V0Owor
ICAgIHJldHVybiBoZWFkZXJTZXQucmVsZWFzZSgpOwogfQogCiBib29sIGlzT25BY2Nlc3NDb250
cm9sUmVzcG9uc2VIZWFkZXJXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIEF0
b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhIVFRQSGVhZGVyU2V0KiwgYWxsb3dlZENyb3NzT3Jp
Z2luUmVzcG9uc2VIZWFkZXJzID0gY3JlYXRlQWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFk
ZXJzU2V0KCkpOworICAgIEF0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpYyhIVFRQSGVhZGVyU2V0
KiwgYWxsb3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzID0gY3JlYXRlQWxsb3dlZENyb3Nz
T3JpZ2luUmVzcG9uc2VIZWFkZXJzU2V0KCkubGVha1B0cigpKTsKIAogICAgIHJldHVybiBhbGxv
d2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMtPmNvbnRhaW5zKG5hbWUpOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0RvY0xv
YWRlci5jcHAKaW5kZXggYmMxMDJkMWZmMWQ4NWEyMDhhZWQ4ZDU0Yzc0OTlkMGEzOTI5MDk1ZS4u
M2IwMzQ2ZDM3YTk2MDRkMjYwZWM0YjNhZjY3NWU3YmJiNzVkMTdjYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIu
Y3BwCkBAIC00NDEsNyArNDQxLDcgQEAgdm9pZCBEb2NMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb24KICAgICByZXNv
dXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKIAogICAgIGlmICghbV9wcmVsb2FkcykKLSAg
ICAgICAgbV9wcmVsb2Fkcy5zZXQobmV3IExpc3RIYXNoU2V0PENhY2hlZFJlc291cmNlKj4pOwor
ICAgICAgICBtX3ByZWxvYWRzID0gYWRvcHRQdHIobmV3IExpc3RIYXNoU2V0PENhY2hlZFJlc291
cmNlKj4pOwogICAgIG1fcHJlbG9hZHMtPmFkZChyZXNvdXJjZSk7CiAKICNpZiBQUkVMT0FEX0RF
QlVHCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggOTc5ODY0MmU1OWMwYmY2YjY1MjFl
ZTUyZWZhNjMwODNlODQ1NGEyNi4uY2RjNzExYzlkNzE5MDVmMDM5Mjg4MWRlNGI5ZmJhNGUxODkx
MWNkMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtODcsNyArODcsNyBAQCBEb2N1
bWVudExvYWRlcjo6RG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXEsIGNv
bnN0IFN1YnN0aXR1dGVEYXRhJgogICAgICwgbV9zdWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRp
bWVyKHRoaXMsICZEb2N1bWVudExvYWRlcjo6c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1l
ckZpcmVkKQogICAgICwgbV9kaWRDcmVhdGVHbG9iYWxIaXN0b3J5RW50cnkoZmFsc2UpCiAjaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLSAgICAsIG1fYXBwbGljYXRpb25DYWNo
ZUhvc3QobmV3IEFwcGxpY2F0aW9uQ2FjaGVIb3N0KHRoaXMpKQorICAgICwgbV9hcHBsaWNhdGlv
bkNhY2hlSG9zdChhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhvc3QodGhpcykpKQogI2Vu
ZGlmCiB7CiB9CkBAIC00MDQsNyArNDA0LDcgQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6aXNMb2Fk
aW5nSW5BUElTZW5zZSgpIGNvbnN0CiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRBbGxBcmNoaXZl
UmVzb3VyY2VzKEFyY2hpdmUqIGFyY2hpdmUpCiB7CiAgICAgaWYgKCFtX2FyY2hpdmVSZXNvdXJj
ZUNvbGxlY3Rpb24pCi0gICAgICAgIG1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5zZXQobmV3
IEFyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24pOworICAgICAgICBtX2FyY2hpdmVSZXNvdXJjZUNv
bGxlY3Rpb24gPSBhZG9wdFB0cihuZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7CiAgICAg
ICAgIAogICAgIEFTU0VSVChhcmNoaXZlKTsKICAgICBpZiAoIWFyY2hpdmUpCkBAIC00MTgsNyAr
NDE4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkQWxsQXJjaGl2ZVJlc291cmNlcyhBcmNo
aXZlKiBhcmNoaXZlKQogdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkQXJjaGl2ZVJlc291cmNlKFBh
c3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSkKIHsKICAgICBpZiAoIW1fYXJjaGl2
ZVJlc291cmNlQ29sbGVjdGlvbikKLSAgICAgICAgbV9hcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9u
LnNldChuZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7CisgICAgICAgIG1fYXJjaGl2ZVJl
c291cmNlQ29sbGVjdGlvbiA9IGFkb3B0UHRyKG5ldyBBcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9u
KTsKICAgICAgICAgCiAgICAgQVNTRVJUKHJlc291cmNlKTsKICAgICBpZiAoIXJlc291cmNlKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggMTZmMTE0
ZGZiMjk2OGRmMDUwYTAyYjdhY2M5OTU2MmFmOGQ0NWY2NS4uYTc5MjE0NDc1ZjU0MzQ4M2IzMGY4
NWZlNjI4OTE0MTgwZWQzOTZhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCkBAIC04Myw3ICs4Myw3IEBAIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50KiBkb2N1bWVudCwgVGhyZWFkYWJsCiAg
ICAgCiAgICAgQVNTRVJUKG1fb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPT0gVXNl
QWNjZXNzQ29udHJvbCk7CiAKLSAgICBPd25QdHI8UmVzb3VyY2VSZXF1ZXN0PiBjcm9zc09yaWdp
blJlcXVlc3QobmV3IFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSk7CisgICAgT3duUHRyPFJlc291
cmNlUmVxdWVzdD4gY3Jvc3NPcmlnaW5SZXF1ZXN0ID0gYWRvcHRQdHIobmV3IFJlc291cmNlUmVx
dWVzdChyZXF1ZXN0KSk7CiAgICAgY3Jvc3NPcmlnaW5SZXF1ZXN0LT5yZW1vdmVDcmVkZW50aWFs
cygpOwogICAgIGNyb3NzT3JpZ2luUmVxdWVzdC0+c2V0QWxsb3dDb29raWVzKG1fb3B0aW9ucy5h
bGxvd0NyZWRlbnRpYWxzKTsKIApAQCAtMTk1LDcgKzE5NSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoU3VicmVzb3VyY2VMb2FkZXIqIGxvYWRl
ciwgY29uCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBPd25QdHI8
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IHByZWZsaWdodFJlc3VsdChuZXcg
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVu
dGlhbHMpKTsKKyAgICAgICAgT3duUHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtPiBwcmVmbGlnaHRSZXN1bHQgPSBhZG9wdFB0cihuZXcgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKICAgICAgICAgaWYg
KCFwcmVmbGlnaHRSZXN1bHQtPnBhcnNlKHJlc3BvbnNlLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNj
cmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3NzT3Jp
Z2luTWV0aG9kKG1fYWN0dWFsUmVxdWVzdC0+aHR0cE1ldGhvZCgpLCBhY2Nlc3NDb250cm9sRXJy
b3JEZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Ny
b3NzT3JpZ2luSGVhZGVycyhtX2FjdHVhbFJlcXVlc3QtPmh0dHBIZWFkZXJGaWVsZHMoKSwgYWNj
ZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9JbWFnZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXgg
ZDE2OWQzZTY3YWVhZmUyOTU3M2YzNTg5NGE4ZGM4ZmJiYTE3ZDAwZC4uMTQ0NTRkYjEzOTViYjY1
YWUxZTkzMWI1M2VhYmMwN2JkOGFiMWQ5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvSW1h
Z2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcApAQCAtMTU5
LDcgKzE1OSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKICAgICAg
ICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAgICBib29sIGF1dG9Mb2FkT3RoZXJJ
bWFnZXMgPSBkb2N1bWVudC0+ZG9jTG9hZGVyKCktPmF1dG9Mb2FkSW1hZ2VzKCk7CiAgICAgICAg
ICAgICBkb2N1bWVudC0+ZG9jTG9hZGVyKCktPnNldEF1dG9Mb2FkSW1hZ2VzKGZhbHNlKTsKLSAg
ICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdlKHNvdXJjZVVSSShhdHRyKSk7Cisg
ICAgICAgICAgICBuZXdJbWFnZSA9IGFkb3B0UHRyKG5ldyBDYWNoZWRJbWFnZShzb3VyY2VVUkko
YXR0cikpKS5sZWFrUHRyKCk7CiAgICAgICAgICAgICBuZXdJbWFnZS0+c2V0TG9hZGluZyh0cnVl
KTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXREb2NMb2FkZXIoZG9jdW1lbnQtPmRvY0xvYWRl
cigpKTsKICAgICAgICAgICAgIGRvY3VtZW50LT5kb2NMb2FkZXIoKS0+bV9kb2N1bWVudFJlc291
cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZSk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmlu
ZGV4IGQyYzY0MTA0YzU2NTE4YTcxODg4ZDg5ZGViMGUwNDFiZGVmZWU2NWEuLjYwYzZmMzBlNDhl
NzA0NDdiMmUwMThkZDdjMjM5NDFhYzNjN2JiYWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC01
Myw3ICs1Myw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lKiBmcmFtZSwgY29u
c3QgS1VSTCYgdXJsKQogICAgIGlmICghU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJl
cihyZXF1ZXN0LnVybCgpLCBmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSkpCiAg
ICAgICAgIHJlcXVlc3Quc2V0SFRUUFJlZmVycmVyKGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdS
ZWZlcnJlcigpKTsKICAgICBmcmFtZS0+bG9hZGVyKCktPmFkZEV4dHJhRmllbGRzVG9TdWJyZXNv
dXJjZVJlcXVlc3QocmVxdWVzdCk7Ci0gICAgT3duUHRyPFBpbmdMb2FkZXI+IHBpbmdMb2FkZXIo
bmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpKTsKKyAgICBPd25QdHI8UGluZ0xvYWRlcj4g
cGluZ0xvYWRlciA9IGFkb3B0UHRyKG5ldyBQaW5nTG9hZGVyKGZyYW1lLCByZXF1ZXN0KSk7CiAg
ICAgCiAgICAgLy8gTGVhayB0aGUgcGluZyBsb2FkZXIsIHNpbmNlIGl0IHdpbGwga2lsbCBpdHNl
bGYgYXMgc29vbiBhcyBpdCByZWNlaXZlcyBhIHJlc3BvbnNlLgogICAgIFBpbmdMb2FkZXIqIGxl
YWtlZFBpbmdMb2FkZXIgPSBwaW5nTG9hZGVyLmxlYWtQdHIoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1Ry
YWNrZXIuY3BwCmluZGV4IDg4MjMxYzhjZGJlYzMxYzY0Y2Y1MTRlOTM2YzYzYmJmNTU0YWE4MWYu
LjdmNjFjZDE3MWQ4NWRlODlkOTdmMGM0ZTgwMDZjYzFiOTYzODJlOWUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUHJv
Z3Jlc3NUcmFja2VyLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgUHJvZ3Jlc3NUcmFja2Vy
OjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlCiAgICAgICAgIGl0ZW0tPmJ5dGVzUmVjZWl2ZWQgPSAwOwogICAgICAgICBpdGVtLT5lc3Rp
bWF0ZWRMZW5ndGggPSBlc3RpbWF0ZWRMZW5ndGg7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fcHJv
Z3Jlc3NJdGVtcy5zZXQoaWRlbnRpZmllciwgbmV3IFByb2dyZXNzSXRlbShlc3RpbWF0ZWRMZW5n
dGgpKTsKKyAgICAgICAgbV9wcm9ncmVzc0l0ZW1zLnNldChpZGVudGlmaWVyLCBhZG9wdFB0cihu
ZXcgUHJvZ3Jlc3NJdGVtKGVzdGltYXRlZExlbmd0aCkpLmxlYWtQdHIoKSk7CiB9CiAKIHZvaWQg
UHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIv
UmVkaXJlY3RTY2hlZHVsZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIu
Y3BwCmluZGV4IDI2ZDc3ODc0MTY1YmJkMTAzN2NjNWQ4YmY1MmEzMjQ3MGZlNDM4MWYuLmQzYjZj
NTM5MTAwOTQ1YmQ5ZjJmODY3NzE0NTU2OTRkY2M2MGVhZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZWRpcmVj
dFNjaGVkdWxlci5jcHAKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVy
OjpzY2hlZHVsZVJlZGlyZWN0KGRvdWJsZSBkZWxheSwgY29uc3QgU3RyaW5nJiB1cmwpCiAKICAg
ICAvLyBXZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYgdGhlIHJlZnJlc2gg
dGltZW91dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8fCBkZWxheSA8PSBt
X3JlZGlyZWN0LT5kZWxheSgpKQotICAgICAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVkUmVkaXJl
Y3QoZGVsYXksIHVybCwgdHJ1ZSwgZGVsYXkgPD0gMSwgZmFsc2UpKTsKKyAgICAgICAgc2NoZWR1
bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZFJlZGlyZWN0KGRlbGF5LCB1cmwsIHRydWUsIGRlbGF5
IDw9IDEsIGZhbHNlKSkpOwogfQogCiBib29sIFJlZGlyZWN0U2NoZWR1bGVyOjptdXN0TG9ja0Jh
Y2tGb3J3YXJkTGlzdChGcmFtZSogdGFyZ2V0RnJhbWUsIGJvb2wgd2FzVXNlckdlc3R1cmUpCkBA
IC0yOTQsNyArMjk0LDcgQEAgdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlv
bkNoYW5nZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJgogICAgIC8vIFRoaXMgbWF5
IGhhcHBlbiB3aGVuIGEgZnJhbWUgY2hhbmdlcyB0aGUgbG9jYXRpb24gb2YgYW5vdGhlciBmcmFt
ZS4KICAgICBib29sIGR1cmluZ0xvYWQgPSAhbG9hZGVyLT5zdGF0ZU1hY2hpbmUoKS0+Y29tbWl0
dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVk
TG9jYXRpb25DaGFuZ2UodXJsLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QsIHdhc1VzZXJHZXN0dXJlLCBkdXJpbmdMb2FkKSk7CisgICAgc2NoZWR1bGUoYWRvcHRQ
dHIobmV3IFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5
LCBsb2NrQmFja0ZvcndhcmRMaXN0LCB3YXNVc2VyR2VzdHVyZSwgZHVyaW5nTG9hZCkpKTsKIH0K
IAogdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVGb3JtU3VibWlzc2lvbihQYXNzUmVm
UHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uKQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQg
UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24oUGFzc1JlZlB0cjxGb3Jt
U3VibWlzc2lvbj4gc3VibWlzCiAKICAgICBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSBtdXN0
TG9ja0JhY2tGb3J3YXJkTGlzdChtX2ZyYW1lLCBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCkpIHx8IChzdWJtaXNzaW9uLT5zdGF0ZSgpLT5mb3JtU3VibWlzc2lv
blRyaWdnZXIoKSA9PSBTdWJtaXR0ZWRCeUphdmFTY3JpcHQgJiYgbV9mcmFtZS0+dHJlZSgpLT5w
YXJlbnQoKSk7CiAKLSAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVkRm9ybVN1Ym1pc3Npb24oc3Vi
bWlzc2lvbiwgbG9ja0JhY2tGb3J3YXJkTGlzdCwgZHVyaW5nTG9hZCkpOworICAgIHNjaGVkdWxl
KGFkb3B0UHRyKG5ldyBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbihzdWJtaXNzaW9uLCBsb2NrQmFj
a0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkKSkpOwogfQogCiB2b2lkIFJlZGlyZWN0U2NoZWR1bGVy
OjpzY2hlZHVsZVJlZnJlc2goYm9vbCB3YXNVc2VyR2VzdHVyZSkKQEAgLTMyNSw3ICszMjUsNyBA
QCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZVJlZnJlc2goYm9vbCB3YXNVc2VyR2Vz
dHVyZSkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2No
ZWR1bGUobmV3IFNjaGVkdWxlZFJlZnJlc2godXJsLnN0cmluZygpLCBtX2ZyYW1lLT5sb2FkZXIo
KS0+b3V0Z29pbmdSZWZlcnJlcigpLCB3YXNVc2VyR2VzdHVyZSkpOworICAgIHNjaGVkdWxlKGFk
b3B0UHRyKG5ldyBTY2hlZHVsZWRSZWZyZXNoKHVybC5zdHJpbmcoKSwgbV9mcmFtZS0+bG9hZGVy
KCktPm91dGdvaW5nUmVmZXJyZXIoKSwgd2FzVXNlckdlc3R1cmUpKSk7CiB9CiAKIHZvaWQgUmVk
aXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlSGlzdG9yeU5hdmlnYXRpb24oaW50IHN0ZXBzKQpAQCAt
MzUyLDcgKzM1Miw3IEBAIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlSGlzdG9yeU5h
dmlnYXRpb24oaW50IHN0ZXBzKQogI2VuZGlmCiAgICAgCiAgICAgLy8gSW4gYWxsIG90aGVyIGNh
c2VzLCBzY2hlZHVsZSB0aGUgaGlzdG9yeSB0cmF2ZXJzYWwgdG8gb2NjdXIgYXN5bmNocm9ub3Vz
bHkuCi0gICAgc2NoZWR1bGUobmV3IFNjaGVkdWxlZEhpc3RvcnlOYXZpZ2F0aW9uKHN0ZXBzKSk7
CisgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZEhpc3RvcnlOYXZpZ2F0aW9uKHN0
ZXBzKSkpOwogfQogCiB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjp0aW1lckZpcmVkKFRpbWVyPFJl
ZGlyZWN0U2NoZWR1bGVyPiopCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJl
YWRhYmxlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIu
Y3BwCmluZGV4IDQ3ODlhMDU0OWE2YWIxOWNhOGM2OGIyMDAxZThmYTg1MDBmMzgxMjEuLjRkMThj
MjhmNTBlZDcxMGZkYzk0MTkyMGY1OTYyOTc1N2Y0MDQxOTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1dv
cmtlclRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIHZvaWQg
d29ya2VyQ29udGV4dERpZFJlY2VpdmVEYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFJlZlB0cjwKIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJp
ZGdlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
CiB7Ci0gICAgT3duUHRyPFZlY3RvcjxjaGFyPiA+IHZlY3RvcihuZXcgVmVjdG9yPGNoYXI+KGxl
bmd0aFJlY2VpdmVkKSk7IC8vIG5lZWRzIHRvIGJlIGFuIE93blB0ciBmb3IgdXNhZ2Ugd2l0aCBj
cmVhdGVDYWxsYmFja1Rhc2suCisgICAgT3duUHRyPFZlY3RvcjxjaGFyPiA+IHZlY3RvciA9IGFk
b3B0UHRyKG5ldyBWZWN0b3I8Y2hhcj4obGVuZ3RoUmVjZWl2ZWQpKTsgLy8gbmVlZHMgdG8gYmUg
YW4gT3duUHRyIGZvciB1c2FnZSB3aXRoIGNyZWF0ZUNhbGxiYWNrVGFzay4KICAgICBtZW1jcHko
dmVjdG9yLT5kYXRhKCksIGRhdGEsIGxlbmd0aFJlY2VpdmVkKTsKICAgICBtX2xvYWRlclByb3h5
LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyQ29udGV4dChjcmVhdGVDYWxsYmFja1Rhc2soJndvcmtl
ckNvbnRleHREaWRSZWNlaXZlRGF0YSwgbV93b3JrZXJDbGllbnRXcmFwcGVyLCB2ZWN0b3IucmVs
ZWFzZSgpKSwgbV90YXNrTW9kZSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9pY29u
L0ljb25EYXRhYmFzZS5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAK
aW5kZXggNTBhNzIyODgxZjIzMzRkZjRlODRjNmU2YmVkMzkwMjk1ZTNiNDU0Zi4uYmZmNGZiOWVj
MzU1ZDgwNGIzYWM3NmYyZGRlNWM5YmY5NjhmNzcwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRh
dGFiYXNlLmNwcApAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgU3RyaW5nIHVybEZvckxvZ2dpbmco
Y29uc3QgU3RyaW5nJiB1cmwpCiAKIHN0YXRpYyBJY29uRGF0YWJhc2VDbGllbnQqIGRlZmF1bHRD
bGllbnQoKSAKIHsKLSAgICBzdGF0aWMgSWNvbkRhdGFiYXNlQ2xpZW50KiBkZWZhdWx0Q2xpZW50
ID0gbmV3IEljb25EYXRhYmFzZUNsaWVudCgpOworICAgIHN0YXRpYyBJY29uRGF0YWJhc2VDbGll
bnQqIGRlZmF1bHRDbGllbnQgPSBhZG9wdFB0cihuZXcgSWNvbkRhdGFiYXNlQ2xpZW50KCkpLmxl
YWtQdHIoKTsKICAgICByZXR1cm4gZGVmYXVsdENsaWVudDsKIH0KIApAQCAtOTQsNyArOTQsNyBA
QCBJY29uRGF0YWJhc2UqIGljb25EYXRhYmFzZSgpCiB7CiAgICAgaWYgKCFzaGFyZWRJY29uRGF0
YWJhc2UpIHsKICAgICAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwotICAgICAgICBzaGFyZWRJY29uRGF0YWJhc2UgPSBuZXcgSWNvbkRhdGFiYXNlOworICAgICAg
ICBzaGFyZWRJY29uRGF0YWJhc2UgPSBhZG9wdFB0cihuZXcgSWNvbkRhdGFiYXNlKS5sZWFrUHRy
KCk7CiAgICAgfQogICAgIHJldHVybiBzaGFyZWRJY29uRGF0YWJhc2U7CiB9CkBAIC0xODMyLDcg
KzE4MzIsNyBAQCBpbmxpbmUgdm9pZCByZWFkeVNRTGl0ZVN0YXRlbWVudChPd25QdHI8U1FMaXRl
U3RhdGVtZW50PiYgc3RhdGVtZW50LCBTUUxpdGVEYXRhYgogICAgICAgICBzdGF0ZW1lbnQuc2V0
KDApOwogICAgIH0KICAgICBpZiAoIXN0YXRlbWVudCkgewotICAgICAgICBzdGF0ZW1lbnQuc2V0
KG5ldyBTUUxpdGVTdGF0ZW1lbnQoZGIsIHN0cikpOworICAgICAgICBzdGF0ZW1lbnQgPSBhZG9w
dFB0cihuZXcgU1FMaXRlU3RhdGVtZW50KGRiLCBzdHIpKTsKICAgICAgICAgaWYgKHN0YXRlbWVu
dC0+cHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rKQogICAgICAgICAgICAgTE9HX0VSUk9SKCJQcmVw
YXJpbmcgc3RhdGVtZW50ICVzIGZhaWxlZCIsIHN0ci5hc2NpaSgpLmRhdGEoKSk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaCBiL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgKaW5kZXggOTc5M2QyMWJmZjM1OWI4MDg5OTEwZWEw
MjMxYjE3NTRlZGFiMTgxYy4uZjFmMjdlODU0ZDU3ZjVlNDVlMjFlNGM5YzlmMjA4YmY4NmU4YzIx
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuaAorKysgYi9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCkBAIC02Niw2ICs2Niw4IEBAIGNsYXNz
IEljb25EYXRhYmFzZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAKIC8vICoqKiBNYWluIFRocmVh
ZCBPbmx5ICoqKgogcHVibGljOgorICAgIH5JY29uRGF0YWJhc2UoKTsKKwogICAgIHZvaWQgc2V0
Q2xpZW50KEljb25EYXRhYmFzZUNsaWVudCopOwogCiAgICAgYm9vbCBvcGVuKGNvbnN0IFN0cmlu
ZyYgcGF0aCk7CkBAIC0xMDUsNyArMTA3LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIElj
b25EYXRhYmFzZSgpOwotICAgIH5JY29uRGF0YWJhc2UoKTsKICAgICBmcmllbmQgSWNvbkRhdGFi
YXNlKiBpY29uRGF0YWJhc2UoKTsKIAogI2lmIEVOQUJMRShJQ09OREFUQUJBU0UpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZU5vbmUuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2VOb25lLmNwcAppbmRleCA3YjdjYzlmNjIxN2NjYTIyODk1
ZjQyNzNkZjdmMTA3ZDI4Yzc0OWE5Li5kYWVlY2UwNTk4NzQ5ZDg0NWI5MTA0NzBhMzcyM2UzM2Ew
NjdiN2Y3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZU5vbmUu
Y3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlTm9uZS5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgU3RyaW5nIEljb25EYXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUo
KQogSWNvbkRhdGFiYXNlKiBpY29uRGF0YWJhc2UoKQogewogICAgIGlmICghc2hhcmVkSWNvbkRh
dGFiYXNlKQotICAgICAgICBzaGFyZWRJY29uRGF0YWJhc2UgPSBuZXcgSWNvbkRhdGFiYXNlOwor
ICAgICAgICBzaGFyZWRJY29uRGF0YWJhc2UgPSBhZG9wdFB0cihuZXcgSWNvbkRhdGFiYXNlKS5s
ZWFrUHRyKCk7CiAgICAgcmV0dXJuIHNoYXJlZEljb25EYXRhYmFzZTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkxvYWRlci5jcHAKaW5kZXggNmUyNzYyZjE3ZTA5ZGI5ZmQ3MWYxMWY5YjU2ZWZhNGY2
ODMxN2MwZi4uODc3YzgwZTcxNDE2NmZhZGMyZGZmMTNlOTVjYTMwMTA3MWI0NWU2MSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIEljb25Mb2FkZXI6Oklj
b25Mb2FkZXIoRnJhbWUqIGZyYW1lKQogCiBQYXNzT3duUHRyPEljb25Mb2FkZXI+IEljb25Mb2Fk
ZXI6OmNyZWF0ZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgcmV0dXJuIG5ldyBJY29uTG9hZGVyKGZy
YW1lKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEljb25Mb2FkZXIoZnJhbWUpKTsKIH0KIAog
SWNvbkxvYWRlcjo6fkljb25Mb2FkZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65429</attachid>
            <date>2010-08-25 09:47:53 -0700</date>
            <delta_ts>2010-08-25 11:39:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-44591-20100825094752.patch</filename>
            <type>text/plain</type>
            <size>18845</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTAtMDgtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIERlcGxveSBh
ZG9wdFB0ciB0byBXZWJDb3JlL2xvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1OTEKKworICAgICAgICBUaGlzIHBhdGNoIGNvdmVycyB0aGUg
ZWFzeSBjYXNlcy4gIFRoZXJlIGFyZSBhIGhhbmRmdWwgb2YgdG91Z2hlciBjYXNlcworICAgICAg
ICB0aGF0IEknbSBsZWF2aW5nIHRvIGEgZnV0dXJlIHBhdGNoLiAgSSBmaWxlZCBvbmUgYnVnIGFi
b3V0IGEgcG9zc2libGUKKyAgICAgICAgbWVtb3J5IGxlYWsgYW5kIEkgZW1haWxlZCB3ZWJraXQt
ZGV2IGFib3V0IHNvbWUgaW5mcmFzdHJ1Y3R1cmUgd2UnbGwKKyAgICAgICAgbmVlZCB0byB0YWNr
bGUgc29tZSBvZiB0aGUgaGFyZGVyIGNhc2VzLgorCisgICAgICAgICogbG9hZGVyL0NhY2hlZFhC
TERvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhCTERvY3VtZW50OjpDYWNo
ZWRYQkxEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRYQkxEb2N1bWVudDo6fkNh
Y2hlZFhCTERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhCTERvY3VtZW50Ojpy
ZWYpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1lbnQ6OmRhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkWEJMRG9jdW1lbnQ6OmNoZWNrTm90aWZ5KToKKyAgICAgICAgKiBs
b2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFhCTERv
Y3VtZW50Ojpkb2N1bWVudCk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29u
dHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNw
b25zZUhlYWRlcnNTZXQpOgorICAgICAgICAoV2ViQ29yZTo6aXNPbkFjY2Vzc0NvbnRyb2xSZXNw
b25zZUhlYWRlcldoaXRlbGlzdCk6CisgICAgICAgICogbG9hZGVyL0RvY0xvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OkRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjph
ZGRBbGxBcmNoaXZlUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjphZGRBcmNoaXZlUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9J
bWFnZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUxvYWRlcjo6dXBkYXRlRnJv
bUVsZW1lbnQpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNz
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OmluY3JlbWVu
dFByb2dyZXNzKToKKyAgICAgICAgKiBsb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1p
c3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVm
cmVzaCk6CisgICAgICAgIChXZWJDb3JlOjpSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVIaXN0
b3J5TmF2aWdhdGlvbik6CisgICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVh
ZEJyaWRnZTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRh
YmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZWZhdWx0Q2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6Omljb25EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpyZWFkeVNRTGl0ZVN0YXRl
bWVudCk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmg6CisgICAgICAgICAg
ICAtIE5vdGljZSB0aGF0IHRoZSBkZXN0cnVjdG9yIGhhcyBBU1NFUlRfTk9UX1JFQUNIRUQgc28g
bWFraW5nIGl0CisgICAgICAgICAgICAgIHB1YmxpYyBpc24ndCBtdWNoIG9mIGEgcmlzay4KKyAg
ICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2VOb25lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omljb25EYXRhYmFzZSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpjcmVhdGUpOgorCiAyMDEwLTA4LTI1ICBE
YXdpdCBBbGVtYXllaHUgIDxhZGF3aXRAa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
cml5YSBIaWRheWF0LgpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmNwcAkocmV2
aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDI1ICszNywyMyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBD
YWNoZWRYQkxEb2N1bWVudDo6Q2FjaGVkWEJMRG9jdW1lbnQoY29uc3QgU3RyaW5nICZ1cmwpCi06
IENhY2hlZFJlc291cmNlKHVybCwgWEJMKSwgbV9kb2N1bWVudCgwKQorICAgIDogQ2FjaGVkUmVz
b3VyY2UodXJsLCBYQkwpCiB7CiAgICAgLy8gSXQncyBYTUwgd2Ugd2FudC4KICAgICBzZXRBY2Nl
cHQoInRleHQveG1sLCBhcHBsaWNhdGlvbi94bWwsIGFwcGxpY2F0aW9uL3hodG1sK3htbCwgdGV4
dC94c2wsIGFwcGxpY2F0aW9uL3Jzcyt4bWwsIGFwcGxpY2F0aW9uL2F0b20reG1sIik7CiAKLSAg
ICBtX2RlY29kZXIgPSBuZXcgVGV4dFJlc291cmNlRGVjb2RlcigiYXBwbGljYXRpb24veG1sIik7
CisgICAgbV9kZWNvZGVyID0gVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlv
bi94bWwiKTsKIH0KIAogQ2FjaGVkWEJMRG9jdW1lbnQ6On5DYWNoZWRYQkxEb2N1bWVudCgpCiB7
Ci0gICAgaWYgKG1fZG9jdW1lbnQpCi0gICAgICAgIG1fZG9jdW1lbnQtPmRlcmVmKCk7CiB9CiAK
IHZvaWQgQ2FjaGVkWEJMRG9jdW1lbnQ6OnJlZihDYWNoZWRSZXNvdXJjZUNsaWVudCAqYykKIHsK
ICAgICBDYWNoZWRSZXNvdXJjZTo6cmVmKGMpOwogICAgIGlmICghbV9sb2FkaW5nKQotICAgICAg
ICBjLT5zZXRYQkxEb2N1bWVudChtX3VybCwgbV9kb2N1bWVudCk7CisgICAgICAgIGMtPnNldFhC
TERvY3VtZW50KG1fdXJsLCBkb2N1bWVudCgpKTsKIH0KIAogdm9pZCBDYWNoZWRYQkxEb2N1bWVu
dDo6c2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJiBjaHMpCkBAIC03NSw4ICs3Myw5IEBAIHZvaWQg
Q2FjaGVkWEJMRG9jdW1lbnQ6OmRhdGEoVmVjdG9yPGNoYXIKICAgICAKICAgICBBU1NFUlQoIW1f
ZG9jdW1lbnQpOwogICAgIAotICAgIG1fZG9jdW1lbnQgPSBuZXcgWEJMOjpYQkxEb2N1bWVudCgp
OwotICAgIG1fZG9jdW1lbnQtPnJlZigpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIGEg
Y3JlYXRlIG1ldGhvZCBoZXJlLCBidXQgSSBjYW4ndCBmaW5kIHRoZQorICAgIC8vIGRlZmluaXRp
b24gb2YgWEJMRG9jdW1lbnQuCisgICAgbV9kb2N1bWVudCA9IGFkb3B0UmVmKG5ldyBYQkw6OlhC
TERvY3VtZW50KCkpOwogICAgIG1fZG9jdW1lbnQtPm9wZW4oKTsKICAgICAKICAgICBtX2RvY3Vt
ZW50LT53cml0ZShtX2RlY29kZXItPmRlY29kZShkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpKTsK
QEAgLTk1LDcgKzk0LDcgQEAgdm9pZCBDYWNoZWRYQkxEb2N1bWVudDo6Y2hlY2tOb3RpZnkoKQog
ICAgIAogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKICAgICB3
aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQgKmMgPSB3Lm5leHQoKSkKLSAgICAgICAgYy0+c2V0
WEJMRG9jdW1lbnQobV91cmwsIG1fZG9jdW1lbnQpOworICAgICAgICBjLT5zZXRYQkxEb2N1bWVu
dChtX3VybCwgZG9jdW1lbnQoKSk7CiB9CiAKIHZvaWQgQ2FjaGVkWEJMRG9jdW1lbnQ6OmVycm9y
KCkKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFhCTERvY3VtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9sb2FkZXIvQ2FjaGVkWEJMRG9jdW1lbnQuaAkocmV2aXNpb24gNjYwMTgpCisr
KyBXZWJDb3JlL2xvYWRlci9DYWNoZWRYQkxEb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CisKICAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKICAgICBjbGFzcyBSZXF1ZXN0OwogICAg
IGNsYXNzIERvY0xvYWRlcjsKQEAgLTQyLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBDYWNoZWRYQkxEb2N1bWVudChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgICAgIHZp
cnR1YWwgfkNhY2hlZFhCTERvY3VtZW50KCk7CiAgICAgICAgIAotICAgICAgICBYQkw6OlhCTERv
Y3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICAgICAg
WEJMOjpYQkxEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50Lmdl
dCgpOyB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2xpZW50KENhY2hlZFJl
c291cmNlQ2xpZW50Kik7CiAgICAgICAgIApAQCAtNTQsNyArNTUsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZvaWQgY2hlY2tOb3RpZnkoKTsKICAgICAgICAgCiAgICAgcHJvdGVj
dGVkOgotICAgICAgICBYQkw6OlhCTERvY3VtZW50KiBtX2RvY3VtZW50OworICAgICAgICBSZWZQ
dHI8WEJMOjpYQkxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICAgICAgUmVmUHRyPFRleHRSZXNv
dXJjZURlY29kZXI+IG1fZGVjb2RlcjsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAJKHJldmlzaW9uIDY2MDE4KQorKysgV2ViQ29y
ZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzEsOSArNzEsOSBAQCBib29sIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KGNvCiB9
CiAKIHR5cGVkZWYgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gSFRUUEhlYWRlclNl
dDsKLXN0YXRpYyBIVFRQSGVhZGVyU2V0KiBjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25z
ZUhlYWRlcnNTZXQoKQorc3RhdGljIFBhc3NPd25QdHI8SFRUUEhlYWRlclNldD4gY3JlYXRlQWxs
b3dlZENyb3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzU2V0KCkKIHsKLSAgICBIVFRQSGVhZGVyU2V0
KiBoZWFkZXJTZXQgPSBuZXcgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD47CisgICAg
T3duUHRyPEhUVFBIZWFkZXJTZXQ+IGhlYWRlclNldCA9IGFkb3B0UHRyKG5ldyBIYXNoU2V0PFN0
cmluZywgQ2FzZUZvbGRpbmdIYXNoPik7CiAgICAgCiAgICAgaGVhZGVyU2V0LT5hZGQoImNhY2hl
LWNvbnRyb2wiKTsKICAgICBoZWFkZXJTZXQtPmFkZCgiY29udGVudC1sYW5ndWFnZSIpOwpAQCAt
ODIsMTIgKzgyLDEyIEBAIHN0YXRpYyBIVFRQSGVhZGVyU2V0KiBjcmVhdGVBbGxvd2VkQ3Jvc3MK
ICAgICBoZWFkZXJTZXQtPmFkZCgibGFzdC1tb2RpZmllZCIpOwogICAgIGhlYWRlclNldC0+YWRk
KCJwcmFnbWEiKTsKIAotICAgIHJldHVybiBoZWFkZXJTZXQ7CisgICAgcmV0dXJuIGhlYWRlclNl
dC5yZWxlYXNlKCk7CiB9CiAKIGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldo
aXRlbGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgQXRvbWljYWxseUluaXRpYWxpemVk
U3RhdGljKEhUVFBIZWFkZXJTZXQqLCBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMg
PSBjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQoKSk7CisgICAgQXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljKEhUVFBIZWFkZXJTZXQqLCBhbGxvd2VkQ3Jvc3NPcmln
aW5SZXNwb25zZUhlYWRlcnMgPSBjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRl
cnNTZXQoKS5sZWFrUHRyKCkpOwogCiAgICAgcmV0dXJuIGFsbG93ZWRDcm9zc09yaWdpblJlc3Bv
bnNlSGVhZGVycy0+Y29udGFpbnMobmFtZSk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2NM
b2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHJl
dmlzaW9uIDY2MDE4KQorKysgV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRG9jTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZChD
YWNoZWRSZXMKICAgICByZXNvdXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKIAogICAgIGlm
ICghbV9wcmVsb2FkcykKLSAgICAgICAgbV9wcmVsb2Fkcy5zZXQobmV3IExpc3RIYXNoU2V0PENh
Y2hlZFJlc291cmNlKj4pOworICAgICAgICBtX3ByZWxvYWRzID0gYWRvcHRQdHIobmV3IExpc3RI
YXNoU2V0PENhY2hlZFJlc291cmNlKj4pOwogICAgIG1fcHJlbG9hZHMtPmFkZChyZXNvdXJjZSk7
CiAKICNpZiBQUkVMT0FEX0RFQlVHCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShy
ZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQCBEb2N1bWVudExvYWRlcjo6RG9jdW1lbnRMb2Fk
ZXIoY29uc3QgUmVzCiAgICAgLCBtX3N1YnN0aXR1dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXIodGhp
cywgJkRvY3VtZW50TG9hZGVyOjpzdWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyRmlyZWQp
CiAgICAgLCBtX2RpZENyZWF0ZUdsb2JhbEhpc3RvcnlFbnRyeShmYWxzZSkKICNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlSG9zdChu
ZXcgQXBwbGljYXRpb25DYWNoZUhvc3QodGhpcykpCisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVI
b3N0KGFkb3B0UHRyKG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9zdCh0aGlzKSkpCiAjZW5kaWYKIHsK
IH0KQEAgLTQwNCw3ICs0MDQsNyBAQCBib29sIERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQ
SVNlbnNlCiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRBbGxBcmNoaXZlUmVzb3VyY2VzKEFyY2hp
dmUqIGFyY2hpdmUpCiB7CiAgICAgaWYgKCFtX2FyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24pCi0g
ICAgICAgIG1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5zZXQobmV3IEFyY2hpdmVSZXNvdXJj
ZUNvbGxlY3Rpb24pOworICAgICAgICBtX2FyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24gPSBhZG9w
dFB0cihuZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7CiAgICAgICAgIAogICAgIEFTU0VS
VChhcmNoaXZlKTsKICAgICBpZiAoIWFyY2hpdmUpCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBE
b2N1bWVudExvYWRlcjo6YWRkQWxsQXJjaGl2ZVJlc291cgogdm9pZCBEb2N1bWVudExvYWRlcjo6
YWRkQXJjaGl2ZVJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSkK
IHsKICAgICBpZiAoIW1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbikKLSAgICAgICAgbV9hcmNo
aXZlUmVzb3VyY2VDb2xsZWN0aW9uLnNldChuZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7
CisgICAgICAgIG1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbiA9IGFkb3B0UHRyKG5ldyBBcmNo
aXZlUmVzb3VyY2VDb2xsZWN0aW9uKTsKICAgICAgICAgCiAgICAgQVNTRVJUKHJlc291cmNlKTsK
ICAgICBpZiAoIXJlc291cmNlKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwCShyZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAg
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZAogICAgIAogICAgIEFTU0VS
VChtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID09IFVzZUFjY2Vzc0NvbnRyb2wp
OwogCi0gICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gY3Jvc3NPcmlnaW5SZXF1ZXN0KG5ldyBS
ZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkpOworICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IGNy
b3NzT3JpZ2luUmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkp
OwogICAgIGNyb3NzT3JpZ2luUmVxdWVzdC0+cmVtb3ZlQ3JlZGVudGlhbHMoKTsKICAgICBjcm9z
c09yaWdpblJlcXVlc3QtPnNldEFsbG93Q29va2llcyhtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFs
cyk7CiAKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkUmVjZWl2CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBPd25Q
dHI8Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IHByZWZsaWdodFJlc3VsdChu
ZXcgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3Jl
ZGVudGlhbHMpKTsKKyAgICAgICAgT3duUHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGVJdGVtPiBwcmVmbGlnaHRSZXN1bHQgPSBhZG9wdFB0cihuZXcgQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKICAgICAgICAg
aWYgKCFwcmVmbGlnaHRSZXN1bHQtPnBhcnNlKHJlc3BvbnNlLCBhY2Nlc3NDb250cm9sRXJyb3JE
ZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3Nz
T3JpZ2luTWV0aG9kKG1fYWN0dWFsUmVxdWVzdC0+aHR0cE1ldGhvZCgpLCBhY2Nlc3NDb250cm9s
RXJyb3JEZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93
c0Nyb3NzT3JpZ2luSGVhZGVycyhtX2FjdHVhbFJlcXVlc3QtPmh0dHBIZWFkZXJGaWVsZHMoKSwg
YWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9J
bWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCShyZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0
ZUZyb21FbGVtZW50KCkKICAgICAgICAgaWYgKG1fbG9hZE1hbnVhbGx5KSB7CiAgICAgICAgICAg
ICBib29sIGF1dG9Mb2FkT3RoZXJJbWFnZXMgPSBkb2N1bWVudC0+ZG9jTG9hZGVyKCktPmF1dG9M
b2FkSW1hZ2VzKCk7CiAgICAgICAgICAgICBkb2N1bWVudC0+ZG9jTG9hZGVyKCktPnNldEF1dG9M
b2FkSW1hZ2VzKGZhbHNlKTsKLSAgICAgICAgICAgIG5ld0ltYWdlID0gbmV3IENhY2hlZEltYWdl
KHNvdXJjZVVSSShhdHRyKSk7CisgICAgICAgICAgICBuZXdJbWFnZSA9IGFkb3B0UHRyKG5ldyBD
YWNoZWRJbWFnZShzb3VyY2VVUkkoYXR0cikpKS5sZWFrUHRyKCk7CiAgICAgICAgICAgICBuZXdJ
bWFnZS0+c2V0TG9hZGluZyh0cnVlKTsKICAgICAgICAgICAgIG5ld0ltYWdlLT5zZXREb2NMb2Fk
ZXIoZG9jdW1lbnQtPmRvY0xvYWRlcigpKTsKICAgICAgICAgICAgIGRvY3VtZW50LT5kb2NMb2Fk
ZXIoKS0+bV9kb2N1bWVudFJlc291cmNlcy5zZXQobmV3SW1hZ2UtPnVybCgpLCBuZXdJbWFnZSk7
CkluZGV4OiBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCB2b2lk
IFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsCiAgICAgaWYgKCFTZWN1cml0eU9y
aWdpbjo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVlc3QudXJsKCksIGZyYW1lLT5sb2FkZXIoKS0+
b3V0Z29pbmdSZWZlcnJlcigpKSkKICAgICAgICAgcmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJh
bWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIGZyYW1lLT5sb2FkZXIoKS0+
YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKLSAgICBPd25QdHI8
UGluZ0xvYWRlcj4gcGluZ0xvYWRlcihuZXcgUGluZ0xvYWRlcihmcmFtZSwgcmVxdWVzdCkpOwor
ICAgIE93blB0cjxQaW5nTG9hZGVyPiBwaW5nTG9hZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2Fk
ZXIoZnJhbWUsIHJlcXVlc3QpKTsKICAgICAKICAgICAvLyBMZWFrIHRoZSBwaW5nIGxvYWRlciwg
c2luY2UgaXQgd2lsbCBraWxsIGl0c2VsZiBhcyBzb29uIGFzIGl0IHJlY2VpdmVzIGEgcmVzcG9u
c2UuCiAgICAgUGluZ0xvYWRlciogbGVha2VkUGluZ0xvYWRlciA9IHBpbmdMb2FkZXIubGVha1B0
cigpOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCShyZXZpc2lvbiA2NjAxOCkK
KysrIFdlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2OSw3ICsxNjksNyBAQCB2b2lkIFByb2dyZXNzVHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3Mo
CiAgICAgICAgIGl0ZW0tPmJ5dGVzUmVjZWl2ZWQgPSAwOwogICAgICAgICBpdGVtLT5lc3RpbWF0
ZWRMZW5ndGggPSBlc3RpbWF0ZWRMZW5ndGg7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fcHJvZ3Jl
c3NJdGVtcy5zZXQoaWRlbnRpZmllciwgbmV3IFByb2dyZXNzSXRlbShlc3RpbWF0ZWRMZW5ndGgp
KTsKKyAgICAgICAgbV9wcm9ncmVzc0l0ZW1zLnNldChpZGVudGlmaWVyLCBhZG9wdFB0cihuZXcg
UHJvZ3Jlc3NJdGVtKGVzdGltYXRlZExlbmd0aCkpLmxlYWtQdHIoKSk7CiB9CiAKIHZvaWQgUHJv
Z3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVzcyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RT
Y2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1
bGVyLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVk
dWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIFJlZGlyZWN0
U2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0CiAKICAgICAvLyBXZSB3YW50IGEgbmV3IGJhY2sv
Zm9yd2FyZCBsaXN0IGl0ZW0gaWYgdGhlIHJlZnJlc2ggdGltZW91dCBpcyA+IDEgc2Vjb25kLgog
ICAgIGlmICghbV9yZWRpcmVjdCB8fCBkZWxheSA8PSBtX3JlZGlyZWN0LT5kZWxheSgpKQotICAg
ICAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVkUmVkaXJlY3QoZGVsYXksIHVybCwgdHJ1ZSwgZGVs
YXkgPD0gMSwgZmFsc2UpKTsKKyAgICAgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxl
ZFJlZGlyZWN0KGRlbGF5LCB1cmwsIHRydWUsIGRlbGF5IDw9IDEsIGZhbHNlKSkpOwogfQogCiBi
b29sIFJlZGlyZWN0U2NoZWR1bGVyOjptdXN0TG9ja0JhY2tGb3J3YXJkTGlzdChGcmFtZSogdGFy
Z2V0RnJhbWUsIGJvb2wgd2FzVXNlckdlc3R1cmUpCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBS
ZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVMb2NhdGlvbgogICAgIC8vIFRoaXMgbWF5IGhhcHBl
biB3aGVuIGEgZnJhbWUgY2hhbmdlcyB0aGUgbG9jYXRpb24gb2YgYW5vdGhlciBmcmFtZS4KICAg
ICBib29sIGR1cmluZ0xvYWQgPSAhbG9hZGVyLT5zdGF0ZU1hY2hpbmUoKS0+Y29tbWl0dGVkRmly
c3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVkTG9jYXRp
b25DaGFuZ2UodXJsLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3Qs
IHdhc1VzZXJHZXN0dXJlLCBkdXJpbmdMb2FkKSk7CisgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3
IFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKHVybCwgcmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBsb2Nr
QmFja0ZvcndhcmRMaXN0LCB3YXNVc2VyR2VzdHVyZSwgZHVyaW5nTG9hZCkpKTsKIH0KIAogdm9p
ZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVGb3JtU3VibWlzc2lvbihQYXNzUmVmUHRyPEZv
cm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uKQpAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQgUmVkaXJl
Y3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym0KIAogICAgIGJvb2wgbG9ja0JhY2tGb3J3YXJk
TGlzdCA9IG11c3RMb2NrQmFja0ZvcndhcmRMaXN0KG1fZnJhbWUsIFVzZXJHZXN0dXJlSW5kaWNh
dG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgfHwgKHN1Ym1pc3Npb24tPnN0YXRlKCktPmZv
cm1TdWJtaXNzaW9uVHJpZ2dlcigpID09IFN1Ym1pdHRlZEJ5SmF2YVNjcmlwdCAmJiBtX2ZyYW1l
LT50cmVlKCktPnBhcmVudCgpKTsKIAotICAgIHNjaGVkdWxlKG5ldyBTY2hlZHVsZWRGb3JtU3Vi
bWlzc2lvbihzdWJtaXNzaW9uLCBsb2NrQmFja0ZvcndhcmRMaXN0LCBkdXJpbmdMb2FkKSk7Cisg
ICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uKHN1Ym1pc3Np
b24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQpKSk7CiB9CiAKIHZvaWQgUmVkaXJl
Y3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaChib29sIHdhc1VzZXJHZXN0dXJlKQpAQCAtMzI1
LDcgKzMyNSw3IEBAIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaCgKICAg
ICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2NoZWR1bGUobmV3
IFNjaGVkdWxlZFJlZnJlc2godXJsLnN0cmluZygpLCBtX2ZyYW1lLT5sb2FkZXIoKS0+b3V0Z29p
bmdSZWZlcnJlcigpLCB3YXNVc2VyR2VzdHVyZSkpOworICAgIHNjaGVkdWxlKGFkb3B0UHRyKG5l
dyBTY2hlZHVsZWRSZWZyZXNoKHVybC5zdHJpbmcoKSwgbV9mcmFtZS0+bG9hZGVyKCktPm91dGdv
aW5nUmVmZXJyZXIoKSwgd2FzVXNlckdlc3R1cmUpKSk7CiB9CiAKIHZvaWQgUmVkaXJlY3RTY2hl
ZHVsZXI6OnNjaGVkdWxlSGlzdG9yeU5hdmlnYXRpb24oaW50IHN0ZXBzKQpAQCAtMzUyLDcgKzM1
Miw3IEBAIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlSGlzdG9yeU4KICNlbmRpZgog
ICAgIAogICAgIC8vIEluIGFsbCBvdGhlciBjYXNlcywgc2NoZWR1bGUgdGhlIGhpc3RvcnkgdHJh
dmVyc2FsIHRvIG9jY3VyIGFzeW5jaHJvbm91c2x5LgotICAgIHNjaGVkdWxlKG5ldyBTY2hlZHVs
ZWRIaXN0b3J5TmF2aWdhdGlvbihzdGVwcykpOworICAgIHNjaGVkdWxlKGFkb3B0UHRyKG5ldyBT
Y2hlZHVsZWRIaXN0b3J5TmF2aWdhdGlvbihzdGVwcykpKTsKIH0KIAogdm9pZCBSZWRpcmVjdFNj
aGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxSZWRpcmVjdFNjaGVkdWxlcj4qKQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAJKHJldmlzaW9uIDY2MDE4KQor
KysgV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0RGlkUmVjZWl2
ZURhdGEoCiAKIHZvaWQgV29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6
ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aFJlY2VpdmVkKQogewot
ICAgIE93blB0cjxWZWN0b3I8Y2hhcj4gPiB2ZWN0b3IobmV3IFZlY3RvcjxjaGFyPihsZW5ndGhS
ZWNlaXZlZCkpOyAvLyBuZWVkcyB0byBiZSBhbiBPd25QdHIgZm9yIHVzYWdlIHdpdGggY3JlYXRl
Q2FsbGJhY2tUYXNrLgorICAgIE93blB0cjxWZWN0b3I8Y2hhcj4gPiB2ZWN0b3IgPSBhZG9wdFB0
cihuZXcgVmVjdG9yPGNoYXI+KGxlbmd0aFJlY2VpdmVkKSk7IC8vIG5lZWRzIHRvIGJlIGFuIE93
blB0ciBmb3IgdXNhZ2Ugd2l0aCBjcmVhdGVDYWxsYmFja1Rhc2suCiAgICAgbWVtY3B5KHZlY3Rv
ci0+ZGF0YSgpLCBkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3JlYXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250
ZXh0RGlkUmVjZWl2ZURhdGEsIG1fd29ya2VyQ2xpZW50V3JhcHBlciwgdmVjdG9yLnJlbGVhc2Uo
KSksIG1fdGFza01vZGUpOwogfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNw
cAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIFN0cmluZyB1cmxGb3JM
b2dnaW5nKGNvbnN0IFN0cmluZwogCiBzdGF0aWMgSWNvbkRhdGFiYXNlQ2xpZW50KiBkZWZhdWx0
Q2xpZW50KCkgCiB7Ci0gICAgc3RhdGljIEljb25EYXRhYmFzZUNsaWVudCogZGVmYXVsdENsaWVu
dCA9IG5ldyBJY29uRGF0YWJhc2VDbGllbnQoKTsKKyAgICBzdGF0aWMgSWNvbkRhdGFiYXNlQ2xp
ZW50KiBkZWZhdWx0Q2xpZW50ID0gYWRvcHRQdHIobmV3IEljb25EYXRhYmFzZUNsaWVudCgpKS5s
ZWFrUHRyKCk7CiAgICAgcmV0dXJuIGRlZmF1bHRDbGllbnQ7CiB9CiAKQEAgLTk0LDcgKzk0LDcg
QEAgSWNvbkRhdGFiYXNlKiBpY29uRGF0YWJhc2UoKQogewogICAgIGlmICghc2hhcmVkSWNvbkRh
dGFiYXNlKSB7CiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OmluaXRpYWxpemVUaHJlYWRpbmco
KTsKLSAgICAgICAgc2hhcmVkSWNvbkRhdGFiYXNlID0gbmV3IEljb25EYXRhYmFzZTsKKyAgICAg
ICAgc2hhcmVkSWNvbkRhdGFiYXNlID0gYWRvcHRQdHIobmV3IEljb25EYXRhYmFzZSkubGVha1B0
cigpOwogICAgIH0KICAgICByZXR1cm4gc2hhcmVkSWNvbkRhdGFiYXNlOwogfQpAQCAtMTgzMiw3
ICsxODMyLDcgQEAgaW5saW5lIHZvaWQgcmVhZHlTUUxpdGVTdGF0ZW1lbnQoT3duUHRyPAogICAg
ICAgICBzdGF0ZW1lbnQuc2V0KDApOwogICAgIH0KICAgICBpZiAoIXN0YXRlbWVudCkgewotICAg
ICAgICBzdGF0ZW1lbnQuc2V0KG5ldyBTUUxpdGVTdGF0ZW1lbnQoZGIsIHN0cikpOworICAgICAg
ICBzdGF0ZW1lbnQgPSBhZG9wdFB0cihuZXcgU1FMaXRlU3RhdGVtZW50KGRiLCBzdHIpKTsKICAg
ICAgICAgaWYgKHN0YXRlbWVudC0+cHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rKQogICAgICAgICAg
ICAgTE9HX0VSUk9SKCJQcmVwYXJpbmcgc3RhdGVtZW50ICVzIGZhaWxlZCIsIHN0ci5hc2NpaSgp
LmRhdGEoKSk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5oCShyZXZp
c2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IAogI2lmIEVOQUJMRShJQ09OREFUQUJBU0UpCkBAIC02Niw2ICs2Nyw4IEBAIGNsYXNzIEljb25E
YXRhYmFzZSA6IHB1YmxpYyBOb25jb3B5YWJsZSAKIAogLy8gKioqIE1haW4gVGhyZWFkIE9ubHkg
KioqCiBwdWJsaWM6CisgICAgfkljb25EYXRhYmFzZSgpOworCiAgICAgdm9pZCBzZXRDbGllbnQo
SWNvbkRhdGFiYXNlQ2xpZW50Kik7CiAKICAgICBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBwYXRo
KTsKQEAgLTEwNSw3ICsxMDgsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSWNvbkRhdGFi
YXNlKCk7Ci0gICAgfkljb25EYXRhYmFzZSgpOwogICAgIGZyaWVuZCBJY29uRGF0YWJhc2UqIGlj
b25EYXRhYmFzZSgpOwogCiAjaWYgRU5BQkxFKElDT05EQVRBQkFTRSkKSW5kZXg6IFdlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlTm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRGF0YWJhc2VOb25lLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJD
b3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZU5vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw3ICs1OSw3IEBAIFN0cmluZyBJY29uRGF0YWJhc2U6OmRlZmF1bHREYXRhYmFzZUZpbGUKIElj
b25EYXRhYmFzZSogaWNvbkRhdGFiYXNlKCkKIHsKICAgICBpZiAoIXNoYXJlZEljb25EYXRhYmFz
ZSkKLSAgICAgICAgc2hhcmVkSWNvbkRhdGFiYXNlID0gbmV3IEljb25EYXRhYmFzZTsKKyAgICAg
ICAgc2hhcmVkSWNvbkRhdGFiYXNlID0gYWRvcHRQdHIobmV3IEljb25EYXRhYmFzZSkubGVha1B0
cigpOwogICAgIHJldHVybiBzaGFyZWRJY29uRGF0YWJhc2U7CiB9CiAKSW5kZXg6IFdlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uTG9hZGVyLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9p
Y29uL0ljb25Mb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIEljb25M
b2FkZXI6Okljb25Mb2FkZXIoRnJhbWUqIGZyYW1lKQogCiBQYXNzT3duUHRyPEljb25Mb2FkZXI+
IEljb25Mb2FkZXI6OmNyZWF0ZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgcmV0dXJuIG5ldyBJY29u
TG9hZGVyKGZyYW1lKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IEljb25Mb2FkZXIoZnJhbWUp
KTsKIH0KIAogSWNvbkxvYWRlcjo6fkljb25Mb2FkZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65451</attachid>
            <date>2010-08-25 11:40:01 -0700</date>
            <delta_ts>2010-08-26 00:28:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-44591-20100825114000.patch</filename>
            <type>text/plain</type>
            <size>12719</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjAyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDQgQEAKKzIwMTAtMDgtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgIERlcGxveSBh
ZG9wdFB0ciB0byBXZWJDb3JlL2xvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1OTEKKworICAgICAgICBUaGlzIHBhdGNoIGNvdmVycyB0aGUg
ZWFzeSBjYXNlcy4gIFRoZXJlIGFyZSBhIGhhbmRmdWwgb2YgdG91Z2hlciBjYXNlcworICAgICAg
ICB0aGF0IEknbSBsZWF2aW5nIHRvIGEgZnV0dXJlIHBhdGNoLiAgSSBmaWxlZCBvbmUgYnVnIGFi
b3V0IGEgcG9zc2libGUKKyAgICAgICAgbWVtb3J5IGxlYWsgYW5kIEkgZW1haWxlZCB3ZWJraXQt
ZGV2IGFib3V0IHNvbWUgaW5mcmFzdHJ1Y3R1cmUgd2UnbGwKKyAgICAgICAgbmVlZCB0byB0YWNr
bGUgc29tZSBvZiB0aGUgaGFyZGVyIGNhc2VzLgorCisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVBbGxvd2VkQ3Jv
c3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQpOgorICAgICAgICAoV2ViQ29yZTo6aXNPbkFjY2Vz
c0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdCk6CisgICAgICAgICogbG9hZGVyL0RvY0xv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2NMb2FkZXI6OnJlcXVlc3RQcmVsb2FkKToK
KyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXI6OkRvY3VtZW50TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjphZGRBbGxBcmNoaXZlUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjphZGRBcmNoaXZlUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAg
ICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6
OmxvYWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9ncmVzc1RyYWNrZXI6OmluY3JlbWVudFByb2dyZXNzKToKKyAgICAg
ICAgKiBsb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVk
aXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVk
aXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym1pc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6UmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbik6Cisg
ICAgICAgICogbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2
ZURhdGEpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpyZWFkeVNRTGl0ZVN0YXRlbWVudCk6CisgICAgICAgICogbG9hZGVyL2ljb24v
SWNvbkxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJY29uTG9hZGVyOjpjcmVhdGUpOgor
CiAyMDEwLTA4LTI1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbC5jcHAJKHJldmlzaW9uIDY2MDE4KQorKysgV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEsOSAr
NzEsOSBAQCBib29sIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KGNvCiB9CiAKIHR5
cGVkZWYgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gSFRUUEhlYWRlclNldDsKLXN0
YXRpYyBIVFRQSGVhZGVyU2V0KiBjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRl
cnNTZXQoKQorc3RhdGljIFBhc3NPd25QdHI8SFRUUEhlYWRlclNldD4gY3JlYXRlQWxsb3dlZENy
b3NzT3JpZ2luUmVzcG9uc2VIZWFkZXJzU2V0KCkKIHsKLSAgICBIVFRQSGVhZGVyU2V0KiBoZWFk
ZXJTZXQgPSBuZXcgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD47CisgICAgT3duUHRy
PEhUVFBIZWFkZXJTZXQ+IGhlYWRlclNldCA9IGFkb3B0UHRyKG5ldyBIYXNoU2V0PFN0cmluZywg
Q2FzZUZvbGRpbmdIYXNoPik7CiAgICAgCiAgICAgaGVhZGVyU2V0LT5hZGQoImNhY2hlLWNvbnRy
b2wiKTsKICAgICBoZWFkZXJTZXQtPmFkZCgiY29udGVudC1sYW5ndWFnZSIpOwpAQCAtODIsMTIg
KzgyLDEyIEBAIHN0YXRpYyBIVFRQSGVhZGVyU2V0KiBjcmVhdGVBbGxvd2VkQ3Jvc3MKICAgICBo
ZWFkZXJTZXQtPmFkZCgibGFzdC1tb2RpZmllZCIpOwogICAgIGhlYWRlclNldC0+YWRkKCJwcmFn
bWEiKTsKIAotICAgIHJldHVybiBoZWFkZXJTZXQ7CisgICAgcmV0dXJuIGhlYWRlclNldC5yZWxl
YXNlKCk7CiB9CiAKIGJvb2wgaXNPbkFjY2Vzc0NvbnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlz
dChjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGlj
KEhUVFBIZWFkZXJTZXQqLCBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnMgPSBjcmVh
dGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQoKSk7CisgICAgQXRvbWljYWxs
eUluaXRpYWxpemVkU3RhdGljKEhUVFBIZWFkZXJTZXQqLCBhbGxvd2VkQ3Jvc3NPcmlnaW5SZXNw
b25zZUhlYWRlcnMgPSBjcmVhdGVBbGxvd2VkQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcnNTZXQo
KS5sZWFrUHRyKCkpOwogCiAgICAgcmV0dXJuIGFsbG93ZWRDcm9zc09yaWdpblJlc3BvbnNlSGVh
ZGVycy0+Y29udGFpbnMobmFtZSk7CiB9CkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2NMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0RvY0xvYWRlci5jcHAJKHJldmlzaW9u
IDY2MDE4KQorKysgV2ViQ29yZS9sb2FkZXIvRG9jTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRG9jTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZChDYWNoZWRS
ZXMKICAgICByZXNvdXJjZS0+aW5jcmVhc2VQcmVsb2FkQ291bnQoKTsKIAogICAgIGlmICghbV9w
cmVsb2FkcykKLSAgICAgICAgbV9wcmVsb2Fkcy5zZXQobmV3IExpc3RIYXNoU2V0PENhY2hlZFJl
c291cmNlKj4pOworICAgICAgICBtX3ByZWxvYWRzID0gYWRvcHRQdHIobmV3IExpc3RIYXNoU2V0
PENhY2hlZFJlc291cmNlKj4pOwogICAgIG1fcHJlbG9hZHMtPmFkZChyZXNvdXJjZSk7CiAKICNp
ZiBQUkVMT0FEX0RFQlVHCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lv
biA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsNyBAQCBEb2N1bWVudExvYWRlcjo6RG9jdW1lbnRMb2FkZXIoY29u
c3QgUmVzCiAgICAgLCBtX3N1YnN0aXR1dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXIodGhpcywgJkRv
Y3VtZW50TG9hZGVyOjpzdWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyRmlyZWQpCiAgICAg
LCBtX2RpZENyZWF0ZUdsb2JhbEhpc3RvcnlFbnRyeShmYWxzZSkKICNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQotICAgICwgbV9hcHBsaWNhdGlvbkNhY2hlSG9zdChuZXcgQXBw
bGljYXRpb25DYWNoZUhvc3QodGhpcykpCisgICAgLCBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0KGFk
b3B0UHRyKG5ldyBBcHBsaWNhdGlvbkNhY2hlSG9zdCh0aGlzKSkpCiAjZW5kaWYKIHsKIH0KQEAg
LTQwNCw3ICs0MDQsNyBAQCBib29sIERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNl
CiB2b2lkIERvY3VtZW50TG9hZGVyOjphZGRBbGxBcmNoaXZlUmVzb3VyY2VzKEFyY2hpdmUqIGFy
Y2hpdmUpCiB7CiAgICAgaWYgKCFtX2FyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24pCi0gICAgICAg
IG1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbi5zZXQobmV3IEFyY2hpdmVSZXNvdXJjZUNvbGxl
Y3Rpb24pOworICAgICAgICBtX2FyY2hpdmVSZXNvdXJjZUNvbGxlY3Rpb24gPSBhZG9wdFB0cihu
ZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7CiAgICAgICAgIAogICAgIEFTU0VSVChhcmNo
aXZlKTsKICAgICBpZiAoIWFyY2hpdmUpCkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6YWRkQWxsQXJjaGl2ZVJlc291cgogdm9pZCBEb2N1bWVudExvYWRlcjo6YWRkQXJj
aGl2ZVJlc291cmNlKFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNvdXJjZSkKIHsKICAg
ICBpZiAoIW1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbikKLSAgICAgICAgbV9hcmNoaXZlUmVz
b3VyY2VDb2xsZWN0aW9uLnNldChuZXcgQXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbik7CisgICAg
ICAgIG1fYXJjaGl2ZVJlc291cmNlQ29sbGVjdGlvbiA9IGFkb3B0UHRyKG5ldyBBcmNoaXZlUmVz
b3VyY2VDb2xsZWN0aW9uKTsKICAgICAgICAgCiAgICAgQVNTRVJUKHJlc291cmNlKTsKICAgICBp
ZiAoIXJlc291cmNlKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuY3BwCShyZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVhZAogICAgIAogICAgIEFTU0VSVChtX29w
dGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID09IFVzZUFjY2Vzc0NvbnRyb2wpOwogCi0g
ICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gY3Jvc3NPcmlnaW5SZXF1ZXN0KG5ldyBSZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCkpOworICAgIE93blB0cjxSZXNvdXJjZVJlcXVlc3Q+IGNyb3NzT3Jp
Z2luUmVxdWVzdCA9IGFkb3B0UHRyKG5ldyBSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCkpOwogICAg
IGNyb3NzT3JpZ2luUmVxdWVzdC0+cmVtb3ZlQ3JlZGVudGlhbHMoKTsKICAgICBjcm9zc09yaWdp
blJlcXVlc3QtPnNldEFsbG93Q29va2llcyhtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CiAK
QEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVj
ZWl2CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBPd25QdHI8Q3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0+IHByZWZsaWdodFJlc3VsdChuZXcgQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVudGlh
bHMpKTsKKyAgICAgICAgT3duUHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVt
PiBwcmVmbGlnaHRSZXN1bHQgPSBhZG9wdFB0cihuZXcgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZUl0ZW0obV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpKTsKICAgICAgICAgaWYgKCFw
cmVmbGlnaHRSZXN1bHQtPnBhcnNlKHJlc3BvbnNlLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlw
dGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3NzT3JpZ2lu
TWV0aG9kKG1fYWN0dWFsUmVxdWVzdC0+aHR0cE1ldGhvZCgpLCBhY2Nlc3NDb250cm9sRXJyb3JE
ZXNjcmlwdGlvbikKICAgICAgICAgICAgIHx8ICFwcmVmbGlnaHRSZXN1bHQtPmFsbG93c0Nyb3Nz
T3JpZ2luSGVhZGVycyhtX2FjdHVhbFJlcXVlc3QtPmh0dHBIZWFkZXJGaWVsZHMoKSwgYWNjZXNz
Q29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9QaW5nTG9h
ZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkocmV2
aXNpb24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTMsNyArNTMsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFnZShGcmFtZSog
ZnJhbWUsCiAgICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6c2hvdWxkSGlkZVJlZmVycmVyKHJlcXVl
c3QudXJsKCksIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSkKICAgICAgICAg
cmVxdWVzdC5zZXRIVFRQUmVmZXJyZXIoZnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVy
KCkpOwogICAgIGZyYW1lLT5sb2FkZXIoKS0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291cmNlUmVx
dWVzdChyZXF1ZXN0KTsKLSAgICBPd25QdHI8UGluZ0xvYWRlcj4gcGluZ0xvYWRlcihuZXcgUGlu
Z0xvYWRlcihmcmFtZSwgcmVxdWVzdCkpOworICAgIE93blB0cjxQaW5nTG9hZGVyPiBwaW5nTG9h
ZGVyID0gYWRvcHRQdHIobmV3IFBpbmdMb2FkZXIoZnJhbWUsIHJlcXVlc3QpKTsKICAgICAKICAg
ICAvLyBMZWFrIHRoZSBwaW5nIGxvYWRlciwgc2luY2UgaXQgd2lsbCBraWxsIGl0c2VsZiBhcyBz
b29uIGFzIGl0IHJlY2VpdmVzIGEgcmVzcG9uc2UuCiAgICAgUGluZ0xvYWRlciogbGVha2VkUGlu
Z0xvYWRlciA9IHBpbmdMb2FkZXIubGVha1B0cigpOwpJbmRleDogV2ViQ29yZS9sb2FkZXIvUHJv
Z3Jlc3NUcmFja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1Ry
YWNrZXIuY3BwCShyZXZpc2lvbiA2NjAxOCkKKysrIFdlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFByb2dyZXNz
VHJhY2tlcjo6aW5jcmVtZW50UHJvZ3Jlc3MoCiAgICAgICAgIGl0ZW0tPmJ5dGVzUmVjZWl2ZWQg
PSAwOwogICAgICAgICBpdGVtLT5lc3RpbWF0ZWRMZW5ndGggPSBlc3RpbWF0ZWRMZW5ndGg7CiAg
ICAgfSBlbHNlCi0gICAgICAgIG1fcHJvZ3Jlc3NJdGVtcy5zZXQoaWRlbnRpZmllciwgbmV3IFBy
b2dyZXNzSXRlbShlc3RpbWF0ZWRMZW5ndGgpKTsKKyAgICAgICAgbV9wcm9ncmVzc0l0ZW1zLnNl
dChpZGVudGlmaWVyLCBhZG9wdFB0cihuZXcgUHJvZ3Jlc3NJdGVtKGVzdGltYXRlZExlbmd0aCkp
LmxlYWtQdHIoKSk7CiB9CiAKIHZvaWQgUHJvZ3Jlc3NUcmFja2VyOjppbmNyZW1lbnRQcm9ncmVz
cyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoKQpJbmRl
eDogV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBX
ZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
MCw3ICsyNTAsNyBAQCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZVJlZGlyZWN0CiAK
ICAgICAvLyBXZSB3YW50IGEgbmV3IGJhY2svZm9yd2FyZCBsaXN0IGl0ZW0gaWYgdGhlIHJlZnJl
c2ggdGltZW91dCBpcyA+IDEgc2Vjb25kLgogICAgIGlmICghbV9yZWRpcmVjdCB8fCBkZWxheSA8
PSBtX3JlZGlyZWN0LT5kZWxheSgpKQotICAgICAgICBzY2hlZHVsZShuZXcgU2NoZWR1bGVkUmVk
aXJlY3QoZGVsYXksIHVybCwgdHJ1ZSwgZGVsYXkgPD0gMSwgZmFsc2UpKTsKKyAgICAgICAgc2No
ZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZFJlZGlyZWN0KGRlbGF5LCB1cmwsIHRydWUsIGRl
bGF5IDw9IDEsIGZhbHNlKSkpOwogfQogCiBib29sIFJlZGlyZWN0U2NoZWR1bGVyOjptdXN0TG9j
a0JhY2tGb3J3YXJkTGlzdChGcmFtZSogdGFyZ2V0RnJhbWUsIGJvb2wgd2FzVXNlckdlc3R1cmUp
CkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVMb2Nh
dGlvbgogICAgIC8vIFRoaXMgbWF5IGhhcHBlbiB3aGVuIGEgZnJhbWUgY2hhbmdlcyB0aGUgbG9j
YXRpb24gb2YgYW5vdGhlciBmcmFtZS4KICAgICBib29sIGR1cmluZ0xvYWQgPSAhbG9hZGVyLT5z
dGF0ZU1hY2hpbmUoKS0+Y29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCk7CiAKLSAgICBz
Y2hlZHVsZShuZXcgU2NoZWR1bGVkTG9jYXRpb25DaGFuZ2UodXJsLCByZWZlcnJlciwgbG9ja0hp
c3RvcnksIGxvY2tCYWNrRm9yd2FyZExpc3QsIHdhc1VzZXJHZXN0dXJlLCBkdXJpbmdMb2FkKSk7
CisgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZExvY2F0aW9uQ2hhbmdlKHVybCwg
cmVmZXJyZXIsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0LCB3YXNVc2VyR2VzdHVy
ZSwgZHVyaW5nTG9hZCkpKTsKIH0KIAogdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6c2NoZWR1bGVG
b3JtU3VibWlzc2lvbihQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uKQpAQCAt
MzE0LDcgKzMxNCw3IEBAIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlRm9ybVN1Ym0K
IAogICAgIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCA9IG11c3RMb2NrQmFja0ZvcndhcmRMaXN0
KG1fZnJhbWUsIFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkg
fHwgKHN1Ym1pc3Npb24tPnN0YXRlKCktPmZvcm1TdWJtaXNzaW9uVHJpZ2dlcigpID09IFN1Ym1p
dHRlZEJ5SmF2YVNjcmlwdCAmJiBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpKTsKIAotICAgIHNj
aGVkdWxlKG5ldyBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbihzdWJtaXNzaW9uLCBsb2NrQmFja0Zv
cndhcmRMaXN0LCBkdXJpbmdMb2FkKSk7CisgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVk
dWxlZEZvcm1TdWJtaXNzaW9uKHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmlu
Z0xvYWQpKSk7CiB9CiAKIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaChi
b29sIHdhc1VzZXJHZXN0dXJlKQpAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgUmVkaXJlY3RTY2hl
ZHVsZXI6OnNjaGVkdWxlUmVmcmVzaCgKICAgICBpZiAodXJsLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgc2NoZWR1bGUobmV3IFNjaGVkdWxlZFJlZnJlc2godXJsLnN0cmluZygp
LCBtX2ZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpLCB3YXNVc2VyR2VzdHVyZSkp
OworICAgIHNjaGVkdWxlKGFkb3B0UHRyKG5ldyBTY2hlZHVsZWRSZWZyZXNoKHVybC5zdHJpbmco
KSwgbV9mcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSwgd2FzVXNlckdlc3R1cmUp
KSk7CiB9CiAKIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlSGlzdG9yeU5hdmlnYXRp
b24oaW50IHN0ZXBzKQpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgUmVkaXJlY3RTY2hlZHVsZXI6
OnNjaGVkdWxlSGlzdG9yeU4KICNlbmRpZgogICAgIAogICAgIC8vIEluIGFsbCBvdGhlciBjYXNl
cywgc2NoZWR1bGUgdGhlIGhpc3RvcnkgdHJhdmVyc2FsIHRvIG9jY3VyIGFzeW5jaHJvbm91c2x5
LgotICAgIHNjaGVkdWxlKG5ldyBTY2hlZHVsZWRIaXN0b3J5TmF2aWdhdGlvbihzdGVwcykpOwor
ICAgIHNjaGVkdWxlKGFkb3B0UHRyKG5ldyBTY2hlZHVsZWRIaXN0b3J5TmF2aWdhdGlvbihzdGVw
cykpKTsKIH0KIAogdm9pZCBSZWRpcmVjdFNjaGVkdWxlcjo6dGltZXJGaXJlZChUaW1lcjxSZWRp
cmVjdFNjaGVkdWxlcj4qKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxv
YWRlci5jcHAJKHJldmlzaW9uIDY2MDE4KQorKysgV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFk
YWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw3ICsxOTMsNyBAQCBzdGF0aWMg
dm9pZCB3b3JrZXJDb250ZXh0RGlkUmVjZWl2ZURhdGEoCiAKIHZvaWQgV29ya2VyVGhyZWFkYWJs
ZUxvYWRlcjo6TWFpblRocmVhZEJyaWRnZTo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aFJlY2VpdmVkKQogewotICAgIE93blB0cjxWZWN0b3I8Y2hhcj4gPiB2ZWN0
b3IobmV3IFZlY3RvcjxjaGFyPihsZW5ndGhSZWNlaXZlZCkpOyAvLyBuZWVkcyB0byBiZSBhbiBP
d25QdHIgZm9yIHVzYWdlIHdpdGggY3JlYXRlQ2FsbGJhY2tUYXNrLgorICAgIE93blB0cjxWZWN0
b3I8Y2hhcj4gPiB2ZWN0b3IgPSBhZG9wdFB0cihuZXcgVmVjdG9yPGNoYXI+KGxlbmd0aFJlY2Vp
dmVkKSk7IC8vIG5lZWRzIHRvIGJlIGFuIE93blB0ciBmb3IgdXNhZ2Ugd2l0aCBjcmVhdGVDYWxs
YmFja1Rhc2suCiAgICAgbWVtY3B5KHZlY3Rvci0+ZGF0YSgpLCBkYXRhLCBsZW5ndGhSZWNlaXZl
ZCk7CiAgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlckNvbnRleHQoY3Jl
YXRlQ2FsbGJhY2tUYXNrKCZ3b3JrZXJDb250ZXh0RGlkUmVjZWl2ZURhdGEsIG1fd29ya2VyQ2xp
ZW50V3JhcHBlciwgdmVjdG9yLnJlbGVhc2UoKSksIG1fdGFza01vZGUpOwogfQpJbmRleDogV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAkocmV2aXNpb24gNjYwMTgpCisrKyBXZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MzIsNyAr
MTgzMiw3IEBAIGlubGluZSB2b2lkIHJlYWR5U1FMaXRlU3RhdGVtZW50KE93blB0cjwKICAgICAg
ICAgc3RhdGVtZW50LnNldCgwKTsKICAgICB9CiAgICAgaWYgKCFzdGF0ZW1lbnQpIHsKLSAgICAg
ICAgc3RhdGVtZW50LnNldChuZXcgU1FMaXRlU3RhdGVtZW50KGRiLCBzdHIpKTsKKyAgICAgICAg
c3RhdGVtZW50ID0gYWRvcHRQdHIobmV3IFNRTGl0ZVN0YXRlbWVudChkYiwgc3RyKSk7CiAgICAg
ICAgIGlmIChzdGF0ZW1lbnQtPnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykKICAgICAgICAgICAg
IExPR19FUlJPUigiUHJlcGFyaW5nIHN0YXRlbWVudCAlcyBmYWlsZWQiLCBzdHIuYXNjaWkoKS5k
YXRhKCkpOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAkocmV2aXNp
b24gNjYwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIEljb25Mb2FkZXI6Okljb25Mb2FkZXIoRnJhbWUqIGZy
YW1lKQogCiBQYXNzT3duUHRyPEljb25Mb2FkZXI+IEljb25Mb2FkZXI6OmNyZWF0ZShGcmFtZSog
ZnJhbWUpCiB7Ci0gICAgcmV0dXJuIG5ldyBJY29uTG9hZGVyKGZyYW1lKTsKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEljb25Mb2FkZXIoZnJhbWUpKTsKIH0KIAogSWNvbkxvYWRlcjo6fkljb25M
b2FkZXIoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>