<?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>143424</bug_id>
          
          <creation_ts>2015-04-05 14:49:45 -0700</creation_ts>
          <short_desc>[ES6] DFG and FTL should be aware of that StringConstructor behavior for symbols becomes different from ToString</short_desc>
          <delta_ts>2015-04-06 12:08:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082945</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 14:49:45 -0700</bug_when>
    <thetext>In ES6, StringConstructor behavior becomes different from ToString abstract operations in the spec. (and JSValue::toString).

ToString(symbol) throws a type error.
String(symbol) produces  SymbolDescriptiveString(value).

So, in DFG and FTL phase, they should not inline String constructor to ToString.
Now, in the template literals patch, ToString DFG operation is planned to be used for it.
And current ToString behavior is aligned to the spec (and JSValue::toString). I think keeping it is better.
So intead of changing ToString behavior, I think adding StringConstructor operation into DFG and FTL is nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082954</commentid>
    <comment_count>1</comment_count>
      <attachid>250171</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 15:49:11 -0700</bug_when>
    <thetext>Created attachment 250171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082984</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 17:42:44 -0700</bug_when>
    <thetext>*** Bug 143427 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082986</commentid>
    <comment_count>3</comment_count>
      <attachid>250171</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-05 17:46:40 -0700</bug_when>
    <thetext>Comment on attachment 250171
Patch

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

&gt; Source/JavaScriptCore/runtime/StringConstructor.cpp:112
&gt; +        return jsString(exec, asSymbol(argument)-&gt;descriptiveString());

Nit: This can be jsNontrivialString, which can be used for Strings guaranteed to be 2 or more characters long, and this is guaranteed to have &quot;Symbol()&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082991</commentid>
    <comment_count>4</comment_count>
      <attachid>250171</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 18:01:28 -0700</bug_when>
    <thetext>Comment on attachment 250171
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/StringConstructor.cpp:112
&gt;&gt; +        return jsString(exec, asSymbol(argument)-&gt;descriptiveString());
&gt; 
&gt; Nit: This can be jsNontrivialString, which can be used for Strings guaranteed to be 2 or more characters long, and this is guaranteed to have &quot;Symbol()&quot;.

Thank you! I&apos;ve changed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082993</commentid>
    <comment_count>5</comment_count>
      <attachid>250182</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-05 18:04:10 -0700</bug_when>
    <thetext>Created attachment 250182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083116</commentid>
    <comment_count>6</comment_count>
      <attachid>250182</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-04-06 11:18:27 -0700</bug_when>
    <thetext>Comment on attachment 250182
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083117</commentid>
    <comment_count>7</comment_count>
      <attachid>250182</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-04-06 11:19:42 -0700</bug_when>
    <thetext>Comment on attachment 250182
Patch

Thank you for your review :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083135</commentid>
    <comment_count>8</comment_count>
      <attachid>250182</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 12:08:06 -0700</bug_when>
    <thetext>Comment on attachment 250182
Patch

Clearing flags on attachment: 250182

Committed r182433: &lt;http://trac.webkit.org/changeset/182433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083137</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-06 12:08:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250171</attachid>
            <date>2015-04-05 15:49:11 -0700</date>
            <delta_ts>2015-04-05 18:04:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143424-20150406074823.patch</filename>
            <type>text/plain</type>
            <size>22290</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ODY1MGJiYWUxYmM4ODY2YWVjNzQxMzY5NGNhNmRiNTE1MmVlZTg4Li43MTc5Y2RkMjczYzhiNDAx
NTAyYWNiMTQ5MDJkMDY0N2RmY2FhMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAxNS0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBERkcgYW5kIEZUTCBzaG91bGQgYmUgYXdhcmUgb2YgdGhh
dCBTdHJpbmdDb25zdHJ1Y3RvciBiZWhhdmlvciBmb3Igc3ltYm9scyBiZWNvbWVzIGRpZmZlcmVu
dCBmcm9tIFRvU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDM0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBFUzYsIFN0cmluZ0NvbnN0cnVjdG9yIGJlaGF2aW9yIGJlY29tZXMgZGlmZmVy
ZW50IGZyb20gVG9TdHJpbmcgYWJzdHJhY3Qgb3BlcmF0aW9ucyBpbiB0aGUgc3BlYy4gKGFuZCBK
U1ZhbHVlOjp0b1N0cmluZykuCisKKyAgICAgICAgVG9TdHJpbmcoc3ltYm9sKSB0aHJvd3MgYSB0
eXBlIGVycm9yLgorICAgICAgICBIb3dldmVyLCBTdHJpbmcoc3ltYm9sKSBwcm9kdWNlcyBTeW1i
b2xEZXNjcmlwdGl2ZVN0cmluZyhzeW1ib2wpLgorCisgICAgICAgIFNvLCBpbiBERkcgYW5kIEZU
TCBwaGFzZSwgdGhleSBzaG91bGQgbm90IGlubGluZSBTdHJpbmdDb25zdHJ1Y3RvciB0byBUb1N0
cmluZy4KKworICAgICAgICBOb3csIGluIHRoZSB0ZW1wbGF0ZSBsaXRlcmFscyBwYXRjaCwgVG9T
dHJpbmcgREZHIG9wZXJhdGlvbiBpcyBwbGFubmVkIHRvIGJlIHVzZWQuCisgICAgICAgIEFuZCBj
dXJyZW50IFRvU3RyaW5nIGJlaGF2aW9yIGlzIGFsaWduZWQgdG8gdGhlIHNwZWMgKGFuZCBKU1Zh
bHVlOjp0b1N0cmluZykgYW5kIGl0J3MgYmV0dGVyLgorICAgICAgICBTbyBpbnRlYWQgb2YgY2hh
bmdpbmcgVG9TdHJpbmcgYmVoYXZpb3IsIHRoaXMgcGF0Y2ggYWRkcyBDYWxsU3RyaW5nQ29uc3Ry
dWN0b3Igb3BlcmF0aW9uIGludG8gREZHIGFuZCBGVEwuCisgICAgICAgIEluIENhbGxTdHJpbmdD
b25zdHJ1Y3RvciwgYWxsIGJlaGF2aW9yIGluIERGRyBhbmFseXNpcyBpcyB0aGUgc2FtZS4KKyAg
ICAgICAgT25seSB0aGUgZGlmZmVyZW5jZSBmcm9tIFRvU3RyaW5nIGlzLCB3aGVuIGNhbGxpbmcg
REZHIG9wZXJhdGlvbiBmdW5jdGlvbnMsIGl0IGNhbGxzCisgICAgICAgIG9wZXJhdGlvbkNhbGxT
dHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbCBhbmQgb3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
IGluc3RlYWQgb2YKKyAgICAgICAgb3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwgYW5kIG9wZXJhdGlv
blRvU3RyaW5nLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQmFja3dhcmRzUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDb25zdGFudEludGVybmFs
RnVuY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cFRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRUb01ha2VGYXN0U3RyaW5nQWRk
KToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cFRvU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBy
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JPbkNlbGwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPbkNl
bGwpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlN0cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlOjpydW4pOgorICAgICAgICAqIGZ0
bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgor
ICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRG
R1RvTExWTTo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVG9TdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpz
dHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxTdHJpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9zeW1ib2wtYW5kLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAg
IChwZXJmb3JtU3RyaW5nKToKKwogMjAxNS0wNC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgImdvIGFoZWFkIGFuZCIgZnJvbSBjb21t
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDA1ZGU5MDkwMDNjYjdlNmE4ZDhjYWJmM2JlZThk
Y2Y2MWViYTY1OGIuLmE1NTJiY2I0YTU1MzI3ZDE2ZjcwZjUwMjBkNDAwZjc1NDkxNTViOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEyNjEsNyArMTI2MSw4IEBACiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBUb1N0cmluZzogeworICAgIGNhc2UgVG9TdHJpbmc6
CisgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6IHsKICAgICAgICAgc3dpdGNoIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAg
ICAgICAgICAgICAvLyBUaGlzIGFsc28gZmlsdGVycyB0aGF0IHRoZSBTdHJpbmdPYmplY3QgaGFz
IHRoZSBwcmltb3JkaWFsIFN0cmluZ09iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNDNj
M2Q1ZDVjNDkyNTE5MzJiODRmM2ZmYzFlMjI2ZmM3MWNkY2U1Mi4uMjcxZGJjMmNkMzZmNjZhZGUy
OGQxZTI0OGI5Njc1YTAyMjNjMWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0zNDUsNyAr
MzQ1LDggQEAgY2xhc3MgQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgVG9TdHJpbmc6IHsKKyAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgY2FzZSBDYWxs
U3RyaW5nQ29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5tZXJnZUZs
YWdzKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGJlNDk0YzZmYTJjYTNmNjE4NGQwNzYy
MzljMGQyODhkYTJkZTI0MjkuLjc5NDU2NmZjYWRmM2M0NDcwYmUyOGYyMWQwNDJmZWY4MGI2Yjk4
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCkBAIC0yMTc3LDcgKzIxNzcsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDb25z
dGFudEludGVybmFsRnVuY3Rpb24oCiAgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyA8PSAxKQogICAgICAgICAgICAgcmVzdWx0ID0ganNDb25zdGFudChtX3ZtLT5zbWFsbFN0
cmluZ3MuZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9
IGFkZFRvR3JhcGgoVG9TdHJpbmcsIGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCBy
ZWdpc3Rlck9mZnNldCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGFkZFRvR3JhcGgoQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yLCBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMSwgcmVnaXN0
ZXJPZmZzZXQpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ29uc3Ry
dWN0KQogICAgICAgICAgICAgcmVzdWx0ID0gYWRkVG9HcmFwaChOZXdTdHJpbmdPYmplY3QsIE9w
SW5mbyhmdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpKSwg
cmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXgg
NjE5NGU5OGM5NWZlMzBhYTI5MjQ4NTFiOGI4MDM5OGJiYTcxYTdhZC4uNDk3NjZjMDhjYTczMDc1
ZmIwNDQzZGY0MzZkNjZkNTcyMDJmNzg2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmgKQEAgLTg5Nyw2ICs4OTcsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgm
IGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVG
dQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2Fz
ZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNl
IFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCmluZGV4IGFkZWUyZjU4YmNmMTM0OTZhM2RhMDZmNTE1YTY0Yzk4YTYxNzRmZWYuLjZl
ZDBmYmQ3NGI1MWZiNTY3N2Q5M2E2YjRhZDAwOGEwOTNkOGFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0Myw2ICsxNDMsNyBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBMb2dpY2FsTm90OgogICAgIGNhc2Ug
VG9QcmltaXRpdmU6CiAgICAgY2FzZSBUb1N0cmluZzoKKyAgICBjYXNlIENhbGxTdHJpbmdDb25z
dHJ1Y3RvcjoKICAgICBjYXNlIEluOgogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDUzN2Zh
YWMzNDU1MWQ1NDVhYjZlMjAyNGM0ZjRkZTk3ZjdlZmZlMzcuLjllNTNhMTk2MmEyMTY5NzQ4NWYx
OGY2Njg4N2Q3MTI4YWEzMzNkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcApAQCAtNzY3LDggKzc2Nyw5IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIFRvU3RyaW5nOiB7Ci0gICAgICAgICAgICBmaXh1cFRvU3RyaW5nKG5vZGUp
OworICAgICAgICBjYXNlIFRvU3RyaW5nOgorICAgICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1
Y3RvcjogeworICAgICAgICAgICAgZml4dXBUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
KG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAt
MTM2Myw3ICsxMzY0LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBmaXh1cFRvU3RyaW5nKE5vZGUqIG5vZGUpCisg
ICAgdm9pZCBmaXh1cFRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IoTm9kZSogbm9kZSkK
ICAgICB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5n
KCkpIHsKICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nVXNlPihub2RlLT5jaGlsZDEoKSk7CkBA
IC0xNDI0LDcgKzE0MjUsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY1N0cmluZywgVG9TdHJpbmcsIG5vZGUt
Pm9yaWdpbiwgRWRnZSh0b1ByaW1pdGl2ZSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBm
aXh1cFRvUHJpbWl0aXZlKHRvUHJpbWl0aXZlKTsKLSAgICAgICAgICAgIGZpeHVwVG9TdHJpbmco
dG9TdHJpbmcpOworICAgICAgICAgICAgZml4dXBUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVj
dG9yKHRvU3RyaW5nKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcmlnaHQuc2V0Tm9kZSh0
b1N0cmluZyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aAppbmRleCA1ZGMxZWI2Y2Q3NWIwNmFhYjFmNTY4NWJmMzNiNjA1NzY4NDEwMzZmLi4xZTc5ZDFh
MzE1YmQ2MTM3MGU0YjQwYTE4NWUyYmJhMDg1YTE5ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yNjEsNiArMjYxLDcgQEAKICAgICBtYWNybyhMb2dpY2Fs
Tm90LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oVG9TdHJpbmcsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsU3RyaW5nQ29uc3RydWN0
b3IsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdTdHJp
bmdPYmplY3QsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE1ha2VSb3BlLCBOb2RlUmVzdWx0
SlMpIFwKICAgICBtYWNybyhJbiwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRl
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA3
NjE0ZTJiZThiNmI1NmUzNWY2OWVjY2IzNmFiNWJkYTMxODkzMjExLi5hMDcyNmMxNmM5YzhjZGIx
YjlmODMzNTg4NGExYzAwMDk2ZTE2YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTEwMDYsNiArMTAwNiwyMiBAQCBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhleGVjKTsK
IH0KIAorSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rv
ck9uQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCkKK3sKKyAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
KworICAgIHJldHVybiBzdHJpbmdDb25zdHJ1Y3RvcihleGVjLCBjZWxsKTsKK30KKworSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworCisgICAgcmV0
dXJuIHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOworfQor
CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUyKEV4ZWNTdGF0ZSogZXhl
YywgSlNTdHJpbmcqIGxlZnQsIEpTU3RyaW5nKiByaWdodCkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBk
MTNlY2NmZjc1YzY1OTlkNTE2Y2EzMzQ5MmNkYzZjNjIyNDZhMjNhLi4xZDVhNzkyNDNlNGUwOTg2
YzZhZjA3ZjEwYTBkMTYxMjcwMWM3NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaApAQCAtMTIxLDYgKzEyMSw4IEBACiBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgU3RydWN0dXJl
Kik7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwoRXhlY1N0
YXRlKiwgSlNDZWxsKik7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmco
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOworSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbChFeGVjU3RhdGUqLCBKU0NlbGwqKTsKK0pT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1h
a2VSb3BlMihFeGVjU3RhdGUqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7CiBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUzKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25GaW5kU3dpdGNo
SW1tVGFyZ2V0Rm9yRG91YmxlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBzaXplX3QgdGFi
bGVJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDA4MThmYTMwMDI0ZjJlYjgzNGNi
ZGEzMTQ4NzU4ZmFjNDI1YjUyNjkuLjE4ZTU2YjYyYTM4YjBkOWMzNGRlY2E0YjcxY2M5ZjhmMTE4
Y2NkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC00ODAsNiArNDgwLDcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6CisgICAgICAgIGNh
c2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAgICAgICBjYXNlIFRvU3RyaW5nOgogICAgICAg
ICBjYXNlIE1ha2VSb3BlOiB7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24o
U3BlY1N0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCmluZGV4IGY2Njc2ZGUzMGM4NWJiNjE0NThkMTMxOWNjOTBhMTZhNGExYjJkZjMuLmJlMjQz
ZDc1MWY4MGVkMWFmNDhiYzc2YjA2NWNlMzI1MjczYzJlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yMTksNiArMjE5LDcgQEAgYm9vbCBz
YWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlKQogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIFRvUHJpbWl0aXZlOgogICAg
IGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgY2Fz
ZSBOZXdTdHJpbmdPYmplY3Q6CiAgICAgY2FzZSBNYWtlUm9wZToKICAgICBjYXNlIEluOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAz
NGM1NDBhMzYxZTllZDc2M2Q2YTQ4ODNhN2Q1ZjdiZmJkYTY5ODYyLi40ZTVhZjE3ZDBlMDcyZTM2
ZDhjYzExOGIzZTJkNWI1ZDVlODg2NmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDg0OCw3ICs0ODQ4LDcgQEAgR1BSUmVnIFNw
ZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKEdQUlRlbXBvcmFyeSYg
dGVtcG9yYXJ5LCBBcnIKICAgICByZXR1cm4gdGVtcG9yYXJ5LmdwcigpOwogfQogCi12b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPbkNlbGwoTm9kZSogbm9kZSkKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxs
KE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3AxKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwpAQCAtNDkwNiw3ICs0
OTA2LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1N0cmluZ09uQ2VsbChOb2Rl
KiBub2RlKQogICAgICAgICAgICAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAgICAgICAgIG5l
ZWRDYWxsLmxpbmsoJm1faml0KTsKICAgICAgICAgfQotICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvblRvU3RyaW5nT25DZWxsLCByZXN1bHRHUFIsIG9wMUdQUik7CisgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IFRvU3RyaW5nKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25Ub1N0cmluZ09uQ2VsbCwgcmVzdWx0R1BSLCBvcDFHUFIpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09IENhbGxTdHJpbmdDb25zdHJ1Y3Rvcik7Cisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9u
Q2VsbCwgcmVzdWx0R1BSLCBvcDFHUFIpOworICAgICAgICB9CiAgICAgICAgIGlmIChkb25lLmlz
U2V0KCkpCiAgICAgICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAgICAgY2VsbFJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCmluZGV4IDllMDY0YjIzODI2NTYxOTJhZWY2NzQyMzZjMTIxMDIyYTZlNWEy
MzAuLjYwNWYyYmM1M2ViYjQ1MTU0ZTI2Y2Q3YzM4YTViNDJhZDk4MGVhZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxMzgsNyArMjEz
OCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGVtaXRTd2l0Y2hTdHJpbmco
Tm9kZSosIFN3aXRjaERhdGEqKTsKICAgICB2b2lkIGVtaXRTd2l0Y2goTm9kZSopOwogICAgIAot
ICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nT25DZWxsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVU
b1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxsKE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSopOwogICAgIAogICAgIHZvaWQgY29tcGlsZU5ld1R5
cGVkQXJyYXkoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNmEwYjNhNGE5MzMwNzQxNGRhNjk5NTgxNDhj
YTZhNzgxOTU4ZGIyMC4uY2Q1YjgyZjIxY2E2YzRjNTIyZTIzY2E0NzcwOTc3NmViYTg3MmUwMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0zMDk4LDcgKzMwOTgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAgY2Fz
ZSBUb1N0cmluZzogeworICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBDYWxsU3RyaW5nQ29u
c3RydWN0b3I6IHsKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5
cGVkVXNlKSB7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgR1BSUmVnIG9wMVBheWxvYWRHUFIgPSBvcDEucGF5bG9hZEdQ
UigpOwpAQCAtMzExOCw3ICszMTE5LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBzbG93UGF0aDEubGluaygmbV9qaXQpOwogICAg
ICAgICAgICAgICAgIHNsb3dQYXRoMi5saW5rKCZtX2ppdCk7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblRvU3RyaW5nLCByZXN1bHRHUFIsIG9wMVRh
Z0dQUiwgb3AxUGF5bG9hZEdQUik7CisgICAgICAgICAgICBpZiAob3AgPT0gVG9TdHJpbmcpCisg
ICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZywgcmVzdWx0R1BS
LCBvcDFUYWdHUFIsIG9wMVBheWxvYWRHUFIpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgQVNTRVJUKG9wID09IENhbGxTdHJpbmdDb25zdHJ1Y3Rvcik7CisgICAgICAgICAg
ICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IsIHJlc3Vs
dEdQUiwgb3AxVGFnR1BSLCBvcDFQYXlsb2FkR1BSKTsKKyAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChkb25lLmlzU2V0KCkpCiAgICAgICAgICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7
CiAgICAgICAgICAgICBjZWxsUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAwYzY3ZTU0
NGI5MWZiZjUxNjJhMWJmODc4NWY4MzNjOGVmNTM1YTBjLi42ODhiNjVkMzEwYTFhMTk4ZTE4NmY0
NWRjYzlmNzBiMWE4NDhkNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTMxODUsNyArMzE4NSw4IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
ICAgICAKLSAgICBjYXNlIFRvU3RyaW5nOiB7CisgICAgY2FzZSBUb1N0cmluZzoKKyAgICBjYXNl
IENhbGxTdHJpbmdDb25zdHJ1Y3RvcjogewogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNl
S2luZCgpID09IFVudHlwZWRVc2UpIHsKICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9wMSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdw
cigpOwpAQCAtMzIwNCwxNCArMzIwNSwxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgc2xvd1BhdGgxLmxpbmsoJm1faml0KTsKICAg
ICAgICAgICAgICAgICBzbG93UGF0aDIubGluaygmbV9qaXQpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZywgcmVzdWx0R1BSLCBvcDFH
UFIpOworICAgICAgICAgICAgaWYgKG9wID09IFRvU3RyaW5nKQorICAgICAgICAgICAgICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmcsIHJlc3VsdEdQUiwgb3AxR1BSKTsKKyAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChvcCA9PSBDYWxsU3RyaW5nQ29u
c3RydWN0b3IpOworICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yLCByZXN1bHRHUFIsIG9wMUdQUik7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICAgICAgICAgIGRvbmUubGluaygmbV9q
aXQpOwogICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGNvbXBpbGVUb1N0cmluZ09u
Q2VsbChub2RlKTsKKyAgICAgICAgY29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0
b3JPbkNlbGwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZVJlZ2lzdHJhdGlvblBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0
aW9uUGhhc2UuY3BwCmluZGV4IDRjODI3NmI5YzZjNDYyZmNmNDJkNWUxMjQ1NjEwNGFjODBhNjNl
NzkuLjI4NjQ2ZDEzZmNmNGM5NjVjNjIwZDAwMjExYjBkY2JmMDNiMzdjMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0aW9uUGhhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0
aW9uUGhhc2UuY3BwCkBAIC0xMTEsNiArMTExLDcgQEAgY2xhc3MgU3RydWN0dXJlUmVnaXN0cmF0
aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAg
ICAgICAgICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoKICAgICAgICAgICAgICAgICAg
ICAgcmVnaXN0ZXJTdHJ1Y3R1cmUobV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODVkZTQ5Yjg5NjU4Y2Q3Y2NkMDk4MGI2NDQ0
NTAyZWRmNjExNmJlMy4uM2NkOTAyNDJmOTk2ZGYyNmQwY2Y3M2UyNzkwZTUzMThiZjkxYTVlZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAt
MTQ2LDYgKzE0Niw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBu
b2RlKQogICAgIGNhc2UgR2V0Q2FsbGVlOgogICAgIGNhc2UgR2V0QXJndW1lbnRDb3VudDoKICAg
ICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAgIGNh
c2UgTWFrZVJvcGU6CiAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgIGNhc2UgR2V0QnlJ
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xM
Vk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAK
aW5kZXggY2VhNTA5OTAyNDk5N2U1MGYxM2VlYzFhYzdlNDk0OTI5YWEwMjI0Ny4uMzhiOGFiNTc0
ZjRiNDBkZDZjMTY2YWEzZjA3YjdhMzdmNTc3MjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTYzOSw3ICs2MzksOCBAQCBjbGFz
cyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBjb21waWxlUmVhbGxvY2F0ZVByb3BlcnR5
U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9TdHJpbmc6Ci0g
ICAgICAgICAgICBjb21waWxlVG9TdHJpbmcoKTsKKyAgICAgICAgY2FzZSBDYWxsU3RyaW5nQ29u
c3RydWN0b3I6CisgICAgICAgICAgICBjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25zdHJ1
Y3RvcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9QcmltaXRpdmU6CiAg
ICAgICAgICAgICBjb21waWxlVG9QcmltaXRpdmUoKTsKQEAgLTMyODgsNyArMzI4OSw3IEBAIGNs
YXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgICAgICBvYmplY3QsIG9sZFN0b3JhZ2Us
IHRyYW5zaXRpb24tPnByZXZpb3VzLCB0cmFuc2l0aW9uLT5uZXh0KSk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nKCkKKyAgICB2b2lkIGNvbXBpbGVUb1N0cmluZ09yQ2Fs
bFN0cmluZ0NvbnN0cnVjdG9yKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5jaGls
ZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKQEAgLTMz
NTYsOSArMzM1Nyw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIExWYWx1ZSBv
cGVyYXRpb247CiAgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSkKLSAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1fb3V0
Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkgPT0gVG9TdHJpbmcgPyBvcGVyYXRpb25Ub1N0cmluZ09u
Q2VsbCA6IG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbCk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvblRvU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRp
b24obV9ub2RlLT5vcCgpID09IFRvU3RyaW5nID8gb3BlcmF0aW9uVG9TdHJpbmcgOiBvcGVyYXRp
b25DYWxsU3RyaW5nQ29uc3RydWN0b3IpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgY29u
dmVydGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbChvcGVyYXRpb24sIG1fY2FsbEZyYW1l
LCB2YWx1ZSkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAgICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggYmVjYWNiZTY1NTkwNjJjZWZmM2I0ZmRkNDFhYWY5ODQ5YTM0MTA1
NC4uNDY2MDExODljYjhmZTYyZDg2YzU3Mzg1ODY0YzQ4NjNhM2ZkMjEzNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAt
MTA2LDE0ICsxMDYsMTggQEAgQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHIKICAgICByZXR1cm4gQ29u
c3RydWN0VHlwZUhvc3Q7CiB9CiAKK0pTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU1ZhbHVlIGFyZ3VtZW50KQoreworICAgIGlmIChhcmd1bWVudC5pc1N5bWJvbCgp
KQorICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgYXNTeW1ib2woYXJndW1lbnQpLT5kZXNj
cmlwdGl2ZVN0cmluZygpKTsKKyAgICByZXR1cm4gYXJndW1lbnQudG9TdHJpbmcoZXhlYyk7Cit9
CisKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNFbXB0eVN0cmluZyhleGVjKSk7Ci0g
ICAgSlNWYWx1ZSBhcmd1bWVudCA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGlm
IChhcmd1bWVudC5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKGV4ZWMsIGFzU3ltYm9sKGFyZ3VtZW50KS0+ZGVzY3JpcHRpdmVTdHJpbmcoKSkpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQudG9TdHJpbmcoZXhlYykpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc3RyaW5nQ29uc3RydWN0b3IoZXhlYywgZXhlYy0+dW5j
aGVja2VkQXJndW1lbnQoMCkpKTsKIH0KIAogQ2FsbFR5cGUgU3RyaW5nQ29uc3RydWN0b3I6Omdl
dENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCmluZGV4IGU4YmNlZmRhY2Y5
Y2E1YWYzMDNkYzQ1ZDUwNmRiYWMzMmVhNGZkZjYuLjAwODZhNmI4YmI4YzZiNjVkOWZlOWI5NjQx
MjFkZTBiOTIzMjJkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuaApAQCAtNTYsOCArNTYsOSBAQCBjbGFzcyBTdHJpbmdDb25zdHJ1
Y3RvciA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiB9OwotICAgIAorCiBKU0NlbGwqIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNo
YXJDb2RlKEV4ZWNTdGF0ZSosIGludDMyX3QpOworSlNDZWxsKiBzdHJpbmdDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc3ltYm9sLWFuZC1zdHJpbmctY29u
c3RydWN0b3IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1h
bmQtc3RyaW5nLWNvbnN0cnVjdG9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhODhlODYzYWI1MTEzZjM5YWMy
NjNlOTY5MzY1ZmIzZTkwN2Q0ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1hbmQtc3RyaW5nLWNvbnN0cnVjdG9yLmpzCkBAIC0w
LDAgKzEsMTAgQEAKK2Z1bmN0aW9uIHBlcmZvcm1TdHJpbmcodmFsdWUpIHsKKyAgICByZXR1cm4g
U3RyaW5nKHZhbHVlKTsKK30KK25vSW5saW5lKHBlcmZvcm1TdHJpbmcpOworCitmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gcGVyZm9ybVN0cmluZyhT
eW1ib2wuaXRlcmF0b3IpOworICAgIGlmIChyZXN1bHQgIT09ICdTeW1ib2woU3ltYm9sLml0ZXJh
dG9yKScpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgcmVzdWx0KTsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250182</attachid>
            <date>2015-04-05 18:04:10 -0700</date>
            <delta_ts>2015-04-06 12:08:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143424-20150406100321.patch</filename>
            <type>text/plain</type>
            <size>22474</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
ODY1MGJiYWUxYmM4ODY2YWVjNzQxMzY5NGNhNmRiNTE1MmVlZTg4Li43MTc5Y2RkMjczYzhiNDAx
NTAyYWNiMTQ5MDJkMDY0N2RmY2FhMjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MCBAQAorMjAxNS0wNC0wNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBERkcgYW5kIEZUTCBzaG91bGQgYmUgYXdhcmUgb2YgdGhh
dCBTdHJpbmdDb25zdHJ1Y3RvciBiZWhhdmlvciBmb3Igc3ltYm9scyBiZWNvbWVzIGRpZmZlcmVu
dCBmcm9tIFRvU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNDM0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbiBFUzYsIFN0cmluZ0NvbnN0cnVjdG9yIGJlaGF2aW9yIGJlY29tZXMgZGlmZmVy
ZW50IGZyb20gVG9TdHJpbmcgYWJzdHJhY3Qgb3BlcmF0aW9ucyBpbiB0aGUgc3BlYy4gKGFuZCBK
U1ZhbHVlOjp0b1N0cmluZykuCisKKyAgICAgICAgVG9TdHJpbmcoc3ltYm9sKSB0aHJvd3MgYSB0
eXBlIGVycm9yLgorICAgICAgICBIb3dldmVyLCBTdHJpbmcoc3ltYm9sKSBwcm9kdWNlcyBTeW1i
b2xEZXNjcmlwdGl2ZVN0cmluZyhzeW1ib2wpLgorCisgICAgICAgIFNvLCBpbiBERkcgYW5kIEZU
TCBwaGFzZSwgdGhleSBzaG91bGQgbm90IGlubGluZSBTdHJpbmdDb25zdHJ1Y3RvciB0byBUb1N0
cmluZy4KKworICAgICAgICBOb3csIGluIHRoZSB0ZW1wbGF0ZSBsaXRlcmFscyBwYXRjaCwgVG9T
dHJpbmcgREZHIG9wZXJhdGlvbiBpcyBwbGFubmVkIHRvIGJlIHVzZWQuCisgICAgICAgIEFuZCBj
dXJyZW50IFRvU3RyaW5nIGJlaGF2aW9yIGlzIGFsaWduZWQgdG8gdGhlIHNwZWMgKGFuZCBKU1Zh
bHVlOjp0b1N0cmluZykgYW5kIGl0J3MgYmV0dGVyLgorICAgICAgICBTbyBpbnRlYWQgb2YgY2hh
bmdpbmcgVG9TdHJpbmcgYmVoYXZpb3IsIHRoaXMgcGF0Y2ggYWRkcyBDYWxsU3RyaW5nQ29uc3Ry
dWN0b3Igb3BlcmF0aW9uIGludG8gREZHIGFuZCBGVEwuCisgICAgICAgIEluIENhbGxTdHJpbmdD
b25zdHJ1Y3RvciwgYWxsIGJlaGF2aW9yIGluIERGRyBhbmFseXNpcyBpcyB0aGUgc2FtZS4KKyAg
ICAgICAgT25seSB0aGUgZGlmZmVyZW5jZSBmcm9tIFRvU3RyaW5nIGlzLCB3aGVuIGNhbGxpbmcg
REZHIG9wZXJhdGlvbiBmdW5jdGlvbnMsIGl0IGNhbGxzCisgICAgICAgIG9wZXJhdGlvbkNhbGxT
dHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbCBhbmQgb3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
IGluc3RlYWQgb2YKKyAgICAgICAgb3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwgYW5kIG9wZXJhdGlv
blRvU3RyaW5nLgorCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQmFja3dhcmRzUHJvcGFn
YXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QmFja3dhcmRzUHJvcGFnYXRpb25Q
aGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDb25zdGFudEludGVybmFs
RnVuY3Rpb24pOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cFRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmF0dGVtcHRUb01ha2VGYXN0U3RyaW5nQWRk
KToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cFRvU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBy
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlOjpwcm9wYWdhdGUpOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JPbkNlbGwp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPbkNl
bGwpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0aW9uUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlN0cnVjdHVyZVJlZ2lzdHJhdGlvblBoYXNlOjpydW4pOgorICAgICAgICAqIGZ0
bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgor
ICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRG
R1RvTExWTTo6Y29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlVG9TdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpz
dHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNhbGxTdHJpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9zeW1ib2wtYW5kLXN0cmluZy1jb25zdHJ1Y3Rvci5qczogQWRkZWQuCisgICAgICAg
IChwZXJmb3JtU3RyaW5nKToKKwogMjAxNS0wNC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgImdvIGFoZWFkIGFuZCIgZnJvbSBjb21t
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDA1ZGU5MDkwMDNjYjdlNmE4ZDhjYWJmM2JlZThk
Y2Y2MWViYTY1OGIuLmE1NTJiY2I0YTU1MzI3ZDE2ZjcwZjUwMjBkNDAwZjc1NDkxNTViOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEyNjEsNyArMTI2MSw4IEBACiAgICAgICAgIGJyZWFrOwog
ICAgIH0KICAgICAgICAgCi0gICAgY2FzZSBUb1N0cmluZzogeworICAgIGNhc2UgVG9TdHJpbmc6
CisgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6IHsKICAgICAgICAgc3dpdGNoIChub2Rl
LT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6CiAg
ICAgICAgICAgICAvLyBUaGlzIGFsc28gZmlsdGVycyB0aGF0IHRoZSBTdHJpbmdPYmplY3QgaGFz
IHRoZSBwcmltb3JkaWFsIFN0cmluZ09iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNDNj
M2Q1ZDVjNDkyNTE5MzJiODRmM2ZmYzFlMjI2ZmM3MWNkY2U1Mi4uMjcxZGJjMmNkMzZmNjZhZGUy
OGQxZTI0OGI5Njc1YTAyMjNjMWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0zNDUsNyAr
MzQ1LDggQEAgY2xhc3MgQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgVG9TdHJpbmc6IHsKKyAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAgICAgICAgY2FzZSBDYWxs
U3RyaW5nQ29uc3RydWN0b3I6IHsKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5tZXJnZUZs
YWdzKE5vZGVCeXRlY29kZVVzZXNBc051bWJlciB8IE5vZGVCeXRlY29kZVVzZXNBc090aGVyKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGJlNDk0YzZmYTJjYTNmNjE4NGQwNzYy
MzljMGQyODhkYTJkZTI0MjkuLjc5NDU2NmZjYWRmM2M0NDcwYmUyOGYyMWQwNDJmZWY4MGI2Yjk4
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCkBAIC0yMTc3LDcgKzIxNzcsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVDb25z
dGFudEludGVybmFsRnVuY3Rpb24oCiAgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyA8PSAxKQogICAgICAgICAgICAgcmVzdWx0ID0ganNDb25zdGFudChtX3ZtLT5zbWFsbFN0
cmluZ3MuZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9
IGFkZFRvR3JhcGgoVG9TdHJpbmcsIGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCBy
ZWdpc3Rlck9mZnNldCkpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGFkZFRvR3JhcGgoQ2FsbFN0
cmluZ0NvbnN0cnVjdG9yLCBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQoMSwgcmVnaXN0
ZXJPZmZzZXQpKSk7CiAgICAgICAgIAogICAgICAgICBpZiAoa2luZCA9PSBDb2RlRm9yQ29uc3Ry
dWN0KQogICAgICAgICAgICAgcmVzdWx0ID0gYWRkVG9HcmFwaChOZXdTdHJpbmdPYmplY3QsIE9w
SW5mbyhmdW5jdGlvbi0+Z2xvYmFsT2JqZWN0KCktPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpKSwg
cmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJl
cml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXgg
NjE5NGU5OGM5NWZlMzBhYTI5MjQ4NTFiOGI4MDM5OGJiYTcxYTdhZC4uNDk3NjZjMDhjYTczMDc1
ZmIwNDQzZGY0MzZkNjZkNTcyMDJmNzg2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDbG9iYmVyaXplLmgKQEAgLTg5Nyw2ICs4OTcsNyBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgm
IGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVG
dQogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2Fz
ZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgICAgIHN3aXRjaCAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpKSB7CiAgICAgICAgIGNhc2UgU3RyaW5nT2JqZWN0VXNlOgogICAgICAgICBjYXNl
IFN0cmluZ09yU3RyaW5nT2JqZWN0VXNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwCmluZGV4IGFkZWUyZjU4YmNmMTM0OTZhM2RhMDZmNTE1YTY0Yzk4YTYxNzRmZWYuLjZl
ZDBmYmQ3NGI1MWZiNTY3N2Q5M2E2YjRhZDAwOGEwOTNkOGFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE0Myw2ICsxNDMsNyBAQCBib29sIGRvZXNHQyhH
cmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBMb2dpY2FsTm90OgogICAgIGNhc2Ug
VG9QcmltaXRpdmU6CiAgICAgY2FzZSBUb1N0cmluZzoKKyAgICBjYXNlIENhbGxTdHJpbmdDb25z
dHJ1Y3RvcjoKICAgICBjYXNlIEluOgogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDUzN2Zh
YWMzNDU1MWQ1NDVhYjZlMjAyNGM0ZjRkZTk3ZjdlZmZlMzcuLjllNTNhMTk2MmEyMTY5NzQ4NWYx
OGY2Njg4N2Q3MTI4YWEzMzNkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcApAQCAtNzY3LDggKzc2Nyw5IEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJs
aWMgUGhhc2UgewogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIFRvU3RyaW5nOiB7Ci0gICAgICAgICAgICBmaXh1cFRvU3RyaW5nKG5vZGUp
OworICAgICAgICBjYXNlIFRvU3RyaW5nOgorICAgICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1
Y3RvcjogeworICAgICAgICAgICAgZml4dXBUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9y
KG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAt
MTM2Myw3ICsxMzY0LDcgQEAgY2xhc3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgdm9pZCBmaXh1cFRvU3RyaW5nKE5vZGUqIG5vZGUpCisg
ICAgdm9pZCBmaXh1cFRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3IoTm9kZSogbm9kZSkK
ICAgICB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5n
KCkpIHsKICAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nVXNlPihub2RlLT5jaGlsZDEoKSk7CkBA
IC0xNDI0LDcgKzE0MjUsNyBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKICAg
ICAgICAgICAgICAgICBtX2luZGV4SW5CbG9jaywgU3BlY1N0cmluZywgVG9TdHJpbmcsIG5vZGUt
Pm9yaWdpbiwgRWRnZSh0b1ByaW1pdGl2ZSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBm
aXh1cFRvUHJpbWl0aXZlKHRvUHJpbWl0aXZlKTsKLSAgICAgICAgICAgIGZpeHVwVG9TdHJpbmco
dG9TdHJpbmcpOworICAgICAgICAgICAgZml4dXBUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVj
dG9yKHRvU3RyaW5nKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcmlnaHQuc2V0Tm9kZSh0
b1N0cmluZyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aAppbmRleCA1ZGMxZWI2Y2Q3NWIwNmFhYjFmNTY4NWJmMzNiNjA1NzY4NDEwMzZmLi4xZTc5ZDFh
MzE1YmQ2MTM3MGU0YjQwYTE4NWUyYmJhMDg1YTE5ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0yNjEsNiArMjYxLDcgQEAKICAgICBtYWNybyhMb2dpY2Fs
Tm90LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKFRvUHJpbWl0aXZlLCBOb2RlUmVz
dWx0SlMgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oVG9TdHJpbmcsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhDYWxsU3RyaW5nQ29uc3RydWN0
b3IsIE5vZGVSZXN1bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhOZXdTdHJp
bmdPYmplY3QsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE1ha2VSb3BlLCBOb2RlUmVzdWx0
SlMpIFwKICAgICBtYWNybyhJbiwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRl
KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCA3
NjE0ZTJiZThiNmI1NmUzNWY2OWVjY2IzNmFiNWJkYTMxODkzMjExLi5hMDcyNmMxNmM5YzhjZGIx
YjlmODMzNTg4NGExYzAwMDk2ZTE2YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAKQEAgLTEwMDYsNiArMTAwNiwyMiBAQCBKU0NlbGwqIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhleGVjKTsK
IH0KIAorSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rv
ck9uQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCkKK3sKKyAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsK
KworICAgIHJldHVybiBzdHJpbmdDb25zdHJ1Y3RvcihleGVjLCBjZWxsKTsKK30KKworSlNDZWxs
KiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOworCisgICAgcmV0
dXJuIHN0cmluZ0NvbnN0cnVjdG9yKGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkpOworfQor
CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUyKEV4ZWNTdGF0ZSogZXhl
YywgSlNTdHJpbmcqIGxlZnQsIEpTU3RyaW5nKiByaWdodCkKIHsKICAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBk
MTNlY2NmZjc1YzY1OTlkNTE2Y2EzMzQ5MmNkYzZjNjIyNDZhMjNhLi4xZDVhNzkyNDNlNGUwOTg2
YzZhZjA3ZjEwYTBkMTYxMjcwMWM3NTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaApAQCAtMTIxLDYgKzEyMSw4IEBACiBKU0NlbGwqIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uTmV3U3RyaW5nT2JqZWN0KEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgU3RydWN0dXJl
Kik7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwoRXhlY1N0
YXRlKiwgSlNDZWxsKik7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9TdHJpbmco
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOworSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbChFeGVjU3RhdGUqLCBKU0NlbGwqKTsKK0pT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1h
a2VSb3BlMihFeGVjU3RhdGUqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7CiBKU0NlbGwqIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uTWFrZVJvcGUzKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopOwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25GaW5kU3dpdGNo
SW1tVGFyZ2V0Rm9yRG91YmxlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBzaXplX3QgdGFi
bGVJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDA4MThmYTMwMDI0ZjJlYjgzNGNi
ZGEzMTQ4NzU4ZmFjNDI1YjUyNjkuLjE4ZTU2YjYyYTM4YjBkOWMzNGRlY2E0YjcxY2M5ZjhmMTE4
Y2NkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC00ODAsNiArNDgwLDcgQEAgY2xhc3Mg
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQXQ6CisgICAgICAgIGNh
c2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAgICAgICBjYXNlIFRvU3RyaW5nOgogICAgICAg
ICBjYXNlIE1ha2VSb3BlOiB7CiAgICAgICAgICAgICBjaGFuZ2VkIHw9IHNldFByZWRpY3Rpb24o
U3BlY1N0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oCmluZGV4IGY2Njc2ZGUzMGM4NWJiNjE0NThkMTMxOWNjOTBhMTZhNGExYjJkZjMuLmJlMjQz
ZDc1MWY4MGVkMWFmNDhiYzc2YjA2NWNlMzI1MjczYzJlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yMTksNiArMjE5LDcgQEAgYm9vbCBz
YWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlKQogICAgIGNhc2UgTG9naWNhbE5vdDoKICAgICBjYXNlIFRvUHJpbWl0aXZlOgogICAg
IGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBDYWxsU3RyaW5nQ29uc3RydWN0b3I6CiAgICAgY2Fz
ZSBOZXdTdHJpbmdPYmplY3Q6CiAgICAgY2FzZSBNYWtlUm9wZToKICAgICBjYXNlIEluOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAz
NGM1NDBhMzYxZTllZDc2M2Q2YTQ4ODNhN2Q1ZjdiZmJkYTY5ODYyLi40ZTVhZjE3ZDBlMDcyZTM2
ZDhjYzExOGIzZTJkNWI1ZDVlODg2NmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtNDg0OCw3ICs0ODQ4LDcgQEAgR1BSUmVnIFNw
ZWN1bGF0aXZlSklUOjp0ZW1wb3JhcnlSZWdpc3RlckZvclB1dEJ5VmFsKEdQUlRlbXBvcmFyeSYg
dGVtcG9yYXJ5LCBBcnIKICAgICByZXR1cm4gdGVtcG9yYXJ5LmdwcigpOwogfQogCi12b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlVG9TdHJpbmdPbkNlbGwoTm9kZSogbm9kZSkKK3ZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxs
KE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb3AxKHRoaXMsIG5vZGUt
PmNoaWxkMSgpKTsKICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwpAQCAtNDkwNiw3ICs0
OTA2LDEyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUb1N0cmluZ09uQ2VsbChOb2Rl
KiBub2RlKQogICAgICAgICAgICAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAgICAgICAgIG5l
ZWRDYWxsLmxpbmsoJm1faml0KTsKICAgICAgICAgfQotICAgICAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvblRvU3RyaW5nT25DZWxsLCByZXN1bHRHUFIsIG9wMUdQUik7CisgICAgICAgIGlmIChu
b2RlLT5vcCgpID09IFRvU3RyaW5nKQorICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25Ub1N0cmluZ09uQ2VsbCwgcmVzdWx0R1BSLCBvcDFHUFIpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09IENhbGxTdHJpbmdDb25zdHJ1Y3Rvcik7Cisg
ICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9u
Q2VsbCwgcmVzdWx0R1BSLCBvcDFHUFIpOworICAgICAgICB9CiAgICAgICAgIGlmIChkb25lLmlz
U2V0KCkpCiAgICAgICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAgICAgY2VsbFJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5oCmluZGV4IDllMDY0YjIzODI2NTYxOTJhZWY2NzQyMzZjMTIxMDIyYTZlNWEy
MzAuLjYwNWYyYmM1M2ViYjQ1MTU0ZTI2Y2Q3YzM4YTViNDJhZDk4MGVhZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTIxMzgsNyArMjEz
OCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lkIGVtaXRTd2l0Y2hTdHJpbmco
Tm9kZSosIFN3aXRjaERhdGEqKTsKICAgICB2b2lkIGVtaXRTd2l0Y2goTm9kZSopOwogICAgIAot
ICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nT25DZWxsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVU
b1N0cmluZ09yQ2FsbFN0cmluZ0NvbnN0cnVjdG9yT25DZWxsKE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVOZXdTdHJpbmdPYmplY3QoTm9kZSopOwogICAgIAogICAgIHZvaWQgY29tcGlsZU5ld1R5
cGVkQXJyYXkoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNmEwYjNhNGE5MzMwNzQxNGRhNjk5NTgxNDhj
YTZhNzgxOTU4ZGIyMC4uYTc2ZGE4NTY0N2ZlODg0MGVmZjY0YzQ5ZDcwODIyOGIxMjRkNDAzMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0zMDk4LDcgKzMwOTgsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCi0gICAgY2Fz
ZSBUb1N0cmluZzogeworICAgIGNhc2UgVG9TdHJpbmc6CisgICAgY2FzZSBDYWxsU3RyaW5nQ29u
c3RydWN0b3I6IHsKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBVbnR5
cGVkVXNlKSB7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICAgICAgR1BSUmVnIG9wMVBheWxvYWRHUFIgPSBvcDEucGF5bG9hZEdQ
UigpOwpAQCAtMzExOCwxNCArMzExOSwxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgc2xvd1BhdGgxLmxpbmsoJm1faml0KTsKICAg
ICAgICAgICAgICAgICBzbG93UGF0aDIubGluaygmbV9qaXQpOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZywgcmVzdWx0R1BSLCBvcDFU
YWdHUFIsIG9wMVBheWxvYWRHUFIpOworICAgICAgICAgICAgaWYgKG9wID09IFRvU3RyaW5nKQor
ICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmcsIHJlc3VsdEdQ
Uiwgb3AxVGFnR1BSLCBvcDFQYXlsb2FkR1BSKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIEFTU0VSVChvcCA9PSBDYWxsU3RyaW5nQ29uc3RydWN0b3IpOworICAgICAgICAg
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2FsbFN0cmluZ0NvbnN0cnVjdG9yLCByZXN1
bHRHUFIsIG9wMVRhZ0dQUiwgb3AxUGF5bG9hZEdQUik7CisgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICAgICAgICAgIGRvbmUubGluaygmbV9qaXQp
OwogICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGNvbXBpbGVUb1N0cmluZ09uQ2Vs
bChub2RlKTsKKyAgICAgICAgY29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3RydWN0b3JP
bkNlbGwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAwYzY3
ZTU0NGI5MWZiZjUxNjJhMWJmODc4NWY4MzNjOGVmNTM1YTBjLi42ODhiNjVkMzEwYTFhMTk4ZTE4
NmY0NWRjYzlmNzBiMWE4NDhkNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTMxODUsNyArMzE4NSw4IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQog
ICAgICAgICAKLSAgICBjYXNlIFRvU3RyaW5nOiB7CisgICAgY2FzZSBUb1N0cmluZzoKKyAgICBj
YXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjogewogICAgICAgICBpZiAobm9kZS0+Y2hpbGQxKCku
dXNlS2luZCgpID09IFVudHlwZWRVc2UpIHsKICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIG9w
MSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3Ax
LmdwcigpOwpAQCAtMzIwNCwxNCArMzIwNSwxOSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgc2xvd1BhdGgxLmxpbmsoJm1faml0KTsK
ICAgICAgICAgICAgICAgICBzbG93UGF0aDIubGluaygmbV9qaXQpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Ub1N0cmluZywgcmVzdWx0R1BSLCBv
cDFHUFIpOworICAgICAgICAgICAgaWYgKG9wID09IFRvU3RyaW5nKQorICAgICAgICAgICAgICAg
IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVG9TdHJpbmcsIHJlc3VsdEdQUiwgb3AxR1BSKTsKKyAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVChvcCA9PSBDYWxsU3RyaW5n
Q29uc3RydWN0b3IpOworICAgICAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uQ2Fs
bFN0cmluZ0NvbnN0cnVjdG9yLCByZXN1bHRHUFIsIG9wMUdQUik7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICAgICAgICAgIGRvbmUubGluaygm
bV9qaXQpOwogICAgICAgICAgICAgY2VsbFJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGNvbXBpbGVUb1N0cmlu
Z09uQ2VsbChub2RlKTsKKyAgICAgICAgY29tcGlsZVRvU3RyaW5nT3JDYWxsU3RyaW5nQ29uc3Ry
dWN0b3JPbkNlbGwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1N0cnVjdHVyZVJlZ2lzdHJhdGlv
blBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0
cmF0aW9uUGhhc2UuY3BwCmluZGV4IDRjODI3NmI5YzZjNDYyZmNmNDJkNWUxMjQ1NjEwNGFjODBh
NjNlNzkuLjI4NjQ2ZDEzZmNmNGM5NjVjNjIwZDAwMjExYjBkY2JmMDNiMzdjMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0cmF0aW9uUGhh
c2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RydWN0dXJlUmVnaXN0
cmF0aW9uUGhhc2UuY3BwCkBAIC0xMTEsNiArMTExLDcgQEAgY2xhc3MgU3RydWN0dXJlUmVnaXN0
cmF0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBUb1N0cmluZzoKKyAg
ICAgICAgICAgICAgICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoKICAgICAgICAgICAgICAg
ICAgICAgcmVnaXN0ZXJTdHJ1Y3R1cmUobV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3Jp
Z2luLnNlbWFudGljKS0+c3RyaW5nT2JqZWN0U3RydWN0dXJlKCkpOwogICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggODVkZTQ5Yjg5NjU4Y2Q3Y2NkMDk4MGI2
NDQ0NTAyZWRmNjExNmJlMy4uM2NkOTAyNDJmOTk2ZGYyNmQwY2Y3M2UyNzkwZTUzMThiZjkxYTVl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMTQ2LDYgKzE0Niw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2Rl
KiBub2RlKQogICAgIGNhc2UgR2V0Q2FsbGVlOgogICAgIGNhc2UgR2V0QXJndW1lbnRDb3VudDoK
ICAgICBjYXNlIFRvU3RyaW5nOgorICAgIGNhc2UgQ2FsbFN0cmluZ0NvbnN0cnVjdG9yOgogICAg
IGNhc2UgTWFrZVJvcGU6CiAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgIGNhc2UgR2V0
QnlJZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5j
cHAKaW5kZXggY2VhNTA5OTAyNDk5N2U1MGYxM2VlYzFhYzdlNDk0OTI5YWEwMjI0Ny4uMzhiOGFi
NTc0ZjRiNDBkZDZjMTY2YWEzZjA3YjdhMzdmNTc3MjVmMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTYzOSw3ICs2MzksOCBAQCBj
bGFzcyBMb3dlckRGR1RvTExWTSB7CiAgICAgICAgICAgICBjb21waWxlUmVhbGxvY2F0ZVByb3Bl
cnR5U3RvcmFnZSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9TdHJpbmc6
Ci0gICAgICAgICAgICBjb21waWxlVG9TdHJpbmcoKTsKKyAgICAgICAgY2FzZSBDYWxsU3RyaW5n
Q29uc3RydWN0b3I6CisgICAgICAgICAgICBjb21waWxlVG9TdHJpbmdPckNhbGxTdHJpbmdDb25z
dHJ1Y3RvcigpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVG9QcmltaXRpdmU6
CiAgICAgICAgICAgICBjb21waWxlVG9QcmltaXRpdmUoKTsKQEAgLTMyODgsNyArMzI4OSw3IEBA
IGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgICAgICBvYmplY3QsIG9sZFN0b3Jh
Z2UsIHRyYW5zaXRpb24tPnByZXZpb3VzLCB0cmFuc2l0aW9uLT5uZXh0KSk7CiAgICAgfQogICAg
IAotICAgIHZvaWQgY29tcGlsZVRvU3RyaW5nKCkKKyAgICB2b2lkIGNvbXBpbGVUb1N0cmluZ09y
Q2FsbFN0cmluZ0NvbnN0cnVjdG9yKCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5j
aGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICAgICAgY2FzZSBTdHJpbmdPYmplY3RVc2U6IHsKQEAg
LTMzNTYsOSArMzM1Nyw5IEBAIGNsYXNzIExvd2VyREZHVG9MTFZNIHsKICAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKG5vdFN0cmluZywgY29udGludWF0aW9uKTsKICAgICAgICAgICAgIExWYWx1
ZSBvcGVyYXRpb247CiAgICAgICAgICAgICBpZiAobV9ub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkg
PT0gQ2VsbFVzZSkKLSAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVyYXRpb24o
b3BlcmF0aW9uVG9TdHJpbmdPbkNlbGwpOworICAgICAgICAgICAgICAgIG9wZXJhdGlvbiA9IG1f
b3V0Lm9wZXJhdGlvbihtX25vZGUtPm9wKCkgPT0gVG9TdHJpbmcgPyBvcGVyYXRpb25Ub1N0cmlu
Z09uQ2VsbCA6IG9wZXJhdGlvbkNhbGxTdHJpbmdDb25zdHJ1Y3Rvck9uQ2VsbCk7CiAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb3BlcmF0aW9uID0gbV9vdXQub3BlcmF0aW9uKG9w
ZXJhdGlvblRvU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24gPSBtX291dC5vcGVy
YXRpb24obV9ub2RlLT5vcCgpID09IFRvU3RyaW5nID8gb3BlcmF0aW9uVG9TdHJpbmcgOiBvcGVy
YXRpb25DYWxsU3RyaW5nQ29uc3RydWN0b3IpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sg
Y29udmVydGVkUmVzdWx0ID0gbV9vdXQuYW5jaG9yKHZtQ2FsbChvcGVyYXRpb24sIG1fY2FsbEZy
YW1lLCB2YWx1ZSkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwogICAg
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYmVjYWNiZTY1NTkwNjJjZWZmM2I0ZmRkNDFhYWY5ODQ5YTM0
MTA1NC4uYTM5OTczZTFjNTU0MWU5MDM0Mzc4YTE5ZDhlZmM4OWM2MDhmNTMxNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApA
QCAtMTA2LDE0ICsxMDYsMTggQEAgQ29uc3RydWN0VHlwZSBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJiBjb25zdHIKICAgICByZXR1cm4g
Q29uc3RydWN0VHlwZUhvc3Q7CiB9CiAKK0pTQ2VsbCogc3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIGFyZ3VtZW50KQoreworICAgIGlmIChhcmd1bWVudC5pc1N5bWJv
bCgpKQorICAgICAgICByZXR1cm4ganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIGFzU3ltYm9sKGFy
Z3VtZW50KS0+ZGVzY3JpcHRpdmVTdHJpbmcoKSk7CisgICAgcmV0dXJuIGFyZ3VtZW50LnRvU3Ry
aW5nKGV4ZWMpOworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
U3RyaW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQogewogICAgIGlmICghZXhlYy0+YXJn
dW1lbnRDb3VudCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRW1wdHlTdHJp
bmcoZXhlYykpOwotICAgIEpTVmFsdWUgYXJndW1lbnQgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dCgwKTsKLSAgICBpZiAoYXJndW1lbnQuaXNTeW1ib2woKSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBhc1N5bWJvbChhcmd1bWVudCktPmRlc2NyaXB0aXZl
U3RyaW5nKCkpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3VtZW50LnRvU3RyaW5n
KGV4ZWMpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHN0cmluZ0NvbnN0cnVjdG9yKGV4
ZWMsIGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSk7CiB9CiAKIENhbGxUeXBlIFN0cmluZ0Nv
bnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRl
eCBlOGJjZWZkYWNmOWNhNWFmMzAzZGM0NWQ1MDZkYmFjMzJlYTRmZGY2Li4wMDg2YTZiOGJiOGM2
YjY1ZDlmZTliOTY0MTIxZGUwYjkyMzIyZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTU2LDggKzU2LDkgQEAgY2xhc3Mg
U3RyaW5nQ29uc3RydWN0b3IgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAKICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogfTsKLSAgICAKKwogSlNDZWxsKiBKU0NfSE9TVF9DQUxM
IHN0cmluZ0Zyb21DaGFyQ29kZShFeGVjU3RhdGUqLCBpbnQzMl90KTsKK0pTQ2VsbCogc3RyaW5n
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3N5bWJvbC1h
bmQtc3RyaW5nLWNvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9zeW1ib2wtYW5kLXN0cmluZy1jb25zdHJ1Y3Rvci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTg4ZTg2
M2FiNTExM2YzOWFjMjYzZTk2OTM2NWZiM2U5MDdkNDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zeW1ib2wtYW5kLXN0cmluZy1jb25zdHJ1
Y3Rvci5qcwpAQCAtMCwwICsxLDEwIEBACitmdW5jdGlvbiBwZXJmb3JtU3RyaW5nKHZhbHVlKSB7
CisgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7Cit9Citub0lubGluZShwZXJmb3JtU3RyaW5nKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IHBl
cmZvcm1TdHJpbmcoU3ltYm9sLml0ZXJhdG9yKTsKKyAgICBpZiAocmVzdWx0ICE9PSAnU3ltYm9s
KFN5bWJvbC5pdGVyYXRvciknKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTog
JyArIHJlc3VsdCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>