<?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>75887</bug_id>
          
          <creation_ts>2012-01-09 13:35:57 -0800</creation_ts>
          <short_desc>Followup SubresourceLoader cleanup after r100311</short_desc>
          <delta_ts>2012-01-11 15:54:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>532495</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-09 13:35:57 -0800</bug_when>
    <thetext>Per https://bugs.webkit.org/show_bug.cgi?id=71149#c6 , there were some details that were deferred in http://trac.webkit.org/changeset/100311 :

1) Add some ASSERTS to the destructor that show we properly advance the state machine to the end (and that documenting becomes null).
2) Use a member variable to track whether we&apos;ve incremented/decremented the request count to ensure we balance them properly (e.g., by ASSERTing in its destructor that we&apos;ve balanced).  That will also remove a bunch of multipart related banches because we can tell this object to decrement the request count if it hasn&apos;t already done so.

In addition to these cleanups, I&apos;d like to add: 
3) Remove the CachedImage multipart special case by adding an overridden setResponse() to CachedImage to do that work.
4) Remove the custom didReceiveData() call in the multipart logic of didReceiveResponse().  Have didReceiveData() get called normally, then do the multipart cleanup.

Patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532505</commentid>
    <comment_count>1</comment_count>
      <attachid>121723</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-09 13:51:55 -0800</bug_when>
    <thetext>Created attachment 121723
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532530</commentid>
    <comment_count>2</comment_count>
      <attachid>121723</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-09 14:23:52 -0800</bug_when>
    <thetext>Comment on attachment 121723
patch

ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532532</commentid>
    <comment_count>3</comment_count>
      <attachid>121726</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-09 14:27:20 -0800</bug_when>
    <thetext>Created attachment 121726
Diffing from the right directory this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532534</commentid>
    <comment_count>4</comment_count>
      <attachid>121726</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-09 14:31:22 -0800</bug_when>
    <thetext>Comment on attachment 121726
Diffing from the right directory this time

Very nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532535</commentid>
    <comment_count>5</comment_count>
      <attachid>121726</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 14:33:18 -0800</bug_when>
    <thetext>Comment on attachment 121726
Diffing from the right directory this time

Rejecting attachment 121726 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
re/loader/SubresourceLoader.cpp
Hunk #8 FAILED at 222.
Hunk #9 succeeded at 307 (offset 7 lines).
1 out of 9 hunks FAILED -- saving rejects to file Source/WebCore/loader/SubresourceLoader.cpp.rej
patching file Source/WebCore/loader/SubresourceLoader.h
Hunk #2 FAILED at 72.
1 out of 2 hunks FAILED -- saving rejects to file Source/WebCore/loader/SubresourceLoader.h.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/11113585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532583</commentid>
    <comment_count>6</comment_count>
      <attachid>121738</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-09 15:47:59 -0800</bug_when>
    <thetext>Created attachment 121738
Merged to trunk.

Requesting a new approval since the merge was non-trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532710</commentid>
    <comment_count>7</comment_count>
      <attachid>121738</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 17:29:53 -0800</bug_when>
    <thetext>Comment on attachment 121738
Merged to trunk.

Rejecting attachment 121738 from commit-queue.

New failing tests:
tables/mozilla/bugs/bug50695-2.html
http/tests/multipart/invalid-image-data-standalone.html
editing/pasteboard/copy-standalone-image.html
editing/pasteboard/data-transfer-items-image-png.html
fast/events/standalone-image-drag-to-editable.html
Full output: http://queues.webkit.org/results/11188671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532742</commentid>
    <comment_count>8</comment_count>
      <attachid>121738</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-09 18:11:47 -0800</bug_when>
    <thetext>Comment on attachment 121738
Merged to trunk.

Attachment 121738 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11183717

New failing tests:
tables/mozilla/bugs/bug50695-2.html
http/tests/multipart/invalid-image-data-standalone.html
editing/pasteboard/copy-standalone-image.html
editing/pasteboard/data-transfer-items-image-png.html
fast/events/standalone-image-drag-to-editable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534244</commentid>
    <comment_count>9</comment_count>
      <attachid>122093</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-01-11 14:13:10 -0800</bug_when>
    <thetext>Created attachment 122093
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534354</commentid>
    <comment_count>10</comment_count>
      <attachid>122093</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 15:54:43 -0800</bug_when>
    <thetext>Comment on attachment 122093
Patch for landing

Clearing flags on attachment: 122093

Committed r104756: &lt;http://trac.webkit.org/changeset/104756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534355</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 15:54:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121723</attachid>
            <date>2012-01-09 13:51:55 -0800</date>
            <delta_ts>2012-01-09 14:27:20 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cleanup.txt</filename>
            <type>text/plain</type>
            <size>10541</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAkocmV2
aXNpb24gMTA0MDYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMyBAQAogICAgIGNoZWNrTm90aWZ5
KCk7CiB9CiAKK3ZvaWQgQ2FjaGVkSW1hZ2U6OnNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3Jlc3BvbnNlLmlzTnVsbCgpKQorICAgICAg
ICBjbGVhcigpOworICAgIENhY2hlZFJlc291cmNlOjpzZXRSZXNwb25zZShyZXNwb25zZSk7Cit9
CisKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBj
YW5EZWxldGVJbWFnZSA9ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2lt
YWdlLT5pc0JpdG1hcEltYWdlKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgJKHJldmlzaW9uIDEwNDA2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxNCArNzUsMTIgQEAK
IAogICAgIHZpcnR1YWwgdm9pZCBkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBi
b29sIGFsbERhdGFSZWNlaXZlZCk7CiAgICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291
cmNlOjpTdGF0dXMpOworICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNwb25zZShjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7CiAgICAgCiAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHksIGltYWdlcyBrZWVw
IGxvYWRpbmcgZXZlbiBpZiB0aGVyZSBhcmUgSFRUUCBlcnJvcnMuCiAgICAgdmlydHVhbCBib29s
IHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0K
LSAgICB2b2lkIGNsZWFyKCk7Ci0gICAgCiAgICAgYm9vbCBzdGlsbE5lZWRzTG9hZCgpIGNvbnN0
IHsgcmV0dXJuICFlcnJvck9jY3VycmVkKCkgJiYgc3RhdHVzKCkgPT0gVW5rbm93biAmJiAhaXNM
b2FkaW5nKCk7IH0KICAgICB2b2lkIGxvYWQoKTsKIApAQCAtOTcsNiArOTUsOCBAQAogcHJpdmF0
ZToKICAgICBJbWFnZSogbG9va3VwT3JDcmVhdGVJbWFnZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRl
ck9iamVjdCopOwogCisgICAgdm9pZCBjbGVhcigpOworCiAgICAgdm9pZCBjcmVhdGVJbWFnZSgp
OwogICAgIHNpemVfdCBtYXhpbXVtRGVjb2RlZEltYWdlU2l6ZSgpOwogICAgIC8vIElmIG5vdCBu
dWxsLCBjaGFuZ2VSZWN0IGlzIHRoZSBjaGFuZ2VkIHBhcnQgb2YgdGhlIGltYWdlLgpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZp
c2lvbiAxMDQwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQsNyArMjE0LDcgQEAKICAgICBtX3Jlc291cmNl
UmVxdWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3JpdHkoKSk7CiAgICAgCiAgICAgbV9sb2FkZXIg
PSByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2FjaGVk
UmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmZyYW1lKCksIHRoaXMsIG1fcmVzb3VyY2VSZXF1
ZXN0LCBtX3Jlc291cmNlUmVxdWVzdC5wcmlvcml0eSgpLCBvcHRpb25zKTsKLSAgICBpZiAoIW1f
bG9hZGVyIHx8IG1fbG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKSB7CisgICAgaWYgKCFt
X2xvYWRlcikgewogICAgICAgICAvLyBGSVhNRTogV2hhdCBpZiByZXNvdXJjZXMgaW4gb3RoZXIg
ZnJhbWVzIHdlcmUgd2FpdGluZyBmb3IgdGhpcyByZXZhbGlkYXRpb24/CiAgICAgICAgIExPRyhS
ZXNvdXJjZUxvYWRpbmcsICJDYW5ub3Qgc3RhcnQgbG9hZGluZyAnJXMnIiwgdXJsKCkuc3RyaW5n
KCkubGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRhdGUp
IApAQCAtMjI0LDcgKzIyNCw2IEBACiAgICAgfQogCiAgICAgbV9zdGF0dXMgPSBQZW5kaW5nOwot
ICAgIGNhY2hlZFJlc291cmNlTG9hZGVyLT5pbmNyZW1lbnRSZXF1ZXN0Q291bnQodGhpcyk7CiB9
CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNoZWNrTm90aWZ5KCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTA0MDYyKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN1YnJl
c291cmNlTG9hZGVyLmgiCiAKLSNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgpAQCAtNDcsMTIgKzQ2LDI1IEBACiAKIERFRklORV9ERUJVR19PTkxZ
X0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgc3VicmVzb3VyY2VMb2FkZXJDb3Vu
dGVyLCAoIlN1YnJlc291cmNlTG9hZGVyIikpOwogCitTdWJyZXNvdXJjZUxvYWRlcjo6UmVxdWVz
dENvdW50VHJhY2tlcjo6UmVxdWVzdENvdW50VHJhY2tlcihDYWNoZWRSZXNvdXJjZUxvYWRlciog
Y2FjaGVkUmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKKyAgICA6IG1f
Y2FjaGVkUmVzb3VyY2VMb2FkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpCisgICAgLCBtX3Jlc291
cmNlKHJlc291cmNlKQoreworICAgIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPmluY3JlbWVudFJl
cXVlc3RDb3VudChtX3Jlc291cmNlKTsKK30KKworU3VicmVzb3VyY2VMb2FkZXI6OlJlcXVlc3RD
b3VudFRyYWNrZXI6On5SZXF1ZXN0Q291bnRUcmFja2VyKCkKK3sKKyAgICBtX2NhY2hlZFJlc291
cmNlTG9hZGVyLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQobV9yZXNvdXJjZSk7Cit9CisKIFN1YnJl
c291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcihGcmFtZSogZnJhbWUsIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogICAg
IDogUmVzb3VyY2VMb2FkZXIoZnJhbWUsIG9wdGlvbnMpCiAgICAgLCBtX3Jlc291cmNlKHJlc291
cmNlKQogICAgICwgbV9kb2N1bWVudChmcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAsIG1fbG9hZGlu
Z011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBtX3N0YXRlKFVuaW5pdGlhbGl6ZWQpCisg
ICAgLCBtX3JlcXVlc3RDb3VudFRyYWNrZXIoYWRvcHRQdHIobmV3IFJlcXVlc3RDb3VudFRyYWNr
ZXIoZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCksIHJlc291cmNlKSkp
CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIHN1YnJlc291cmNlTG9hZGVyQ291bnRlci5pbmNyZW1l
bnQoKTsKQEAgLTYxLDYgKzczLDkgQEAKIAogU3VicmVzb3VyY2VMb2FkZXI6On5TdWJyZXNvdXJj
ZUxvYWRlcigpCiB7CisgICAgQVNTRVJUKG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQpOworICAgIEFT
U0VSVCghbV9kb2N1bWVudCk7CisgICAgQVNTRVJUKHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpOwog
I2lmbmRlZiBOREVCVUcKICAgICBzdWJyZXNvdXJjZUxvYWRlckNvdW50ZXIuZGVjcmVtZW50KCk7
CiAjZW5kaWYKQEAgLTExOSw2ICsxMzQsNyBAQAogICAgIGlmICghUmVzb3VyY2VMb2FkZXI6Omlu
aXQocmVxdWVzdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIEFTU0VSVCghcmVhY2hl
ZFRlcm1pbmFsU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9IEluaXRpYWxpemVkOwogICAgIG1fZG9j
dW1lbnRMb2FkZXItPmFkZFN1YnJlc291cmNlTG9hZGVyKHRoaXMpOwogICAgIHJldHVybiB0cnVl
OwpAQCAtMTQxLDYgKzE1Nyw3IEBACiAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFNlbmRE
YXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzVG9CZVNlbnQpCiB7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5pdGlhbGl6ZWQpOwog
ICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3Jlc291
cmNlLT5kaWRTZW5kRGF0YShieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiB9CkBAIC0x
NDgsNiArMTY1LDcgQEAKIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBBU1NFUlQoIXJlc3Bv
bnNlLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAKICAg
ICAvLyBSZWZlcmVuY2UgdGhlIG9iamVjdCBpbiB0aGlzIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRp
b25hbCBwcm9jZXNzaW5nIGNhbiBkbwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyByZW1vdmlu
ZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMg
aXMgMzI2NjIxNi4KQEAgLTE3NCwzOCArMTkyLDI0IEBACiAgICAgICAgIHJldHVybjsKICAgICBS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKIAotICAgIGlmICht
X2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KSB7Ci0gICAgICAgIEFTU0VSVChtX3Jlc291cmNlLT5p
c0ltYWdlKCkpOwotICAgICAgICBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KG1fcmVzb3VyY2Up
LT5jbGVhcigpOwotICAgIH0gZWxzZSBpZiAocmVzcG9uc2UuaXNNdWx0aXBhcnQoKSkgeworICAg
IGlmIChyZXNwb25zZS5pc011bHRpcGFydCgpKSB7CiAgICAgICAgIG1fbG9hZGluZ011bHRpcGFy
dENvbnRlbnQgPSB0cnVlOwogCiAgICAgICAgIC8vIFdlIGRvbid0IGNvdW50IG11bHRpUGFydHMg
aW4gYSBDYWNoZWRSZXNvdXJjZUxvYWRlcidzIHJlcXVlc3QgY291bnQKLSAgICAgICAgbV9kb2N1
bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+ZGVjcmVtZW50UmVxdWVzdENvdW50KG1fcmVz
b3VyY2UpOworICAgICAgICBtX3JlcXVlc3RDb3VudFRyYWNrZXIuY2xlYXIoKTsKKyAgICAgICAg
c2V0U2hvdWxkQnVmZmVyRGF0YShEb05vdEJ1ZmZlckRhdGEpOwogICAgICAgICBpZiAoIW1fcmVz
b3VyY2UtPmlzSW1hZ2UoKSkgewogICAgICAgICAgICAgY2FuY2VsKCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXIgPSByZXNvdXJjZURhdGEoKTsKLSAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCAm
JiBidWZmZXIgJiYgYnVmZmVyLT5zaXplKCkpIHsKLSAgICAgICAgLy8gU2luY2UgYSBzdWJyZXNv
dXJjZSBsb2FkZXIgZG9lcyBub3QgbG9hZCBtdWx0aXBhcnQgc2VjdGlvbnMgcHJvZ3Jlc3NpdmVs
eSwKLSAgICAgICAgLy8gZGVsaXZlciB0aGUgcHJldmlvdXNseSByZWNlaXZlZCBkYXRhIHRvIHRo
ZSBsb2FkZXIgYWxsIGF0IG9uY2Ugbm93LgotICAgICAgICAvLyBUaGVuIGNsZWFyIHRoZSBkYXRh
IHRvIG1ha2Ugd2F5IGZvciB0aGUgbmV4dCBtdWx0aXBhcnQgc2VjdGlvbi4KLSAgICAgICAgc2Vu
ZERhdGFUb1Jlc291cmNlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7Ci0gICAgICAg
IGNsZWFyUmVzb3VyY2VEYXRhKCk7Ci0gICAgICAgIAotICAgICAgICAvLyBBZnRlciB0aGUgZmly
c3QgbXVsdGlwYXJ0IHNlY3Rpb24gaXMgY29tcGxldGUsIHNpZ25hbCB0byBkZWxlZ2F0ZXMgdGhh
dCB0aGlzIGxvYWQgaXMgImZpbmlzaGVkIiAKLSAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3Vi
cmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KHRoaXMpOwotICAgICAgICBkaWRG
aW5pc2hMb2FkaW5nT25lUGFydCgwKTsKLSAgICB9CiB9CiAKIHZvaWQgU3VicmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9u
ZyBlbmNvZGVkRGF0YUxlbmd0aCwgYm9vbCBhbGxBdE9uY2UpCiB7CiAgICAgQVNTRVJUKCFtX3Jl
c291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2Ut
PmVycm9yT2NjdXJyZWQoKSk7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gSW5pdGlhbGl6ZWQpOwog
ICAgIC8vIFJlZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRoaXMgbWV0aG9kIHNpbmNlIHRoZSBhZGRp
dGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvCiAgICAgLy8gYW55dGhpbmcgaW5jbHVkaW5nIHJlbW92
aW5nIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhp
cyBpcyAzMjY2MjE2LgogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlz
KTsKQEAgLTIxOCwyNyArMjIyLDIwIEBACiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBp
ZiAoIW1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpCi0gICAgICAgIHNlbmREYXRhVG9SZXNvdXJj
ZShkYXRhLCBsZW5ndGgpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IHJlc291
cmNlRGF0YSgpID8gcmVzb3VyY2VEYXRhKCkgOiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpOworICAgIG1fcmVzb3VyY2UtPmRhdGEoYnVmZmVyLnJlbGVhc2UoKSwgbV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudCk7CisgICAgCisgICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRl
bnQpIHsKKyAgICAgICAgLy8gU2luY2UgYSBzdWJyZXNvdXJjZSBsb2FkZXIgZG9lcyBub3QgbG9h
ZCBtdWx0aXBhcnQgc2VjdGlvbnMgcHJvZ3Jlc3NpdmVseSwgZGF0YSB3YXMgZGVsaXZlcmVkIHRv
IHRoZSBsb2FkZXIgYWxsIGF0IG9uY2UuICAgICAgICAKKyAgICAgICAgLy8gQWZ0ZXIgdGhlIGZp
cnN0IG11bHRpcGFydCBzZWN0aW9uIGlzIGNvbXBsZXRlLCBzaWduYWwgdG8gZGVsZWdhdGVzIHRo
YXQgdGhpcyBsb2FkIGlzICJmaW5pc2hlZCIgCisgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnN1
YnJlc291cmNlTG9hZGVyRmluaXNoZWRMb2FkaW5nT25lUGFydCh0aGlzKTsKKyAgICAgICAgZGlk
RmluaXNoTG9hZGluZ09uZVBhcnQoMCk7CisgICAgfQogfQogCi12b2lkIFN1YnJlc291cmNlTG9h
ZGVyOjpzZW5kRGF0YVRvUmVzb3VyY2UoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKLXsK
LSAgICAvLyBUaGVyZSBhcmUgdHdvIGNhc2VzIHdoZXJlIHdlIG1pZ2h0IG5lZWQgdG8gY3JlYXRl
IG91ciBvd24gU2hhcmVkQnVmZmVyIGluc3RlYWQgb2YgY29weWluZyB0aGUgb25lIGluIFJlc291
cmNlTG9hZGVyLgotICAgIC8vICgxKSBNdWx0aXBhcnQgY29udGVudDogVGhlIGxvYWRlciBkZWxp
dmVycyB0aGUgZGF0YSBpbiBhIG11bHRpcGFydCBzZWN0aW9uIGFsbCBhdCBvbmNlLCB0aGVuIHNl
bmRzIGVvZi4KLSAgICAvLyAgICAgVGhlIHJlc291cmNlIGRhdGEgd2lsbCBjaGFuZ2UgYXMgdGhl
IG5leHQgcGFydCBpcyBsb2FkZWQsIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNvcHkuCi0gICAgLy8g
KDIpIE91ciBjbGllbnQgcmVxdWVzdGVkIHRoYXQgdGhlIGRhdGEgbm90IGJlIGJ1ZmZlcmVkIGF0
IHRoZSBSZXNvdXJjZUxvYWRlciBsZXZlbCB2aWEgUmVzb3VyY2VMb2FkZXJPcHRpb25zLiBJbiB0
aGlzIGNhc2UsCi0gICAgLy8gICAgIFJlc291cmNlTG9hZGVyOjpyZXNvdXJjZURhdGEoKSB3aWxs
IGJlIG51bGwuIEhvd2V2ZXIsIHVubGlrZSB0aGUgbXVsdGlwYXJ0IGNhc2UsIHdlIGRvbid0IHdh
bnQgdG8gdGVsbCB0aGUgQ2FjaGVkUmVzb3VyY2UKLSAgICAvLyAgICAgdGhhdCBhbGwgZGF0YSBo
YXMgYmVlbiByZWNlaXZlZCB5ZXQuCi0gICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQg
fHwgIXJlc291cmNlRGF0YSgpKSB7Ci0gICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGNvcGll
ZERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBsZW5ndGgpOwotICAgICAgICBtX3Jl
c291cmNlLT5kYXRhKGNvcGllZERhdGEucmVsZWFzZSgpLCBtX2xvYWRpbmdNdWx0aXBhcnRDb250
ZW50KTsKLSAgICB9IGVsc2UKLSAgICAgICAgbV9yZXNvdXJjZS0+ZGF0YShyZXNvdXJjZURhdGEo
KSwgZmFsc2UpOwotfQotCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVk
TWV0YWRhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKKyAgICBBU1NFUlQobV9z
dGF0ZSA9PSBJbml0aWFsaXplZCk7CiAgICAgQVNTRVJUKCFtX3Jlc291cmNlLT5yZXNvdXJjZVRv
UmV2YWxpZGF0ZSgpKTsKICAgICBtX3Jlc291cmNlLT5zZXRTZXJpYWxpemVkQ2FjaGVkTWV0YWRh
dGEoZGF0YSwgbGVuZ3RoKTsKIH0KQEAgLTI5Niw5ICsyOTMsNyBAQAogewogICAgIEFTU0VSVCgh
cmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CiAgICAgaWYgKG1fc3RhdGUgIT0gVW5pbml0aWFsaXpl
ZCkgewotICAgICAgICBpZiAoIW1fbG9hZGluZ011bHRpcGFydENvbnRlbnQgJiYgbV9zdGF0ZSAh
PSBSZWxlYXNpbmcpCi0gICAgICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQobV9yZXNvdXJjZSk7Ci0gICAgICAgIG1fc3RhdGUg
PSBSZWxlYXNpbmc7CisgICAgICAgIG1fcmVxdWVzdENvdW50VHJhY2tlci5jbGVhcigpOwogICAg
ICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5sb2FkRG9uZSgpOwogICAg
ICAgICBpZiAocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKICAgICAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAx
MDQwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKQEAgLTcxLDIwICs3MiwyNyBAQAogI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VSZXNvdXJjZXMoKTsKIAotICAgIHZvaWQgc2Vu
ZERhdGFUb1Jlc291cmNlKGNvbnN0IGNoYXIqLCBpbnQpOwotCiAgICAgZW51bSBTdWJyZXNvdXJj
ZUxvYWRlclN0YXRlIHsKICAgICAgICAgVW5pbml0aWFsaXplZCwKICAgICAgICAgSW5pdGlhbGl6
ZWQsCiAgICAgICAgIFJldmFsaWRhdGluZywKLSAgICAgICAgRmluaXNoaW5nLAotICAgICAgICBS
ZWxlYXNpbmcKKyAgICAgICAgRmluaXNoaW5nCiAgICAgfTsKIAorICAgIGNsYXNzIFJlcXVlc3RD
b3VudFRyYWNrZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgUmVxdWVzdENvdW50VHJhY2tlcihD
YWNoZWRSZXNvdXJjZUxvYWRlciosIENhY2hlZFJlc291cmNlKik7CisgICAgICAgIH5SZXF1ZXN0
Q291bnRUcmFja2VyKCk7CisgICAgcHJpdmF0ZToKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIqIG1fY2FjaGVkUmVzb3VyY2VMb2FkZXI7CisgICAgICAgIENhY2hlZFJlc291cmNlKiBtX3Jl
c291cmNlOworICAgIH07CisKICAgICBDYWNoZWRSZXNvdXJjZSogbV9yZXNvdXJjZTsKICAgICBS
ZWZQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgYm9vbCBtX2xvYWRpbmdNdWx0aXBhcnRD
b250ZW50OwogICAgIFN1YnJlc291cmNlTG9hZGVyU3RhdGUgbV9zdGF0ZTsKKyAgICBPd25QdHI8
UmVxdWVzdENvdW50VHJhY2tlcj4gbV9yZXF1ZXN0Q291bnRUcmFja2VyOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121726</attachid>
            <date>2012-01-09 14:27:20 -0800</date>
            <delta_ts>2012-01-09 15:47:59 -0800</delta_ts>
            <desc>Diffing from the right directory this time</desc>
            <filename>cleanup.txt</filename>
            <type>text/plain</type>
            <size>12358</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDQ2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTA5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3VicmVzb3VyY2VMb2FkZXIg
Y2xlYW51cCBwb3N0IHIxMDAzMTEuCisgICAgICAgIDEuIFNpbXBsaWZ5IG1hdGNoaW5nIGluY3Jl
bWVudFJlcXVlc3RDb3VudCgpL2RlY3JlbWVudFJlcXVlc3RDb3VudCgpIGNhbGxzLgorICAgICAg
ICAyLiBSZW1vdmUgQ2FjaGVkSW1hZ2UgY3VzdG9tIGNvZGUgZnJvbSBTdWJyZXNvdXJjZUxvYWRl
ci4KKyAgICAgICAgMy4gQWRkIGEgYnVuY2ggb2YgQVNTRVJUcy4KKyAgICAgICAgNC4gUmVtb3Zl
IHRoZSBtdWx0aXBhcnQtb25seSBjYWxsIHRvIGRpZFJlY2VpdmVEYXRhKCkgZnJvbSBkaWRSZWNl
aXZlUmVzcG9uc2UoKSwKKyAgICAgICAgICAgc2luY2UgZGlkUmVjZWl2ZURhdGEoKSB3b3VsZCBn
ZXQgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGFueXdheS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3RvciBvbmx5Lgor
CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBSZW1vdmUgbXVsdGlw
YXJ0IHNwZWNpYWwgY2FzZSwgaGFuZGxlIGl0IGluIGRpZFJlY2VpdmVEYXRhKCkuCisgICAgICAg
ICAgICBUaGlzIHJlbW92ZXMgdGhlIG5lZWQgZm9yIHRoZSBzZW5kRGF0YVRvUmVzb3VyY2UoKSBh
YnN0cmFjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlRGF0YSk6IEhhbmRsZSBtdWx0aXBhcnQgc3RhdGUgaGVyZSwgc2luY2Ugd2Ugd2lsbCByZWNl
aXZlIG9ubHkgb25lCisgICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEoKSBjYWxsIHBlciBtdWx0
aXBhcnQgc2VnbWVudCwgYnV0IG5vIGRpZEZpbmlzaExvYWRpbmcoKSBjYWxsLgorICAgICAgICAq
IGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oOiBBZGQgYSBSZXF1ZXN0Q291bnRUcmFja2VyIHN1
YmNsYXNzIHRvIHJlZHVjZSBjb21wbGV4aXR5IG9mIGVuc3VyaW5nIHdlIGRvbid0CisgICAgICAg
ICAgICBkZWNyZW1lbnQgcmVxdWVzdCBjb3VudCB0d2ljZSBvbiBDYWNoZWRSZXNvdXJjZUxvYWRl
ci4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkSW1hZ2U6OnNldFJlc3BvbnNlKTogTW92ZSBDYWNoZWRJbWFnZTo6Y2xlYXIo
KSBjYWxsIG91dCBvZiBTdWJyZXNvdXJjZUxvYWRlciwgc2luY2UgaXQncworICAgICAgICAgICAg
a2luZCBvZiBhIGxheWVyaW5nIHZpb2xhdGlvbiBhcyBpcy4KKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwOgorCiAyMDEyLTAxLTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA0NDE4LgpJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAx
MDQwNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zODcsNiArMzg3LDEzIEBACiAgICAgY2hlY2tOb3RpZnkoKTsKIH0K
IAordm9pZCBDYWNoZWRJbWFnZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit7CisgICAgaWYgKG1fcmVzcG9uc2UuaXNOdWxsKCkpCisgICAgICAgIGNsZWFy
KCk7CisgICAgQ2FjaGVkUmVzb3VyY2U6OnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKK30KKwogdm9p
ZCBDYWNoZWRJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBib29sIGNhbkRlbGV0
ZUltYWdlID0gIW1faW1hZ2UgfHwgKG1faW1hZ2UtPmhhc09uZVJlZigpICYmIG1faW1hZ2UtPmlz
Qml0bWFwSW1hZ2UoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
SW1hZ2UuaAkocmV2aXNpb24gMTA0MDYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDE0ICs3NSwxMiBAQAogCiAgICAg
dmlydHVhbCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxs
RGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0
YXR1cyk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICAKICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgaW1hZ2VzIGtlZXAgbG9hZGlu
ZyBldmVuIGlmIHRoZXJlIGFyZSBIVFRQIGVycm9ycy4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
SWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotICAgIHZv
aWQgY2xlYXIoKTsKLSAgICAKICAgICBib29sIHN0aWxsTmVlZHNMb2FkKCkgY29uc3QgeyByZXR1
cm4gIWVycm9yT2NjdXJyZWQoKSAmJiBzdGF0dXMoKSA9PSBVbmtub3duICYmICFpc0xvYWRpbmco
KTsgfQogICAgIHZvaWQgbG9hZCgpOwogCkBAIC05Nyw2ICs5NSw4IEBACiBwcml2YXRlOgogICAg
IEltYWdlKiBsb29rdXBPckNyZWF0ZUltYWdlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0
Kik7CiAKKyAgICB2b2lkIGNsZWFyKCk7CisKICAgICB2b2lkIGNyZWF0ZUltYWdlKCk7CiAgICAg
c2l6ZV90IG1heGltdW1EZWNvZGVkSW1hZ2VTaXplKCk7CiAgICAgLy8gSWYgbm90IG51bGwsIGNo
YW5nZVJlY3QgaXMgdGhlIGNoYW5nZWQgcGFydCBvZiB0aGUgaW1hZ2UuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDEw
NDA2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNCw3ICsyMTQsNyBAQAogICAgIG1fcmVzb3VyY2VSZXF1ZXN0
LnNldFByaW9yaXR5KGxvYWRQcmlvcml0eSgpKTsKICAgICAKICAgICBtX2xvYWRlciA9IHJlc291
cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRSZXNvdXJj
ZUxvYWRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdGhpcywgbV9yZXNvdXJjZVJlcXVlc3QsIG1f
cmVzb3VyY2VSZXF1ZXN0LnByaW9yaXR5KCksIG9wdGlvbnMpOwotICAgIGlmICghbV9sb2FkZXIg
fHwgbV9sb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpIHsKKyAgICBpZiAoIW1fbG9hZGVy
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHJlc291cmNlcyBpbiBvdGhlciBmcmFtZXMg
d2VyZSB3YWl0aW5nIGZvciB0aGlzIHJldmFsaWRhdGlvbj8KICAgICAgICAgTE9HKFJlc291cmNl
TG9hZGluZywgIkNhbm5vdCBzdGFydCBsb2FkaW5nICclcyciLCB1cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwogICAgICAgICBpZiAobV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSkgCkBAIC0y
MjQsNyArMjI0LDYgQEAKICAgICB9CiAKICAgICBtX3N0YXR1cyA9IFBlbmRpbmc7Ci0gICAgY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudCh0aGlzKTsKIH0KIAogdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6Y2hlY2tOb3RpZnkoKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMDQwNjIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3VicmVzb3VyY2VM
b2FkZXIuaCIKIAotI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCkBAIC00NywxMiArNDYsMjUgQEAKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFM
KFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCBzdWJyZXNvdXJjZUxvYWRlckNvdW50ZXIsICgi
U3VicmVzb3VyY2VMb2FkZXIiKSk7CiAKK1N1YnJlc291cmNlTG9hZGVyOjpSZXF1ZXN0Q291bnRU
cmFja2VyOjpSZXF1ZXN0Q291bnRUcmFja2VyKENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRS
ZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQorICAgIDogbV9jYWNoZWRS
ZXNvdXJjZUxvYWRlcihjYWNoZWRSZXNvdXJjZUxvYWRlcikKKyAgICAsIG1fcmVzb3VyY2UocmVz
b3VyY2UpCit7CisgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+aW5jcmVtZW50UmVxdWVzdENv
dW50KG1fcmVzb3VyY2UpOworfQorCitTdWJyZXNvdXJjZUxvYWRlcjo6UmVxdWVzdENvdW50VHJh
Y2tlcjo6flJlcXVlc3RDb3VudFRyYWNrZXIoKQoreworICAgIG1fY2FjaGVkUmVzb3VyY2VMb2Fk
ZXItPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKK30KKwogU3VicmVzb3VyY2VM
b2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBSZXNv
dXJjZUxvYWRlcihmcmFtZSwgb3B0aW9ucykKICAgICAsIG1fcmVzb3VyY2UocmVzb3VyY2UpCiAg
ICAgLCBtX2RvY3VtZW50KGZyYW1lLT5kb2N1bWVudCgpKQogICAgICwgbV9sb2FkaW5nTXVsdGlw
YXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fc3RhdGUoVW5pbml0aWFsaXplZCkKKyAgICAsIG1f
cmVxdWVzdENvdW50VHJhY2tlcihhZG9wdFB0cihuZXcgUmVxdWVzdENvdW50VHJhY2tlcihmcmFt
ZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgcmVzb3VyY2UpKSkKIHsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVyLmluY3JlbWVudCgpOwpA
QCAtNjEsNiArNzMsOSBAQAogCiBTdWJyZXNvdXJjZUxvYWRlcjo6flN1YnJlc291cmNlTG9hZGVy
KCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbml0aWFsaXplZCk7CisgICAgQVNTRVJUKCFt
X2RvY3VtZW50KTsKKyAgICBBU1NFUlQocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CiAjaWZuZGVm
IE5ERUJVRwogICAgIHN1YnJlc291cmNlTG9hZGVyQ291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRp
ZgpAQCAtMTE5LDYgKzEzNCw3IEBACiAgICAgaWYgKCFSZXNvdXJjZUxvYWRlcjo6aW5pdChyZXF1
ZXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgQVNTRVJUKCFyZWFjaGVkVGVybWlu
YWxTdGF0ZSgpKTsKICAgICBtX3N0YXRlID0gSW5pdGlhbGl6ZWQ7CiAgICAgbV9kb2N1bWVudExv
YWRlci0+YWRkU3VicmVzb3VyY2VMb2FkZXIodGhpcyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0x
NDEsNiArMTU3LDcgQEAKIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5z
aWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNU
b0JlU2VudCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAgICAgUmVm
UHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogICAgIG1fcmVzb3VyY2UtPmRp
ZFNlbmREYXRhKGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKIH0KQEAgLTE0OCw2ICsx
NjUsNyBAQAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIEFTU0VSVCghcmVzcG9uc2UuaXNO
dWxsKCkpOworICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKIAogICAgIC8vIFJl
ZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRoaXMgbWV0aG9kIHNpbmNlIHRoZSBhZGRpdGlvbmFsIHBy
b2Nlc3NpbmcgY2FuIGRvCiAgICAgLy8gYW55dGhpbmcgaW5jbHVkaW5nIHJlbW92aW5nIHRoZSBs
YXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2
MjE2LgpAQCAtMTc0LDM4ICsxOTIsMjQgQEAKICAgICAgICAgcmV0dXJuOwogICAgIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogCi0gICAgaWYgKG1fbG9hZGlu
Z011bHRpcGFydENvbnRlbnQpIHsKLSAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2UtPmlzSW1hZ2Uo
KSk7Ci0gICAgICAgIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4obV9yZXNvdXJjZSktPmNsZWFy
KCk7Ci0gICAgfSBlbHNlIGlmIChyZXNwb25zZS5pc011bHRpcGFydCgpKSB7CisgICAgaWYgKHJl
c3BvbnNlLmlzTXVsdGlwYXJ0KCkpIHsKICAgICAgICAgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVu
dCA9IHRydWU7CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgY291bnQgbXVsdGlQYXJ0cyBpbiBhIENh
Y2hlZFJlc291cmNlTG9hZGVyJ3MgcmVxdWVzdCBjb3VudAotICAgICAgICBtX2RvY3VtZW50LT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQobV9yZXNvdXJjZSk7
CisgICAgICAgIG1fcmVxdWVzdENvdW50VHJhY2tlci5jbGVhcigpOworICAgICAgICBzZXRTaG91
bGRCdWZmZXJEYXRhKERvTm90QnVmZmVyRGF0YSk7CiAgICAgICAgIGlmICghbV9yZXNvdXJjZS0+
aXNJbWFnZSgpKSB7CiAgICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KLQotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IHJl
c291cmNlRGF0YSgpOwotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYmIGJ1ZmZl
ciAmJiBidWZmZXItPnNpemUoKSkgewotICAgICAgICAvLyBTaW5jZSBhIHN1YnJlc291cmNlIGxv
YWRlciBkb2VzIG5vdCBsb2FkIG11bHRpcGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LAotICAg
ICAgICAvLyBkZWxpdmVyIHRoZSBwcmV2aW91c2x5IHJlY2VpdmVkIGRhdGEgdG8gdGhlIGxvYWRl
ciBhbGwgYXQgb25jZSBub3cuCi0gICAgICAgIC8vIFRoZW4gY2xlYXIgdGhlIGRhdGEgdG8gbWFr
ZSB3YXkgZm9yIHRoZSBuZXh0IG11bHRpcGFydCBzZWN0aW9uLgotICAgICAgICBzZW5kRGF0YVRv
UmVzb3VyY2UoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAgY2xlYXJS
ZXNvdXJjZURhdGEoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIEFmdGVyIHRoZSBmaXJzdCBtdWx0
aXBhcnQgc2VjdGlvbiBpcyBjb21wbGV0ZSwgc2lnbmFsIHRvIGRlbGVnYXRlcyB0aGF0IHRoaXMg
bG9hZCBpcyAiZmluaXNoZWQiIAotICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdWJyZXNvdXJj
ZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQodGhpcyk7Ci0gICAgICAgIGRpZEZpbmlzaExv
YWRpbmdPbmVQYXJ0KDApOwotICAgIH0KIH0KIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29k
ZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKIHsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2Ut
PnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwogICAgIEFTU0VSVCghbV9yZXNvdXJjZS0+ZXJyb3JP
Y2N1cnJlZCgpKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAgICAgLy8g
UmVmZXJlbmNlIHRoZSBvYmplY3QgaW4gdGhpcyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwg
cHJvY2Vzc2luZyBjYW4gZG8KICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcmVtb3ZpbmcgdGhl
IGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMy
NjYyMTYuCiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAt
MjE4LDI3ICsyMjIsMjAgQEAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudCkKLSAgICAgICAgc2VuZERhdGFUb1Jlc291cmNlKGRhdGEs
IGxlbmd0aCk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gcmVzb3VyY2VEYXRh
KCkgPyByZXNvdXJjZURhdGEoKSA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7
CisgICAgbV9yZXNvdXJjZS0+ZGF0YShidWZmZXIucmVsZWFzZSgpLCBtX2xvYWRpbmdNdWx0aXBh
cnRDb250ZW50KTsKKyAgICAKKyAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewor
ICAgICAgICAvLyBTaW5jZSBhIHN1YnJlc291cmNlIGxvYWRlciBkb2VzIG5vdCBsb2FkIG11bHRp
cGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LCBkYXRhIHdhcyBkZWxpdmVyZWQgdG8gdGhlIGxv
YWRlciBhbGwgYXQgb25jZS4gICAgICAgIAorICAgICAgICAvLyBBZnRlciB0aGUgZmlyc3QgbXVs
dGlwYXJ0IHNlY3Rpb24gaXMgY29tcGxldGUsIHNpZ25hbCB0byBkZWxlZ2F0ZXMgdGhhdCB0aGlz
IGxvYWQgaXMgImZpbmlzaGVkIiAKKyAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3VicmVzb3Vy
Y2VMb2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KHRoaXMpOworICAgICAgICBkaWRGaW5pc2hM
b2FkaW5nT25lUGFydCgwKTsKKyAgICB9CiB9CiAKLXZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OnNl
bmREYXRhVG9SZXNvdXJjZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQotewotICAgIC8v
IFRoZXJlIGFyZSB0d28gY2FzZXMgd2hlcmUgd2UgbWlnaHQgbmVlZCB0byBjcmVhdGUgb3VyIG93
biBTaGFyZWRCdWZmZXIgaW5zdGVhZCBvZiBjb3B5aW5nIHRoZSBvbmUgaW4gUmVzb3VyY2VMb2Fk
ZXIuCi0gICAgLy8gKDEpIE11bHRpcGFydCBjb250ZW50OiBUaGUgbG9hZGVyIGRlbGl2ZXJzIHRo
ZSBkYXRhIGluIGEgbXVsdGlwYXJ0IHNlY3Rpb24gYWxsIGF0IG9uY2UsIHRoZW4gc2VuZHMgZW9m
LgotICAgIC8vICAgICBUaGUgcmVzb3VyY2UgZGF0YSB3aWxsIGNoYW5nZSBhcyB0aGUgbmV4dCBw
YXJ0IGlzIGxvYWRlZCwgc28gd2UgbmVlZCB0byBtYWtlIGEgY29weS4KLSAgICAvLyAoMikgT3Vy
IGNsaWVudCByZXF1ZXN0ZWQgdGhhdCB0aGUgZGF0YSBub3QgYmUgYnVmZmVyZWQgYXQgdGhlIFJl
c291cmNlTG9hZGVyIGxldmVsIHZpYSBSZXNvdXJjZUxvYWRlck9wdGlvbnMuIEluIHRoaXMgY2Fz
ZSwKLSAgICAvLyAgICAgUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlRGF0YSgpIHdpbGwgYmUgbnVs
bC4gSG93ZXZlciwgdW5saWtlIHRoZSBtdWx0aXBhcnQgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byB0
ZWxsIHRoZSBDYWNoZWRSZXNvdXJjZQotICAgIC8vICAgICB0aGF0IGFsbCBkYXRhIGhhcyBiZWVu
IHJlY2VpdmVkIHlldC4KLSAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCB8fCAhcmVz
b3VyY2VEYXRhKCkpIHsKLSAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gY29waWVkRGF0YSA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7Ci0gICAgICAgIG1fcmVzb3VyY2Ut
PmRhdGEoY29waWVkRGF0YS5yZWxlYXNlKCksIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpOwot
ICAgIH0gZWxzZQotICAgICAgICBtX3Jlc291cmNlLT5kYXRhKHJlc291cmNlRGF0YSgpLCBmYWxz
ZSk7Ci19Ci0KIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogeworICAgIEFTU0VSVChtX3N0YXRlID09
IEluaXRpYWxpemVkKTsKICAgICBBU1NFUlQoIW1fcmVzb3VyY2UtPnJlc291cmNlVG9SZXZhbGlk
YXRlKCkpOwogICAgIG1fcmVzb3VyY2UtPnNldFNlcmlhbGl6ZWRDYWNoZWRNZXRhZGF0YShkYXRh
LCBsZW5ndGgpOwogfQpAQCAtMjk2LDkgKzI5Myw3IEBACiB7CiAgICAgQVNTRVJUKCFyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKTsKICAgICBpZiAobV9zdGF0ZSAhPSBVbmluaXRpYWxpemVkKSB7Ci0g
ICAgICAgIGlmICghbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCAmJiBtX3N0YXRlICE9IFJlbGVh
c2luZykKLSAgICAgICAgICAgIG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmRl
Y3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKLSAgICAgICAgbV9zdGF0ZSA9IFJlbGVh
c2luZzsKKyAgICAgICAgbV9yZXF1ZXN0Q291bnRUcmFja2VyLmNsZWFyKCk7CiAgICAgICAgIG1f
ZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmxvYWREb25lKCk7CiAgICAgICAgIGlm
IChyZWFjaGVkVGVybWluYWxTdGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEwNDA2MikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw2ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hl
ZFJlc291cmNlOworY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIApAQCAtNzEsMjAgKzcyLDI3IEBACiAjZW5kaWYKICAg
ICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwogCi0gICAgdm9pZCBzZW5kRGF0YVRv
UmVzb3VyY2UoY29uc3QgY2hhciosIGludCk7Ci0KICAgICBlbnVtIFN1YnJlc291cmNlTG9hZGVy
U3RhdGUgewogICAgICAgICBVbmluaXRpYWxpemVkLAogICAgICAgICBJbml0aWFsaXplZCwKICAg
ICAgICAgUmV2YWxpZGF0aW5nLAotICAgICAgICBGaW5pc2hpbmcsCi0gICAgICAgIFJlbGVhc2lu
ZworICAgICAgICBGaW5pc2hpbmcKICAgICB9OwogCisgICAgY2xhc3MgUmVxdWVzdENvdW50VHJh
Y2tlciB7CisgICAgcHVibGljOgorICAgICAgICBSZXF1ZXN0Q291bnRUcmFja2VyKENhY2hlZFJl
c291cmNlTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICAgICAgflJlcXVlc3RDb3VudFRy
YWNrZXIoKTsKKyAgICBwcml2YXRlOgorICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogbV9j
YWNoZWRSZXNvdXJjZUxvYWRlcjsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIG1fcmVzb3VyY2U7
CisgICAgfTsKKwogICAgIENhY2hlZFJlc291cmNlKiBtX3Jlc291cmNlOwogICAgIFJlZlB0cjxE
b2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQ7
CiAgICAgU3VicmVzb3VyY2VMb2FkZXJTdGF0ZSBtX3N0YXRlOworICAgIE93blB0cjxSZXF1ZXN0
Q291bnRUcmFja2VyPiBtX3JlcXVlc3RDb3VudFRyYWNrZXI7CiB9OwogCiB9Cg==
</data>
<flag name="review"
          id="122321"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="122322"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121738</attachid>
            <date>2012-01-09 15:47:59 -0800</date>
            <delta_ts>2012-01-11 14:13:06 -0800</delta_ts>
            <desc>Merged to trunk.</desc>
            <filename>cleanup3.txt</filename>
            <type>text/plain</type>
            <size>12310</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTA5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3VicmVzb3VyY2VMb2FkZXIg
Y2xlYW51cCBwb3N0IHIxMDAzMTEuCisgICAgICAgIDEuIFNpbXBsaWZ5IG1hdGNoaW5nIGluY3Jl
bWVudFJlcXVlc3RDb3VudCgpL2RlY3JlbWVudFJlcXVlc3RDb3VudCgpIGNhbGxzLgorICAgICAg
ICAyLiBSZW1vdmUgQ2FjaGVkSW1hZ2UgY3VzdG9tIGNvZGUgZnJvbSBTdWJyZXNvdXJjZUxvYWRl
ci4KKyAgICAgICAgMy4gQWRkIGEgYnVuY2ggb2YgQVNTRVJUcy4KKyAgICAgICAgNC4gUmVtb3Zl
IHRoZSBtdWx0aXBhcnQtb25seSBjYWxsIHRvIGRpZFJlY2VpdmVEYXRhKCkgZnJvbSBkaWRSZWNl
aXZlUmVzcG9uc2UoKSwKKyAgICAgICAgICAgc2luY2UgZGlkUmVjZWl2ZURhdGEoKSB3b3VsZCBn
ZXQgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGFueXdheS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3RvciBvbmx5Lgor
CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOiBSZW1vdmUgbXVsdGlw
YXJ0IHNwZWNpYWwgY2FzZSwgaGFuZGxlIGl0IGluIGRpZFJlY2VpdmVEYXRhKCkuCisgICAgICAg
IChXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOiBIYW5kbGUgbXVs
dGlwYXJ0IHN0YXRlIGhlcmUsIHNpbmNlIHdlIHdpbGwgcmVjZWl2ZSBvbmx5IG9uZQorICAgICAg
ICAgICAgIGRpZFJlY2VpdmVEYXRhKCkgY2FsbCBwZXIgbXVsdGlwYXJ0IHNlZ21lbnQsIGJ1dCBu
byBkaWRGaW5pc2hMb2FkaW5nKCkgY2FsbC4KKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuaDogQWRkIGEgUmVxdWVzdENvdW50VHJhY2tlciBzdWJjbGFzcyB0byByZWR1Y2UgY29t
cGxleGl0eSBvZiBlbnN1cmluZyB3ZSBkb24ndAorICAgICAgICAgICAgZGVjcmVtZW50IHJlcXVl
c3QgY291bnQgdHdpY2Ugb24gQ2FjaGVkUmVzb3VyY2VMb2FkZXIuCisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjpz
ZXRSZXNwb25zZSk6IE1vdmUgQ2FjaGVkSW1hZ2U6OmNsZWFyKCkgY2FsbCBvdXQgb2YgU3VicmVz
b3VyY2VMb2FkZXIsIHNpbmNlIGl0J3MKKyAgICAgICAgICAgIGtpbmQgb2YgYSBsYXllcmluZyB2
aW9sYXRpb24gYXMgaXMuCisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKwogMjAxMi0wMS0wOSAg
UGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgQ29tcGlsYXRp
b24gZXJyb3Igb24gYnVpbGQtd2Via2l0IC0tZGVidWcgLS1uby0zZC1jYW52YXMgb24gbWFjLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCShyZXZp
c2lvbiAxMDQ0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcsNiArMzg3LDEzIEBACiAgICAgY2hlY2tOb3RpZnko
KTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKG1fcmVzcG9uc2UuaXNOdWxsKCkpCisgICAgICAg
IGNsZWFyKCk7CisgICAgQ2FjaGVkUmVzb3VyY2U6OnNldFJlc3BvbnNlKHJlc3BvbnNlKTsKK30K
Kwogdm9pZCBDYWNoZWRJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBib29sIGNh
bkRlbGV0ZUltYWdlID0gIW1faW1hZ2UgfHwgKG1faW1hZ2UtPmhhc09uZVJlZigpICYmIG1faW1h
Z2UtPmlzQml0bWFwSW1hZ2UoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuaAkocmV2aXNpb24gMTA0NDkxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDE0ICs3NSwxMiBAQAog
CiAgICAgdmlydHVhbCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJv
b2wgYWxsRGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3Vy
Y2U6OlN0YXR1cyk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKICAgICAKICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgaW1hZ2VzIGtlZXAg
bG9hZGluZyBldmVuIGlmIHRoZXJlIGFyZSBIVFRQIGVycm9ycy4KICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQot
ICAgIHZvaWQgY2xlYXIoKTsKLSAgICAKICAgICBib29sIHN0aWxsTmVlZHNMb2FkKCkgY29uc3Qg
eyByZXR1cm4gIWVycm9yT2NjdXJyZWQoKSAmJiBzdGF0dXMoKSA9PSBVbmtub3duICYmICFpc0xv
YWRpbmcoKTsgfQogICAgIHZvaWQgbG9hZCgpOwogCkBAIC05Nyw2ICs5NSw4IEBACiBwcml2YXRl
OgogICAgIEltYWdlKiBsb29rdXBPckNyZWF0ZUltYWdlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0Kik7CiAKKyAgICB2b2lkIGNsZWFyKCk7CisKICAgICB2b2lkIGNyZWF0ZUltYWdlKCk7
CiAgICAgc2l6ZV90IG1heGltdW1EZWNvZGVkSW1hZ2VTaXplKCk7CiAgICAgLy8gSWYgbm90IG51
bGwsIGNoYW5nZVJlY3QgaXMgdGhlIGNoYW5nZWQgcGFydCBvZiB0aGUgaW1hZ2UuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHJldmlz
aW9uIDEwNDQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNCw3ICsyMTQsNyBAQAogICAgIG1fcmVzb3VyY2VS
ZXF1ZXN0LnNldFByaW9yaXR5KGxvYWRQcmlvcml0eSgpKTsKICAgICAKICAgICBtX2xvYWRlciA9
IHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zY2hlZHVsZVN1YnJlc291cmNlTG9hZChjYWNoZWRS
ZXNvdXJjZUxvYWRlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSwgdGhpcywgbV9yZXNvdXJjZVJlcXVl
c3QsIG1fcmVzb3VyY2VSZXF1ZXN0LnByaW9yaXR5KCksIG9wdGlvbnMpOwotICAgIGlmICghbV9s
b2FkZXIgfHwgbV9sb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpIHsKKyAgICBpZiAoIW1f
bG9hZGVyKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXaGF0IGlmIHJlc291cmNlcyBpbiBvdGhlciBm
cmFtZXMgd2VyZSB3YWl0aW5nIGZvciB0aGlzIHJldmFsaWRhdGlvbj8KICAgICAgICAgTE9HKFJl
c291cmNlTG9hZGluZywgIkNhbm5vdCBzdGFydCBsb2FkaW5nICclcyciLCB1cmwoKS5zdHJpbmco
KS5sYXRpbjEoKS5kYXRhKCkpOwogICAgICAgICBpZiAobV9yZXNvdXJjZVRvUmV2YWxpZGF0ZSkg
CkBAIC0yMjQsNyArMjI0LDYgQEAKICAgICB9CiAKICAgICBtX3N0YXR1cyA9IFBlbmRpbmc7Ci0g
ICAgY2FjaGVkUmVzb3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudCh0aGlzKTsKIH0K
IAogdm9pZCBDYWNoZWRSZXNvdXJjZTo6Y2hlY2tOb3RpZnkoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMDQ0OTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3VicmVz
b3VyY2VMb2FkZXIuaCIKIAotI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50TG9hZGVyLmgiCkBAIC00NywxMiArNDYsMjUgQEAKIAogREVGSU5FX0RFQlVHX09OTFlf
R0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCBzdWJyZXNvdXJjZUxvYWRlckNvdW50
ZXIsICgiU3VicmVzb3VyY2VMb2FkZXIiKSk7CiAKK1N1YnJlc291cmNlTG9hZGVyOjpSZXF1ZXN0
Q291bnRUcmFja2VyOjpSZXF1ZXN0Q291bnRUcmFja2VyKENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQorICAgIDogbV9j
YWNoZWRSZXNvdXJjZUxvYWRlcihjYWNoZWRSZXNvdXJjZUxvYWRlcikKKyAgICAsIG1fcmVzb3Vy
Y2UocmVzb3VyY2UpCit7CisgICAgbV9jYWNoZWRSZXNvdXJjZUxvYWRlci0+aW5jcmVtZW50UmVx
dWVzdENvdW50KG1fcmVzb3VyY2UpOworfQorCitTdWJyZXNvdXJjZUxvYWRlcjo6UmVxdWVzdENv
dW50VHJhY2tlcjo6flJlcXVlc3RDb3VudFRyYWNrZXIoKQoreworICAgIG1fY2FjaGVkUmVzb3Vy
Y2VMb2FkZXItPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKK30KKwogU3VicmVz
b3VyY2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKEZyYW1lKiBmcmFtZSwgQ2FjaGVkUmVzb3Vy
Y2UqIHJlc291cmNlLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAg
OiBSZXNvdXJjZUxvYWRlcihmcmFtZSwgb3B0aW9ucykKICAgICAsIG1fcmVzb3VyY2UocmVzb3Vy
Y2UpCiAgICAgLCBtX2RvY3VtZW50KGZyYW1lLT5kb2N1bWVudCgpKQogICAgICwgbV9sb2FkaW5n
TXVsdGlwYXJ0Q29udGVudChmYWxzZSkKICAgICAsIG1fc3RhdGUoVW5pbml0aWFsaXplZCkKKyAg
ICAsIG1fcmVxdWVzdENvdW50VHJhY2tlcihhZG9wdFB0cihuZXcgUmVxdWVzdENvdW50VHJhY2tl
cihmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgcmVzb3VyY2UpKSkK
IHsKICNpZm5kZWYgTkRFQlVHCiAgICAgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVyLmluY3JlbWVu
dCgpOwpAQCAtNjEsNiArNzMsOSBAQAogCiBTdWJyZXNvdXJjZUxvYWRlcjo6flN1YnJlc291cmNl
TG9hZGVyKCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbml0aWFsaXplZCk7CisgICAgQVNT
RVJUKCFtX2RvY3VtZW50KTsKKyAgICBBU1NFUlQocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CiAj
aWZuZGVmIE5ERUJVRwogICAgIHN1YnJlc291cmNlTG9hZGVyQ291bnRlci5kZWNyZW1lbnQoKTsK
ICNlbmRpZgpAQCAtMTE5LDYgKzEzNCw3IEBACiAgICAgaWYgKCFSZXNvdXJjZUxvYWRlcjo6aW5p
dChyZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgQVNTRVJUKCFyZWFjaGVk
VGVybWluYWxTdGF0ZSgpKTsKICAgICBtX3N0YXRlID0gSW5pdGlhbGl6ZWQ7CiAgICAgbV9kb2N1
bWVudExvYWRlci0+YWRkU3VicmVzb3VyY2VMb2FkZXIodGhpcyk7CiAgICAgcmV0dXJuIHRydWU7
CkBAIC0xNDEsNiArMTU3LDcgQEAKIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERh
dGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFs
Qnl0ZXNUb0JlU2VudCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAg
ICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwogICAgIG1fcmVzb3Vy
Y2UtPmRpZFNlbmREYXRhKGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKIH0KQEAgLTE0
OCw2ICsxNjUsNyBAQAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIEFTU0VSVCghcmVzcG9u
c2UuaXNOdWxsKCkpOworICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsKIAogICAg
IC8vIFJlZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRoaXMgbWV0aG9kIHNpbmNlIHRoZSBhZGRpdGlv
bmFsIHByb2Nlc3NpbmcgY2FuIGRvCiAgICAgLy8gYW55dGhpbmcgaW5jbHVkaW5nIHJlbW92aW5n
IHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25lIGV4YW1wbGUgb2YgdGhpcyBp
cyAzMjY2MjE2LgpAQCAtMTc0LDM4ICsxOTIsMjQgQEAKICAgICAgICAgcmV0dXJuOwogICAgIFJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogCi0gICAgaWYgKG1f
bG9hZGluZ011bHRpcGFydENvbnRlbnQpIHsKLSAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2UtPmlz
SW1hZ2UoKSk7Ci0gICAgICAgIHN0YXRpY19jYXN0PENhY2hlZEltYWdlKj4obV9yZXNvdXJjZSkt
PmNsZWFyKCk7Ci0gICAgfSBlbHNlIGlmIChyZXNwb25zZS5pc011bHRpcGFydCgpKSB7CisgICAg
aWYgKHJlc3BvbnNlLmlzTXVsdGlwYXJ0KCkpIHsKICAgICAgICAgbV9sb2FkaW5nTXVsdGlwYXJ0
Q29udGVudCA9IHRydWU7CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgY291bnQgbXVsdGlQYXJ0cyBp
biBhIENhY2hlZFJlc291cmNlTG9hZGVyJ3MgcmVxdWVzdCBjb3VudAotICAgICAgICBtX2RvY3Vt
ZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQobV9yZXNv
dXJjZSk7CisgICAgICAgIG1fcmVxdWVzdENvdW50VHJhY2tlci5jbGVhcigpOworICAgICAgICBz
ZXRTaG91bGRCdWZmZXJEYXRhKERvTm90QnVmZmVyRGF0YSk7CiAgICAgICAgIGlmICghbV9yZXNv
dXJjZS0+aXNJbWFnZSgpKSB7CiAgICAgICAgICAgICBjYW5jZWwoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KLQotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IHJlc291cmNlRGF0YSgpOwotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50ICYm
IGJ1ZmZlciAmJiBidWZmZXItPnNpemUoKSkgewotICAgICAgICAvLyBTaW5jZSBhIHN1YnJlc291
cmNlIGxvYWRlciBkb2VzIG5vdCBsb2FkIG11bHRpcGFydCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5
LAotICAgICAgICAvLyBkZWxpdmVyIHRoZSBwcmV2aW91c2x5IHJlY2VpdmVkIGRhdGEgdG8gdGhl
IGxvYWRlciBhbGwgYXQgb25jZSBub3cuCi0gICAgICAgIC8vIFRoZW4gY2xlYXIgdGhlIGRhdGEg
dG8gbWFrZSB3YXkgZm9yIHRoZSBuZXh0IG11bHRpcGFydCBzZWN0aW9uLgotICAgICAgICBzZW5k
RGF0YVRvUmVzb3VyY2UoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKLSAgICAgICAg
Y2xlYXJSZXNvdXJjZURhdGEoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIEFmdGVyIHRoZSBmaXJz
dCBtdWx0aXBhcnQgc2VjdGlvbiBpcyBjb21wbGV0ZSwgc2lnbmFsIHRvIGRlbGVnYXRlcyB0aGF0
IHRoaXMgbG9hZCBpcyAiZmluaXNoZWQiIAotICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdWJy
ZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQodGhpcyk7Ci0gICAgICAgIGRpZEZp
bmlzaExvYWRpbmdPbmVQYXJ0KDApOwotICAgIH0KIH0KIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25n
IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKIHsKICAgICBBU1NFUlQoIW1fcmVz
b3VyY2UtPnJlc291cmNlVG9SZXZhbGlkYXRlKCkpOwogICAgIEFTU0VSVCghbV9yZXNvdXJjZS0+
ZXJyb3JPY2N1cnJlZCgpKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAg
ICAgLy8gUmVmZXJlbmNlIHRoZSBvYmplY3QgaW4gdGhpcyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0
aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8KICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcmVtb3Zp
bmcgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlz
IGlzIDMyNjYyMTYuCiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMp
OwpAQCAtMjE0LDggKzIxOCwxNCBAQAogICAgIGlmIChlcnJvckxvYWRpbmdSZXNvdXJjZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpCi0g
ICAgICAgIHNlbmREYXRhVG9SZXNvdXJjZShkYXRhLCBsZW5ndGgpOworICAgIHNlbmREYXRhVG9S
ZXNvdXJjZShkYXRhLCBsZW5ndGgpOworICAgIAorICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRD
b250ZW50KSB7CisgICAgICAgIC8vIFNpbmNlIGEgc3VicmVzb3VyY2UgbG9hZGVyIGRvZXMgbm90
IGxvYWQgbXVsdGlwYXJ0IHNlY3Rpb25zIHByb2dyZXNzaXZlbHksIGRhdGEgd2FzIGRlbGl2ZXJl
ZCB0byB0aGUgbG9hZGVyIGFsbCBhdCBvbmNlLiAgICAgICAgCisgICAgICAgIC8vIEFmdGVyIHRo
ZSBmaXJzdCBtdWx0aXBhcnQgc2VjdGlvbiBpcyBjb21wbGV0ZSwgc2lnbmFsIHRvIGRlbGVnYXRl
cyB0aGF0IHRoaXMgbG9hZCBpcyAiZmluaXNoZWQiIAorICAgICAgICBtX2RvY3VtZW50TG9hZGVy
LT5zdWJyZXNvdXJjZUxvYWRlckZpbmlzaGVkTG9hZGluZ09uZVBhcnQodGhpcyk7CisgICAgICAg
IGRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KDApOworICAgIH0KIH0KIAogYm9vbCBTdWJyZXNvdXJj
ZUxvYWRlcjo6ZXJyb3JMb2FkaW5nUmVzb3VyY2UoKQpAQCAtMjMxLDIxICsyNDEsMTMgQEAKIAog
dm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6c2VuZERhdGFUb1Jlc291cmNlKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgpCiB7Ci0gICAgLy8gVGhlcmUgYXJlIHR3byBjYXNlcyB3aGVyZSB3ZSBt
aWdodCBuZWVkIHRvIGNyZWF0ZSBvdXIgb3duIFNoYXJlZEJ1ZmZlciBpbnN0ZWFkIG9mIGNvcHlp
bmcgdGhlIG9uZSBpbiBSZXNvdXJjZUxvYWRlci4KLSAgICAvLyAoMSkgTXVsdGlwYXJ0IGNvbnRl
bnQ6IFRoZSBsb2FkZXIgZGVsaXZlcnMgdGhlIGRhdGEgaW4gYSBtdWx0aXBhcnQgc2VjdGlvbiBh
bGwgYXQgb25jZSwgdGhlbiBzZW5kcyBlb2YuCi0gICAgLy8gICAgIFRoZSByZXNvdXJjZSBkYXRh
IHdpbGwgY2hhbmdlIGFzIHRoZSBuZXh0IHBhcnQgaXMgbG9hZGVkLCBzbyB3ZSBuZWVkIHRvIG1h
a2UgYSBjb3B5LgotICAgIC8vICgyKSBPdXIgY2xpZW50IHJlcXVlc3RlZCB0aGF0IHRoZSBkYXRh
IG5vdCBiZSBidWZmZXJlZCBhdCB0aGUgUmVzb3VyY2VMb2FkZXIgbGV2ZWwgdmlhIFJlc291cmNl
TG9hZGVyT3B0aW9ucy4gSW4gdGhpcyBjYXNlLAotICAgIC8vICAgICBSZXNvdXJjZUxvYWRlcjo6
cmVzb3VyY2VEYXRhKCkgd2lsbCBiZSBudWxsLiBIb3dldmVyLCB1bmxpa2UgdGhlIG11bHRpcGFy
dCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHRlbGwgdGhlIENhY2hlZFJlc291cmNlCi0gICAgLy8g
ICAgIHRoYXQgYWxsIGRhdGEgaGFzIGJlZW4gcmVjZWl2ZWQgeWV0LgotICAgIGlmIChtX2xvYWRp
bmdNdWx0aXBhcnRDb250ZW50IHx8ICFyZXNvdXJjZURhdGEoKSkgewotICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBjb3BpZWREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVu
Z3RoKTsKLSAgICAgICAgbV9yZXNvdXJjZS0+ZGF0YShjb3BpZWREYXRhLnJlbGVhc2UoKSwgbV9s
b2FkaW5nTXVsdGlwYXJ0Q29udGVudCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fcmVzb3VyY2Ut
PmRhdGEocmVzb3VyY2VEYXRhKCksIGZhbHNlKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIgPSByZXNvdXJjZURhdGEoKSA/IHJlc291cmNlRGF0YSgpIDogU2hhcmVkQnVmZmVyOjpj
cmVhdGUoZGF0YSwgbGVuZ3RoKTsKKyAgICBtX3Jlc291cmNlLT5kYXRhKGJ1ZmZlci5yZWxlYXNl
KCksIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQpOwogfQogCiB2b2lkIFN1YnJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJbml0aWFsaXplZCk7CiAgICAgQVNTRVJUKCFt
X3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKTsKICAgICBtX3Jlc291cmNlLT5zZXRT
ZXJpYWxpemVkQ2FjaGVkTWV0YWRhdGEoZGF0YSwgbGVuZ3RoKTsKIH0KQEAgLTMwMyw5ICszMDUs
NyBAQAogewogICAgIEFTU0VSVCghcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSk7CiAgICAgaWYgKG1f
c3RhdGUgIT0gVW5pbml0aWFsaXplZCkgewotICAgICAgICBpZiAoIW1fbG9hZGluZ011bHRpcGFy
dENvbnRlbnQgJiYgbV9zdGF0ZSAhPSBSZWxlYXNpbmcpCi0gICAgICAgICAgICBtX2RvY3VtZW50
LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQobV9yZXNvdXJj
ZSk7Ci0gICAgICAgIG1fc3RhdGUgPSBSZWxlYXNpbmc7CisgICAgICAgIG1fcmVxdWVzdENvdW50
VHJhY2tlci5jbGVhcigpOwogICAgICAgICBtX2RvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpLT5sb2FkRG9uZSgpOwogICAgICAgICBpZiAocmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKICAg
ICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJj
ZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJj
ZUxvYWRlci5oCShyZXZpc2lvbiAxMDQ0OTEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2NsYXNzIENhY2hlZFJlc291
cmNlTG9hZGVyOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKQEAg
LTc4LDE0ICs3OSwyMyBAQAogICAgICAgICBVbmluaXRpYWxpemVkLAogICAgICAgICBJbml0aWFs
aXplZCwKICAgICAgICAgUmV2YWxpZGF0aW5nLAotICAgICAgICBGaW5pc2hpbmcsCi0gICAgICAg
IFJlbGVhc2luZworICAgICAgICBGaW5pc2hpbmcKICAgICB9OwogCisgICAgY2xhc3MgUmVxdWVz
dENvdW50VHJhY2tlciB7CisgICAgcHVibGljOgorICAgICAgICBSZXF1ZXN0Q291bnRUcmFja2Vy
KENhY2hlZFJlc291cmNlTG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKTsKKyAgICAgICAgflJlcXVl
c3RDb3VudFRyYWNrZXIoKTsKKyAgICBwcml2YXRlOgorICAgICAgICBDYWNoZWRSZXNvdXJjZUxv
YWRlciogbV9jYWNoZWRSZXNvdXJjZUxvYWRlcjsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIG1f
cmVzb3VyY2U7CisgICAgfTsKKwogICAgIENhY2hlZFJlc291cmNlKiBtX3Jlc291cmNlOwogICAg
IFJlZlB0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBib29sIG1fbG9hZGluZ011bHRpcGFy
dENvbnRlbnQ7CiAgICAgU3VicmVzb3VyY2VMb2FkZXJTdGF0ZSBtX3N0YXRlOworICAgIE93blB0
cjxSZXF1ZXN0Q291bnRUcmFja2VyPiBtX3JlcXVlc3RDb3VudFRyYWNrZXI7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122093</attachid>
            <date>2012-01-11 14:13:10 -0800</date>
            <delta_ts>2012-01-11 15:54:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-75887-20120111141311.patch</filename>
            <type>text/plain</type>
            <size>12794</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDc0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAxLTA5ICBOYXRlIENo
YXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU3VicmVzb3VyY2VMb2FkZXIg
Y2xlYW51cCBwb3N0IHIxMDAzMTEuCisgICAgICAgIDEuIFNpbXBsaWZ5IG1hdGNoaW5nIGluY3Jl
bWVudFJlcXVlc3RDb3VudCgpL2RlY3JlbWVudFJlcXVlc3RDb3VudCgpIGNhbGxzLgorICAgICAg
ICAyLiBSZW1vdmUgQ2FjaGVkSW1hZ2UgY3VzdG9tIGNvZGUgZnJvbSBTdWJyZXNvdXJjZUxvYWRl
ci4KKyAgICAgICAgMy4gQWRkIGEgYnVuY2ggb2YgQVNTRVJUcy4KKyAgICAgICAgNC4gUmVtb3Zl
IHRoZSBtdWx0aXBhcnQtb25seSBjYWxsIHRvIGRpZFJlY2VpdmVEYXRhKCkgZnJvbSBkaWRSZWNl
aXZlUmVzcG9uc2UoKSwKKyAgICAgICAgICAgc2luY2UgZGlkUmVjZWl2ZURhdGEoKSB3b3VsZCBn
ZXQgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGFueXdheS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yIG9ubHkuCisKKyAg
ICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6IFJlbW92ZSBtdWx0aXBhcnQg
c3BlY2lhbCBjYXNlLCBoYW5kbGUgaXQgaW4gZGlkUmVjZWl2ZURhdGEoKS4KKyAgICAgICAgKFdl
YkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6IEhhbmRsZSBtdWx0aXBh
cnQgc3RhdGUgaGVyZSwgc2luY2Ugd2Ugd2lsbCByZWNlaXZlIG9ubHkgb25lCisgICAgICAgICAg
ICAgZGlkUmVjZWl2ZURhdGEoKSBjYWxsIHBlciBtdWx0aXBhcnQgc2VnbWVudCwgYnV0IG5vIGRp
ZEZpbmlzaExvYWRpbmcoKSBjYWxsLgorICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5oOiBBZGQgYSBSZXF1ZXN0Q291bnRUcmFja2VyIHN1YmNsYXNzIHRvIHJlZHVjZSBjb21wbGV4
aXR5IG9mIGVuc3VyaW5nIHdlIGRvbid0CisgICAgICAgICAgICBkZWNyZW1lbnQgcmVxdWVzdCBj
b3VudCB0d2ljZSBvbiBDYWNoZWRSZXNvdXJjZUxvYWRlci4KKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkSW1hZ2U6OnNldFJl
c3BvbnNlKTogTW92ZSBDYWNoZWRJbWFnZTo6Y2xlYXIoKSBjYWxsIG91dCBvZiBTdWJyZXNvdXJj
ZUxvYWRlciwgc2luY2UgaXQncworICAgICAgICAgICAga2luZCBvZiBhIGxheWVyaW5nIHZpb2xh
dGlvbiBhcyBpcy4KKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorCiAyMDEyLTAxLTExICBBbGV4
YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIE1h
a2UgU2tpYSBjYW52YXMgb3BhcXVlIGZvciByb290IGxheWVyIHRpbGVzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDEwNDc0NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJT
dWJyZXNvdXJjZUxvYWRlci5oIgogCi0jaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTQ3LDEyICs0NiwyNSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRl
ciwgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVyLCAoIlN1YnJlc291cmNlTG9hZGVyIikpOwogCitT
dWJyZXNvdXJjZUxvYWRlcjo6UmVxdWVzdENvdW50VHJhY2tlcjo6UmVxdWVzdENvdW50VHJhY2tl
cihDYWNoZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSkKKyAgICA6IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXIoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpCisgICAgLCBtX3Jlc291cmNlKHJlc291cmNlKQoreworICAgIG1fY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudChtX3Jlc291cmNlKTsKK30KKworU3Vi
cmVzb3VyY2VMb2FkZXI6OlJlcXVlc3RDb3VudFRyYWNrZXI6On5SZXF1ZXN0Q291bnRUcmFja2Vy
KCkKK3sKKyAgICBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5kZWNyZW1lbnRSZXF1ZXN0Q291bnQo
bV9yZXNvdXJjZSk7Cit9CisKIFN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcihG
cmFtZSogZnJhbWUsIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zJiBvcHRpb25zKQogICAgIDogUmVzb3VyY2VMb2FkZXIoZnJhbWUsIG9wdGlvbnMp
CiAgICAgLCBtX3Jlc291cmNlKHJlc291cmNlKQogICAgICwgbV9kb2N1bWVudChmcmFtZS0+ZG9j
dW1lbnQoKSkKICAgICAsIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQoZmFsc2UpCiAgICAgLCBt
X3N0YXRlKFVuaW5pdGlhbGl6ZWQpCisgICAgLCBtX3JlcXVlc3RDb3VudFRyYWNrZXIoYWRvcHRQ
dHIobmV3IFJlcXVlc3RDb3VudFRyYWNrZXIoZnJhbWUtPmRvY3VtZW50KCktPmNhY2hlZFJlc291
cmNlTG9hZGVyKCksIHJlc291cmNlKSkpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIHN1YnJlc291
cmNlTG9hZGVyQ291bnRlci5pbmNyZW1lbnQoKTsKQEAgLTYxLDYgKzczLDkgQEAgU3VicmVzb3Vy
Y2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKEZyYQogCiBTdWJyZXNvdXJjZUxvYWRlcjo6flN1
YnJlc291cmNlTG9hZGVyKCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSAhPSBJbml0aWFsaXplZCk7
CisgICAgQVNTRVJUKCFtX2RvY3VtZW50KTsKKyAgICBBU1NFUlQocmVhY2hlZFRlcm1pbmFsU3Rh
dGUoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIHN1YnJlc291cmNlTG9hZGVyQ291bnRlci5kZWNy
ZW1lbnQoKTsKICNlbmRpZgpAQCAtMTE5LDYgKzEzNCw3IEBAIGJvb2wgU3VicmVzb3VyY2VMb2Fk
ZXI6OmluaXQoY29uc3QgUmVzb3UKICAgICBpZiAoIVJlc291cmNlTG9hZGVyOjppbml0KHJlcXVl
c3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBBU1NFUlQoIXJlYWNoZWRUZXJtaW5h
bFN0YXRlKCkpOwogICAgIG1fc3RhdGUgPSBJbml0aWFsaXplZDsKICAgICBtX2RvY3VtZW50TG9h
ZGVyLT5hZGRTdWJyZXNvdXJjZUxvYWRlcih0aGlzKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0
MSw2ICsxNTcsNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoCiAK
IHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCiB7CisgICAg
QVNTRVJUKG1fc3RhdGUgPT0gSW5pdGlhbGl6ZWQpOwogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxv
YWRlcj4gcHJvdGVjdCh0aGlzKTsKICAgICBtX3Jlc291cmNlLT5kaWRTZW5kRGF0YShieXRlc1Nl
bnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CiB9CkBAIC0xNDgsNiArMTY1LDcgQEAgdm9pZCBTdWJy
ZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodW5zaQogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewog
ICAgIEFTU0VSVCghcmVzcG9uc2UuaXNOdWxsKCkpOworICAgIEFTU0VSVChtX3N0YXRlID09IElu
aXRpYWxpemVkKTsKIAogICAgIC8vIFJlZmVyZW5jZSB0aGUgb2JqZWN0IGluIHRoaXMgbWV0aG9k
IHNpbmNlIHRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvCiAgICAgLy8gYW55dGhpbmcg
aW5jbHVkaW5nIHJlbW92aW5nIHRoZSBsYXN0IHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsgb25l
IGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgpAQCAtMTc0LDM4ICsxOTIsMjQgQEAgdm9pZCBT
dWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbgogICAgICAgICByZXR1cm47CiAgICAg
UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSk7CiAKLSAgICBpZiAo
bV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgewotICAgICAgICBBU1NFUlQobV9yZXNvdXJjZS0+
aXNJbWFnZSgpKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihtX3Jlc291cmNl
KS0+Y2xlYXIoKTsKLSAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmlzTXVsdGlwYXJ0KCkpIHsKKyAg
ICBpZiAocmVzcG9uc2UuaXNNdWx0aXBhcnQoKSkgewogICAgICAgICBtX2xvYWRpbmdNdWx0aXBh
cnRDb250ZW50ID0gdHJ1ZTsKIAogICAgICAgICAvLyBXZSBkb24ndCBjb3VudCBtdWx0aVBhcnRz
IGluIGEgQ2FjaGVkUmVzb3VyY2VMb2FkZXIncyByZXF1ZXN0IGNvdW50Ci0gICAgICAgIG1fZG9j
dW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmRlY3JlbWVudFJlcXVlc3RDb3VudChtX3Jl
c291cmNlKTsKKyAgICAgICAgbV9yZXF1ZXN0Q291bnRUcmFja2VyLmNsZWFyKCk7CisgICAgICAg
IHNldFNob3VsZEJ1ZmZlckRhdGEoRG9Ob3RCdWZmZXJEYXRhKTsKICAgICAgICAgaWYgKCFtX3Jl
c291cmNlLT5pc0ltYWdlKCkpIHsKICAgICAgICAgICAgIGNhbmNlbCgpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQotCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyID0gcmVzb3VyY2VEYXRhKCk7Ci0gICAgaWYgKG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQg
JiYgYnVmZmVyICYmIGJ1ZmZlci0+c2l6ZSgpKSB7Ci0gICAgICAgIC8vIFNpbmNlIGEgc3VicmVz
b3VyY2UgbG9hZGVyIGRvZXMgbm90IGxvYWQgbXVsdGlwYXJ0IHNlY3Rpb25zIHByb2dyZXNzaXZl
bHksCi0gICAgICAgIC8vIGRlbGl2ZXIgdGhlIHByZXZpb3VzbHkgcmVjZWl2ZWQgZGF0YSB0byB0
aGUgbG9hZGVyIGFsbCBhdCBvbmNlIG5vdy4KLSAgICAgICAgLy8gVGhlbiBjbGVhciB0aGUgZGF0
YSB0byBtYWtlIHdheSBmb3IgdGhlIG5leHQgbXVsdGlwYXJ0IHNlY3Rpb24uCi0gICAgICAgIHNl
bmREYXRhVG9SZXNvdXJjZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwotICAgICAg
ICBjbGVhclJlc291cmNlRGF0YSgpOwotICAgICAgICAKLSAgICAgICAgLy8gQWZ0ZXIgdGhlIGZp
cnN0IG11bHRpcGFydCBzZWN0aW9uIGlzIGNvbXBsZXRlLCBzaWduYWwgdG8gZGVsZWdhdGVzIHRo
YXQgdGhpcyBsb2FkIGlzICJmaW5pc2hlZCIgCi0gICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnN1
YnJlc291cmNlTG9hZGVyRmluaXNoZWRMb2FkaW5nT25lUGFydCh0aGlzKTsKLSAgICAgICAgZGlk
RmluaXNoTG9hZGluZ09uZVBhcnQoMCk7Ci0gICAgfQogfQogCiB2b2lkIFN1YnJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBsb25nIGxv
bmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQogewogICAgIEFTU0VSVCghbV9y
ZXNvdXJjZS0+cmVzb3VyY2VUb1JldmFsaWRhdGUoKSk7CiAgICAgQVNTRVJUKCFtX3Jlc291cmNl
LT5lcnJvck9jY3VycmVkKCkpOworICAgIEFTU0VSVChtX3N0YXRlID09IEluaXRpYWxpemVkKTsK
ICAgICAvLyBSZWZlcmVuY2UgdGhlIG9iamVjdCBpbiB0aGlzIG1ldGhvZCBzaW5jZSB0aGUgYWRk
aXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyByZW1v
dmluZyB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRo
aXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhp
cyk7CkBAIC0yMTQsOCArMjE4LDE0IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKGMKICAgICBpZiAoZXJyb3JMb2FkaW5nUmVzb3VyY2UoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50KQotICAgICAgICBzZW5kRGF0
YVRvUmVzb3VyY2UoZGF0YSwgbGVuZ3RoKTsKKyAgICBzZW5kRGF0YVRvUmVzb3VyY2UoZGF0YSwg
bGVuZ3RoKTsKKyAgICAKKyAgICBpZiAobV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkgeworICAg
ICAgICAvLyBTaW5jZSBhIHN1YnJlc291cmNlIGxvYWRlciBkb2VzIG5vdCBsb2FkIG11bHRpcGFy
dCBzZWN0aW9ucyBwcm9ncmVzc2l2ZWx5LCBkYXRhIHdhcyBkZWxpdmVyZWQgdG8gdGhlIGxvYWRl
ciBhbGwgYXQgb25jZS4gICAgICAgIAorICAgICAgICAvLyBBZnRlciB0aGUgZmlyc3QgbXVsdGlw
YXJ0IHNlY3Rpb24gaXMgY29tcGxldGUsIHNpZ25hbCB0byBkZWxlZ2F0ZXMgdGhhdCB0aGlzIGxv
YWQgaXMgImZpbmlzaGVkIiAKKyAgICAgICAgbV9kb2N1bWVudExvYWRlci0+c3VicmVzb3VyY2VM
b2FkZXJGaW5pc2hlZExvYWRpbmdPbmVQYXJ0KHRoaXMpOworICAgICAgICBkaWRGaW5pc2hMb2Fk
aW5nT25lUGFydCgwKTsKKyAgICB9CiB9CiAKIGJvb2wgU3VicmVzb3VyY2VMb2FkZXI6OmVycm9y
TG9hZGluZ1Jlc291cmNlKCkKQEAgLTIzMSwyMSArMjQxLDEzIEBAIGJvb2wgU3VicmVzb3VyY2VM
b2FkZXI6OmVycm9yTG9hZGluZ1Jlc28KIAogdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6c2VuZERh
dGFUb1Jlc291cmNlKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7Ci0gICAgLy8gVGhl
cmUgYXJlIHR3byBjYXNlcyB3aGVyZSB3ZSBtaWdodCBuZWVkIHRvIGNyZWF0ZSBvdXIgb3duIFNo
YXJlZEJ1ZmZlciBpbnN0ZWFkIG9mIGNvcHlpbmcgdGhlIG9uZSBpbiBSZXNvdXJjZUxvYWRlci4K
LSAgICAvLyAoMSkgTXVsdGlwYXJ0IGNvbnRlbnQ6IFRoZSBsb2FkZXIgZGVsaXZlcnMgdGhlIGRh
dGEgaW4gYSBtdWx0aXBhcnQgc2VjdGlvbiBhbGwgYXQgb25jZSwgdGhlbiBzZW5kcyBlb2YuCi0g
ICAgLy8gICAgIFRoZSByZXNvdXJjZSBkYXRhIHdpbGwgY2hhbmdlIGFzIHRoZSBuZXh0IHBhcnQg
aXMgbG9hZGVkLCBzbyB3ZSBuZWVkIHRvIG1ha2UgYSBjb3B5LgotICAgIC8vICgyKSBPdXIgY2xp
ZW50IHJlcXVlc3RlZCB0aGF0IHRoZSBkYXRhIG5vdCBiZSBidWZmZXJlZCBhdCB0aGUgUmVzb3Vy
Y2VMb2FkZXIgbGV2ZWwgdmlhIFJlc291cmNlTG9hZGVyT3B0aW9ucy4gSW4gdGhpcyBjYXNlLAot
ICAgIC8vICAgICBSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VEYXRhKCkgd2lsbCBiZSBudWxsLiBI
b3dldmVyLCB1bmxpa2UgdGhlIG11bHRpcGFydCBjYXNlLCB3ZSBkb24ndCB3YW50IHRvIHRlbGwg
dGhlIENhY2hlZFJlc291cmNlCi0gICAgLy8gICAgIHRoYXQgYWxsIGRhdGEgaGFzIGJlZW4gcmVj
ZWl2ZWQgeWV0LgotICAgIGlmIChtX2xvYWRpbmdNdWx0aXBhcnRDb250ZW50IHx8ICFyZXNvdXJj
ZURhdGEoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBjb3BpZWREYXRhID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3RoKTsKLSAgICAgICAgbV9yZXNvdXJjZS0+ZGF0
YShjb3BpZWREYXRhLnJlbGVhc2UoKSwgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCk7Ci0gICAg
fSBlbHNlCi0gICAgICAgIG1fcmVzb3VyY2UtPmRhdGEocmVzb3VyY2VEYXRhKCksIGZhbHNlKTsK
KyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSByZXNvdXJjZURhdGEoKSA/IHJlc291
cmNlRGF0YSgpIDogU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgbGVuZ3RoKTsKKyAgICBtX3Jl
c291cmNlLT5kYXRhKGJ1ZmZlci5yZWxlYXNlKCksIG1fbG9hZGluZ011bHRpcGFydENvbnRlbnQp
OwogfQogCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBJ
bml0aWFsaXplZCk7CiAgICAgQVNTRVJUKCFtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0
ZSgpKTsKICAgICBtX3Jlc291cmNlLT5zZXRTZXJpYWxpemVkQ2FjaGVkTWV0YWRhdGEoZGF0YSwg
bGVuZ3RoKTsKIH0KQEAgLTMwMyw5ICszMDUsNyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpy
ZWxlYXNlUmVzb3VyY2VzCiB7CiAgICAgQVNTRVJUKCFyZWFjaGVkVGVybWluYWxTdGF0ZSgpKTsK
ICAgICBpZiAobV9zdGF0ZSAhPSBVbmluaXRpYWxpemVkKSB7Ci0gICAgICAgIGlmICghbV9sb2Fk
aW5nTXVsdGlwYXJ0Q29udGVudCAmJiBtX3N0YXRlICE9IFJlbGVhc2luZykKLSAgICAgICAgICAg
IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPmRlY3JlbWVudFJlcXVlc3RDb3Vu
dChtX3Jlc291cmNlKTsKLSAgICAgICAgbV9zdGF0ZSA9IFJlbGVhc2luZzsKKyAgICAgICAgbV9y
ZXF1ZXN0Q291bnRUcmFja2VyLmNsZWFyKCk7CiAgICAgICAgIG1fZG9jdW1lbnQtPmNhY2hlZFJl
c291cmNlTG9hZGVyKCktPmxvYWREb25lKCk7CiAgICAgICAgIGlmIChyZWFjaGVkVGVybWluYWxT
dGF0ZSgpKQogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDEwNDc0NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlOworY2xhc3Mg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKIApAQCAtNzgsMTQgKzc5LDIzIEBAIHByaXZhdGU6CiAgICAgICAgIFVuaW5pdGlhbGl6
ZWQsCiAgICAgICAgIEluaXRpYWxpemVkLAogICAgICAgICBSZXZhbGlkYXRpbmcsCi0gICAgICAg
IEZpbmlzaGluZywKLSAgICAgICAgUmVsZWFzaW5nCisgICAgICAgIEZpbmlzaGluZworICAgIH07
CisKKyAgICBjbGFzcyBSZXF1ZXN0Q291bnRUcmFja2VyIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IFJlcXVlc3RDb3VudFRyYWNrZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqLCBDYWNoZWRSZXNvdXJj
ZSopOworICAgICAgICB+UmVxdWVzdENvdW50VHJhY2tlcigpOworICAgIHByaXZhdGU6CisgICAg
ICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogbV9yZXNvdXJjZTsKICAgICB9OwogCiAgICAgQ2FjaGVkUmVzb3Vy
Y2UqIG1fcmVzb3VyY2U7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIGJv
b2wgbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudDsKICAgICBTdWJyZXNvdXJjZUxvYWRlclN0YXRl
IG1fc3RhdGU7CisgICAgT3duUHRyPFJlcXVlc3RDb3VudFRyYWNrZXI+IG1fcmVxdWVzdENvdW50
VHJhY2tlcjsKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcAkocmV2aXNpb24gMTA0NzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMyBA
QCB2b2lkIENhY2hlZEltYWdlOjplcnJvcihDYWNoZWRSZXNvdXJjZTo6CiAgICAgY2hlY2tOb3Rp
ZnkoKTsKIH0KIAordm9pZCBDYWNoZWRJbWFnZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKCFtX3Jlc3BvbnNlLmlzTnVsbCgpKQorICAg
ICAgICBjbGVhcigpOworICAgIENhY2hlZFJlc291cmNlOjpzZXRSZXNwb25zZShyZXNwb25zZSk7
Cit9CisKIHZvaWQgQ2FjaGVkSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9v
bCBjYW5EZWxldGVJbWFnZSA9ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBt
X2ltYWdlLT5pc0JpdG1hcEltYWdlKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmgJKHJldmlzaW9uIDEwNDc0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxNCArNzUsMTIg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0dWFsIHZvaWQgZXJyb3Io
Q2FjaGVkUmVzb3VyY2U6OlN0YXR1cyk7CisgICAgdmlydHVhbCB2b2lkIHNldFJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAKICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSwg
aW1hZ2VzIGtlZXAgbG9hZGluZyBldmVuIGlmIHRoZXJlIGFyZSBIVFRQIGVycm9ycy4KICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KLQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICAKICAgICBib29sIHN0aWxsTmVlZHNM
b2FkKCkgY29uc3QgeyByZXR1cm4gIWVycm9yT2NjdXJyZWQoKSAmJiBzdGF0dXMoKSA9PSBVbmtu
b3duICYmICFpc0xvYWRpbmcoKTsgfQogICAgIHZvaWQgbG9hZCgpOwogCkBAIC05Nyw2ICs5NSw4
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSW1hZ2UqIGxvb2t1cE9yQ3JlYXRlSW1hZ2VGb3JS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAorICAgIHZvaWQgY2xlYXIoKTsKKwogICAg
IHZvaWQgY3JlYXRlSW1hZ2UoKTsKICAgICBzaXplX3QgbWF4aW11bURlY29kZWRJbWFnZVNpemUo
KTsKICAgICAvLyBJZiBub3QgbnVsbCwgY2hhbmdlUmVjdCBpcyB0aGUgY2hhbmdlZCBwYXJ0IG9m
IHRoZSBpbWFnZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlLmNwcAkocmV2aXNpb24gMTA0NzQ0KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDcgKzIxNCw3
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3VyY2UKICAgICBtX3Jlc291
cmNlUmVxdWVzdC5zZXRQcmlvcml0eShsb2FkUHJpb3JpdHkoKSk7CiAgICAgCiAgICAgbV9sb2Fk
ZXIgPSByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQoY2Fj
aGVkUmVzb3VyY2VMb2FkZXItPmRvY3VtZW50KCktPmZyYW1lKCksIHRoaXMsIG1fcmVzb3VyY2VS
ZXF1ZXN0LCBtX3Jlc291cmNlUmVxdWVzdC5wcmlvcml0eSgpLCBvcHRpb25zKTsKLSAgICBpZiAo
IW1fbG9hZGVyIHx8IG1fbG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKSB7CisgICAgaWYg
KCFtX2xvYWRlcikgewogICAgICAgICAvLyBGSVhNRTogV2hhdCBpZiByZXNvdXJjZXMgaW4gb3Ro
ZXIgZnJhbWVzIHdlcmUgd2FpdGluZyBmb3IgdGhpcyByZXZhbGlkYXRpb24/CiAgICAgICAgIExP
RyhSZXNvdXJjZUxvYWRpbmcsICJDYW5ub3Qgc3RhcnQgbG9hZGluZyAnJXMnIiwgdXJsKCkuc3Ry
aW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKICAgICAgICAgaWYgKG1fcmVzb3VyY2VUb1JldmFsaWRh
dGUpIApAQCAtMjI0LDcgKzIyNCw2IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVk
UmVzb3VyY2UKICAgICB9CiAKICAgICBtX3N0YXR1cyA9IFBlbmRpbmc7Ci0gICAgY2FjaGVkUmVz
b3VyY2VMb2FkZXItPmluY3JlbWVudFJlcXVlc3RDb3VudCh0aGlzKTsKIH0KIAogdm9pZCBDYWNo
ZWRSZXNvdXJjZTo6Y2hlY2tOb3RpZnkoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>