<?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>168986</bug_id>
          
          <creation_ts>2017-02-28 13:36:17 -0800</creation_ts>
          <short_desc>LibWebRTCProvider should check existence of libwebrtc.dylib</short_desc>
          <delta_ts>2017-02-28 16:09:27 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1281917</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 13:36:17 -0800</bug_when>
    <thetext>LibWebRTCProvider should check existence of libwebrtc.dylib</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281920</commentid>
    <comment_count>1</comment_count>
      <attachid>302975</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 13:40:52 -0800</bug_when>
    <thetext>Created attachment 302975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281952</commentid>
    <comment_count>2</comment_count>
      <attachid>302975</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-28 14:14:15 -0800</bug_when>
    <thetext>Comment on attachment 302975
Patch

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

&gt; Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:160
&gt; +    if (senders.size() &amp;&amp; LibWebRTCProvider::factory()) {

If we do not have a factory, it might be better to just reject the promise upfront.
Typically by calling createOfferFailed from m_peerConnectionBackend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281970</commentid>
    <comment_count>3</comment_count>
      <attachid>302991</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 15:01:23 -0800</bug_when>
    <thetext>Created attachment 302991
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281987</commentid>
    <comment_count>4</comment_count>
      <attachid>302995</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 15:11:10 -0800</bug_when>
    <thetext>Created attachment 302995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281992</commentid>
    <comment_count>5</comment_count>
      <attachid>302996</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 15:19:57 -0800</bug_when>
    <thetext>Created attachment 302996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282023</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-28 16:09:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/r213190</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302975</attachid>
            <date>2017-02-28 13:40:52 -0800</date>
            <delta_ts>2017-02-28 15:01:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168986-20170228133755.patch</filename>
            <type>text/plain</type>
            <size>14519</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2ViUlRD
UHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA3MzU0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU29tZSBjb25maWd1cmF0aW9ucyBvZiB0aGUgd2VicnRjIHRl
c3RzIG92ZXJ3cml0ZSB0aGUgYXZhaWxhYmlsaXR5IG9mIFdlYlJUQyBpbiBvcmRlciB0byB0ZXN0
IGl0CisgICAgICAgIHdpdGggTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLiAgSWYgdGhlIGR5
bGliIGNhbiBub3QgYmUgZm91bmQsIHdlIGNhbid0IHVzZSBpdCwgc28gd2Ugd2FudCB0bworICAg
ICAgICBmYWlsIHRoZXNlIHRlc3RzIHJhdGhlciB0aGFuIGNyYXNoaW5nIGNhbGxpbmcgcnRjOjpM
b2dNZXNzYWdlOjpMb2dUb0RlYnVnLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlQW5zd2VyKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGliV2ViUlRDUHJvdmlkZXI6OndlYlJUQ0F2YWlsYWJsZSk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICog
dGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpN
b2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbik6
CisKIDIwMTctMDItMjcgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIGZsZXhib3ggdG8gQmxpbmsncyB0aXAgb2YgdHJlZQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHJldmlzaW9uIDIxMzE1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlh
RW5kcG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsOSArMTU3LDkgQEAgdm9pZCBMaWJX
ZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZgogewogICAgIG1faXNJbml0aWF0b3IgPSB0
cnVlOwogICAgIGF1dG8mIHNlbmRlcnMgPSBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0
aW9uKCkuZ2V0U2VuZGVycygpOwotICAgIGlmIChzZW5kZXJzLnNpemUoKSkgeworICAgIGlmIChz
ZW5kZXJzLnNpemUoKSAmJiBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBXZSBvbmx5IHN1cHBvcnQgb25lIHN0cmVhbSBmb3IgdGhlIG1vbWVudC4KLSAg
ICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUxv
Y2FsTWVkaWFTdHJlYW0oc3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlv
bigpKSk7CisgICAgICAgIGF1dG8gc3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3Rvcnko
KS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jb25uZWN0aW9uKCkpKTsKICAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNl
bmRlcnMpIHsKICAgICAgICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7CiAgICAg
ICAgICAgICBpZiAodHJhY2spIHsKQEAgLTE2NywxMyArMTY3LDEzIEBAIHZvaWQgTGliV2ViUlRD
TWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmYKICAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2Ug
PSB0cmFjay0+c291cmNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB0
cmFja1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6
ZmFjdG9yeSgpLkNyZWF0ZUF1ZGlvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJh
Y2tTb3VyY2UucHRyKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHJ0Y1RyYWNrID0gTGli
V2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51
dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJjZS5wdHIoKSk7CiAgICAgICAgICAgICAgICAgICAgIHRy
YWNrU291cmNlLT5zZXRUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNr
SW50ZXJmYWNlPihydGNUcmFjaykpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0
aW9uQmFja2VuZC5hZGRBdWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAg
ICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZShydGNUcmFjaykpOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2Ug
PSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2UpOwotICAgICAgICAg
ICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgp
LkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2Uu
cHRyKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQ
cm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVWaWRlb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5k
YXRhKCksIHZpZGVvU291cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuYWRkVmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRlb1NvdXJjZSkpOwogICAg
ICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwog
ICAgICAgICAgICAgICAgIH0KQEAgLTE4OSw5ICsxODksOSBAQCB2b2lkIExpYldlYlJUQ01lZGlh
RW5kcG9pbnQ6OmRvQ3JlYXRlQW5zCiAgICAgbV9pc0luaXRpYXRvciA9IGZhbHNlOwogCiAgICAg
YXV0byYgc2VuZGVycyA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5nZXRT
ZW5kZXJzKCk7Ci0gICAgaWYgKHNlbmRlcnMuc2l6ZSgpKSB7CisgICAgaWYgKHNlbmRlcnMuc2l6
ZSgpICYmIExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkpIHsKICAgICAgICAgLy8gRklYTUU6
IFdlIG9ubHkgc3VwcG9ydCBvbmUgc3RyZWFtIGZvciB0aGUgbW9tZW50LgotICAgICAgICBhdXRv
IHN0cmVhbSA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkuQ3JlYXRlTG9jYWxNZWRpYVN0
cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKKyAg
ICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVM
b2NhbE1lZGlhU3RyZWFtKHN0cmVhbUlkKG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rp
b24oKSkpOwogICAgICAgICBmb3IgKFJUQ1J0cFNlbmRlciYgc2VuZGVyIDogc2VuZGVycykgewog
ICAgICAgICAgICAgYXV0byogdHJhY2sgPSBzZW5kZXIudHJhY2soKTsKICAgICAgICAgICAgIGlm
ICh0cmFjaykgewpAQCAtMTk5LDEzICsxOTksMTMgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBv
aW50Ojpkb0NyZWF0ZUFucwogICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNrLT5z
b3VyY2UoKTsKICAgICAgICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpbykgewogICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291cmNl
ID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAgICAg
ICAgICAgICAgICAgYXV0byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCku
Q3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJjZS5w
dHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92
aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVBdWRpb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRh
KCksIHRyYWNrU291cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgdHJhY2tTb3VyY2Ut
PnNldFRyYWNrKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZhY2U+
KHJ0Y1RyYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNrZW5k
LmFkZEF1ZGlvU291cmNlKFdURk1vdmUodHJhY2tTb3VyY2UpKTsKICAgICAgICAgICAgICAgICAg
ICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHJ0Y1RyYWNrKSk7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IFJlYWx0aW1l
T3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAg
IGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkuQ3JlYXRlVmlk
ZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpm
YWN0b3J5KCktPkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdmlk
ZW9Tb3VyY2UucHRyKCkpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFj
a2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNlKSk7CiAgICAgICAgICAgICAg
ICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSk7CiAgICAgICAgICAg
ICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCShyZXZp
c2lvbiAyMTMxNTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw4
IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKIAogI2lmIFVTRShMSUJXRUJSVEMp
Ci0KICNpbmNsdWRlICJMaWJXZWJSVENBdWRpb01vZHVsZS5oIgorI2luY2x1ZGUgPGRsZmNuLmg+
CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaD4KICNpbmNsdWRl
IDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uZmFjdG9yeXByb3h5Lmg+CiAjaW5jbHVkZSA8d2Vi
cnRjL2Jhc2UvcGh5c2ljYWxzb2NrZXRzZXJ2ZXIuaD4KQEAgLTM2LDkgKzM2LDExIEBACiAjaW5j
bHVkZSA8d2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL3ZpZGVvdG9vbGJveHZpZGVv
Y29kZWNmYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYg
VVNFKExJQldFQlJUQykKIHN0cnVjdCBQZWVyQ29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzIDog
cHVibGljIHJ0Yzo6TWVzc2FnZUhhbmRsZXIgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaWJXZWJS
VENBdWRpb01vZHVsZT4gYXVkaW9EZXZpY2VNb2R1bGU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6VGhyZWFkPiBuZXR3b3JrVGhyZWFkOwpAQCAtMTA3LDExICsxMDksMTMgQEAgc3RhdGljIHZv
aWQgaW5pdGlhbGl6ZVBlZXJDb25uZWN0aW9uRmFjdAogICAgIEFTU0VSVChmYWN0b3J5QW5kVGhy
ZWFkcy5mYWN0b3J5KTsKIH0KIAotd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZh
Y2UmIExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkKK3dlYnJ0Yzo6UGVlckNvbm5lY3Rpb25G
YWN0b3J5SW50ZXJmYWNlKiBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpCiB7CisgICAgaWYg
KCF3ZWJSVENBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFz
dGF0aWNGYWN0b3J5QW5kVGhyZWFkcygpLmZhY3RvcnkpCiAgICAgICAgIGluaXRpYWxpemVQZWVy
Q29ubmVjdGlvbkZhY3RvcnlBbmRUaHJlYWRzKCk7Ci0gICAgcmV0dXJuICpzdGF0aWNGYWN0b3J5
QW5kVGhyZWFkcygpLmZhY3Rvcnk7CisgICAgcmV0dXJuIHN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRz
KCkuZmFjdG9yeTsKIH0KIAogdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6c2V0UGVlckNvbm5lY3Rp
b25GYWN0b3J5KHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9y
eUludGVyZmFjZT4mJiBmYWN0b3J5KQpAQCAtMTYzLDYgKzE2NywyMyBAQCBydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvCiAgICAgcmV0dXJuIGNyZWF0ZUFjdHVhbFBlZXJD
b25uZWN0aW9uKG9ic2VydmVyLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpKTsKIH0KIAorI2VuZGlm
IC8vIFVTRShMSUJXRUJSVEMpCisKK2Jvb2wgTGliV2ViUlRDUHJvdmlkZXI6OndlYlJUQ0F2YWls
YWJsZSgpCit7CisjaWYgVVNFKExJQldFQlJUQykKKyAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGUg
PSBbXSB7CisgICAgICAgIHZvaWQqIGxpYndlYnJ0Y0xpYnJhcnkgPSBkbG9wZW4oImxpYndlYnJ0
Yy5keWxpYiIsIFJUTERfTEFaWSk7CisgICAgICAgIGlmICghbGlid2VicnRjTGlicmFyeSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGxjbG9zZShsaWJ3ZWJydGNMaWJyYXJ5
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSgpOworICAgIHJldHVybiBhdmFpbGFibGU7
CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaAkocmV2aXNpb24gMjEzMTUwKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDEzICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIo
KSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+TGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CiAKKyAgICBzdGF0aWMgYm9vbCB3ZWJSVENBdmFpbGFibGUoKTsKICNpZiBVU0UoTElCV0VCUlRD
KQogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25PYnNlcnZlciYpOwogCiAgICAgLy8gRklYTUU6IE1ha2UgdGhlc2UgbWV0aG9k
cyBub3Qgc3RhdGljLgogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbGxPbldlYlJU
Q05ldHdvcmtUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjYWxsT25XZWJSVENTaWduYWxpbmdUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYm
KTsKLSAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3Rv
cnlJbnRlcmZhY2UmIGZhY3RvcnkoKTsKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgd2VicnRj
OjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKICAgICAvLyBVc2Vk
IGZvciBtb2NrIHRlc3RpbmcKICAgICBzdGF0aWMgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkZhY3Rv
cnkocnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJm
YWNlPiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gMjEzMTUwKQorKysgU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFj
dG9yeShMaWIKIHsKICAgICBpZiAocHJvdmlkZXIgJiYgIXJlYWxQZWVyQ29ubmVjdGlvbkZhY3Rv
cnkoKSkgewogICAgICAgICBhdXRvJiBmYWN0b3J5ID0gZ2V0UmVhbFBlZXJDb25uZWN0aW9uRmFj
dG9yeSgpOwotICAgICAgICBmYWN0b3J5ID0gJnByb3ZpZGVyLT5mYWN0b3J5KCk7CisgICAgICAg
IGZhY3RvcnkgPSBwcm92aWRlci0+ZmFjdG9yeSgpOwogICAgIH0KIAogICAgIExpYldlYlJUQ1By
b3ZpZGVyOjpzZXRQZWVyQ29ubmVjdGlvbkZhY3RvcnkoTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uRmFjdG9yeTo6Y3JlYXRlKFN0cmluZyh0ZXN0Q2FzZSkpKTsKQEAgLTE2Miw2ICsxNjIsOSBA
QCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpNb2NrCiAKIHJ0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCB3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLCBz
dGQ6OnVuaXF1ZV9wdHI8Y3JpY2tldDo6UG9ydEFsbG9jYXRvcj4gcG9ydEFsbG9jYXRvciwgc3Rk
Ojp1bmlxdWVfcHRyPHJ0Yzo6UlRDQ2VydGlmaWNhdGVHZW5lcmF0b3JJbnRlcmZhY2U+IGdlbmVy
YXRvciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKIHsKKyAgICBp
ZiAoIXJlYWxQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKICAgICBpZiAobV9udW1iZXJPZlJlYWxQZWVyQ29ubmVjdGlvbnMpIHsKICAgICAgICAgYXV0
byBjb25uZWN0aW9uID0gcmVhbFBlZXJDb25uZWN0aW9uRmFjdG9yeSgpLT5DcmVhdGVQZWVyQ29u
bmVjdGlvbihjb25maWd1cmF0aW9uLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpLCBXVEZNb3ZlKGdl
bmVyYXRvciksIG9ic2VydmVyKTsKICAgICAgICAgLS1tX251bWJlck9mUmVhbFBlZXJDb25uZWN0
aW9uczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE3MSkKKysrIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAyLTI4ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGli
V2ViUlRDUHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Y2hlY2tXZWJSVENBdmFpbGFiaWxpdHkpOiBEZWxldGVkLgorCiAy
MDE3LTAyLTI4ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGRlbGVnYXRlIG1ldGhvZCB0byBoYW5kbGUgaW1hZ2VzIHdpdGggYWx0ZXJuYXRl
IGRhdGEuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0
aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgJKHJldmlzaW9uIDIxMzE1MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMiwxMSAr
MzEyLDYgQEAKIC8vICAgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRV9FTkFCTEVEIChmb3Ig
ZmVhdHVyZXMgdGhhdCBhcmUgcmVhZHkgZm9yCiAvLyAgIHdpZGVyIHRlc3RpbmcpLgogCi0vLyBE
aXNhYmxlIHdlYnJ0YyBmZWF0dXJlIGlmIGxpYndlYnJ0YyBsaWJyYXJ5IGlzIG5vdCBwcmVzZW50
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLWJvb2wgY2hlY2tXZWJSVENBdmFpbGFiaWxpdHkoKTsKLX0K
LQogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRVhQRVJJTUVOVEFMX0ZFQVRVUkVfUFJFRkVSRU5D
RShtYWNybykgXAogICAgIG1hY3JvKFNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCwgc3ByaW5n
VGltaW5nRnVuY3Rpb25FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0VYUEVSSU1FTlRBTF9G
RUFUVVJFU19FTkFCTEVELCAiQ1NTIFNwcmluZyBBbmltYXRpb25zIiwgIkNTUyBTcHJpbmcgQW5p
bWF0aW9uIHByb3RvdHlwZSIpIFwKICAgICBtYWNybyhHYW1lcGFkc0VuYWJsZWQsIGdhbWVwYWRz
RW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNfRU5BQkxF
RCwgIkdhbWVwYWRzIiwgIldlYiBHYW1lcGFkIEFQSSBzdXBwb3J0IikgXApAQCAtMzI4LDcgKzMy
Myw3IEBAIGJvb2wgY2hlY2tXZWJSVENBdmFpbGFiaWxpdHkoKTsKICAgICBtYWNybyhVc2VyVGlt
aW5nRW5hYmxlZCwgdXNlclRpbWluZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfRVhQRVJJ
TUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQsICJVc2VyIFRpbWluZyIsICJFbmFibGUgVXNlclRpbWlu
ZyBBUEkiKSBcCiAgICAgbWFjcm8oV2ViQW5pbWF0aW9uc0VuYWJsZWQsIHdlYkFuaW1hdGlvbnNF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIldlYiBBbmltYXRpb25zIiwgIldlYiBBbmltYXRp
b25zIHByb3RvdHlwZSIpIFwKICAgICBtYWNybyhXZWJHTDJFbmFibGVkLCB3ZWJHTDJFbmFibGVk
LCBCb29sLCBib29sLCBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVELCAiV2Vi
R0wgMi4wIiwgIldlYkdMIDIgcHJvdG90eXBlIikgXAotICAgIG1hY3JvKFBlZXJDb25uZWN0aW9u
RW5hYmxlZCwgcGVlckNvbm5lY3Rpb25FbmFibGVkLCBCb29sLCBib29sLCBjaGVja1dlYlJUQ0F2
YWlsYWJpbGl0eSgpLCAiV2ViUlRDIiwgIkVuYWJsZSBXZWJSVEMgQVBJIikgXAorICAgIG1hY3Jv
KFBlZXJDb25uZWN0aW9uRW5hYmxlZCwgcGVlckNvbm5lY3Rpb25FbmFibGVkLCBCb29sLCBib29s
LCBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKCksICJXZWJSVEMi
LCAiRW5hYmxlIFdlYlJUQyBBUEkiKSBcCiAgICAgXAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCShy
ZXZpc2lvbiAyMTMxNTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGb250
U21vb3RoaW5nTGV2ZWwuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJU
Q1Byb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dEVuY29kaW5nUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNw
cAkocmV2aXNpb24gMjEzMTUwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIldl
YlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0xpYldlYlJUQ1Byb3ZpZGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIApAQCAtMTk2LDIyICsxOTYsNiBA
QCBGT1JfRUFDSF9XRUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJTkVfCiAKICN1bmRlZiBERUZJ
TkVfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMKIAotYm9vbCBjaGVja1dlYlJUQ0F2YWls
YWJpbGl0eSgpCi17Ci0jaWYgVVNFKExJQldFQlJUQykKLSAgICBzdGF0aWMgYm9vbCBhdmFpbGFi
bGUgPSBbJl0gewotICAgICAgICB2b2lkKiBsaWJ3ZWJydGNMaWJyYXJ5ID0gZGxvcGVuKCJsaWJ3
ZWJydGMuZHlsaWIiLCBSVExEX0xBWlkpOwotICAgICAgICBpZiAoIWxpYndlYnJ0Y0xpYnJhcnkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRsY2xvc2UobGlid2VicnRjTGli
cmFyeSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0oKTsKLSAgICByZXR1cm4gYXZhaWxh
YmxlOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotfQotCiAjZGVmaW5lIERFRklO
RV9FWFBFUklNRU5UQUxfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMoS2V5VXBwZXIsIEtl
eUxvd2VyLCBUeXBlTmFtZSwgVHlwZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwg
SHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uKSBcCiAgICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0
IyNLZXlVcHBlcihjb25zdCBUeXBlJiB2YWx1ZSkgXAogICAgIHsgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302991</attachid>
            <date>2017-02-28 15:01:23 -0800</date>
            <delta_ts>2017-02-28 15:11:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168986-20170228145827.patch</filename>
            <type>text/plain</type>
            <size>14332</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2ViUlRD
UHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA3MzU0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBTb21lIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSB3ZWJydGMgdGVz
dHMgb3ZlcndyaXRlIHRoZSBhdmFpbGFiaWxpdHkgb2YgV2ViUlRDIGluIG9yZGVyIHRvIHRlc3Qg
aXQKKyAgICAgICAgd2l0aCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uICBJZiB0aGUgZHls
aWIgY2FuIG5vdCBiZSBmb3VuZCwgd2UgY2FuJ3QgdXNlIGl0LCBzbyB3ZSB3YW50IHRvCisgICAg
ICAgIGZhaWwgdGhlc2UgdGVzdHMgcmF0aGVyIHRoYW4gY3Jhc2hpbmcgY2FsbGluZyBydGM6Okxv
Z01lc3NhZ2U6OkxvZ1RvRGVidWcuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6OkNyZWF0ZVBlZXJDb25uZWN0aW9uKToK
KwogMjAxNy0wMi0yNyAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGRhdGUgZmxleGJveCB0byBCbGluaydzIHRpcCBvZiB0cmVlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAkocmV2aXNpb24gMjEzMTUwKQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDTWVkaWFF
bmRwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1LDE2IEBAIHN0YXRpYyBp
bmxpbmUgc3RkOjpzdHJpbmcgc3RyZWFtSWQoUlRDUGUKIAogdm9pZCBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKCkKIHsKKyAgICBpZiAoIUxpYldlYlJUQ1Byb3ZpZGVyOjpm
YWN0b3J5KCkpIHsKKyAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlT2ZmZXJG
YWlsZWQoRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIsIEFTQ0lJTGl0ZXJhbCgibGlid2Vi
cnRjIGJhY2tlbmQgaXMgbWlzc2luZy4iKSB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAgICAgCiAgICAgbV9pc0luaXRpYXRvciA9IHRydWU7CiAgICAgYXV0byYgc2VuZGVycyA9IG1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5nZXRTZW5kZXJzKCk7CiAgICAgaWYg
KHNlbmRlcnMuc2l6ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBvbmx5IHN1cHBvcnQgb25l
IHN0cmVhbSBmb3IgdGhlIG1vbWVudC4KLSAgICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQ
cm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUxvY2FsTWVkaWFTdHJlYW0oc3RyZWFtSWQobV9wZWVy
Q29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpKSk7CisgICAgICAgIGF1dG8gc3RyZWFtID0g
TGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVhbShzdHJl
YW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsKICAgICAgICAgZm9y
IChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKICAgICAgICAgICAgIGF1dG8qIHRy
YWNrID0gc2VuZGVyLnRyYWNrKCk7CiAgICAgICAgICAgICBpZiAodHJhY2spIHsKQEAgLTE2Nywx
MyArMTcyLDEzIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmYKICAg
ICAgICAgICAgICAgICBhdXRvJiBzb3VyY2UgPSB0cmFjay0+c291cmNlKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pIHsK
ICAgICAgICAgICAgICAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcnRj
VHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUF1ZGlvVHJhY2sodHJh
Y2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkpOworICAgICAgICAgICAg
ICAgICAgICBhdXRvIHJ0Y1RyYWNrID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3Jl
YXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJjZS5wdHIo
KSk7CiAgICAgICAgICAgICAgICAgICAgIHRyYWNrU291cmNlLT5zZXRUcmFjayhydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPihydGNUcmFjaykpOwogICAgICAg
ICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRBdWRpb1NvdXJjZShXVEZN
b3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2so
V1RGTW92ZShydGNUcmFjaykpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6
OmNyZWF0ZShzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBM
aWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCku
dXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOworICAgICAgICAgICAgICAgICAgICBh
dXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVWaWRl
b1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRhKCksIHZpZGVvU291cmNlLnB0cigpKTsKICAg
ICAgICAgICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuYWRkVmlkZW9Tb3VyY2Uo
V1RGTW92ZSh2aWRlb1NvdXJjZSkpOwogICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRy
YWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwogICAgICAgICAgICAgICAgIH0KQEAgLTE4NiwxMiAr
MTkxLDE3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVPZmYKIAogdm9p
ZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZUFuc3dlcigpCiB7CisgICAgaWYgKCFM
aWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpKSB7CisgICAgICAgIG1fcGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VSUiwg
QVNDSUlMaXRlcmFsKCJsaWJ3ZWJydGMgYmFja2VuZCBpcyBtaXNzaW5nLiIpIH0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgbV9pc0luaXRpYXRvciA9IGZhbHNlOwogCiAgICAgYXV0
byYgc2VuZGVycyA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5nZXRTZW5k
ZXJzKCk7CiAgICAgaWYgKHNlbmRlcnMuc2l6ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBv
bmx5IHN1cHBvcnQgb25lIHN0cmVhbSBmb3IgdGhlIG1vbWVudC4KLSAgICAgICAgYXV0byBzdHJl
YW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUxvY2FsTWVkaWFTdHJlYW0o
c3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpKSk7CisgICAgICAg
IGF1dG8gc3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxN
ZWRpYVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkp
KTsKICAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKICAgICAg
ICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7CiAgICAgICAgICAgICBpZiAodHJh
Y2spIHsKQEAgLTE5OSwxMyArMjA5LDEzIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6
ZG9DcmVhdGVBbnMKICAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2UgPSB0cmFjay0+c291cmNl
KCk7CiAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0
ZUF1ZGlvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkp
OworICAgICAgICAgICAgICAgICAgICBhdXRvIHJ0Y1RyYWNrID0gTGliV2ViUlRDUHJvdmlkZXI6
OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB0
cmFja1NvdXJjZS5wdHIoKSk7CiAgICAgICAgICAgICAgICAgICAgIHRyYWNrU291cmNlLT5zZXRU
cmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPihydGNU
cmFjaykpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRB
dWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0
cmVhbS0+QWRkVHJhY2soV1RGTW92ZShydGNUcmFjaykpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICBhdXRv
IHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZVZpZGVvVHJh
Y2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOworICAgICAg
ICAgICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9y
eSgpLT5DcmVhdGVWaWRlb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRhKCksIHZpZGVvU291
cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQu
YWRkVmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRlb1NvdXJjZSkpOwogICAgICAgICAgICAgICAgICAg
ICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwogICAgICAgICAgICAgICAg
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAkocmV2aXNpb24g
MjEzMTc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAog
I2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAKICNpZiBVU0UoTElCV0VCUlRDKQotCiAj
aW5jbHVkZSAiTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3BlZXJjb25uZWN0aW9uZmFj
dG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0b3J5cHJveHku
aD4KICNpbmNsdWRlIDx3ZWJydGMvYmFzZS9waHlzaWNhbHNvY2tldHNlcnZlci5oPgpAQCAtMzcs
OSArMzcsMTEgQEAKICNpbmNsdWRlIDx3ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMv
dmlkZW90b29sYm94dmlkZW9jb2RlY2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKyNpZiBVU0UoTElCV0VCUlRDKQogc3RydWN0IFBlZXJDb25uZWN0aW9uRmFj
dG9yeUFuZFRocmVhZHMgOiBwdWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxlciB7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPExpYldlYlJUQ0F1ZGlvTW9kdWxlPiBhdWRpb0RldmljZU1vZHVsZTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IG5ldHdvcmtUaHJlYWQ7CkBAIC0xNjYsNyArMTY4
LDIyIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW8KIAogICAgIHJl
dHVybiBjcmVhdGVBY3R1YWxQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwgV1RGTW92ZShwb3J0QWxs
b2NhdG9yKSk7CiB9CisjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKIAotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorYm9vbCBMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKCkKK3sKKyNp
ZiBVU0UoTElCV0VCUlRDKQorICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZSA9IFtdIHsKKyAgICAg
ICAgdm9pZCogbGlid2VicnRjTGlicmFyeSA9IGRsb3BlbigibGlid2VicnRjLmR5bGliIiwgUlRM
RF9MQVpZKTsKKyAgICAgICAgaWYgKCFsaWJ3ZWJydGNMaWJyYXJ5KQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBkbGNsb3NlKGxpYndlYnJ0Y0xpYnJhcnkpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9KCk7CisgICAgcmV0dXJuIGF2YWlsYWJsZTsKKyNlbHNlCisgICAg
cmV0dXJuIHRydWU7CisjZW5kaWYKK30KIAotI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aAkocmV2aXNpb24gMjEzMTUwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEz
ICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAg
ICAgdmlydHVhbCB+TGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAKKyAgICBzdGF0aWMg
Ym9vbCB3ZWJSVENBdmFpbGFibGUoKTsKICNpZiBVU0UoTElCV0VCUlRDKQogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNl
cnZlciYpOwogCiAgICAgLy8gRklYTUU6IE1ha2UgdGhlc2UgbWV0aG9kcyBub3Qgc3RhdGljLgog
ICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbGxPbldlYlJUQ05ldHdvcmtUaHJlYWQo
RnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBjYWxs
T25XZWJSVENTaWduYWxpbmdUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKLSAgICBzdGF0aWMg
V0VCQ09SRV9FWFBPUlQgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UmIGZh
Y3RvcnkoKTsKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKICAgICAvLyBVc2VkIGZvciBtb2NrIHRlc3Rp
bmcKICAgICBzdGF0aWMgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkZhY3RvcnkocnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlPiYmKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uLmNwcAkocmV2aXNpb24gMjEzMTUwKQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3
ICs1MSw3IEBAIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeShMaWIKIHsKICAg
ICBpZiAocHJvdmlkZXIgJiYgIXJlYWxQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKSkgewogICAgICAg
ICBhdXRvJiBmYWN0b3J5ID0gZ2V0UmVhbFBlZXJDb25uZWN0aW9uRmFjdG9yeSgpOwotICAgICAg
ICBmYWN0b3J5ID0gJnByb3ZpZGVyLT5mYWN0b3J5KCk7CisgICAgICAgIGZhY3RvcnkgPSBwcm92
aWRlci0+ZmFjdG9yeSgpOwogICAgIH0KIAogICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpzZXRQZWVy
Q29ubmVjdGlvbkZhY3RvcnkoTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeTo6Y3Jl
YXRlKFN0cmluZyh0ZXN0Q2FzZSkpKTsKQEAgLTE2Miw2ICsxNjIsOSBAQCBNb2NrTGliV2ViUlRD
UGVlckNvbm5lY3Rpb25GYWN0b3J5OjpNb2NrCiAKIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0
b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50
ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8
Y3JpY2tldDo6UG9ydEFsbG9jYXRvcj4gcG9ydEFsbG9jYXRvciwgc3RkOjp1bmlxdWVfcHRyPHJ0
Yzo6UlRDQ2VydGlmaWNhdGVHZW5lcmF0b3JJbnRlcmZhY2U+IGdlbmVyYXRvciwgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKIHsKKyAgICBpZiAoIXJlYWxQZWVyQ29u
bmVjdGlvbkZhY3RvcnkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBpZiAobV9u
dW1iZXJPZlJlYWxQZWVyQ29ubmVjdGlvbnMpIHsKICAgICAgICAgYXV0byBjb25uZWN0aW9uID0g
cmVhbFBlZXJDb25uZWN0aW9uRmFjdG9yeSgpLT5DcmVhdGVQZWVyQ29ubmVjdGlvbihjb25maWd1
cmF0aW9uLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpLCBXVEZNb3ZlKGdlbmVyYXRvciksIG9ic2Vy
dmVyKTsKICAgICAgICAgLS1tX251bWJlck9mUmVhbFBlZXJDb25uZWN0aW9uczsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIxMzE3MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAyLTI4ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2ViUlRDUHJvdmlkZXIg
c2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSk6IERlbGV0ZWQuCisKIDIwMTctMDItMjggIFlvbmdq
dW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgZGVsZWdh
dGUgbWV0aG9kIHRvIGhhbmRsZSBpbWFnZXMgd2l0aCBhbHRlcm5hdGUgZGF0YS4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAko
cmV2aXNpb24gMjEzMTUwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEyLDExICszMTIsNiBAQAogLy8gICBE
RUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFX0VOQUJMRUQgKGZvciBmZWF0dXJlcyB0aGF0IGFy
ZSByZWFkeSBmb3IKIC8vICAgd2lkZXIgdGVzdGluZykuCiAKLS8vIERpc2FibGUgd2VicnRjIGZl
YXR1cmUgaWYgbGlid2VicnRjIGxpYnJhcnkgaXMgbm90IHByZXNlbnQKLW5hbWVzcGFjZSBXZWJL
aXQgewotYm9vbCBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSgpOwotfQotCiAjZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9FWFBFUklNRU5UQUxfRkVBVFVSRV9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAg
bWFjcm8oU3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkLCBzcHJpbmdUaW1pbmdGdW5jdGlvbkVu
YWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQs
ICJDU1MgU3ByaW5nIEFuaW1hdGlvbnMiLCAiQ1NTIFNwcmluZyBBbmltYXRpb24gcHJvdG90eXBl
IikgXAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBhZHNFbmFibGVkLCBCb29sLCBi
b29sLCBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVELCAiR2FtZXBhZHMiLCAi
V2ViIEdhbWVwYWQgQVBJIHN1cHBvcnQiKSBcCkBAIC0zMjgsNyArMzIzLDcgQEAgYm9vbCBjaGVj
a1dlYlJUQ0F2YWlsYWJpbGl0eSgpOwogICAgIG1hY3JvKFVzZXJUaW1pbmdFbmFibGVkLCB1c2Vy
VGltaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNf
RU5BQkxFRCwgIlVzZXIgVGltaW5nIiwgIkVuYWJsZSBVc2VyVGltaW5nIEFQSSIpIFwKICAgICBt
YWNybyhXZWJBbmltYXRpb25zRW5hYmxlZCwgd2ViQW5pbWF0aW9uc0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlLCAiV2ViIEFuaW1hdGlvbnMiLCAiV2ViIEFuaW1hdGlvbnMgcHJvdG90eXBlIikg
XAogICAgIG1hY3JvKFdlYkdMMkVuYWJsZWQsIHdlYkdMMkVuYWJsZWQsIEJvb2wsIGJvb2wsIERF
RkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQsICJXZWJHTCAyLjAiLCAiV2ViR0wg
MiBwcm90b3R5cGUiKSBcCi0gICAgbWFjcm8oUGVlckNvbm5lY3Rpb25FbmFibGVkLCBwZWVyQ29u
bmVjdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGNoZWNrV2ViUlRDQXZhaWxhYmlsaXR5KCksICJX
ZWJSVEMiLCAiRW5hYmxlIFdlYlJUQyBBUEkiKSBcCisgICAgbWFjcm8oUGVlckNvbm5lY3Rpb25F
bmFibGVkLCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIFdlYkNvcmU6OkxpYldl
YlJUQ1Byb3ZpZGVyOjp3ZWJSVENBdmFpbGFibGUoKSwgIldlYlJUQyIsICJFbmFibGUgV2ViUlRD
IEFQSSIpIFwKICAgICBcCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHJldmlzaW9uIDIxMzE1MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZlbC5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RW5jb2Rp
bmdSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAyMTMx
NTApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKLSNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlk
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nUHJpbWl0aXZlcy5oPgogCkBAIC0xOTYsMjIgKzE5Niw2IEBAIEZPUl9FQUNIX1dFQktJ
VF9ERUJVR19QUkVGRVJFTkNFKERFRklORV8KIAogI3VuZGVmIERFRklORV9QUkVGRVJFTkNFX0dF
VFRFUl9BTkRfU0VUVEVSUwogCi1ib29sIGNoZWNrV2ViUlRDQXZhaWxhYmlsaXR5KCkKLXsKLSNp
ZiBVU0UoTElCV0VCUlRDKQotICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZSA9IFsmXSB7Ci0gICAg
ICAgIHZvaWQqIGxpYndlYnJ0Y0xpYnJhcnkgPSBkbG9wZW4oImxpYndlYnJ0Yy5keWxpYiIsIFJU
TERfTEFaWSk7Ci0gICAgICAgIGlmICghbGlid2VicnRjTGlicmFyeSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgZGxjbG9zZShsaWJ3ZWJydGNMaWJyYXJ5KTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfSgpOwotICAgIHJldHVybiBhdmFpbGFibGU7Ci0jZWxzZQotICAg
IHJldHVybiB0cnVlOwotI2VuZGlmCi19Ci0KICNkZWZpbmUgREVGSU5FX0VYUEVSSU1FTlRBTF9Q
UkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1l
LCBUeXBlLCBEZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1hblJlYWRhYmxlRGVz
Y3JpcHRpb24pIFwKICAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tleVVwcGVyKGNvbnN0
IFR5cGUmIHZhbHVlKSBcCiAgICAgeyBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302995</attachid>
            <date>2017-02-28 15:11:10 -0800</date>
            <delta_ts>2017-02-28 15:19:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168986-20170228150813.patch</filename>
            <type>text/plain</type>
            <size>14971</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2ViUlRD
UHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA3MzU0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBTb21lIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSB3ZWJydGMgdGVz
dHMgb3ZlcndyaXRlIHRoZSBhdmFpbGFiaWxpdHkgb2YgV2ViUlRDIGluIG9yZGVyIHRvIHRlc3Qg
aXQKKyAgICAgICAgd2l0aCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uICBJZiB0aGUgZHls
aWIgY2FuIG5vdCBiZSBmb3VuZCwgd2UgY2FuJ3QgdXNlIGl0LCBzbyB3ZSB3YW50IHRvCisgICAg
ICAgIGZhaWwgdGhlc2UgdGVzdHMgcmF0aGVyIHRoYW4gY3Jhc2hpbmcgY2FsbGluZyBydGM6Okxv
Z01lc3NhZ2U6OkxvZ1RvRGVidWcuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6OkNyZWF0ZVBlZXJDb25uZWN0aW9uKToK
KwogMjAxNy0wMi0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBEYXRhIGludGVyYWN0aW9uIHNob3VsZCBzdXBwb3J0IGF0dGFjaG1lbnQgZWxlbWVu
dHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ01lZGlhRW5kcG9pbnQuY3BwCShy
ZXZpc2lvbiAyMTMxNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1
LDExICsxNTUsMTYgQEAgc3RhdGljIGlubGluZSBzdGQ6OnN0cmluZyBzdHJlYW1JZChSVENQZQog
CiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlT2ZmZXIoKQogeworICAgIGlm
ICghTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKSkgeworICAgICAgICBtX3BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcmVhdGVPZmZlckZhaWxlZChFeGNlcHRpb24geyBOT1RfU1VQUE9SVEVEX0VS
UiwgQVNDSUlMaXRlcmFsKCJsaWJ3ZWJydGMgYmFja2VuZCBpcyBtaXNzaW5nLiIpIH0pOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgICAgICAKICAgICBtX2lzSW5pdGlhdG9yID0gdHJ1ZTsK
ICAgICBhdXRvJiBzZW5kZXJzID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigp
LmdldFNlbmRlcnMoKTsKICAgICBpZiAoc2VuZGVycy5zaXplKCkpIHsKICAgICAgICAgLy8gRklY
TUU6IFdlIG9ubHkgc3VwcG9ydCBvbmUgc3RyZWFtIGZvciB0aGUgbW9tZW50LgotICAgICAgICBh
dXRvIHN0cmVhbSA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkuQ3JlYXRlTG9jYWxNZWRp
YVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkpKTsK
KyAgICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVh
dGVMb2NhbE1lZGlhU3RyZWFtKHN0cmVhbUlkKG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5l
Y3Rpb24oKSkpOwogICAgICAgICBmb3IgKFJUQ1J0cFNlbmRlciYgc2VuZGVyIDogc2VuZGVycykg
ewogICAgICAgICAgICAgYXV0byogdHJhY2sgPSBzZW5kZXIudHJhY2soKTsKICAgICAgICAgICAg
IGlmICh0cmFjaykgewpAQCAtMTY3LDEzICsxNzIsMTMgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVu
ZHBvaW50Ojpkb0NyZWF0ZU9mZgogICAgICAgICAgICAgICAgIGF1dG8mIHNvdXJjZSA9IHRyYWNr
LT5zb3VyY2UoKTsKICAgICAgICAgICAgICAgICBpZiAoc291cmNlLnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpbykgewogICAgICAgICAgICAgICAgICAgICBhdXRvIHRyYWNrU291
cmNlID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoc291cmNlKTsKLSAgICAg
ICAgICAgICAgICAgICAgYXV0byBydGNUcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5
KCkuQ3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJj
ZS5wdHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQ
cm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVBdWRpb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5k
YXRhKCksIHRyYWNrU291cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgdHJhY2tTb3Vy
Y2UtPnNldFRyYWNrKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1ZGlvVHJhY2tJbnRlcmZh
Y2U+KHJ0Y1RyYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgIG1fcGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmFkZEF1ZGlvU291cmNlKFdURk1vdmUodHJhY2tTb3VyY2UpKTsKICAgICAgICAgICAgICAg
ICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHJ0Y1RyYWNrKSk7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IFJlYWx0
aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkuQ3JlYXRl
VmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB2aWRlb1NvdXJjZS5wdHIoKSk7
CisgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVy
OjpmYWN0b3J5KCktPkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwg
dmlkZW9Tb3VyY2UucHRyKCkpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9u
QmFja2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNlKSk7CiAgICAgICAgICAg
ICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZSh2aWRlb1RyYWNrKSk7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtMTg2LDEyICsxOTEsMTcgQEAgdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBv
aW50Ojpkb0NyZWF0ZU9mZgogCiB2b2lkIExpYldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRl
QW5zd2VyKCkKIHsKKyAgICBpZiAoIUxpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkpIHsKKyAg
ICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3JlYXRlQW5zd2VyRmFpbGVkKEV4Y2VwdGlv
biB7IE5PVF9TVVBQT1JURURfRVJSLCBBU0NJSUxpdGVyYWwoImxpYndlYnJ0YyBiYWNrZW5kIGlz
IG1pc3NpbmcuIikgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2lzSW5pdGlh
dG9yID0gZmFsc2U7CiAKICAgICBhdXRvJiBzZW5kZXJzID0gbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY29ubmVjdGlvbigpLmdldFNlbmRlcnMoKTsKICAgICBpZiAoc2VuZGVycy5zaXplKCkpIHsK
ICAgICAgICAgLy8gRklYTUU6IFdlIG9ubHkgc3VwcG9ydCBvbmUgc3RyZWFtIGZvciB0aGUgbW9t
ZW50LgotICAgICAgICBhdXRvIHN0cmVhbSA9IExpYldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCku
Q3JlYXRlTG9jYWxNZWRpYVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5j
b25uZWN0aW9uKCkpKTsKKyAgICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6
ZmFjdG9yeSgpLT5DcmVhdGVMb2NhbE1lZGlhU3RyZWFtKHN0cmVhbUlkKG1fcGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNvbm5lY3Rpb24oKSkpOwogICAgICAgICBmb3IgKFJUQ1J0cFNlbmRlciYgc2Vu
ZGVyIDogc2VuZGVycykgewogICAgICAgICAgICAgYXV0byogdHJhY2sgPSBzZW5kZXIudHJhY2so
KTsKICAgICAgICAgICAgIGlmICh0cmFjaykgewpAQCAtMTk5LDEzICsyMDksMTMgQEAgdm9pZCBM
aWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZUFucwogICAgICAgICAgICAgICAgIGF1dG8m
IHNvdXJjZSA9IHRyYWNrLT5zb3VyY2UoKTsKICAgICAgICAgICAgICAgICBpZiAoc291cmNlLnR5
cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykgewogICAgICAgICAgICAgICAgICAg
ICBhdXRvIHRyYWNrU291cmNlID0gUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUo
c291cmNlKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBydGNUcmFjayA9IExpYldlYlJUQ1By
b3ZpZGVyOjpmYWN0b3J5KCkuQ3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0
YSgpLCB0cmFja1NvdXJjZS5wdHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gcnRjVHJh
Y2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVBdWRpb1RyYWNrKHRyYWNr
LT5pZCgpLnV0ZjgoKS5kYXRhKCksIHRyYWNrU291cmNlLnB0cigpKTsKICAgICAgICAgICAgICAg
ICAgICAgdHJhY2tTb3VyY2UtPnNldFRyYWNrKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OkF1
ZGlvVHJhY2tJbnRlcmZhY2U+KHJ0Y1RyYWNrKSk7CiAgICAgICAgICAgICAgICAgICAgIG1fcGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmFkZEF1ZGlvU291cmNlKFdURk1vdmUodHJhY2tTb3VyY2UpKTsK
ICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5BZGRUcmFjayhXVEZNb3ZlKHJ0Y1RyYWNrKSk7
CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB2aWRl
b1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExpYldlYlJUQ1Byb3ZpZGVyOjpm
YWN0b3J5KCkuQ3JlYXRlVmlkZW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB2aWRl
b1NvdXJjZS5wdHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9UcmFjayA9IExp
YldlYlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCktPkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCku
dXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOwogICAgICAgICAgICAgICAgICAgICBt
X3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNl
KSk7CiAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZSh2aWRlb1Ry
YWNrKSk7CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UHJvdmlkZXIuY3BwCShyZXZpc2lvbiAyMTMxNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNyw5ICsyNyw5IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKIAog
I2lmIFVTRShMSUJXRUJSVEMpCi0KICNpbmNsdWRlICJMaWJXZWJSVENBdWRpb01vZHVsZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDxkbGZjbi5oPgogI2luY2x1ZGUgPHdlYnJ0
Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVy
Y29ubmVjdGlvbmZhY3Rvcnlwcm94eS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9iYXNlL3BoeXNpY2Fs
c29ja2V0c2VydmVyLmg+CkBAIC0zNyw5ICszNywxMSBAQAogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
b2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy92aWRlb3Rvb2xib3h2aWRlb2NvZGVjZmFjdG9yeS5oPgog
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFVTRShMSUJXRUJSVEMpCiBz
dHJ1Y3QgUGVlckNvbm5lY3Rpb25GYWN0b3J5QW5kVGhyZWFkcyA6IHB1YmxpYyBydGM6Ok1lc3Nh
Z2VIYW5kbGVyIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGliV2ViUlRDQXVkaW9Nb2R1bGU+IGF1
ZGlvRGV2aWNlTW9kdWxlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlRocmVhZD4gbmV0d29y
a1RocmVhZDsKQEAgLTExMSwxMSArMTEzLDEzIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVQZWVy
Q29ubmVjdGlvbkZhY3QKICAgICBBU1NFUlQoZmFjdG9yeUFuZFRocmVhZHMuZmFjdG9yeSk7CiB9
CiAKLXdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlJiBMaWJXZWJSVENQcm92
aWRlcjo6ZmFjdG9yeSgpCit3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSog
TGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKQogeworICAgIGlmICghd2ViUlRDQXZhaWxhYmxl
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGlmICghc3RhdGljRmFjdG9yeUFuZFRo
cmVhZHMoKS5mYWN0b3J5KQogICAgICAgICBpbml0aWFsaXplUGVlckNvbm5lY3Rpb25GYWN0b3J5
QW5kVGhyZWFkcygpOwotICAgIHJldHVybiAqc3RhdGljRmFjdG9yeUFuZFRocmVhZHMoKS5mYWN0
b3J5OworICAgIHJldHVybiBzdGF0aWNGYWN0b3J5QW5kVGhyZWFkcygpLmZhY3Rvcnk7CiB9CiAK
IHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OnNldFBlZXJDb25uZWN0aW9uRmFjdG9yeShydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+JiYgZmFj
dG9yeSkKQEAgLTE2Niw3ICsxNzAsMjIgQEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVl
ckNvbm5lY3RpbwogCiAgICAgcmV0dXJuIGNyZWF0ZUFjdHVhbFBlZXJDb25uZWN0aW9uKG9ic2Vy
dmVyLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpKTsKIH0KKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRD
KQogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCitib29sIExpYldlYlJUQ1Byb3ZpZGVyOjp3ZWJS
VENBdmFpbGFibGUoKQoreworI2lmIFVTRShMSUJXRUJSVEMpCisgICAgc3RhdGljIGJvb2wgYXZh
aWxhYmxlID0gW10geworICAgICAgICB2b2lkKiBsaWJ3ZWJydGNMaWJyYXJ5ID0gZGxvcGVuKCJs
aWJ3ZWJydGMuZHlsaWIiLCBSVExEX0xBWlkpOworICAgICAgICBpZiAoIWxpYndlYnJ0Y0xpYnJh
cnkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGRsY2xvc2UobGlid2VicnRj
TGlicmFyeSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0oKTsKKyAgICByZXR1cm4gYXZh
aWxhYmxlOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQogCi0jZW5kaWYgLy8g
VVNFKExJQldFQlJUQykKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5oCShyZXZpc2lvbiAyMTMxNzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNTAsMTMgKzUwLDE0IEBAIHB1YmxpYzoKICAgICBMaWJXZWJSVENQcm92
aWRlcigpID0gZGVmYXVsdDsKICAgICB2aXJ0dWFsIH5MaWJXZWJSVENQcm92aWRlcigpID0gZGVm
YXVsdDsKIAorICAgIHN0YXRpYyBib29sIHdlYlJUQ0F2YWlsYWJsZSgpOwogI2lmIFVTRShMSUJX
RUJSVEMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRj
OjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJik7CiAKICAgICAvLyBGSVhNRTogTWFrZSB0aGVzZSBt
ZXRob2RzIG5vdCBzdGF0aWMuCiAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FsbE9u
V2ViUlRDTmV0d29ya1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwogICAgIHN0YXRpYyBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNhbGxPbldlYlJUQ1NpZ25hbGluZ1RocmVhZChGdW5jdGlvbjx2b2lk
KCk+JiYpOwotICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB3ZWJydGM6OlBlZXJDb25uZWN0aW9u
RmFjdG9yeUludGVyZmFjZSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB3
ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSogZmFjdG9yeSgpOwogICAgIC8v
IFVzZWQgZm9yIG1vY2sgdGVzdGluZwogICAgIHN0YXRpYyB2b2lkIHNldFBlZXJDb25uZWN0aW9u
RmFjdG9yeShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJ
bnRlcmZhY2U+JiYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAyMTMxNzcpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCB1c2VNb2NrUlRDUGVlckNvbm5lY3Rp
b25GYWN0b3J5KExpYgogewogICAgIGlmIChwcm92aWRlciAmJiAhcmVhbFBlZXJDb25uZWN0aW9u
RmFjdG9yeSgpKSB7CiAgICAgICAgIGF1dG8mIGZhY3RvcnkgPSBnZXRSZWFsUGVlckNvbm5lY3Rp
b25GYWN0b3J5KCk7Ci0gICAgICAgIGZhY3RvcnkgPSAmcHJvdmlkZXItPmZhY3RvcnkoKTsKKyAg
ICAgICAgZmFjdG9yeSA9IHByb3ZpZGVyLT5mYWN0b3J5KCk7CiAgICAgfQogCiAgICAgTGliV2Vi
UlRDUHJvdmlkZXI6OnNldFBlZXJDb25uZWN0aW9uRmFjdG9yeShNb2NrTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25GYWN0b3J5OjpjcmVhdGUoU3RyaW5nKHRlc3RDYXNlKSkpOwpAQCAtMTYyLDYgKzE2
Miw5IEBAIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6Ok1vY2sKIAogcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IE1vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6OkNyZWF0ZVBlZXJDb25uZWN0aW9uKGNvbnN0IHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRp
b24sIHN0ZDo6dW5pcXVlX3B0cjxjcmlja2V0OjpQb3J0QWxsb2NhdG9yPiBwb3J0QWxsb2NhdG9y
LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvckludGVyZmFjZT4g
Z2VuZXJhdG9yLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIqIG9ic2VydmVyKQogewor
ICAgIGlmICghcmVhbFBlZXJDb25uZWN0aW9uRmFjdG9yeSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKwogICAgIGlmIChtX251bWJlck9mUmVhbFBlZXJDb25uZWN0aW9ucykgewogICAgICAg
ICBhdXRvIGNvbm5lY3Rpb24gPSByZWFsUGVlckNvbm5lY3Rpb25GYWN0b3J5KCktPkNyZWF0ZVBl
ZXJDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb24sIFdURk1vdmUocG9ydEFsbG9jYXRvciksIFdURk1v
dmUoZ2VuZXJhdG9yKSwgb2JzZXJ2ZXIpOwogICAgICAgICAtLW1fbnVtYmVyT2ZSZWFsUGVlckNv
bm5lY3Rpb25zOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjEzMTc3KQorKysgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDIt
MjggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAg
ICBMaWJXZWJSVENQcm92aWRlciBzaG91bGQgY2hlY2sgZXhpc3RlbmNlIG9mIGxpYndlYnJ0Yy5k
eWxpYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4
OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzU3RvcmUuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNoZWNrV2ViUlRDQXZhaWxhYmlsaXR5KTogRGVsZXRlZC4K
KwogMjAxNy0wMi0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBEYXRhIGludGVyYWN0aW9uIHNob3VsZCBzdXBwb3J0IGF0dGFjaG1lbnQgZWxlbWVu
dHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaAkocmV2aXNpb24gMjEzMTc3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEyLDExICszMTIs
NiBAQAogLy8gICBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFX0VOQUJMRUQgKGZvciBmZWF0
dXJlcyB0aGF0IGFyZSByZWFkeSBmb3IKIC8vICAgd2lkZXIgdGVzdGluZykuCiAKLS8vIERpc2Fi
bGUgd2VicnRjIGZlYXR1cmUgaWYgbGlid2VicnRjIGxpYnJhcnkgaXMgbm90IHByZXNlbnQKLW5h
bWVzcGFjZSBXZWJLaXQgewotYm9vbCBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSgpOwotfQotCiAj
ZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9FWFBFUklNRU5UQUxfRkVBVFVSRV9QUkVGRVJFTkNFKG1h
Y3JvKSBcCiAgICAgbWFjcm8oU3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVkLCBzcHJpbmdUaW1p
bmdGdW5jdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTX0VOQUJMRUQsICJDU1MgU3ByaW5nIEFuaW1hdGlvbnMiLCAiQ1NTIFNwcmluZyBBbmltYXRp
b24gcHJvdG90eXBlIikgXAogICAgIG1hY3JvKEdhbWVwYWRzRW5hYmxlZCwgZ2FtZXBhZHNFbmFi
bGVkLCBCb29sLCBib29sLCBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVELCAi
R2FtZXBhZHMiLCAiV2ViIEdhbWVwYWQgQVBJIHN1cHBvcnQiKSBcCkBAIC0zMjgsNyArMzIzLDcg
QEAgYm9vbCBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSgpOwogICAgIG1hY3JvKFVzZXJUaW1pbmdF
bmFibGVkLCB1c2VyVGltaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9FWFBFUklNRU5U
QUxfRkVBVFVSRVNfRU5BQkxFRCwgIlVzZXIgVGltaW5nIiwgIkVuYWJsZSBVc2VyVGltaW5nIEFQ
SSIpIFwKICAgICBtYWNybyhXZWJBbmltYXRpb25zRW5hYmxlZCwgd2ViQW5pbWF0aW9uc0VuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiV2ViIEFuaW1hdGlvbnMiLCAiV2ViIEFuaW1hdGlvbnMg
cHJvdG90eXBlIikgXAogICAgIG1hY3JvKFdlYkdMMkVuYWJsZWQsIHdlYkdMMkVuYWJsZWQsIEJv
b2wsIGJvb2wsIERFRkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQsICJXZWJHTCAy
LjAiLCAiV2ViR0wgMiBwcm90b3R5cGUiKSBcCi0gICAgbWFjcm8oUGVlckNvbm5lY3Rpb25FbmFi
bGVkLCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGNoZWNrV2ViUlRDQXZhaWxh
YmlsaXR5KCksICJXZWJSVEMiLCAiRW5hYmxlIFdlYlJUQyBBUEkiKSBcCisgICAgbWFjcm8oUGVl
ckNvbm5lY3Rpb25FbmFibGVkLCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjp3ZWJSVENBdmFpbGFibGUoKSwgIldlYlJUQyIsICJF
bmFibGUgV2ViUlRDIEFQSSIpIFwKICAgICBcCiAKICNpZiBQTEFURk9STShDT0NPQSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHJldmlz
aW9uIDIxMzE3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZvbnRTbW9v
dGhpbmdMZXZlbC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJv
dmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0RW5jb2RpbmdSZWdpc3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwCShy
ZXZpc2lvbiAyMTMxNzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Bvb2wuaCIKLSNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGli
V2ViUlRDUHJvdmlkZXIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogCkBAIC0xOTYsMjIgKzE5Niw2IEBAIEZP
Ul9FQUNIX1dFQktJVF9ERUJVR19QUkVGRVJFTkNFKERFRklORV8KIAogI3VuZGVmIERFRklORV9Q
UkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUwogCi1ib29sIGNoZWNrV2ViUlRDQXZhaWxhYmls
aXR5KCkKLXsKLSNpZiBVU0UoTElCV0VCUlRDKQotICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZSA9
IFsmXSB7Ci0gICAgICAgIHZvaWQqIGxpYndlYnJ0Y0xpYnJhcnkgPSBkbG9wZW4oImxpYndlYnJ0
Yy5keWxpYiIsIFJUTERfTEFaWSk7Ci0gICAgICAgIGlmICghbGlid2VicnRjTGlicmFyeSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZGxjbG9zZShsaWJ3ZWJydGNMaWJyYXJ5
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSgpOwotICAgIHJldHVybiBhdmFpbGFibGU7
Ci0jZWxzZQotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi19Ci0KICNkZWZpbmUgREVGSU5FX0VY
UEVSSU1FTlRBTF9QUkVGRVJFTkNFX0dFVFRFUl9BTkRfU0VUVEVSUyhLZXlVcHBlciwgS2V5TG93
ZXIsIFR5cGVOYW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUsIEh1bWFuUmVhZGFibGVOYW1lLCBIdW1h
blJlYWRhYmxlRGVzY3JpcHRpb24pIFwKICAgICB2b2lkIFdlYlByZWZlcmVuY2VzOjpzZXQjI0tl
eVVwcGVyKGNvbnN0IFR5cGUmIHZhbHVlKSBcCiAgICAgeyBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302996</attachid>
            <date>2017-02-28 15:19:57 -0800</date>
            <delta_ts>2017-02-28 15:35:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168986-20170228151701.patch</filename>
            <type>text/plain</type>
            <size>15533</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAyLTI4ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2ViUlRD
UHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzA3MzU0MTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBTb21lIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSB3ZWJydGMgdGVz
dHMgb3ZlcndyaXRlIHRoZSBhdmFpbGFiaWxpdHkgb2YgV2ViUlRDIGluIG9yZGVyIHRvIHRlc3Qg
aXQKKyAgICAgICAgd2l0aCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uICBJZiB0aGUgZHls
aWIgY2FuIG5vdCBiZSBmb3VuZCwgd2UgY2FuJ3QgdXNlIGl0LCBzbyB3ZSB3YW50IHRvCisgICAg
ICAgIGZhaWwgdGhlc2UgdGVzdHMgcmF0aGVyIHRoYW4gY3Jhc2hpbmcgY2FsbGluZyBydGM6Okxv
Z01lc3NhZ2U6OkxvZ1RvRGVidWcuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ01lZGlhRW5kcG9pbnQ6OmRvQ3JlYXRlT2ZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp1c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6OkNyZWF0ZVBlZXJDb25uZWN0aW9uKToK
KwogMjAxNy0wMi0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBEYXRhIGludGVyYWN0aW9uIHNob3VsZCBzdXBwb3J0IGF0dGFjaG1lbnQgZWxlbWVu
dHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMTMxNzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjMwMCw2ICsyMzAwLDgg
QEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAKICAgICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TRFBQcm9j
ZXNzb3JTY3JpcHRSZXNvdXJjZS5jcHAKIAorICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKwogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGll
bnRNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svTW9ja01lZGlhRW5kcG9pbnQuY3BwCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENN
ZWRpYUVuZHBvaW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENNZWRpYUVuZHBvaW50LmNwcAkocmV2aXNpb24g
MjEzMTc3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDTWVkaWFFbmRwb2ludC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSwxMSArMTU1
LDE2IEBAIHN0YXRpYyBpbmxpbmUgc3RkOjpzdHJpbmcgc3RyZWFtSWQoUlRDUGUKIAogdm9pZCBM
aWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZU9mZmVyKCkKIHsKKyAgICBpZiAoIUxpYldl
YlJUQ1Byb3ZpZGVyOjpmYWN0b3J5KCkpIHsKKyAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3JlYXRlT2ZmZXJGYWlsZWQoRXhjZXB0aW9uIHsgTk9UX1NVUFBPUlRFRF9FUlIsIEFTQ0lJ
TGl0ZXJhbCgibGlid2VicnRjIGJhY2tlbmQgaXMgbWlzc2luZy4iKSB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAgICAgCiAgICAgbV9pc0luaXRpYXRvciA9IHRydWU7CiAgICAgYXV0
byYgc2VuZGVycyA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5lY3Rpb24oKS5nZXRTZW5k
ZXJzKCk7CiAgICAgaWYgKHNlbmRlcnMuc2l6ZSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBv
bmx5IHN1cHBvcnQgb25lIHN0cmVhbSBmb3IgdGhlIG1vbWVudC4KLSAgICAgICAgYXV0byBzdHJl
YW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUxvY2FsTWVkaWFTdHJlYW0o
c3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlvbigpKSk7CisgICAgICAg
IGF1dG8gc3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlTG9jYWxN
ZWRpYVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5jb25uZWN0aW9uKCkp
KTsKICAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNlbmRlcnMpIHsKICAgICAg
ICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7CiAgICAgICAgICAgICBpZiAodHJh
Y2spIHsKQEAgLTE2NywxMyArMTcyLDEzIEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6
ZG9DcmVhdGVPZmYKICAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2UgPSB0cmFjay0+c291cmNl
KCk7CiAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB0cmFja1NvdXJjZSA9IFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0
ZUF1ZGlvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJhY2tTb3VyY2UucHRyKCkp
OworICAgICAgICAgICAgICAgICAgICBhdXRvIHJ0Y1RyYWNrID0gTGliV2ViUlRDUHJvdmlkZXI6
OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51dGY4KCkuZGF0YSgpLCB0
cmFja1NvdXJjZS5wdHIoKSk7CiAgICAgICAgICAgICAgICAgICAgIHRyYWNrU291cmNlLT5zZXRU
cmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNrSW50ZXJmYWNlPihydGNU
cmFjaykpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0aW9uQmFja2VuZC5hZGRB
dWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0
cmVhbS0+QWRkVHJhY2soV1RGTW92ZShydGNUcmFjaykpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2UpOwotICAgICAgICAgICAgICAgICAgICBhdXRv
IHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZVZpZGVvVHJh
Y2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2UucHRyKCkpOworICAgICAg
ICAgICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9y
eSgpLT5DcmVhdGVWaWRlb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5kYXRhKCksIHZpZGVvU291
cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgbV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQu
YWRkVmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRlb1NvdXJjZSkpOwogICAgICAgICAgICAgICAgICAg
ICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwogICAgICAgICAgICAgICAg
IH0KQEAgLTE4NiwxMiArMTkxLDE3IEBAIHZvaWQgTGliV2ViUlRDTWVkaWFFbmRwb2ludDo6ZG9D
cmVhdGVPZmYKIAogdm9pZCBMaWJXZWJSVENNZWRpYUVuZHBvaW50Ojpkb0NyZWF0ZUFuc3dlcigp
CiB7CisgICAgaWYgKCFMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpKSB7CisgICAgICAgIG1f
cGVlckNvbm5lY3Rpb25CYWNrZW5kLmNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBOT1Rf
U1VQUE9SVEVEX0VSUiwgQVNDSUlMaXRlcmFsKCJsaWJ3ZWJydGMgYmFja2VuZCBpcyBtaXNzaW5n
LiIpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9pc0luaXRpYXRvciA9IGZh
bHNlOwogCiAgICAgYXV0byYgc2VuZGVycyA9IG1fcGVlckNvbm5lY3Rpb25CYWNrZW5kLmNvbm5l
Y3Rpb24oKS5nZXRTZW5kZXJzKCk7CiAgICAgaWYgKHNlbmRlcnMuc2l6ZSgpKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBXZSBvbmx5IHN1cHBvcnQgb25lIHN0cmVhbSBmb3IgdGhlIG1vbWVudC4KLSAg
ICAgICAgYXV0byBzdHJlYW0gPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgpLkNyZWF0ZUxv
Y2FsTWVkaWFTdHJlYW0oc3RyZWFtSWQobV9wZWVyQ29ubmVjdGlvbkJhY2tlbmQuY29ubmVjdGlv
bigpKSk7CisgICAgICAgIGF1dG8gc3RyZWFtID0gTGliV2ViUlRDUHJvdmlkZXI6OmZhY3Rvcnko
KS0+Q3JlYXRlTG9jYWxNZWRpYVN0cmVhbShzdHJlYW1JZChtX3BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jb25uZWN0aW9uKCkpKTsKICAgICAgICAgZm9yIChSVENSdHBTZW5kZXImIHNlbmRlciA6IHNl
bmRlcnMpIHsKICAgICAgICAgICAgIGF1dG8qIHRyYWNrID0gc2VuZGVyLnRyYWNrKCk7CiAgICAg
ICAgICAgICBpZiAodHJhY2spIHsKQEAgLTE5OSwxMyArMjA5LDEzIEBAIHZvaWQgTGliV2ViUlRD
TWVkaWFFbmRwb2ludDo6ZG9DcmVhdGVBbnMKICAgICAgICAgICAgICAgICBhdXRvJiBzb3VyY2Ug
PSB0cmFjay0+c291cmNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZS50eXBlKCkgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byB0
cmFja1NvdXJjZSA9IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6Y3JlYXRlKHNvdXJjZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcnRjVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6
ZmFjdG9yeSgpLkNyZWF0ZUF1ZGlvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdHJh
Y2tTb3VyY2UucHRyKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHJ0Y1RyYWNrID0gTGli
V2ViUlRDUHJvdmlkZXI6OmZhY3RvcnkoKS0+Q3JlYXRlQXVkaW9UcmFjayh0cmFjay0+aWQoKS51
dGY4KCkuZGF0YSgpLCB0cmFja1NvdXJjZS5wdHIoKSk7CiAgICAgICAgICAgICAgICAgICAgIHRy
YWNrU291cmNlLT5zZXRUcmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpBdWRpb1RyYWNr
SW50ZXJmYWNlPihydGNUcmFjaykpOwogICAgICAgICAgICAgICAgICAgICBtX3BlZXJDb25uZWN0
aW9uQmFja2VuZC5hZGRBdWRpb1NvdXJjZShXVEZNb3ZlKHRyYWNrU291cmNlKSk7CiAgICAgICAg
ICAgICAgICAgICAgIHN0cmVhbS0+QWRkVHJhY2soV1RGTW92ZShydGNUcmFjaykpOwogICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2Ug
PSBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmNyZWF0ZShzb3VyY2UpOwotICAgICAgICAg
ICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQcm92aWRlcjo6ZmFjdG9yeSgp
LkNyZWF0ZVZpZGVvVHJhY2sodHJhY2stPmlkKCkudXRmOCgpLmRhdGEoKSwgdmlkZW9Tb3VyY2Uu
cHRyKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHZpZGVvVHJhY2sgPSBMaWJXZWJSVENQ
cm92aWRlcjo6ZmFjdG9yeSgpLT5DcmVhdGVWaWRlb1RyYWNrKHRyYWNrLT5pZCgpLnV0ZjgoKS5k
YXRhKCksIHZpZGVvU291cmNlLnB0cigpKTsKICAgICAgICAgICAgICAgICAgICAgbV9wZWVyQ29u
bmVjdGlvbkJhY2tlbmQuYWRkVmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRlb1NvdXJjZSkpOwogICAg
ICAgICAgICAgICAgICAgICBzdHJlYW0tPkFkZFRyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpOwog
ICAgICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmNwcAkocmV2aXNpb24gMjEzMTc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAKICNpZiBVU0Uo
TElCV0VCUlRDKQotCiAjaW5jbHVkZSAiTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL3Bl
ZXJjb25uZWN0aW9uZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvcGVlcmNvbm5lY3Rp
b25mYWN0b3J5cHJveHkuaD4KICNpbmNsdWRlIDx3ZWJydGMvYmFzZS9waHlzaWNhbHNvY2tldHNl
cnZlci5oPgpAQCAtMzcsOSArMzcsMTEgQEAKICNpbmNsdWRlIDx3ZWJydGMvc2RrL29iamMvRnJh
bWV3b3JrL0NsYXNzZXMvdmlkZW90b29sYm94dmlkZW9jb2RlY2ZhY3RvcnkuaD4KICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBVU0UoTElCV0VCUlRDKQogc3RydWN0IFBl
ZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVhZHMgOiBwdWJsaWMgcnRjOjpNZXNzYWdlSGFuZGxl
ciB7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExpYldlYlJUQ0F1ZGlvTW9kdWxlPiBhdWRpb0Rldmlj
ZU1vZHVsZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpUaHJlYWQ+IG5ldHdvcmtUaHJlYWQ7
CkBAIC0xMTEsMTEgKzExMywxMyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplUGVlckNvbm5lY3Rp
b25GYWN0CiAgICAgQVNTRVJUKGZhY3RvcnlBbmRUaHJlYWRzLmZhY3RvcnkpOwogfQogCi13ZWJy
dGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSYgTGliV2ViUlRDUHJvdmlkZXI6OmZh
Y3RvcnkoKQord2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIExpYldlYlJU
Q1Byb3ZpZGVyOjpmYWN0b3J5KCkKIHsKKyAgICBpZiAoIXdlYlJUQ0F2YWlsYWJsZSgpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIXN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCku
ZmFjdG9yeSkKICAgICAgICAgaW5pdGlhbGl6ZVBlZXJDb25uZWN0aW9uRmFjdG9yeUFuZFRocmVh
ZHMoKTsKLSAgICByZXR1cm4gKnN0YXRpY0ZhY3RvcnlBbmRUaHJlYWRzKCkuZmFjdG9yeTsKKyAg
ICByZXR1cm4gc3RhdGljRmFjdG9yeUFuZFRocmVhZHMoKS5mYWN0b3J5OwogfQogCiB2b2lkIExp
YldlYlJUQ1Byb3ZpZGVyOjpzZXRQZWVyQ29ubmVjdGlvbkZhY3RvcnkocnRjOjpzY29wZWRfcmVm
cHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlPiYmIGZhY3RvcnkpCkBA
IC0xNjYsNyArMTcwLDIyIEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0
aW8KIAogICAgIHJldHVybiBjcmVhdGVBY3R1YWxQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwgV1RG
TW92ZShwb3J0QWxsb2NhdG9yKSk7CiB9CisjZW5kaWYgLy8gVVNFKExJQldFQlJUQykKIAotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorYm9vbCBMaWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxh
YmxlKCkKK3sKKyNpZiBVU0UoTElCV0VCUlRDKQorICAgIHN0YXRpYyBib29sIGF2YWlsYWJsZSA9
IFtdIHsKKyAgICAgICAgdm9pZCogbGlid2VicnRjTGlicmFyeSA9IGRsb3BlbigibGlid2VicnRj
LmR5bGliIiwgUlRMRF9MQVpZKTsKKyAgICAgICAgaWYgKCFsaWJ3ZWJydGNMaWJyYXJ5KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBkbGNsb3NlKGxpYndlYnJ0Y0xpYnJhcnkp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KCk7CisgICAgcmV0dXJuIGF2YWlsYWJsZTsK
KyNlbHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KIAotI2VuZGlmIC8vIFVTRShMSUJX
RUJSVEMpCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAkocmV2aXNpb24gMjEzMTc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDEzICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9
IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+TGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CiAK
KyAgICBzdGF0aWMgYm9vbCB3ZWJSVENBdmFpbGFibGUoKTsKICNpZiBVU0UoTElCV0VCUlRDKQog
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVl
ckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25PYnNlcnZlciYpOwogCiAgICAgLy8gRklYTUU6IE1ha2UgdGhlc2UgbWV0aG9kcyBu
b3Qgc3RhdGljLgogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbGxPbldlYlJUQ05l
dHdvcmtUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICBzdGF0aWMgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjYWxsT25XZWJSVENTaWduYWxpbmdUaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmKTsK
LSAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJ
bnRlcmZhY2UmIGZhY3RvcnkoKTsKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKICAgICAvLyBVc2VkIGZv
ciBtb2NrIHRlc3RpbmcKICAgICBzdGF0aWMgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkZhY3Rvcnko
cnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNl
PiYmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNv
bm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcAkocmV2aXNpb24gMjEzMTc3KQorKysgU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgdXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9y
eShMaWIKIHsKICAgICBpZiAocHJvdmlkZXIgJiYgIXJlYWxQZWVyQ29ubmVjdGlvbkZhY3Rvcnko
KSkgewogICAgICAgICBhdXRvJiBmYWN0b3J5ID0gZ2V0UmVhbFBlZXJDb25uZWN0aW9uRmFjdG9y
eSgpOwotICAgICAgICBmYWN0b3J5ID0gJnByb3ZpZGVyLT5mYWN0b3J5KCk7CisgICAgICAgIGZh
Y3RvcnkgPSBwcm92aWRlci0+ZmFjdG9yeSgpOwogICAgIH0KIAogICAgIExpYldlYlJUQ1Byb3Zp
ZGVyOjpzZXRQZWVyQ29ubmVjdGlvbkZhY3RvcnkoTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
RmFjdG9yeTo6Y3JlYXRlKFN0cmluZyh0ZXN0Q2FzZSkpKTsKQEAgLTE2Miw2ICsxNjIsOSBAQCBN
b2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpNb2NrCiAKIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBNb2NrTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uLCBzdGQ6
OnVuaXF1ZV9wdHI8Y3JpY2tldDo6UG9ydEFsbG9jYXRvcj4gcG9ydEFsbG9jYXRvciwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6UlRDQ2VydGlmaWNhdGVHZW5lcmF0b3JJbnRlcmZhY2U+IGdlbmVyYXRv
ciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyKiBvYnNlcnZlcikKIHsKKyAgICBpZiAo
IXJlYWxQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
ICAgICBpZiAobV9udW1iZXJPZlJlYWxQZWVyQ29ubmVjdGlvbnMpIHsKICAgICAgICAgYXV0byBj
b25uZWN0aW9uID0gcmVhbFBlZXJDb25uZWN0aW9uRmFjdG9yeSgpLT5DcmVhdGVQZWVyQ29ubmVj
dGlvbihjb25maWd1cmF0aW9uLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpLCBXVEZNb3ZlKGdlbmVy
YXRvciksIG9ic2VydmVyKTsKICAgICAgICAgLS1tX251bWJlck9mUmVhbFBlZXJDb25uZWN0aW9u
czsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzE3NykKKysrIFNvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTAyLTI4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTGliV2Vi
UlRDUHJvdmlkZXIgc2hvdWxkIGNoZWNrIGV4aXN0ZW5jZSBvZiBsaWJ3ZWJydGMuZHlsaWIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODk4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSk6IERlbGV0ZWQuCisKIDIwMTct
MDItMjggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
RGF0YSBpbnRlcmFjdGlvbiBzaG91bGQgc3VwcG9ydCBhdHRhY2htZW50IGVsZW1lbnRzCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
LmgJKHJldmlzaW9uIDIxMzE3NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMiwxMSArMzEyLDYgQEAKIC8v
ICAgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRV9FTkFCTEVEIChmb3IgZmVhdHVyZXMgdGhh
dCBhcmUgcmVhZHkgZm9yCiAvLyAgIHdpZGVyIHRlc3RpbmcpLgogCi0vLyBEaXNhYmxlIHdlYnJ0
YyBmZWF0dXJlIGlmIGxpYndlYnJ0YyBsaWJyYXJ5IGlzIG5vdCBwcmVzZW50Ci1uYW1lc3BhY2Ug
V2ViS2l0IHsKLWJvb2wgY2hlY2tXZWJSVENBdmFpbGFiaWxpdHkoKTsKLX0KLQogI2RlZmluZSBG
T1JfRUFDSF9XRUJLSVRfRVhQRVJJTUVOVEFMX0ZFQVRVUkVfUFJFRkVSRU5DRShtYWNybykgXAog
ICAgIG1hY3JvKFNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZCwgc3ByaW5nVGltaW5nRnVuY3Rp
b25FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFC
TEVELCAiQ1NTIFNwcmluZyBBbmltYXRpb25zIiwgIkNTUyBTcHJpbmcgQW5pbWF0aW9uIHByb3Rv
dHlwZSIpIFwKICAgICBtYWNybyhHYW1lcGFkc0VuYWJsZWQsIGdhbWVwYWRzRW5hYmxlZCwgQm9v
bCwgYm9vbCwgREVGQVVMVF9FWFBFUklNRU5UQUxfRkVBVFVSRVNfRU5BQkxFRCwgIkdhbWVwYWRz
IiwgIldlYiBHYW1lcGFkIEFQSSBzdXBwb3J0IikgXApAQCAtMzI4LDcgKzMyMyw3IEBAIGJvb2wg
Y2hlY2tXZWJSVENBdmFpbGFiaWxpdHkoKTsKICAgICBtYWNybyhVc2VyVGltaW5nRW5hYmxlZCwg
dXNlclRpbWluZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfRVhQRVJJTUVOVEFMX0ZFQVRV
UkVTX0VOQUJMRUQsICJVc2VyIFRpbWluZyIsICJFbmFibGUgVXNlclRpbWluZyBBUEkiKSBcCiAg
ICAgbWFjcm8oV2ViQW5pbWF0aW9uc0VuYWJsZWQsIHdlYkFuaW1hdGlvbnNFbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSwgIldlYiBBbmltYXRpb25zIiwgIldlYiBBbmltYXRpb25zIHByb3RvdHlw
ZSIpIFwKICAgICBtYWNybyhXZWJHTDJFbmFibGVkLCB3ZWJHTDJFbmFibGVkLCBCb29sLCBib29s
LCBERUZBVUxUX0VYUEVSSU1FTlRBTF9GRUFUVVJFU19FTkFCTEVELCAiV2ViR0wgMi4wIiwgIldl
YkdMIDIgcHJvdG90eXBlIikgXAotICAgIG1hY3JvKFBlZXJDb25uZWN0aW9uRW5hYmxlZCwgcGVl
ckNvbm5lY3Rpb25FbmFibGVkLCBCb29sLCBib29sLCBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSgp
LCAiV2ViUlRDIiwgIkVuYWJsZSBXZWJSVEMgQVBJIikgXAorICAgIG1hY3JvKFBlZXJDb25uZWN0
aW9uRW5hYmxlZCwgcGVlckNvbm5lY3Rpb25FbmFibGVkLCBCb29sLCBib29sLCBXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6d2ViUlRDQXZhaWxhYmxlKCksICJXZWJSVEMiLCAiRW5hYmxlIFdl
YlJUQyBBUEkiKSBcCiAgICAgXAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCShyZXZpc2lvbiAyMTMx
NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJGb250U21vb3RoaW5nTGV2
ZWwuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVu
Y29kaW5nUmVnaXN0cnkuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24g
MjEzMTc3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VHcm91cC5o
IgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
b29sLmgiCi0jaW5jbHVkZSA8ZGxmY24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1By
b3ZpZGVyLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIApAQCAtMTk2LDIyICsxOTYsNiBAQCBGT1JfRUFDSF9X
RUJLSVRfREVCVUdfUFJFRkVSRU5DRShERUZJTkVfCiAKICN1bmRlZiBERUZJTkVfUFJFRkVSRU5D
RV9HRVRURVJfQU5EX1NFVFRFUlMKIAotYm9vbCBjaGVja1dlYlJUQ0F2YWlsYWJpbGl0eSgpCi17
Ci0jaWYgVVNFKExJQldFQlJUQykKLSAgICBzdGF0aWMgYm9vbCBhdmFpbGFibGUgPSBbJl0gewot
ICAgICAgICB2b2lkKiBsaWJ3ZWJydGNMaWJyYXJ5ID0gZGxvcGVuKCJsaWJ3ZWJydGMuZHlsaWIi
LCBSVExEX0xBWlkpOwotICAgICAgICBpZiAoIWxpYndlYnJ0Y0xpYnJhcnkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRsY2xvc2UobGlid2VicnRjTGlicmFyeSk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0oKTsKLSAgICByZXR1cm4gYXZhaWxhYmxlOwotI2Vsc2UK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotfQotCiAjZGVmaW5lIERFRklORV9FWFBFUklNRU5U
QUxfUFJFRkVSRU5DRV9HRVRURVJfQU5EX1NFVFRFUlMoS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBl
TmFtZSwgVHlwZSwgRGVmYXVsdFZhbHVlLCBIdW1hblJlYWRhYmxlTmFtZSwgSHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uKSBcCiAgICAgdm9pZCBXZWJQcmVmZXJlbmNlczo6c2V0IyNLZXlVcHBlcihj
b25zdCBUeXBlJiB2YWx1ZSkgXAogICAgIHsgXAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>