<?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>53200</bug_id>
          
          <creation_ts>2011-01-26 15:48:03 -0800</creation_ts>
          <short_desc>Generalize the mechanism view-sources uses to remember the source for an HTMLToken</short_desc>
          <delta_ts>2011-01-27 13:53:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>49845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dbates</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340531</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-26 15:48:03 -0800</bug_when>
    <thetext>Generalize the mechanism view-sources uses to remember the source for an HTMLToken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340539</commentid>
    <comment_count>1</comment_count>
      <attachid>80251</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-26 15:58:07 -0800</bug_when>
    <thetext>Created attachment 80251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340561</commentid>
    <comment_count>2</comment_count>
      <attachid>80251</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-01-26 16:22:39 -0800</bug_when>
    <thetext>Comment on attachment 80251
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=80251&amp;action=review

This seems sane.  Thank you for keeping it small.

&gt; Source/WebCore/ChangeLog:37
&gt; +            - This function should eventuall be folded into HTMLTokenizer.

eventuall

&gt; Source/WebCore/html/parser/HTMLSourceTracker.cpp:44
&gt; +    token.end(input.current().numberOfCharactersConsumed());

You shoudl add a FIXME about moving this to the tokenizer.

&gt; Source/WebCore/html/parser/HTMLSourceTracker.h:39
&gt; +    void start(const HTMLInputStream&amp;, HTMLToken&amp;);

You should make it clear that this can be called multipel times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340985</commentid>
    <comment_count>3</comment_count>
      <attachid>80353</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 12:04:47 -0800</bug_when>
    <thetext>Created attachment 80353
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341027</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-01-27 13:53:18 -0800</bug_when>
    <thetext>Committed r76835: &lt;http://trac.webkit.org/changeset/76835&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80251</attachid>
            <date>2011-01-26 15:58:07 -0800</date>
            <delta_ts>2011-01-27 12:04:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53200-20110126155806.patch</filename>
            <type>text/plain</type>
            <size>26057</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9B
bmRyb2lkLm1rCmluZGV4IDg1NDFhYTNjN2MzYWFiN2ViMTk0NDVkZTUyNjRhNDExNWJkY2NmOTAu
LmRjYjEwMGZjZDhjZTZkNDQwYmY3NWUzOTE1YWUzZjBjOTg0MzUyMWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpA
QCAtMzQwLDYgKzM0MCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykg
XAogCWh0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIFwKIAlodG1sL3BhcnNlci9I
VE1MUHJlbG9hZFNjYW5uZXIuY3BwIFwKIAlodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNw
cCBcCisJaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwIFwKIAlodG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmNwcCBcCiAJaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBcCiAJ
aHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxODZh
MWM0MTA4NTljZGE5ZTUwNWIxMDI0NzIzZDIyODhkMzljOTcyLi5mODZjNTAzNGYzNGZmMDBjZWFm
MjA2ZmFmNWM1NjhhMWZmOWI3ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEt
MDEtMjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZW5lcmFsaXplIHRoZSBtZWNoYW5pc20g
dmlldy1zb3VyY2UgdXNlcyB0byByZW1lbWJlciB0aGUgc291cmNlIGZvciBhbiBIVE1MVG9rZW4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjAwCisK
KyAgICAgICAgQ3VycmVudGx5IHZpZXctc291cmNlIHRyYWNrcyB0aGUgc291cmNlIGFzc29jaWF0
ZWQgd2l0aCBlYWNoIEhUTUxUb2tlbi4KKyAgICAgICAgV2Ugd2FudCB0byByZS11c2UgdGhpcyBt
ZWNoYW5pc20gZm9yIHRoZSBuZXcgWFNTIGF1ZGl0b3IuICBUaGlzIHBhdGNoCisgICAgICAgIG1v
dmVzIHRoaXMgY29kZSBpbnRvIGl0cyBvd24gY2xhc3Mgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIHRoZQorICAgICAgICB2aWV3LXNvdXJjZSBwYXJzZXIgYW5kIHRoZSBnZW5lcmFsIEhUTUwg
cGFyc2VyLiAgVGhpcyBwYXRjaCBhbHNvIGFkZAorICAgICAgICBzdXBwb3J0IGZvciB0cmFja2lu
ZyB0aGUgc291cmNlIG9mIHRva2VucyB0aGF0IHNwYW4gZG9jdW1lbnQud3JpdGUKKyAgICAgICAg
Ym91bmRhcmllcy4KKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4gIFRoaXMgY29kZSBj
aGFuZ2UgaXMgc29tZXdoYXQgdGVzdGVkIGJ5IG91cgorICAgICAgICB2aWV3LXNvdXJjZSBsYXlv
dXQgdGVzdHMuCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAgICAtIEZ1biB3aXRoIHVwZGF0
aW5nIGJ1aWxkIGZpbGVzLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6
ZXIpOgorICAgICAgICAgICAgLSBUZWFjaCBIVE1MRG9jdW1lbnRQYXJzZXIgdG8gdHJhY2sgdGhl
IHNvdXJjZSBmb3IgSFRNTFRva2Vucy4KKyAgICAgICAgICAgICAgQ3VycmVudGx5LCB0aGlzIGlu
Zm9ybWF0aW9uIGlzbid0IHVzZWQsIGJ1dCBpdCB3aWxsIGJlIHNob3J0bHkuCisgICAgICAgICAg
ICAgIEkgcmFuIHRoZSBIVE1MIHBhcnNlciBiZW5jaG1hcmsgYW5kIHRoaXMgY2hhbmdlIGRpZG4n
dCBoYXZlIGEKKyAgICAgICAgICAgICAgbWVhc3VyYWJsZSBlZmZlY3QuCisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICAgICAtIENvbXBvc2l0ZSBp
biB0aGUgSFRNTFNvdXJjZVRyYWNrZXIuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNvdXJj
ZVRyYWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2Vy
OjpIVE1MU291cmNlVHJhY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlVHJhY2tl
cjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OmVuZCk6Cisg
ICAgICAgICAgICAtIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGV2ZW50dWFsbCBiZSBmb2xkZWQgaW50
byBIVE1MVG9rZW5pemVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OnNv
dXJjZUZvclRva2VuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW4uaDoKKyAgICAgICAgICAg
IC0gTm93IEhUTUxUb2tlbnMgYWx3YXlzIGhhdmUgYSBzdGFydCBpbmRleCBvZiB6ZXJvLiAgVG8g
ZG8gdGhlIGpvYgorICAgICAgICAgICAgICBvZiB0aGUgb2xkIHN0YXJ0IGluZGV4LCB0aGlzIHBh
dGNoIGludHJvZHVjZXMgdGhlIG5vdGlvbiBvZiBhCisgICAgICAgICAgICAgIGJhc2VPZmZzZXQu
ICBVbmxpa2UgdGhlIHN0YXJ0IGluZGV4ICh3aGljaCB3YXMgdXNlZCBhcyB0aGUgYmFzZQorICAg
ICAgICAgICAgICBvZmZzZXQgZm9yIGFsbCB0aGUgb3RoZXIgaW5kaWNpZXMpLCB0aGUgYmFzZU9m
ZnNldCBjYW4gY2hhbmdlCisgICAgICAgICAgICAgIG92ZXIgdGhlIGxpZmV0aW1lIG9mIHRoZSB0
b2tlbi4gIFdlIG5lZWQgdGhlIGZsZXhpYmlsaXR5IHRvCisgICAgICAgICAgICAgIGNoYW5nZSB0
aGUgb2Zmc2V0IGZvciB0b2tlbnMgdGhhdCBzcGFuIGRvY3VtZW50LndyaXRlIGJvdW5kYXJpZXMu
CisgICAgICAgICAgICAgIFZhbHVlcyBhcmUgbm93IG5vcm1hbGl6ZWQgdG8gemVyby1vZmZzZXQg
d2hlbiBzdG9yZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmNsZWFyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6c2V0QmFzZU9mZnNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVG9rZW46OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmJlZ2luQXR0
cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmVuZEF0dHJpYnV0ZU5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuOjpiZWdpbkF0dHJpYnV0ZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbjo6ZW5kQXR0cmlidXRlVmFsdWUpOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcDoKKyAgICAgICAgICAgIC0g
VXBkYXRlcyB0aGUgSFRNTFZpZXdTb3VyY2VQYXJzZXIgdG8gdXNlIHRoZSBuZXcKKyAgICAgICAg
ICAgICAgSFRNTFNvdXJjZVRyYWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJj
ZVBhcnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJj
ZVBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNlUGFyc2Vy
Ojpzb3VyY2VGb3JUb2tlbik6CisgICAgICAgICAgICAtIFRoaXMgZnVuY3Rpb24gbm93IGp1c3Qg
Y2FsbHMgdGhyb3VnaCB0byBIVE1MU291cmNlVHJhY2tlci4KKyAgICAgICAgKiBodG1sL3BhcnNl
ci9IVE1MVmlld1NvdXJjZVBhcnNlci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6Y3VycmVu
dENvbHVtbik6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnNldEN1cnJlbnRQ
b3NpdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3Vt
ZWQpOgorICAgICAgICAgICAgLSBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgZ2VuZXJhbCBjYXNlIG5v
dy4gIFRoZSAic2xvdyIgdmVyc2lvbgorICAgICAgICAgICAgICBkb2Vzbid0IHR1cm4gb3V0IHRv
IGJlIGFueSBzbG93ZXIgaW4gcHJhY3RpY2UgYW55d2F5LgorCiAyMDExLTAxLTI1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDk5ZWE0NDEwODBiMjhlM2NhNmIzZTcxNzJlMTI3ZDJj
ZGQyNGJhMTUuLjNmZmZiMWFhZjBjZGRiNzY4NTZiNWJhYjJmZjJmYmEwNTBkODY0ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xODY2LDYgKzE4NjYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXJIb3N0LmggXAorCVNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tl
bml6ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIzOWU4MjhkYzYwZjNk
NjMwMTQuLjBhNDRlZjY5MjZmM2YzMDkzNDIzYzU0YzE2ZTJlYjgwNjEwNGI3OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTE5ODcsNiArMTk4Nyw4IEBACiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIv
SFRNTFNjcmlwdFJ1bm5lci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxTY3Jp
cHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lckhv
c3QuaCcsCisgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwJywK
KyAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5oJywKICAgICAgICAg
ICAgICdodG1sL3BhcnNlci9IVE1MVG9rZW4uaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6
ZXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGU2NGFlOTdhNDk2MjliYjk4Y2RkMjQ1OGVkMTY0YmE1
NGRiNmVjZmIuLmRhMTYzNmRlZTZhYzI3ZDc3NDlmZDI3MzFkOWNkZTY1ZTA5MzVhYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC0xMDMzLDYgKzEwMzMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL3Bh
cnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFByZWxv
YWRTY2FubmVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5jcHAgXAor
ICAgIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5jcHAgXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAg
XAogICAgIGh0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGUyY2VmYTBjZmIzMGNm
MzUwMGEyNWExNjJhYzM4ZTVmNmFhZTBkZGYuLmEwMDNjNGY4NmUwOGQzYjVkZDMyNTI4NjRkZDAw
ODk4NTUxMGJmMGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC01NTQ0NSw2ICs1NTQ0NSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcSFRNTFNvdXJjZVRyYWNr
ZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxwYXJzZXJcSFRNTFNvdXJjZVRyYWNrZXIuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXEhUTUxUb2tl
bi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNjMjgyMjc3MWUwZDIxZjk5OGIwMmY1NGU4
YmJmOWQ2ZWJmMjZkODIuLjk2MGIyNWI0OWZiMjg4YTY2ZjU3NWUyNDk4MjNiNGNmMjI1NTZmYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTMwOTcsNiArMzA5Nyw4IEBACiAJCTk3N0IzODc4MTIyODgzRTkwMEI4MUZGOCAvKiBI
VE1MVG9rZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzdCMzg1RjEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5oICovOyB9Owog
CQk5NzdCMzg3OTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3QjM4NjAxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmNwcCAqLzsgfTsKIAkJOTc3QjM4
N0ExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg2MTEyMjg4M0U5MDBCODFG
RjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCAqLzsgfTsKKwkJOTc3RTJEQ0QxMkYwRTI4MzAw
QzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0UyRENCMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291
cmNlVHJhY2tlci5jcHAgKi87IH07CisJCTk3N0UyRENFMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1M
U291cmNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTc3RTJEQ0MxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggKi87
IH07CiAJCTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OUY0M0Qx
MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJOTc5
RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OUY0M0QyMTA3NUU0NEEwMDAw
RjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdCQzg0ODMxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHRE
b2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5N0JDODQ4MTEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNw
cCAqLzsgfTsKQEAgLTk0ODMsNiArOTQ4NSw4IEBACiAJCTk3N0IzODVGMTIyODgzRTkwMEI4MUZG
OCAvKiBIVE1MVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhU
TUxUb2tlbml6ZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MVG9rZW5pemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1Nv
dXJjZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1M
Vmlld1NvdXJjZVBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzdCMzg2MTEyMjg4M0U5MDBCODFG
RjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSFRNTFZpZXdTb3VyY2VQYXJzZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MVmlld1NvdXJj
ZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzdFMkRDQjEyRjBFMjgz
MDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gSFRNTFNvdXJjZVRyYWNrZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hUTUxT
b3VyY2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc3RTJEQ0Mx
MkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEhUTUxTb3VyY2VUcmFja2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTFNv
dXJjZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc5RjQzRDExMDc1
RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9u
U2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRpb25T
Y2hlZHVsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdCQzg0ODExMjM2RkQ5
MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTk0
NSw2ICsxNTk0OSw4IEBACiAJCQkJOTc3QjM4NUIxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3Jp
cHRSdW5uZXIuY3BwICovLAogCQkJCTk3N0IzODVDMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2Ny
aXB0UnVubmVyLmggKi8sCiAJCQkJOTc3QjM4NUQxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxTY3Jp
cHRSdW5uZXJIb3N0LmggKi8sCisJCQkJOTc3RTJEQ0IxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxT
b3VyY2VUcmFja2VyLmNwcCAqLywKKwkJCQk5NzdFMkRDQzEyRjBFMjgzMDBDMTMzNzkgLyogSFRN
TFNvdXJjZVRyYWNrZXIuaCAqLywKIAkJCQk5N0MxRjU1MjEyMjg1NUNCMDBFREU2MTYgLyogSFRN
TFRva2VuLmggKi8sCiAJCQkJOTc3QjM4NUUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxUb2tlbml6
ZXIuY3BwICovLAogCQkJCTk3N0IzODVGMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5pemVy
LmggKi8sCkBAIC0yMjQzNyw2ICsyMjQ0Myw3IEBACiAJCQkJQkM4QUUzNEYxMkVBMDk2QTAwRUIz
QUU2IC8qIFNjcm9sbGFibGVBcmVhLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjJEMjA1NDEyRUFF
N0IzMDA1QzI4NzQgLyogSW5zcGVjdG9yQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMzRG
NUFCMTJFRTM0M0YwMDRFQzU4RCAvKiBJbnRSZWN0SGFzaC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTc3RTJEQ0UxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTI1MTMyLDYgKzI1MTM5LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5
QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhBRTM0RTEyRUEwOTZB
MDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEYyRDIw
NTUxMkVBRTdCMzAwNUMyODc0IC8qIEluc3BlY3RvckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTk3N0UyRENEMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291cmNlVHJhY2tlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IGM5ZDVlMTA3MTk3YWY2MGQxMjIzN2NmOWI1OTcxZjRlNmZlNTdi
YTIuLjYwNzJlNDViZWUxMDc4NTZkZjM4MWM2Y2ZjMmJhODAyMzAzYzFlZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtMjI2
LDggKzIyNiwxMSBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5j
aHJvbm91c01vZGUgbW9kZSkKICAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5pc1BhcnNpbmdG
cmFnbWVudCgpCiAgICAgICAgICAgICAmJiBkb2N1bWVudCgpLT5mcmFtZSgpICYmIGRvY3VtZW50
KCktPmZyYW1lKCktPm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+bG9jYXRpb25DaGFuZ2VQZW5kaW5n
KCkpCiAgICAgICAgICAgICBicmVhazsKKworICAgICAgICBtX3NvdXJjZVRyYWNrZXIuc3RhcnQo
bV9pbnB1dCwgbV90b2tlbik7CiAgICAgICAgIGlmICghbV90b2tlbml6ZXItPm5leHRUb2tlbiht
X2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
bV9zb3VyY2VUcmFja2VyLmVuZChtX2lucHV0LCBtX3Rva2VuKTsKIAogICAgICAgICBtX3RyZWVC
dWlsZGVyLT5jb25zdHJ1Y3RUcmVlRnJvbVRva2VuKG1fdG9rZW4pOwogICAgICAgICBtX3Rva2Vu
LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5oCmluZGV4IGY5MjUyNjk5MmFkMmM1MDliODA5MTQ1MTBmZDViYTRjNTc5ZDNjNjIuLjc4
ZjYxMzY4NGJiNjNkOGFjNDYwOGZjYWVmNjZlMTRlMmM2MzQ1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiSFRN
TElucHV0U3RyZWFtLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdFJ1bm5lckhvc3QuaCIKKyNpbmNs
dWRlICJIVE1MU291cmNlVHJhY2tlci5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1
ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgpAQCAtMTQxLDYgKzE0Miw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEhUTUxUcmVlQnVp
bGRlcj4gbV90cmVlQnVpbGRlcjsKICAgICBPd25QdHI8SFRNTFByZWxvYWRTY2FubmVyPiBtX3By
ZWxvYWRTY2FubmVyOwogICAgIE93blB0cjxIVE1MUGFyc2VyU2NoZWR1bGVyPiBtX3BhcnNlclNj
aGVkdWxlcjsKKyAgICBIVE1MU291cmNlVHJhY2tlciBtX3NvdXJjZVRyYWNrZXI7CiAKICAgICBi
b29sIG1fZW5kV2FzRGVsYXllZDsKICAgICB1bnNpZ25lZCBtX3dyaXRlTmVzdGluZ0xldmVsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmZlZDc5MTk2MGViNzhiYmIwZTRiZWM1NGQ2MDMwM2RmYmNmNWU4ODMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tl
ci5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBZGFtIEJh
cnRoLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRNTFNvdXJjZVRy
YWNrZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitIVE1MU291cmNlVHJhY2tlcjo6SFRN
TFNvdXJjZVRyYWNrZXIoKQoreworfQorCit2b2lkIEhUTUxTb3VyY2VUcmFja2VyOjpzdGFydChj
b25zdCBIVE1MSW5wdXRTdHJlYW0mIGlucHV0LCBIVE1MVG9rZW4mIHRva2VuKQoreworICAgIG1f
c291cmNlRnJvbVByZXZpb3VzU2VnbWVudHMgPSB0b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpV
bmluaXRpYWxpemVkID8gU3RyaW5nKCkgOiBtX3NvdXJjZUZyb21QcmV2aW91c1NlZ21lbnRzICsg
bV9zb3VyY2UudG9TdHJpbmcoKTsKKyAgICBtX3NvdXJjZSA9IGlucHV0LmN1cnJlbnQoKTsKKyAg
ICB0b2tlbi5zZXRCYXNlT2Zmc2V0KGlucHV0LmN1cnJlbnQoKS5udW1iZXJPZkNoYXJhY3RlcnND
b25zdW1lZCgpIC0gbV9zb3VyY2VGcm9tUHJldmlvdXNTZWdtZW50cy5sZW5ndGgoKSk7Cit9CisK
K3ZvaWQgSFRNTFNvdXJjZVRyYWNrZXI6OmVuZChjb25zdCBIVE1MSW5wdXRTdHJlYW0mIGlucHV0
LCBIVE1MVG9rZW4mIHRva2VuKQoreworICAgIHRva2VuLmVuZChpbnB1dC5jdXJyZW50KCkubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7Cit9CisKK1N0cmluZyBIVE1MU291cmNlVHJhY2tl
cjo6c291cmNlRm9yVG9rZW4oY29uc3QgSFRNTFRva2VuJiB0b2tlbikKK3sKKyAgICBpZiAodG9r
ZW4udHlwZSgpID09IEhUTUxUb2tlbjo6RW5kT2ZGaWxlKQorICAgICAgICByZXR1cm4gU3RyaW5n
KCk7IC8vIEhpZGVzIHRoZSBudWxsIGNoYXJhY3RlciB3ZSB1c2UgdG8gbWFyayB0aGUgZW5kIG9m
IGZpbGUuCisKKyAgICBBU1NFUlQoIXRva2VuLnN0YXJ0SW5kZXgoKSk7CisgICAgVUNoYXIqIGRh
dGEgPSAwOworICAgIGludCBsZW5ndGggPSB0b2tlbi5lbmRJbmRleCgpIC0gdG9rZW4uc3RhcnRJ
bmRleCgpIC0gbV9zb3VyY2VGcm9tUHJldmlvdXNTZWdtZW50cy5sZW5ndGgoKTsKKyAgICBTdHJp
bmcgc291cmNlID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgZGF0YSk7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBkYXRhW2ldID0g
Km1fc291cmNlOworICAgICAgICBtX3NvdXJjZS5hZHZhbmNlKCk7CisgICAgfQorICAgIHJldHVy
biBtX3NvdXJjZUZyb21QcmV2aW91c1NlZ21lbnRzICsgc291cmNlOworfQorCit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
MTkyOWVlOWYyZGQ2YzYxNGZiZTNlNWM0MWU1ZDE4MmNlODM1MjJmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFkYW0gQmFydGguIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgSFRNTFNvdXJjZVRyYWNrZXJfaAorI2RlZmluZSBIVE1MU291cmNlVHJhY2tlcl9o
CisKKyNpbmNsdWRlICJIVE1MSW5wdXRTdHJlYW0uaCIKKyNpbmNsdWRlICJIVE1MVG9rZW4uaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBIVE1MU291cmNlVHJhY2tlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSFRNTFNvdXJjZVRyYWNrZXIpOworcHVibGljOgorICAgIEhU
TUxTb3VyY2VUcmFja2VyKCk7CisKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IEhUTUxJbnB1dFN0cmVh
bSYsIEhUTUxUb2tlbiYpOworICAgIHZvaWQgZW5kKGNvbnN0IEhUTUxJbnB1dFN0cmVhbSYsIEhU
TUxUb2tlbiYpOworCisgICAgU3RyaW5nIHNvdXJjZUZvclRva2VuKGNvbnN0IEhUTUxUb2tlbiYp
OworCitwcml2YXRlOgorICAgIFN0cmluZyBtX3NvdXJjZUZyb21QcmV2aW91c1NlZ21lbnRzOwor
ICAgIFNlZ21lbnRlZFN0cmluZyBtX3NvdXJjZTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW4uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCmluZGV4IDFjYmMxNTEzZTE4MDdkOTJhOTI5ODk0
ODk2ODExNDc4MGRhMmNhOGIuLmEyYWYyYTQwYzUzODg2ZTRkZDQ0MmQ5NDU5MDk4YWI5MTU1M2I0
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oCkBAIC02NCwyMCArNjQs
MjYgQEAgcHVibGljOgogCiAgICAgSFRNTFRva2VuKCkgeyBjbGVhcigpOyB9CiAKLSAgICB2b2lk
IGNsZWFyKGludCBzdGFydEluZGV4ID0gMCkKKyAgICB2b2lkIGNsZWFyKCkKICAgICB7CiAgICAg
ICAgIG1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7Ci0gICAgICAgIG1fcmFuZ2UubV9zdGFydCA9IHN0
YXJ0SW5kZXg7Ci0gICAgICAgIG1fcmFuZ2UubV9lbmQgPSBzdGFydEluZGV4OworICAgICAgICBt
X3JhbmdlLm1fc3RhcnQgPSAwOworICAgICAgICBtX3JhbmdlLm1fZW5kID0gMDsKKyAgICAgICAg
bV9iYXNlT2Zmc2V0ID0gMDsKICAgICAgICAgbV9kYXRhLmNsZWFyKCk7CiAgICAgfQogCiAgICAg
aW50IHN0YXJ0SW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLm1fc3RhcnQ7IH0KICAgICBp
bnQgZW5kSW5kZXgoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLm1fZW5kOyB9CiAKLSAgICB2b2lk
IGVuZChpbnQgZW5kSW5kZXgpCisgICAgdm9pZCBzZXRCYXNlT2Zmc2V0KGludCBvZmZzZXQpCiAg
ICAgewotICAgICAgICBtX3JhbmdlLm1fZW5kID0gZW5kSW5kZXg7CisgICAgICAgIG1fYmFzZU9m
ZnNldCA9IG9mZnNldDsKKyAgICB9CisKKyAgICB2b2lkIGVuZChpbnQgZW5kT2Zmc2V0KQorICAg
IHsKKyAgICAgICAgbV9yYW5nZS5tX2VuZCA9IGVuZE9mZnNldCAtIG1fYmFzZU9mZnNldDsKICAg
ICB9CiAKICAgICB2b2lkIG1ha2VFbmRPZkZpbGUoKQpAQCAtMTcyLDI5ICsxNzgsMzAgQEAgcHVi
bGljOgogI2VuZGlmCiAgICAgfQogCi0gICAgdm9pZCBiZWdpbkF0dHJpYnV0ZU5hbWUoaW50IGlu
ZGV4KQorICAgIHZvaWQgYmVnaW5BdHRyaWJ1dGVOYW1lKGludCBvZmZzZXQpCiAgICAgewotICAg
ICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZVJhbmdlLm1fc3RhcnQgPSBpbmRleDsKKyAg
ICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX25hbWVSYW5nZS5tX3N0YXJ0ID0gb2Zmc2V0IC0g
bV9iYXNlT2Zmc2V0OwogICAgIH0KIAotICAgIHZvaWQgZW5kQXR0cmlidXRlTmFtZShpbnQgaW5k
ZXgpCisgICAgdm9pZCBlbmRBdHRyaWJ1dGVOYW1lKGludCBvZmZzZXQpCiAgICAgeworICAgICAg
ICBpbnQgaW5kZXggPSBvZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAgICAgICAgIG1fY3VycmVudEF0
dHJpYnV0ZS0+bV9uYW1lUmFuZ2UubV9lbmQgPSBpbmRleDsKICAgICAgICAgbV9jdXJyZW50QXR0
cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9zdGFydCA9IGluZGV4OwogICAgICAgICBtX2N1cnJlbnRB
dHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IGluZGV4OwogICAgIH0KIAotICAgIHZvaWQg
YmVnaW5BdHRyaWJ1dGVWYWx1ZShpbnQgaW5kZXgpCisgICAgdm9pZCBiZWdpbkF0dHJpYnV0ZVZh
bHVlKGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFs
dWVSYW5nZS5tX3N0YXJ0ID0gaW5kZXg7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV92
YWx1ZVJhbmdlLm1fc3RhcnQgPSBvZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAjaWZuZGVmIE5ERUJV
RwogICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IDA7CiAj
ZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIGVuZEF0dHJpYnV0ZVZhbHVlKGludCBpbmRleCkKKyAg
ICB2b2lkIGVuZEF0dHJpYnV0ZVZhbHVlKGludCBvZmZzZXQpCiAgICAgewotICAgICAgICBtX2N1
cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IGluZGV4OworICAgICAgICBtX2N1
cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5nZS5tX2VuZCA9IG9mZnNldCAtIG1fYmFzZU9mZnNl
dDsKICAgICB9CiAKICAgICB2b2lkIGFwcGVuZFRvQXR0cmlidXRlTmFtZShVQ2hhciBjaGFyYWN0
ZXIpCkBAIC0zMzEsOSArMzM4LDggQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgVHlwZSBtX3R5
cGU7Ci0KLSAgICAvLyBXaGljaCBjaGFyYWN0ZXJzIGZyb20gdGhlIGlucHV0IHN0cmVhbSBhcmUg
cmVwcmVzZW50ZWQgYnkgdGhpcyB0b2tlbi4KLSAgICBSYW5nZSBtX3JhbmdlOworICAgIFJhbmdl
IG1fcmFuZ2U7IC8vIEFsd2F5cyBzdGFydHMgYXQgemVyby4KKyAgICBpbnQgbV9iYXNlT2Zmc2V0
OwogCiAgICAgLy8gIm5hbWUiIGZvciBET0NUWVBFLCBTdGFydFRhZywgYW5kIEVuZFRhZwogICAg
IC8vICJjaGFyYWN0ZXJzIiBmb3IgQ2hhcmFjdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKaW5kZXggYWNlODU5MGExNTQ2NWEw
ODkzN2RkY2U3YTBmMzE2ODMwMGI4MWEzNC4uN2NkYmRjNzFjOTkwZTBkZjUyZDA5YTJmYjkxM2Zj
MjdjZjQ0NDIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZp
ZXdTb3VyY2VQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxW
aWV3U291cmNlUGFyc2VyLmNwcApAQCAtNDksMzUgKzQ5LDI3IEBAIHZvaWQgSFRNTFZpZXdTb3Vy
Y2VQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQogCiB2b2lkIEhUTUxWaWV3
U291cmNlUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkKIHsKLSAgICB3aGlsZSAobV90b2tlbml6ZXIt
Pm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpIHsKLSAgICAgICAgbV90b2tl
bi5lbmQobV9pbnB1dC5jdXJyZW50KCkubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7Cisg
ICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgbV9zb3VyY2VUcmFja2VyLnN0YXJ0KG1faW5wdXQs
IG1fdG9rZW4pOworICAgICAgICBpZiAoIW1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5j
dXJyZW50KCksIG1fdG9rZW4pKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG1fc291cmNl
VHJhY2tlci5lbmQobV9pbnB1dCwgbV90b2tlbik7CisKICAgICAgICAgZG9jdW1lbnQoKS0+YWRk
U291cmNlKHNvdXJjZUZvclRva2VuKCksIG1fdG9rZW4pOwogICAgICAgICB1cGRhdGVUb2tlbml6
ZXJTdGF0ZSgpOwotICAgICAgICBtX3Rva2VuLmNsZWFyKG1faW5wdXQuY3VycmVudCgpLm51bWJl
ck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOworICAgICAgICBtX3Rva2VuLmNsZWFyKCk7CiAgICAg
fQogfQogCiB2b2lkIEhUTUxWaWV3U291cmNlUGFyc2VyOjphcHBlbmQoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiBpbnB1dCkKIHsKICAgICBtX2lucHV0LmFwcGVuZFRvRW5kKGlucHV0KTsKLSAgICBt
X3NvdXJjZS5hcHBlbmQoaW5wdXQpOwogICAgIHB1bXBUb2tlbml6ZXIoKTsKIH0KIAogU3RyaW5n
IEhUTUxWaWV3U291cmNlUGFyc2VyOjpzb3VyY2VGb3JUb2tlbigpCiB7Ci0gICAgaWYgKG1fdG9r
ZW4udHlwZSgpID09IEhUTUxUb2tlbjo6RW5kT2ZGaWxlKQotICAgICAgICByZXR1cm4gU3RyaW5n
KCk7Ci0KLSAgICBBU1NFUlQobV9zb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSA9
PSBtX3Rva2VuLnN0YXJ0SW5kZXgoKSk7Ci0gICAgVUNoYXIqIGRhdGEgPSAwOwotICAgIGludCBs
ZW5ndGggPSBtX3Rva2VuLmVuZEluZGV4KCkgLSBtX3Rva2VuLnN0YXJ0SW5kZXgoKTsKLSAgICBT
dHJpbmcgc291cmNlID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkKGxlbmd0aCwgZGF0YSk7
Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBkYXRhW2ld
ID0gKm1fc291cmNlOwotICAgICAgICBtX3NvdXJjZS5hZHZhbmNlKCk7Ci0gICAgfQotICAgIHJl
dHVybiBzb3VyY2U7CisgICAgcmV0dXJuIG1fc291cmNlVHJhY2tlci5zb3VyY2VGb3JUb2tlbiht
X3Rva2VuKTsKIH0KIAogdm9pZCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6dXBkYXRlVG9rZW5pemVy
U3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdT
b3VyY2VQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNl
UGFyc2VyLmgKaW5kZXggYWJlNTViNGZmYzk3NzYwZmY3ZmM3ZWM4Y2Y1MzgwY2QxNTk5YjhmZS4u
MmU2ZGRmZTdhOTQ2NmNiZjY1YjQxYTQ0Mjk0ZTk3ZDg4MWZjYjNlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0U3RyZWFtLmgiCisjaW5jbHVkZSAiSFRNTFNvdXJjZVRyYWNrZXIuaCIKICNp
bmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJIVE1MVG9rZW5pemVyLmgiCiAjaW5jbHVk
ZSAiSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oIgpAQCAtNjksOCArNzAsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgdXBkYXRlVG9rZW5pemVyU3RhdGUoKTsKIAogICAgIEhUTUxJbnB1dFN0cmVhbSBt
X2lucHV0OwotICAgIFNlZ21lbnRlZFN0cmluZyBtX3NvdXJjZTsKICAgICBIVE1MVG9rZW4gbV90
b2tlbjsKKyAgICBIVE1MU291cmNlVHJhY2tlciBtX3NvdXJjZVRyYWNrZXI7CiAgICAgT3duUHRy
PEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IDVlOTc1NWIyYzM1YzBhZTY0
MGFlZDhjY2MzZDE1NmQxNmYxMjc3ZmQuLjdjODU5ZGM2OGFiNzVhMjJjZjRhMjQ0MzUyNTFhOWJm
MmQ3ZGZiZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRl
ZFN0cmluZy5jcHAKQEAgLTE4NiwxNyArMTg2LDYgQEAgdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFk
dmFuY2VTdWJzdHJpbmcoKQogICAgIH0KIH0KIAotaW50IFNlZ21lbnRlZFN0cmluZzo6bnVtYmVy
T2ZDaGFyYWN0ZXJzQ29uc3VtZWRTbG93KCkgY29uc3QKLXsKLSAgICBpbnQgcmVzdWx0ID0gbV9u
dW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3RyaW5nICsgbV9jdXJyZW50
U3RyaW5nLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCk7Ci0gICAgaWYgKG1fcHVzaGVkQ2hh
cjEpIHsKLSAgICAgICAgLS1yZXN1bHQ7Ci0gICAgICAgIGlmIChtX3B1c2hlZENoYXIyKQotICAg
ICAgICAgICAgLS1yZXN1bHQ7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIFN0cmlu
ZyBTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0
OwpAQCAtMjYyLDE0ICsyNTEsMTQgQEAgV1RGOjpaZXJvQmFzZWROdW1iZXIgU2VnbWVudGVkU3Ry
aW5nOjpjdXJyZW50TGluZSgpIGNvbnN0CiAKIFdURjo6WmVyb0Jhc2VkTnVtYmVyIFNlZ21lbnRl
ZFN0cmluZzo6Y3VycmVudENvbHVtbigpIGNvbnN0CiB7Ci0gICAgaW50IHplcm9CYXNlZENvbHVt
biA9IG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkU2xvdygpIC0gbV9udW1iZXJPZkNoYXJhY3Rl
cnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZTsKKyAgICBpbnQgemVyb0Jhc2VkQ29sdW1uID0g
bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSAtIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3Vt
ZWRQcmlvclRvQ3VycmVudExpbmU7CiAgICAgcmV0dXJuIFdURjo6WmVyb0Jhc2VkTnVtYmVyOjpm
cm9tWmVyb0Jhc2VkSW50KHplcm9CYXNlZENvbHVtbik7CiB9CiAKIHZvaWQgU2VnbWVudGVkU3Ry
aW5nOjpzZXRDdXJyZW50UG9zaXRpb24oV1RGOjpaZXJvQmFzZWROdW1iZXIgbGluZSwgV1RGOjpa
ZXJvQmFzZWROdW1iZXIgY29sdW1uQWZ0cmVQcm9sb2csIGludCBwcm9sb2dMZW5ndGgpCiB7CiAg
ICAgbV9jdXJyZW50TGluZSA9IGxpbmUuemVyb0Jhc2VkSW50KCk7Ci0gICAgbV9udW1iZXJPZkNo
YXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZSA9IG51bWJlck9mQ2hhcmFjdGVyc0Nv
bnN1bWVkU2xvdygpICsgcHJvbG9nTGVuZ3RoIC0gY29sdW1uQWZ0cmVQcm9sb2cuemVyb0Jhc2Vk
SW50KCk7CisgICAgbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGlu
ZSA9IG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkgKyBwcm9sb2dMZW5ndGggLSBjb2x1bW5B
ZnRyZVByb2xvZy56ZXJvQmFzZWRJbnQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKaW5kZXggMzBjODk5ZDc3YTM4MGQ5MTBjOGZm
ODQ5MTRlMzEwODJkZGNlNmVlYi4uMzc4NGI1MDc2Nzg1ZTk5MWRiYzYyMTkyNzBjMzRlMTE2MWY0
MWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmlu
Zy5oCkBAIC0yMDYsMTMgKzIwNiwxNSBAQCBwdWJsaWM6CiAKICAgICBpbnQgbnVtYmVyT2ZDaGFy
YWN0ZXJzQ29uc3VtZWQoKSBjb25zdAogICAgIHsKLSAgICAgICAgLy8gV2UgZG9uJ3QgY3VycmVu
dGx5IGhhbmRsZSB0aGUgY2FzZSB3aGVuIHRoZXJlIGFyZSBwdXNoZWQgY2hhcmFjdGVyLgotICAg
ICAgICBBU1NFUlQoIW1fcHVzaGVkQ2hhcjEpOwotICAgICAgICByZXR1cm4gbV9udW1iZXJPZkNo
YXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50U3RyaW5nICsgbV9jdXJyZW50U3RyaW5nLm51
bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCk7CisgICAgICAgIGludCBudW1iZXJPZlB1c2hlZENo
YXJhY3RlcnMgPSAwOworICAgICAgICBpZiAobV9wdXNoZWRDaGFyMSkgeworICAgICAgICAgICAg
KytudW1iZXJPZlB1c2hlZENoYXJhY3RlcnM7CisgICAgICAgICAgICBpZiAobV9wdXNoZWRDaGFy
MikKKyAgICAgICAgICAgICAgICArK251bWJlck9mUHVzaGVkQ2hhcmFjdGVyczsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gbV9udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFByaW9yVG9DdXJy
ZW50U3RyaW5nICsgbV9jdXJyZW50U3RyaW5nLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkg
LSBudW1iZXJPZlB1c2hlZENoYXJhY3RlcnM7CiAgICAgfQogCi0gICAgaW50IG51bWJlck9mQ2hh
cmFjdGVyc0NvbnN1bWVkU2xvdygpIGNvbnN0OwotCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29u
c3Q7CiAKICAgICBjb25zdCBVQ2hhciYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKmN1cnJl
bnQoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80353</attachid>
            <date>2011-01-27 12:04:47 -0800</date>
            <delta_ts>2011-01-27 12:04:47 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-53200-20110127120446.patch</filename>
            <type>text/plain</type>
            <size>25500</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2ODIwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzMgQEAKKzIwMTEtMDEtMjcgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KKworICAgICAgICBHZW5lcmFsaXplIHRoZSBtZWNoYW5pc20gdmlldy1zb3VyY2UgdXNlcyB0
byByZW1lbWJlciB0aGUgc291cmNlIGZvciBhbiBIVE1MVG9rZW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMjAwCisKKyAgICAgICAgQ3VycmVudGx5
IHZpZXctc291cmNlIHRyYWNrcyB0aGUgc291cmNlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIEhUTUxU
b2tlbi4KKyAgICAgICAgV2Ugd2FudCB0byByZS11c2UgdGhpcyBtZWNoYW5pc20gZm9yIHRoZSBu
ZXcgWFNTIGF1ZGl0b3IuICBUaGlzIHBhdGNoCisgICAgICAgIG1vdmVzIHRoaXMgY29kZSBpbnRv
IGl0cyBvd24gY2xhc3Mgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZQorICAgICAgICB2
aWV3LXNvdXJjZSBwYXJzZXIgYW5kIHRoZSBnZW5lcmFsIEhUTUwgcGFyc2VyLiAgVGhpcyBwYXRj
aCBhbHNvIGFkZAorICAgICAgICBzdXBwb3J0IGZvciB0cmFja2luZyB0aGUgc291cmNlIG9mIHRv
a2VucyB0aGF0IHNwYW4gZG9jdW1lbnQud3JpdGUKKyAgICAgICAgYm91bmRhcmllcy4KKworICAg
ICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4gIFRoaXMgY29kZSBjaGFuZ2UgaXMgc29tZXdoYXQg
dGVzdGVkIGJ5IG91cgorICAgICAgICB2aWV3LXNvdXJjZSBsYXlvdXQgdGVzdHMuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICAgICAtIEZ1biB3aXRoIHVwZGF0aW5nIGJ1aWxkIGZpbGVzLgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAgICAgICAgICAg
LSBUZWFjaCBIVE1MRG9jdW1lbnRQYXJzZXIgdG8gdHJhY2sgdGhlIHNvdXJjZSBmb3IgSFRNTFRv
a2Vucy4KKyAgICAgICAgICAgICAgQ3VycmVudGx5LCB0aGlzIGluZm9ybWF0aW9uIGlzbid0IHVz
ZWQsIGJ1dCBpdCB3aWxsIGJlIHNob3J0bHkuCisgICAgICAgICAgICAgIEkgcmFuIHRoZSBIVE1M
IHBhcnNlciBiZW5jaG1hcmsgYW5kIHRoaXMgY2hhbmdlIGRpZG4ndCBoYXZlIGEKKyAgICAgICAg
ICAgICAgbWVhc3VyYWJsZSBlZmZlY3QuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmg6CisgICAgICAgICAgICAtIENvbXBvc2l0ZSBpbiB0aGUgSFRNTFNvdXJjZVRy
YWNrZXIuCisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpIVE1MU291cmNlVHJhY2tl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlVHJhY2tlcjo6c3RhcnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OmVuZCk6CisgICAgICAgICAgICAtIFRoaXMg
ZnVuY3Rpb24gc2hvdWxkIGV2ZW50dWFseSBiZSBmb2xkZWQgaW50byBIVE1MVG9rZW5pemVyLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZUZvclRva2VuKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBodG1sL3BhcnNlci9IVE1MVG9rZW4uaDoKKyAgICAgICAgICAgIC0gTm93IEhUTUxUb2tlbnMg
YWx3YXlzIGhhdmUgYSBzdGFydCBpbmRleCBvZiB6ZXJvLiAgVG8gZG8gdGhlIGpvYgorICAgICAg
ICAgICAgICBvZiB0aGUgb2xkIHN0YXJ0IGluZGV4LCB0aGlzIHBhdGNoIGludHJvZHVjZXMgdGhl
IG5vdGlvbiBvZiBhCisgICAgICAgICAgICAgIGJhc2VPZmZzZXQuICBVbmxpa2UgdGhlIHN0YXJ0
IGluZGV4ICh3aGljaCB3YXMgdXNlZCBhcyB0aGUgYmFzZQorICAgICAgICAgICAgICBvZmZzZXQg
Zm9yIGFsbCB0aGUgb3RoZXIgaW5kaWNpZXMpLCB0aGUgYmFzZU9mZnNldCBjYW4gY2hhbmdlCisg
ICAgICAgICAgICAgIG92ZXIgdGhlIGxpZmV0aW1lIG9mIHRoZSB0b2tlbi4gIFdlIG5lZWQgdGhl
IGZsZXhpYmlsaXR5IHRvCisgICAgICAgICAgICAgIGNoYW5nZSB0aGUgb2Zmc2V0IGZvciB0b2tl
bnMgdGhhdCBzcGFuIGRvY3VtZW50LndyaXRlIGJvdW5kYXJpZXMuCisgICAgICAgICAgICAgIFZh
bHVlcyBhcmUgbm93IG5vcm1hbGl6ZWQgdG8gemVyby1vZmZzZXQgd2hlbiBzdG9yZWQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
b2tlbjo6c2V0QmFzZU9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmVuZCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmJlZ2luQXR0cmlidXRlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVG9rZW46OmVuZEF0dHJpYnV0ZU5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRva2VuOjpiZWdpbkF0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUb2tlbjo6ZW5kQXR0cmlidXRlVmFsdWUpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxWaWV3U291cmNlUGFyc2VyLmNwcDoKKyAgICAgICAgICAgIC0gVXBkYXRlcyB0aGUgSFRNTFZp
ZXdTb3VyY2VQYXJzZXIgdG8gdXNlIHRoZSBuZXcKKyAgICAgICAgICAgICAgSFRNTFNvdXJjZVRy
YWNrZXIuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJjZVBhcnNlcjo6cHVtcFRva2Vu
aXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlld1NvdXJjZVBhcnNlcjo6YXBwZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWV3U291cmNlUGFyc2VyOjpzb3VyY2VGb3JUb2tlbik6
CisgICAgICAgICAgICAtIFRoaXMgZnVuY3Rpb24gbm93IGp1c3QgY2FsbHMgdGhyb3VnaCB0byBI
VE1MU291cmNlVHJhY2tlci4KKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBh
cnNlci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6Y3VycmVudENvbHVtbik6CisgICAgICAg
IChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnNldEN1cnJlbnRQb3NpdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
Z21lbnRlZFN0cmluZzo6bnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQpOgorICAgICAgICAgICAg
LSBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgZ2VuZXJhbCBjYXNlIG5vdy4gIFRoZSAic2xvdyIgdmVy
c2lvbgorICAgICAgICAgICAgICBkb2Vzbid0IHR1cm4gb3V0IHRvIGJlIGFueSBzbG93ZXIgaW4g
cHJhY3RpY2UgYW55d2F5LgorCiAyMDExLTAxLTI3ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogU291
cmNlL1dlYkNvcmUvQW5kcm9pZC5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9BbmRy
b2lkLm1rCShyZXZpc2lvbiA3NjgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsJKHdv
cmtpbmcgY29weSkKQEAgLTM0MCw2ICszNDAsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NB
TF9TUkNfRklMRVMpIFwKIAlodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcCBcCiAJ
aHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBcCiAJaHRtbC9wYXJzZXIvSFRNTFNj
cmlwdFJ1bm5lci5jcHAgXAorCWh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCBcCiAJ
aHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzY4MjApCisrKyBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTg2Niw2ICsxODY2LDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVu
bmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1bm5lci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVySG9zdC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRva2VuaXplci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDc2ODIwKQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xOTg3LDYgKzE5
ODcsOCBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwJywK
ICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXJIb3N0LmgnLAorICAgICAgICAgICAgJ2h0
bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9wYXJz
ZXIvSFRNTFNvdXJjZVRyYWNrZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFRv
a2VuLmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwJywKICAg
ICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmgnLApJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8JKHJldmlzaW9uIDc2ODIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtp
bmcgY29weSkKQEAgLTEwMzMsNiArMTAzMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFy
c2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9IVE1MUHJlbG9h
ZFNjYW5uZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBcCisg
ICAgaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBc
CiAgICAgaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA3Njgy
MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NTQ0NSw2ICs1NTQ0NSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcSFRNTFNvdXJjZVRy
YWNrZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxwYXJzZXJcSFRNTFNvdXJjZVRyYWNrZXIuaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXEhUTUxU
b2tlbi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzY4MjApCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTMwOTUsNiArMzA5NSw4IEBACiAJCTk3N0IzODc4MTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MVG9rZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzdCMzg1RjEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5oICovOyB9
OwogCQk5NzdCMzg3OTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc3QjM4NjAx
MjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmNwcCAqLzsgfTsKIAkJOTc3
QjM4N0ExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg2MTEyMjg4M0U5MDBC
ODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCAqLzsgfTsKKwkJOTc3RTJEQ0QxMkYwRTI4
MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0UyRENCMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1M
U291cmNlVHJhY2tlci5jcHAgKi87IH07CisJCTk3N0UyRENFMTJGMEUyODMwMEMxMzM3OSAvKiBI
VE1MU291cmNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTc3RTJEQ0MxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmgg
Ki87IH07CiAJCTk3OUY0M0QzMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OUY0
M0QxMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJ
OTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3OUY0M0QyMTA3NUU0NEEw
MDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdCQzg0ODMxMjM2RkQ5MzAwMEM2MTYxIC8qIFRl
eHREb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5N0JDODQ4MTEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2Vy
LmNwcCAqLzsgfTsKQEAgLTk0ODAsNiArOTQ4Miw4IEBACiAJCTk3N0IzODVGMTIyODgzRTkwMEI4
MUZGOCAvKiBIVE1MVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEhUTUxUb2tlbml6ZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MVG9rZW5pemVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmll
d1NvdXJjZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBI
VE1MVmlld1NvdXJjZVBhcnNlci5jcHA7IHBhdGggPSBwYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJz
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzdCMzg2MTEyMjg4M0U5MDBC
ODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gSFRNTFZpZXdTb3VyY2VQYXJzZXIuaDsgcGF0aCA9IHBhcnNlci9IVE1MVmlld1Nv
dXJjZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzdFMkRDQjEyRjBF
MjgzMDBDMTMzNzkgLyogSFRNTFNvdXJjZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gSFRNTFNvdXJjZVRyYWNrZXIuY3BwOyBwYXRoID0gcGFyc2VyL0hU
TUxTb3VyY2VUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc3RTJE
Q0MxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEhUTUxTb3VyY2VUcmFja2VyLmg7IHBhdGggPSBwYXJzZXIvSFRN
TFNvdXJjZVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc5RjQzRDEx
MDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0
aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRp
b25TY2hlZHVsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdCQzg0ODExMjM2
RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwOyBwYXRoID0gcGFyc2Vy
L1RleHREb2N1bWVudFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NTk0MSw2ICsxNTk0NSw4IEBACiAJCQkJOTc3QjM4NUIxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxT
Y3JpcHRSdW5uZXIuY3BwICovLAogCQkJCTk3N0IzODVDMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1M
U2NyaXB0UnVubmVyLmggKi8sCiAJCQkJOTc3QjM4NUQxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxT
Y3JpcHRSdW5uZXJIb3N0LmggKi8sCisJCQkJOTc3RTJEQ0IxMkYwRTI4MzAwQzEzMzc5IC8qIEhU
TUxTb3VyY2VUcmFja2VyLmNwcCAqLywKKwkJCQk5NzdFMkRDQzEyRjBFMjgzMDBDMTMzNzkgLyog
SFRNTFNvdXJjZVRyYWNrZXIuaCAqLywKIAkJCQk5N0MxRjU1MjEyMjg1NUNCMDBFREU2MTYgLyog
SFRNTFRva2VuLmggKi8sCiAJCQkJOTc3QjM4NUUxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxUb2tl
bml6ZXIuY3BwICovLAogCQkJCTk3N0IzODVGMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5p
emVyLmggKi8sCkBAIC0yMjQzNCw2ICsyMjQ0MCw3IEBACiAJCQkJNEYyRDIwNTQxMkVBRTdCMzAw
NUMyODc0IC8qIEluc3BlY3RvckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk1ODVFMTEy
RjA5ODk1MDA3NTU4MjEgLyogUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxMzRGNUFCMTJFRTM0M0YwMDRFQzU4RCAvKiBJbnRSZWN0SGFzaC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTc3RTJEQ0UxMkYwRTI4MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTI1MTI4LDYgKzI1MTM1LDcgQEAKIAkJCQk5N0RENEQ4NjBGREY0
RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhBRTM0
RTEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEYyRDIwNTUxMkVBRTdCMzAwNUMyODc0IC8qIEluc3BlY3RvckFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTk3N0UyRENEMTJGMEUyODMwMEMxMzM3OSAvKiBIVE1MU291cmNlVHJhY2tl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24gNzY4MjApCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjYsOCArMjI2LDExIEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5p
emVyKFMKICAgICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5pc1BhcnNpbmdGcmFnbWVudCgpCiAg
ICAgICAgICAgICAmJiBkb2N1bWVudCgpLT5mcmFtZSgpICYmIGRvY3VtZW50KCktPmZyYW1lKCkt
Pm5hdmlnYXRpb25TY2hlZHVsZXIoKS0+bG9jYXRpb25DaGFuZ2VQZW5kaW5nKCkpCiAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICBtX3NvdXJjZVRyYWNrZXIuc3RhcnQobV9pbnB1dCwgbV90
b2tlbik7CiAgICAgICAgIGlmICghbV90b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJl
bnQoKSwgbV90b2tlbikpCiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgbV9zb3VyY2VUcmFj
a2VyLmVuZChtX2lucHV0LCBtX3Rva2VuKTsKIAogICAgICAgICBtX3RyZWVCdWlsZGVyLT5jb25z
dHJ1Y3RUcmVlRnJvbVRva2VuKG1fdG9rZW4pOwogICAgICAgICBtX3Rva2VuLmNsZWFyKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
aAkocmV2aXNpb24gNzY4MjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dFN0cmVh
bS5oIgogI2luY2x1ZGUgIkhUTUxTY3JpcHRSdW5uZXJIb3N0LmgiCisjaW5jbHVkZSAiSFRNTFNv
dXJjZVRyYWNrZXIuaCIKICNpbmNsdWRlICJIVE1MVG9rZW4uaCIKICNpbmNsdWRlICJTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKQEAgLTE0
MSw2ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxIVE1MVHJlZUJ1aWxkZXI+IG1fdHJl
ZUJ1aWxkZXI7CiAgICAgT3duUHRyPEhUTUxQcmVsb2FkU2Nhbm5lcj4gbV9wcmVsb2FkU2Nhbm5l
cjsKICAgICBPd25QdHI8SFRNTFBhcnNlclNjaGVkdWxlcj4gbV9wYXJzZXJTY2hlZHVsZXI7Cisg
ICAgSFRNTFNvdXJjZVRyYWNrZXIgbV9zb3VyY2VUcmFja2VyOwogCiAgICAgYm9vbCBtX2VuZFdh
c0RlbGF5ZWQ7CiAgICAgdW5zaWduZWQgbV93cml0ZU5lc3RpbmdMZXZlbDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU291cmNlVHJhY2tlci5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQWRhbSBCYXJ0aC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhU
TUxTb3VyY2VUcmFja2VyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSFRNTFNvdXJjZVRy
YWNrZXI6OkhUTUxTb3VyY2VUcmFja2VyKCkKK3sKK30KKwordm9pZCBIVE1MU291cmNlVHJhY2tl
cjo6c3RhcnQoY29uc3QgSFRNTElucHV0U3RyZWFtJiBpbnB1dCwgSFRNTFRva2VuJiB0b2tlbikK
K3sKKyAgICBtX3NvdXJjZUZyb21QcmV2aW91c1NlZ21lbnRzID0gdG9rZW4udHlwZSgpID09IEhU
TUxUb2tlbjo6VW5pbml0aWFsaXplZCA/IFN0cmluZygpIDogbV9zb3VyY2VGcm9tUHJldmlvdXNT
ZWdtZW50cyArIG1fc291cmNlLnRvU3RyaW5nKCk7CisgICAgbV9zb3VyY2UgPSBpbnB1dC5jdXJy
ZW50KCk7CisgICAgdG9rZW4uc2V0QmFzZU9mZnNldChpbnB1dC5jdXJyZW50KCkubnVtYmVyT2ZD
aGFyYWN0ZXJzQ29uc3VtZWQoKSAtIG1fc291cmNlRnJvbVByZXZpb3VzU2VnbWVudHMubGVuZ3Ro
KCkpOworfQorCit2b2lkIEhUTUxTb3VyY2VUcmFja2VyOjplbmQoY29uc3QgSFRNTElucHV0U3Ry
ZWFtJiBpbnB1dCwgSFRNTFRva2VuJiB0b2tlbikKK3sKKyAgICAvLyBGSVhNRTogVGhpcyB3b3Jr
IHNob3VsZCByZWFsbHkgYmUgZG9uZSBieSB0aGUgSFRNTFRva2VuaXplci4KKyAgICB0b2tlbi5l
bmQoaW5wdXQuY3VycmVudCgpLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOworfQorCitT
dHJpbmcgSFRNTFNvdXJjZVRyYWNrZXI6OnNvdXJjZUZvclRva2VuKGNvbnN0IEhUTUxUb2tlbiYg
dG9rZW4pCit7CisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkVuZE9mRmlsZSkK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOyAvLyBIaWRlcyB0aGUgbnVsbCBjaGFyYWN0ZXIgd2Ug
dXNlIHRvIG1hcmsgdGhlIGVuZCBvZiBmaWxlLgorCisgICAgQVNTRVJUKCF0b2tlbi5zdGFydElu
ZGV4KCkpOworICAgIFVDaGFyKiBkYXRhID0gMDsKKyAgICBpbnQgbGVuZ3RoID0gdG9rZW4uZW5k
SW5kZXgoKSAtIHRva2VuLnN0YXJ0SW5kZXgoKSAtIG1fc291cmNlRnJvbVByZXZpb3VzU2VnbWVu
dHMubGVuZ3RoKCk7CisgICAgU3RyaW5nIHNvdXJjZSA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFs
aXplZChsZW5ndGgsIGRhdGEpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgZGF0YVtpXSA9ICptX3NvdXJjZTsKKyAgICAgICAgbV9zb3VyY2UuYWR2YW5j
ZSgpOworICAgIH0KKyAgICByZXR1cm4gbV9zb3VyY2VGcm9tUHJldmlvdXNTZWdtZW50cyArIHNv
dXJjZTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJj
ZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFNvdXJjZVRyYWNrZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBZGFtIEJhcnRoLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEhUTUxT
b3VyY2VUcmFja2VyX2gKKyNkZWZpbmUgSFRNTFNvdXJjZVRyYWNrZXJfaAorCisjaW5jbHVkZSAi
SFRNTElucHV0U3RyZWFtLmgiCisjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgSFRNTFNvdXJjZVRyYWNrZXIgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEhUTUxTb3VyY2VUcmFja2VyKTsKK3B1YmxpYzoKKyAgICBIVE1MU291cmNlVHJhY2tl
cigpOworCisgICAgLy8gRklYTUU6IE9uY2Ugd2UgbW92ZSAiZW5kIiBpbnRvIEhUTUxUb2tlbml6
ZXIsIHJlbmFtZSAic3RhcnQiIHRvCisgICAgLy8gc29tZXRoaW5nIHRoYXQgbWFrZXMgaXQgb2J2
aW91cyB0aGF0IHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUKKyAgICAvLyB0aW1l
cy4KKyAgICB2b2lkIHN0YXJ0KGNvbnN0IEhUTUxJbnB1dFN0cmVhbSYsIEhUTUxUb2tlbiYpOwor
ICAgIHZvaWQgZW5kKGNvbnN0IEhUTUxJbnB1dFN0cmVhbSYsIEhUTUxUb2tlbiYpOworCisgICAg
U3RyaW5nIHNvdXJjZUZvclRva2VuKGNvbnN0IEhUTUxUb2tlbiYpOworCitwcml2YXRlOgorICAg
IFN0cmluZyBtX3NvdXJjZUZyb21QcmV2aW91c1NlZ21lbnRzOworICAgIFNlZ21lbnRlZFN0cmlu
ZyBtX3NvdXJjZTsKK307CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVG9rZW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW4uaAkocmV2aXNpb24gNzY4MjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVG9rZW4uaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMjAgKzY0LDI2IEBAIHB1
YmxpYzoKIAogICAgIEhUTUxUb2tlbigpIHsgY2xlYXIoKTsgfQogCi0gICAgdm9pZCBjbGVhcihp
bnQgc3RhcnRJbmRleCA9IDApCisgICAgdm9pZCBjbGVhcigpCiAgICAgewogICAgICAgICBtX3R5
cGUgPSBVbmluaXRpYWxpemVkOwotICAgICAgICBtX3JhbmdlLm1fc3RhcnQgPSBzdGFydEluZGV4
OwotICAgICAgICBtX3JhbmdlLm1fZW5kID0gc3RhcnRJbmRleDsKKyAgICAgICAgbV9yYW5nZS5t
X3N0YXJ0ID0gMDsKKyAgICAgICAgbV9yYW5nZS5tX2VuZCA9IDA7CisgICAgICAgIG1fYmFzZU9m
ZnNldCA9IDA7CiAgICAgICAgIG1fZGF0YS5jbGVhcigpOwogICAgIH0KIAogICAgIGludCBzdGFy
dEluZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5tX3N0YXJ0OyB9CiAgICAgaW50IGVuZElu
ZGV4KCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5tX2VuZDsgfQogCi0gICAgdm9pZCBlbmQoaW50
IGVuZEluZGV4KQorICAgIHZvaWQgc2V0QmFzZU9mZnNldChpbnQgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgbV9yYW5nZS5tX2VuZCA9IGVuZEluZGV4OworICAgICAgICBtX2Jhc2VPZmZzZXQgPSBv
ZmZzZXQ7CisgICAgfQorCisgICAgdm9pZCBlbmQoaW50IGVuZE9mZnNldCkKKyAgICB7CisgICAg
ICAgIG1fcmFuZ2UubV9lbmQgPSBlbmRPZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAgICAgfQogCiAg
ICAgdm9pZCBtYWtlRW5kT2ZGaWxlKCkKQEAgLTE3MiwyOSArMTc4LDMwIEBAIHB1YmxpYzoKICNl
bmRpZgogICAgIH0KIAotICAgIHZvaWQgYmVnaW5BdHRyaWJ1dGVOYW1lKGludCBpbmRleCkKKyAg
ICB2b2lkIGJlZ2luQXR0cmlidXRlTmFtZShpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgbV9j
dXJyZW50QXR0cmlidXRlLT5tX25hbWVSYW5nZS5tX3N0YXJ0ID0gaW5kZXg7CisgICAgICAgIG1f
Y3VycmVudEF0dHJpYnV0ZS0+bV9uYW1lUmFuZ2UubV9zdGFydCA9IG9mZnNldCAtIG1fYmFzZU9m
ZnNldDsKICAgICB9CiAKLSAgICB2b2lkIGVuZEF0dHJpYnV0ZU5hbWUoaW50IGluZGV4KQorICAg
IHZvaWQgZW5kQXR0cmlidXRlTmFtZShpbnQgb2Zmc2V0KQogICAgIHsKKyAgICAgICAgaW50IGlu
ZGV4ID0gb2Zmc2V0IC0gbV9iYXNlT2Zmc2V0OwogICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUt
Pm1fbmFtZVJhbmdlLm1fZW5kID0gaW5kZXg7CiAgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+
bV92YWx1ZVJhbmdlLm1fc3RhcnQgPSBpbmRleDsKICAgICAgICAgbV9jdXJyZW50QXR0cmlidXRl
LT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSBpbmRleDsKICAgICB9CiAKLSAgICB2b2lkIGJlZ2luQXR0
cmlidXRlVmFsdWUoaW50IGluZGV4KQorICAgIHZvaWQgYmVnaW5BdHRyaWJ1dGVWYWx1ZShpbnQg
b2Zmc2V0KQogICAgIHsKLSAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2Uu
bV9zdGFydCA9IGluZGV4OworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFsdWVSYW5n
ZS5tX3N0YXJ0ID0gb2Zmc2V0IC0gbV9iYXNlT2Zmc2V0OwogI2lmbmRlZiBOREVCVUcKICAgICAg
ICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSAwOwogI2VuZGlmCiAg
ICAgfQogCi0gICAgdm9pZCBlbmRBdHRyaWJ1dGVWYWx1ZShpbnQgaW5kZXgpCisgICAgdm9pZCBl
bmRBdHRyaWJ1dGVWYWx1ZShpbnQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgbV9jdXJyZW50QXR0
cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSBpbmRleDsKKyAgICAgICAgbV9jdXJyZW50QXR0
cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9lbmQgPSBvZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7CiAgICAg
fQogCiAgICAgdm9pZCBhcHBlbmRUb0F0dHJpYnV0ZU5hbWUoVUNoYXIgY2hhcmFjdGVyKQpAQCAt
MzMxLDkgKzMzOCw4IEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIFR5cGUgbV90eXBlOwotCi0g
ICAgLy8gV2hpY2ggY2hhcmFjdGVycyBmcm9tIHRoZSBpbnB1dCBzdHJlYW0gYXJlIHJlcHJlc2Vu
dGVkIGJ5IHRoaXMgdG9rZW4uCi0gICAgUmFuZ2UgbV9yYW5nZTsKKyAgICBSYW5nZSBtX3Jhbmdl
OyAvLyBBbHdheXMgc3RhcnRzIGF0IHplcm8uCisgICAgaW50IG1fYmFzZU9mZnNldDsKIAogICAg
IC8vICJuYW1lIiBmb3IgRE9DVFlQRSwgU3RhcnRUYWcsIGFuZCBFbmRUYWcKICAgICAvLyAiY2hh
cmFjdGVycyIgZm9yIENoYXJhY3RlcgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcAkocmV2aXNpb24gNzY4MjApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ5LDM1ICs0OSwyNyBAQCB2b2lkIEhUTUxWaWV3U291cmNlUGFyc2VyOjpp
bnNlcnQoY29uc3QgCiAKIHZvaWQgSFRNTFZpZXdTb3VyY2VQYXJzZXI6OnB1bXBUb2tlbml6ZXIo
KQogewotICAgIHdoaWxlIChtX3Rva2VuaXplci0+bmV4dFRva2VuKG1faW5wdXQuY3VycmVudCgp
LCBtX3Rva2VuKSkgewotICAgICAgICBtX3Rva2VuLmVuZChtX2lucHV0LmN1cnJlbnQoKS5udW1i
ZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBt
X3NvdXJjZVRyYWNrZXIuc3RhcnQobV9pbnB1dCwgbV90b2tlbik7CisgICAgICAgIGlmICghbV90
b2tlbml6ZXItPm5leHRUb2tlbihtX2lucHV0LmN1cnJlbnQoKSwgbV90b2tlbikpCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgbV9zb3VyY2VUcmFja2VyLmVuZChtX2lucHV0LCBtX3Rva2Vu
KTsKKwogICAgICAgICBkb2N1bWVudCgpLT5hZGRTb3VyY2Uoc291cmNlRm9yVG9rZW4oKSwgbV90
b2tlbik7CiAgICAgICAgIHVwZGF0ZVRva2VuaXplclN0YXRlKCk7Ci0gICAgICAgIG1fdG9rZW4u
Y2xlYXIobV9pbnB1dC5jdXJyZW50KCkubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7Cisg
ICAgICAgIG1fdG9rZW4uY2xlYXIoKTsKICAgICB9CiB9CiAKIHZvaWQgSFRNTFZpZXdTb3VyY2VQ
YXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIGlucHV0KQogewogICAgIG1faW5w
dXQuYXBwZW5kVG9FbmQoaW5wdXQpOwotICAgIG1fc291cmNlLmFwcGVuZChpbnB1dCk7CiAgICAg
cHVtcFRva2VuaXplcigpOwogfQogCiBTdHJpbmcgSFRNTFZpZXdTb3VyY2VQYXJzZXI6OnNvdXJj
ZUZvclRva2VuKCkKIHsKLSAgICBpZiAobV90b2tlbi50eXBlKCkgPT0gSFRNTFRva2VuOjpFbmRP
ZkZpbGUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIEFTU0VSVChtX3NvdXJjZS5u
dW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpID09IG1fdG9rZW4uc3RhcnRJbmRleCgpKTsKLSAg
ICBVQ2hhciogZGF0YSA9IDA7Ci0gICAgaW50IGxlbmd0aCA9IG1fdG9rZW4uZW5kSW5kZXgoKSAt
IG1fdG9rZW4uc3RhcnRJbmRleCgpOwotICAgIFN0cmluZyBzb3VyY2UgPSBTdHJpbmc6OmNyZWF0
ZVVuaW5pdGlhbGl6ZWQobGVuZ3RoLCBkYXRhKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIGRhdGFbaV0gPSAqbV9zb3VyY2U7Ci0gICAgICAgIG1fc291
cmNlLmFkdmFuY2UoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gbV9z
b3VyY2VUcmFja2VyLnNvdXJjZUZvclRva2VuKG1fdG9rZW4pOwogfQogCiB2b2lkIEhUTUxWaWV3
U291cmNlUGFyc2VyOjp1cGRhdGVUb2tlbml6ZXJTdGF0ZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgJKHJldmlzaW9uIDc2
ODIwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGVjb2RlZERh
dGFEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dFN0cmVhbS5oIgorI2luY2x1
ZGUgIkhUTUxTb3VyY2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuaXplci5oIgogI2luY2x1ZGUgIkhUTUxWaWV3U291cmNlRG9jdW1lbnQuaCIK
QEAgLTY5LDggKzcwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRva2VuaXplclN0YXRl
KCk7CiAKICAgICBIVE1MSW5wdXRTdHJlYW0gbV9pbnB1dDsKLSAgICBTZWdtZW50ZWRTdHJpbmcg
bV9zb3VyY2U7CiAgICAgSFRNTFRva2VuIG1fdG9rZW47CisgICAgSFRNTFNvdXJjZVRyYWNrZXIg
bV9zb3VyY2VUcmFja2VyOwogICAgIE93blB0cjxIVE1MVG9rZW5pemVyPiBtX3Rva2VuaXplcjsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5n
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRl
ZFN0cmluZy5jcHAJKHJldmlzaW9uIDc2ODIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsMTcgKzE4Niw2
IEBAIHZvaWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlU3Vic3RyaW5nKCkKICAgICB9CiB9CiAK
LWludCBTZWdtZW50ZWRTdHJpbmc6Om51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkU2xvdygpIGNv
bnN0Ci17Ci0gICAgaW50IHJlc3VsdCA9IG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlv
clRvQ3VycmVudFN0cmluZyArIG1fY3VycmVudFN0cmluZy5udW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZCgpOwotICAgIGlmIChtX3B1c2hlZENoYXIxKSB7Ci0gICAgICAgIC0tcmVzdWx0OwotICAg
ICAgICBpZiAobV9wdXNoZWRDaGFyMikKLSAgICAgICAgICAgIC0tcmVzdWx0OwotICAgIH0KLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCiBTdHJpbmcgU2VnbWVudGVkU3RyaW5nOjp0b1N0cmluZygp
IGNvbnN0CiB7CiAgICAgU3RyaW5nIHJlc3VsdDsKQEAgLTI2MiwxNCArMjUxLDE0IEBAIFdURjo6
WmVyb0Jhc2VkTnVtYmVyIFNlZ21lbnRlZFN0cmluZzo6Y3UKIAogV1RGOjpaZXJvQmFzZWROdW1i
ZXIgU2VnbWVudGVkU3RyaW5nOjpjdXJyZW50Q29sdW1uKCkgY29uc3QKIHsKLSAgICBpbnQgemVy
b0Jhc2VkQ29sdW1uID0gbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRTbG93KCkgLSBtX251bWJl
ck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JUb0N1cnJlbnRMaW5lOworICAgIGludCB6ZXJvQmFz
ZWRDb2x1bW4gPSBudW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpIC0gbV9udW1iZXJPZkNoYXJh
Y3RlcnNDb25zdW1lZFByaW9yVG9DdXJyZW50TGluZTsKICAgICByZXR1cm4gV1RGOjpaZXJvQmFz
ZWROdW1iZXI6OmZyb21aZXJvQmFzZWRJbnQoemVyb0Jhc2VkQ29sdW1uKTsKIH0KIAogdm9pZCBT
ZWdtZW50ZWRTdHJpbmc6OnNldEN1cnJlbnRQb3NpdGlvbihXVEY6Olplcm9CYXNlZE51bWJlciBs
aW5lLCBXVEY6Olplcm9CYXNlZE51bWJlciBjb2x1bW5BZnRyZVByb2xvZywgaW50IHByb2xvZ0xl
bmd0aCkKIHsKICAgICBtX2N1cnJlbnRMaW5lID0gbGluZS56ZXJvQmFzZWRJbnQoKTsKLSAgICBt
X251bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JUb0N1cnJlbnRMaW5lID0gbnVtYmVyT2ZD
aGFyYWN0ZXJzQ29uc3VtZWRTbG93KCkgKyBwcm9sb2dMZW5ndGggLSBjb2x1bW5BZnRyZVByb2xv
Zy56ZXJvQmFzZWRJbnQoKTsKKyAgICBtX251bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkUHJpb3JU
b0N1cnJlbnRMaW5lID0gbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSArIHByb2xvZ0xlbmd0
aCAtIGNvbHVtbkFmdHJlUHJvbG9nLnplcm9CYXNlZEludCgpOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgJKHJldmlzaW9u
IDc2ODIwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDEzICsyMDYsMTUgQEAgcHVibGljOgogCiAgICAgaW50
IG51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkgY29uc3QKICAgICB7Ci0gICAgICAgIC8vIFdl
IGRvbid0IGN1cnJlbnRseSBoYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGVyZSBhcmUgcHVzaGVkIGNo
YXJhY3Rlci4KLSAgICAgICAgQVNTRVJUKCFtX3B1c2hlZENoYXIxKTsKLSAgICAgICAgcmV0dXJu
IG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWRQcmlvclRvQ3VycmVudFN0cmluZyArIG1fY3Vy
cmVudFN0cmluZy5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpOworICAgICAgICBpbnQgbnVt
YmVyT2ZQdXNoZWRDaGFyYWN0ZXJzID0gMDsKKyAgICAgICAgaWYgKG1fcHVzaGVkQ2hhcjEpIHsK
KyAgICAgICAgICAgICsrbnVtYmVyT2ZQdXNoZWRDaGFyYWN0ZXJzOworICAgICAgICAgICAgaWYg
KG1fcHVzaGVkQ2hhcjIpCisgICAgICAgICAgICAgICAgKytudW1iZXJPZlB1c2hlZENoYXJhY3Rl
cnM7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fbnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3Vt
ZWRQcmlvclRvQ3VycmVudFN0cmluZyArIG1fY3VycmVudFN0cmluZy5udW1iZXJPZkNoYXJhY3Rl
cnNDb25zdW1lZCgpIC0gbnVtYmVyT2ZQdXNoZWRDaGFyYWN0ZXJzOwogICAgIH0KIAotICAgIGlu
dCBudW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZFNsb3coKSBjb25zdDsKLQogICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0OwogCiAgICAgY29uc3QgVUNoYXImIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuICpjdXJyZW50KCk7IH0K
</data>
<flag name="commit-queue"
          id="71830"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>