<?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>104230</bug_id>
          
          <creation_ts>2012-12-05 23:58:58 -0800</creation_ts>
          <short_desc>[V8] Implement v8StringWithoutIsolate()</short_desc>
          <delta_ts>2012-12-06 01:21:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784681</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-05 23:58:58 -0800</bug_when>
    <thetext>To make an Isolate mandatory in v8String(), we implement v8StringWithoutIsolate() for call sites that don&apos;t have an Isolate. Eventually we want to kill the method though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784683</commentid>
    <comment_count>1</comment_count>
      <attachid>177955</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 00:02:10 -0800</bug_when>
    <thetext>Created attachment 177955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784707</commentid>
    <comment_count>2</comment_count>
      <attachid>177955</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-06 00:35:17 -0800</bug_when>
    <thetext>Comment on attachment 177955
Patch

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

Same comment about using the word &quot;deprecated&quot;

&gt; Source/WebCore/bindings/v8/Dictionary.cpp:105
&gt; +    ASSERT(m_isolate);

Oh, it looks like we do have an m_isolate for Dictionary.  We should use that in the integer patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784709</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 00:35:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177955 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177955&amp;action=review
&gt; 
&gt; Same comment about using the word &quot;deprecated&quot;

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784744</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-06 01:20:09 -0800</bug_when>
    <thetext>Committed r136822: &lt;http://trac.webkit.org/changeset/136822&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177955</attachid>
            <date>2012-12-06 00:02:10 -0800</date>
            <delta_ts>2012-12-06 01:21:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104230-20121206165935.patch</filename>
            <type>text/plain</type>
            <size>31645</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2Nzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ1OGU5NjliMjEzODgw
ZjI2ODQ2Njc5Y2ZkNmU1NWZiNzZlZTkyYy4uZTM1ZDA1YzIxZTM0ZGVlNTM3MGJkMWY2MDE1Y2Zj
NWMwMWJkMDM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc3IEBACiAyMDEyLTEyLTA1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbVjhdIEltcGxlbWVu
dCB2OFN0cmluZ1dpdGhvdXRJc29sYXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDIzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRvIG1ha2UgYW4gSXNvbGF0ZSBtYW5kYXRvcnkgaW4gdjhTdHJp
bmcoKSwgd2UgaW1wbGVtZW50CisgICAgICAgIHY4U3RyaW5nV2l0aG91dElzb2xhdGUoKSBmb3Ig
Y2FsbCBzaXRlcyB0aGF0IGRvbid0IGhhdmUKKyAgICAgICAgYW4gSXNvbGF0ZS4gRXZlbnR1YWxs
eSB3ZSB3YW50IHRvIGtpbGwgdGhlIG1ldGhvZCB0aG91Z2guCisKKyAgICAgICAgTm8gdGVzdHMu
IE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RDYWxsYmFjay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RDYWxsYmFj
azo6Y2FsbGJhY2tXaXRoQ2xhc3MyUGFyYW0pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RpY3Rp
b25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6Z2V0S2V5KToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SmF2YVNjcmlwdENh
bGxGcmFtZTo6ZXZhbHVhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y29tcGlsZUFuZFJ1
blNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpiaW5kVG9XaW5k
b3dPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2
YWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpzZXRCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpyZW1vdmVCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpzZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmVuc3VyZURlYnVnZ2VyU2NyaXB0Q29tcGlsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6OmNvbXBpbGVTY3JpcHQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRDYWxsQXJndW1lbnRIYW5kbGVyOjphcHBlbmRBcmd1bWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RnVuY3Rpb25DYWxsOjpjb25zdHJ1Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdFByb2ZpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFByb2ZpbGVyOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6c3RvcCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvU2NyaXB0U291cmNlQ29kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRTb3VyY2VDb2RlOjpjb21waWxlU2NyaXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEJp
bmRpbmcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6djhTdHJpbmdX
aXRob3V0SXNvbGF0ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbml0aWFsaXplSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6bmFtZWRJdGVtQWRkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6bmFtZWRJdGVtUmVtb3ZlZCk6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOExhenlFdmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4V2luZG93RXJyb3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4V29ya2VyQ29udGV4dEVycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVy
RnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppbnN0YWxsSGlkZGVuQ29weU1ldGhvZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb3B5RWxlbWVudHMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEV2ZW50TGlzdGVuZXJzQ2FsbGJhY2spOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNyZWF0ZUluamVjdGVkU2Ny
aXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRl
cik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnNDYWxs
YmFjayk6CisKKzIwMTItMTItMDUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgorCiAgICAgICAgIFtWOF0gT3B0aW1pemUgdjhTdHJpbmdPck51bGwoKSBhbmQgdjhTdHJpbmdP
clVuZGVmaW5lZCgpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDQyMDYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RDYWxsYmFjay5jcHAKaW5kZXggMzMyZTQ3MGNjZDQ3YTQ0NmJi
ZThjMzI2ZmY1MWFmMTNhOTA0ZjY1OC4uMGNkMWQyZjBmZjk5ZGFkMzQ4OTJiMzBjYWQ3ODc0ZGI2
NjA1NzVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdENhbGxiYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0Q2FsbGJhY2suY3BwCkBAIC0xMjMsNyArMTIzLDcgQEAgYm9vbCBW
OFRlc3RDYWxsYmFjazo6Y2FsbGJhY2tXaXRoQ2xhc3MyUGFyYW0oQ2xhc3MyKiBjbGFzczJQYXJh
bSwgY29uc3QgU3RyaW5nJgogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJBcmdIYW5kbGUgPSB2OFN0
cmluZyhzdHJBcmcpOworICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJBcmdIYW5kbGUgPSB2
OFN0cmluZ1dpdGhvdXRJc29sYXRlKHN0ckFyZyk7CiAgICAgaWYgKHN0ckFyZ0hhbmRsZS5Jc0Vt
cHR5KCkpIHsKICAgICAgICAgaWYgKCFpc1NjcmlwdENvbnRyb2xsZXJUZXJtaW5hdGluZygpKQog
ICAgICAgICAgICAgQ1JBU0goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFy
eS5jcHAKaW5kZXggZTVjZDRkMjExNTU3MTBjZGFiNzQxYWNhZTdlOTUxMjc5NDk0YmU3Yy4uMTU2
OTE0MzYwN2M3NjgzZmMyZDExZTQxZTA0MDViN2NlMjNiYzc3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTEwMiw3ICsxMDIsOSBAQCBib29sIERpY3Rp
b25hcnk6OmdldEtleShjb25zdCBTdHJpbmcmIGtleSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4mIHZh
bHVlKSBjb25zdAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBvcHRpb25zID0gbV9vcHRpb25z
LT5Ub09iamVjdCgpOwogICAgIEFTU0VSVCghb3B0aW9ucy5Jc0VtcHR5KCkpOwogCi0gICAgdjg6
OkhhbmRsZTx2ODo6U3RyaW5nPiB2OEtleSA9IHY4U3RyaW5nKGtleSk7CisgICAgQVNTRVJUKG1f
aXNvbGF0ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSA9PSB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVu
dCgpKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHY4S2V5ID0gdjhTdHJpbmcoa2V5LCBt
X2lzb2xhdGUpOwogICAgIGlmICghb3B0aW9ucy0+SGFzKHY4S2V5KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHZhbHVlID0gb3B0aW9ucy0+R2V0KHY4S2V5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggNzEyNjFh
YjZlNDdlY2I0MjE2OWQ4NzZiNDU1ZjdiZmUzMWQ3ZDdmMS4uNTQwZDZjMThhYzRhMjUxNjU4ZjEy
NTNjZjA0ZTRkOThkOGJiNmFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgYm9v
bCBnZXQodjg6OkhhbmRsZTx2ODo6VmFsdWU+JiBvYmplY3QsIGNvbnN0IFN0cmluZyYga2V5UGF0
aEVsZW1lbnQsIHY4OgogICAgICAgICByZXN1bHQgPSB2ODo6TnVtYmVyOjpOZXcobGVuZ3RoKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBvYmplY3QtPklzT2JqZWN0
KCkgJiYgZ2V0VmFsdWVGcm9tKHY4U3RyaW5nKGtleVBhdGhFbGVtZW50KSwgcmVzdWx0KTsKKyAg
ICByZXR1cm4gb2JqZWN0LT5Jc09iamVjdCgpICYmIGdldFZhbHVlRnJvbSh2OFN0cmluZ1dpdGhv
dXRJc29sYXRlKGtleVBhdGhFbGVtZW50KSwgcmVzdWx0KTsKIH0KIAogc3RhdGljIGJvb2wgY2Fu
U2V0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgb2JqZWN0LCBjb25zdCBTdHJpbmcmIGtleVBhdGhF
bGVtZW50KQpAQCAtMTE4LDcgKzExOCw3IEBAIHN0YXRpYyBib29sIGNhblNldCh2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4mIG9iamVjdCwgY29uc3QgU3RyaW5nJiBrZXlQYXRoRWxlbWVudCkKIAogc3Rh
dGljIGJvb2wgc2V0KHY4OjpIYW5kbGU8djg6OlZhbHVlPiYgb2JqZWN0LCBjb25zdCBTdHJpbmcm
IGtleVBhdGhFbGVtZW50LCBjb25zdCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4mIHY4VmFsdWUpCiB7
Ci0gICAgcmV0dXJuIGNhblNldChvYmplY3QsIGtleVBhdGhFbGVtZW50KSAmJiBzZXRWYWx1ZShv
YmplY3QsIHY4U3RyaW5nKGtleVBhdGhFbGVtZW50KSwgdjhWYWx1ZSk7CisgICAgcmV0dXJuIGNh
blNldChvYmplY3QsIGtleVBhdGhFbGVtZW50KSAmJiBzZXRWYWx1ZShvYmplY3QsIHY4U3RyaW5n
V2l0aG91dElzb2xhdGUoa2V5UGF0aEVsZW1lbnQpLCB2OFZhbHVlKTsKIH0KIAogc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBnZXROdGhWYWx1ZU9uS2V5UGF0aCh2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4mIHJvb3RWYWx1ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGtleVBhdGhFbGVtZW50cywg
c2l6ZV90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSmF2
YVNjcmlwdENhbGxGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2Ny
aXB0Q2FsbEZyYW1lLmNwcAppbmRleCA4ODY1MmM4Mzg1Y2M5NjQ5MTU1ZTI4NmM3ZmRhNzdmMDY0
ZGYxZjQzLi4yZjA2NmY2MmFhNTlhZmVjYmVmM2JkMmYyN2RjNDc1N2NhYTNlNjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9KYXZhU2NyaXB0Q2FsbEZyYW1lLmNwcApA
QCAtMTIxLDcgKzEyMSw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBKYXZhU2NyaXB0Q2FsbEZy
YW1lOjp0aGlzT2JqZWN0KCkgY29uc3QKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBKYXZhU2NyaXB0
Q2FsbEZyYW1lOjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCiB7CiAgICAgdjg6
OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGV2YWxGdW5jdGlvbiA9IHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uPjo6Q2FzdChtX2NhbGxGcmFtZS5nZXQoKS0+R2V0KHY4U3RyaW5nKCJldmFsdWF0ZSIpKSk7
Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgdjhTdHJpbmcoZXhwcmVzc2lv
bikgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0geyB2OFN0cmluZ1dpdGhv
dXRJc29sYXRlKGV4cHJlc3Npb24pIH07CiAgICAgcmV0dXJuIGV2YWxGdW5jdGlvbi0+Q2FsbCht
X2NhbGxGcmFtZS5nZXQoKSwgMSwgYXJndik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZWMxMDViNzA0YThmZjE3YjY1ZWVl
ZTMwNmYxZTIzYWZjOGJlNjIzNS4uZWI4YzhiNDEzZTliMzY4N2E2MDA3NjY5NGQ3YzQyODA3ZjAz
NTJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTI2Miw3ICsyNjIsNyBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBTY3JpcHRDb250
cm9sbGVyOjpjb21waWxlQW5kUnVuU2NyaXB0KGNvbnN0IFNjcmlwdFNvdXJjZUNvZAogICAgICAg
ICB0cnlDYXRjaC5TZXRWZXJib3NlKHRydWUpOwogCiAgICAgICAgIC8vIENvbXBpbGUgdGhlIHNj
cmlwdC4KLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlID0gdjhTdHJpbmcoc291
cmNlLnNvdXJjZSgpKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBjb2RlID0gdjhT
dHJpbmdXaXRob3V0SXNvbGF0ZShzb3VyY2Uuc291cmNlKCkpOwogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQogICAgICAgICBUUkFDRV9FVkVOVF9CRUdJTjAoInY4IiwgInY4LmNvbXBpbGUiKTsKICNl
bmRpZgpAQCAtNDkxLDcgKzQ5MSw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6YmluZFRvV2lu
ZG93T2JqZWN0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBrZXksIE5QT2JqCiAKICAgICAv
LyBBdHRhY2ggdG8gdGhlIGdsb2JhbCBvYmplY3QuCiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBnbG9iYWwgPSB2OENvbnRleHQtPkdsb2JhbCgpOwotICAgIGdsb2JhbC0+U2V0KHY4U3RyaW5n
KGtleSksIHZhbHVlKTsKKyAgICBnbG9iYWwtPlNldCh2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGtl
eSksIHZhbHVlKTsKIH0KIAogYm9vbCBTY3JpcHRDb250cm9sbGVyOjpoYXZlSW50ZXJwcmV0ZXIo
KSBjb25zdApAQCAtNTE0LDcgKzUxNCw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJs
ZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhh
bmRsZVNjb3BlOwogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IG1fd2lu
ZG93U2hlbGwtPmNvbnRleHQoKTsKICAgICB2OENvbnRleHQtPkFsbG93Q29kZUdlbmVyYXRpb25G
cm9tU3RyaW5ncyhmYWxzZSk7Ci0gICAgdjhDb250ZXh0LT5TZXRFcnJvck1lc3NhZ2VGb3JDb2Rl
R2VuZXJhdGlvbkZyb21TdHJpbmdzKHY4U3RyaW5nKGVycm9yTWVzc2FnZSkpOworICAgIHY4Q29u
dGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9yQ29kZUdlbmVyYXRpb25Gcm9tU3RyaW5ncyh2OFN0cmlu
Z1dpdGhvdXRJc29sYXRlKGVycm9yTWVzc2FnZSkpOwogfQogCiBQYXNzU2NyaXB0SW5zdGFuY2Ug
U2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlU2NyaXB0SW5zdGFuY2VGb3JXaWRnZXQoV2lkZ2V0KiB3
aWRnZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZjYwNjA5NTYxNzM2NTA1YzA5YTBjZDYwNTg4YTU3M2U2MDJjYTM4ZC4uZmQx
YjM2YTQwMDk3OGVjZjJlY2RhODJmZDRlOTQ0OGMyNWEzZGRmOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNzgsMTAgKzc4LDEw
IEBAIFN0cmluZyBTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0QnJlYWtwb2ludChjb25zdCBTdHJpbmcm
IHNvdXJjZUlELCBjb25zdCBTY3JpcHRCcmVhCiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRl
eHRTY29wZShkZWJ1Z2dlckNvbnRleHQpOwogCiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGFy
Z3MgPSB2ODo6T2JqZWN0OjpOZXcoKTsKLSAgICBhcmdzLT5TZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJzb3VyY2VJRCIpLCB2OFN0cmluZyhzb3VyY2VJRCkpOworICAgIGFyZ3MtPlNldCh2ODo6
U3RyaW5nOjpOZXdTeW1ib2woInNvdXJjZUlEIiksIHY4U3RyaW5nV2l0aG91dElzb2xhdGUoc291
cmNlSUQpKTsKICAgICBhcmdzLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJsaW5lTnVtYmVy
IiksIHY4SW50ZWdlcihzY3JpcHRCcmVha3BvaW50LmxpbmVOdW1iZXIpKTsKICAgICBhcmdzLT5T
ZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJjb2x1bW5OdW1iZXIiKSwgdjhJbnRlZ2VyKHNjcmlw
dEJyZWFrcG9pbnQuY29sdW1uTnVtYmVyKSk7Ci0gICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5l
d1N5bWJvbCgiY29uZGl0aW9uIiksIHY4U3RyaW5nKHNjcmlwdEJyZWFrcG9pbnQuY29uZGl0aW9u
KSk7CisgICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29uZGl0aW9uIiksIHY4
U3RyaW5nV2l0aG91dElzb2xhdGUoc2NyaXB0QnJlYWtwb2ludC5jb25kaXRpb24pKTsKIAogICAg
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBzZXRCcmVha3BvaW50RnVuY3Rpb24gPSB2ODo6TG9j
YWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChtX2RlYnVnZ2VyU2NyaXB0LmdldCgpLT5HZXQodjg6OlN0
cmluZzo6TmV3U3ltYm9sKCJzZXRCcmVha3BvaW50IikpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gYnJlYWtwb2ludElkID0gdjg6OkRlYnVnOjpDYWxsKHNldEJyZWFrcG9pbnRGdW5jdGlv
biwgYXJncyk7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92
ZUJyZWFrcG9pbnQoY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQpCiAgICAgdjg6OkNvbnRleHQ6
OlNjb3BlIGNvbnRleHRTY29wZShkZWJ1Z2dlckNvbnRleHQpOwogCiAgICAgdjg6OkxvY2FsPHY4
OjpPYmplY3Q+IGFyZ3MgPSB2ODo6T2JqZWN0OjpOZXcoKTsKLSAgICBhcmdzLT5TZXQodjg6OlN0
cmluZzo6TmV3U3ltYm9sKCJicmVha3BvaW50SWQiKSwgdjhTdHJpbmcoYnJlYWtwb2ludElkKSk7
CisgICAgYXJncy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiYnJlYWtwb2ludElkIiksIHY4
U3RyaW5nV2l0aG91dElzb2xhdGUoYnJlYWtwb2ludElkKSk7CiAKICAgICB2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvbj4gcmVtb3ZlQnJlYWtwb2ludEZ1bmN0aW9uID0gdjg6OkxvY2FsPHY4OjpGdW5j
dGlvbj46OkNhc3QobV9kZWJ1Z2dlclNjcmlwdC5nZXQoKS0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbCgicmVtb3ZlQnJlYWtwb2ludCIpKSk7CiAgICAgdjg6OkRlYnVnOjpDYWxsKHJlbW92ZUJy
ZWFrcG9pbnRGdW5jdGlvbiwgYXJncyk7CkBAIC0yMzEsNyArMjMxLDcgQEAgYm9vbCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6c2V0U2NyaXB0U291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNvbnN0
IFN0cmluZyYgbmUKICAgICBpZiAoIWlzUGF1c2VkKCkpCiAgICAgICAgIGNvbnRleHRTY29wZSA9
IGFkb3B0UHRyKG5ldyB2ODo6Q29udGV4dDo6U2NvcGUodjg6OkRlYnVnOjpHZXREZWJ1Z0NvbnRl
eHQoKSkpOwogCi0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgdjhTdHJpbmco
c291cmNlSUQpLCB2OFN0cmluZyhuZXdDb250ZW50KSwgdjhCb29sZWFuKHByZXZpZXcpIH07Cisg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgdjhTdHJpbmdXaXRob3V0SXNvbGF0
ZShzb3VyY2VJRCksIHY4U3RyaW5nV2l0aG91dElzb2xhdGUobmV3Q29udGVudCksIHY4Qm9vbGVh
bihwcmV2aWV3KSB9OwogCiAgICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoOwogICAgIHRyeUNhdGNo
LlNldFZlcmJvc2UoZmFsc2UpOwpAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OmVuc3VyZURlYnVnZ2VyU2NyaXB0Q29tcGlsZWQoKQogICAgICAgICB2ODo6Q29udGV4
dDo6U2NvcGUgY29udGV4dFNjb3BlKGRlYnVnZ2VyQ29udGV4dCk7CiAgICAgICAgIFN0cmluZyBk
ZWJ1Z2dlclNjcmlwdFNvdXJjZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihEZWJ1Z2dl
clNjcmlwdFNvdXJjZV9qcyksIHNpemVvZihEZWJ1Z2dlclNjcmlwdFNvdXJjZV9qcykpOwogICAg
ICAgICBWOFJlY3Vyc2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiByZWN1cnNpb25TY29w
ZTsKLSAgICAgICAgbV9kZWJ1Z2dlclNjcmlwdC5zZXQodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6
Q2FzdCh2ODo6U2NyaXB0OjpDb21waWxlKHY4U3RyaW5nKGRlYnVnZ2VyU2NyaXB0U291cmNlKSkt
PlJ1bigpKSk7CisgICAgICAgIG1fZGVidWdnZXJTY3JpcHQuc2V0KHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3Qodjg6OlNjcmlwdDo6Q29tcGlsZSh2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGRl
YnVnZ2VyU2NyaXB0U291cmNlKSktPlJ1bigpKSk7CiAgICAgfQogfQogCkBAIC00MzUsMTAgKzQz
NSwxMCBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpjb21waWxlU2NyaXB0KFNjcmlwdFN0YXRl
KiBzdGF0ZSwgY29uc3QgU3RyaW5nJiBleHByZXNzaQogICAgICAgICByZXR1cm47CiAgICAgdjg6
OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKIAotICAgIHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gY29kZSA9IHY4U3RyaW5nKGV4cHJlc3Npb24pOworICAgIHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gY29kZSA9IHY4U3RyaW5nV2l0aG91dElzb2xhdGUoZXhwcmVzc2lvbik7CiAg
ICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoOwogCi0gICAgdjg6OlNjcmlwdE9yaWdpbiBvcmlnaW4o
djhTdHJpbmcoc291cmNlVVJMKSwgdjhJbnRlZ2VyKDApLCB2OEludGVnZXIoMCkpOworICAgIHY4
OjpTY3JpcHRPcmlnaW4gb3JpZ2luKHY4U3RyaW5nV2l0aG91dElzb2xhdGUoc291cmNlVVJMKSwg
djhJbnRlZ2VyKDApLCB2OEludGVnZXIoMCkpOwogICAgIHY4OjpIYW5kbGU8djg6OlNjcmlwdD4g
c2NyaXB0ID0gdjg6OlNjcmlwdDo6TmV3KGNvZGUsICZvcmlnaW4pOwogCiAgICAgaWYgKHRyeUNh
dGNoLkhhc0NhdWdodCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RnVuY3Rpb25DYWxsLmNwcAppbmRleCBkOWIyMDBkYTUyOTI4MTBjN2NkNGU4OWIwNTFiODg2
OWI1NGE3NjVlLi5hNmRlYWZhNzU0OWY4NzM5OTYyODMxZjBjMDk1Mjg0NjEwMzJkN2VjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRGdW5jdGlvbkNhbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAK
QEAgLTYyLDEzICs2MiwxMyBAQCB2b2lkIFNjcmlwdENhbGxBcmd1bWVudEhhbmRsZXI6OmFwcGVu
ZEFyZ3VtZW50KGNvbnN0IFNjcmlwdFZhbHVlJiBhcmd1bWVudCkKIHZvaWQgU2NyaXB0Q2FsbEFy
Z3VtZW50SGFuZGxlcjo6YXBwZW5kQXJndW1lbnQoY29uc3QgU3RyaW5nJiBhcmd1bWVudCkKIHsK
ICAgICBTY3JpcHRTY29wZSBzY29wZShtX3NjcmlwdFN0YXRlKTsKLSAgICBtX2FyZ3VtZW50cy5h
cHBlbmQodjhTdHJpbmcoYXJndW1lbnQpKTsKKyAgICBtX2FyZ3VtZW50cy5hcHBlbmQodjhTdHJp
bmdXaXRob3V0SXNvbGF0ZShhcmd1bWVudCkpOwogfQogCiB2b2lkIFNjcmlwdENhbGxBcmd1bWVu
dEhhbmRsZXI6OmFwcGVuZEFyZ3VtZW50KGNvbnN0IGNoYXIqIGFyZ3VtZW50KQogewogICAgIFNj
cmlwdFNjb3BlIHNjb3BlKG1fc2NyaXB0U3RhdGUpOwotICAgIG1fYXJndW1lbnRzLmFwcGVuZCh2
OFN0cmluZyhhcmd1bWVudCkpOworICAgIG1fYXJndW1lbnRzLmFwcGVuZCh2OFN0cmluZ1dpdGhv
dXRJc29sYXRlKGFyZ3VtZW50KSk7CiB9CiAKIHZvaWQgU2NyaXB0Q2FsbEFyZ3VtZW50SGFuZGxl
cjo6YXBwZW5kQXJndW1lbnQobG9uZyBhcmd1bWVudCkKQEAgLTExOCw3ICsxMTgsNyBAQCBTY3Jp
cHRWYWx1ZSBTY3JpcHRGdW5jdGlvbkNhbGw6OmNhbGwoYm9vbCYgaGFkRXhjZXB0aW9uLCBib29s
IHJlcG9ydEV4Y2VwdGlvbnMpCiAgICAgU2NyaXB0U2NvcGUgc2NvcGUobV9zY3JpcHRTdGF0ZSwg
cmVwb3J0RXhjZXB0aW9ucyk7CiAKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gdGhpc09iamVj
dCA9IG1fdGhpc09iamVjdC52OE9iamVjdCgpOwotICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlID0gdGhpc09iamVjdC0+R2V0KHY4U3RyaW5nKG1fbmFtZSkpOworICAgIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlID0gdGhpc09iamVjdC0+R2V0KHY4U3RyaW5nV2l0aG91dElzb2xhdGUo
bV9uYW1lKSk7CiAgICAgaWYgKCFzY29wZS5zdWNjZXNzKCkpIHsKICAgICAgICAgaGFkRXhjZXB0
aW9uID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CkBAIC0xNTUsNyArMTU1
LDcgQEAgU2NyaXB0T2JqZWN0IFNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y29uc3RydWN0KGJvb2wmIGhh
ZEV4Y2VwdGlvbiwgYm9vbCByZXBvcnRFeGNlcHQKICAgICBTY3JpcHRTY29wZSBzY29wZShtX3Nj
cmlwdFN0YXRlLCByZXBvcnRFeGNlcHRpb25zKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiB0aGlzT2JqZWN0ID0gbV90aGlzT2JqZWN0LnY4T2JqZWN0KCk7Ci0gICAgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUgPSB0aGlzT2JqZWN0LT5HZXQodjhTdHJpbmcobV9uYW1lKSk7CisgICAg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUgPSB0aGlzT2JqZWN0LT5HZXQodjhTdHJpbmdXaXRo
b3V0SXNvbGF0ZShtX25hbWUpKTsKICAgICBpZiAoIXNjb3BlLnN1Y2Nlc3MoKSkgewogICAgICAg
ICBoYWRFeGNlcHRpb24gPSB0cnVlOwogICAgICAgICByZXR1cm4gU2NyaXB0T2JqZWN0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKaW5kZXggMzk1
NjI0NDg2MDhkNTZiNDBiYTdkZjM0OTIyZDI2NGRmYzdmNDdmMC4uNjU3NWE4YTlhOTMwMzRkYTQ5
MmMwYWQ4Yzk1Y2ZmNGE4MDEwZTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiB2b2lkIFNjcmlwdFByb2ZpbGVyOjpzdGFydChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIGhzOwotICAgIHY4OjpDcHVQcm9m
aWxlcjo6U3RhcnRQcm9maWxpbmcodjhTdHJpbmcodGl0bGUpKTsKKyAgICB2ODo6Q3B1UHJvZmls
ZXI6OlN0YXJ0UHJvZmlsaW5nKHY4U3RyaW5nV2l0aG91dElzb2xhdGUodGl0bGUpKTsKIH0KIAog
dm9pZCBTY3JpcHRQcm9maWxlcjo6c3RhcnRGb3JQYWdlKFBhZ2UqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQpAQCAtNjcsOCArNjcsOCBAQCBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IFNjcmlwdFBy
b2ZpbGVyOjpzdG9wKFNjcmlwdFN0YXRlKiBzdGF0ZSwgY29uc3QgU3RyaW5nJgogewogICAgIHY4
OjpIYW5kbGVTY29wZSBoczsKICAgICBjb25zdCB2ODo6Q3B1UHJvZmlsZSogcHJvZmlsZSA9IHN0
YXRlID8KLSAgICAgICAgdjg6OkNwdVByb2ZpbGVyOjpTdG9wUHJvZmlsaW5nKHY4U3RyaW5nKHRp
dGxlKSwgc3RhdGUtPmNvbnRleHQoKS0+R2V0U2VjdXJpdHlUb2tlbigpKSA6Ci0gICAgICAgIHY4
OjpDcHVQcm9maWxlcjo6U3RvcFByb2ZpbGluZyh2OFN0cmluZyh0aXRsZSkpOworICAgICAgICB2
ODo6Q3B1UHJvZmlsZXI6OlN0b3BQcm9maWxpbmcodjhTdHJpbmdXaXRob3V0SXNvbGF0ZSh0aXRs
ZSksIHN0YXRlLT5jb250ZXh0KCktPkdldFNlY3VyaXR5VG9rZW4oKSkgOgorICAgICAgICB2ODo6
Q3B1UHJvZmlsZXI6OlN0b3BQcm9maWxpbmcodjhTdHJpbmdXaXRob3V0SXNvbGF0ZSh0aXRsZSkp
OwogICAgIHJldHVybiBwcm9maWxlID8gU2NyaXB0UHJvZmlsZTo6Y3JlYXRlKHByb2ZpbGUpIDog
MDsKIH0KIApAQCAtMTUyLDcgKzE1Miw3IEBAIFBhc3NSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90
PiBTY3JpcHRQcm9maWxlcjo6dGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJpbmcmIHRpCiAgICAg
djg6OkhhbmRsZVNjb3BlIGhzOwogICAgIEFTU0VSVChjb250cm9sKTsKICAgICBBY3Rpdml0eUNv
bnRyb2xBZGFwdGVyIGFkYXB0ZXIoY29udHJvbCk7Ci0gICAgY29uc3Qgdjg6OkhlYXBTbmFwc2hv
dCogc25hcHNob3QgPSB2ODo6SGVhcFByb2ZpbGVyOjpUYWtlU25hcHNob3QodjhTdHJpbmcodGl0
bGUpLCB2ODo6SGVhcFNuYXBzaG90OjprRnVsbCwgJmFkYXB0ZXIpOworICAgIGNvbnN0IHY4OjpI
ZWFwU25hcHNob3QqIHNuYXBzaG90ID0gdjg6OkhlYXBQcm9maWxlcjo6VGFrZVNuYXBzaG90KHY4
U3RyaW5nV2l0aG91dElzb2xhdGUodGl0bGUpLCB2ODo6SGVhcFNuYXBzaG90OjprRnVsbCwgJmFk
YXB0ZXIpOwogICAgIHJldHVybiBzbmFwc2hvdCA/IFNjcmlwdEhlYXBTbmFwc2hvdDo6Y3JlYXRl
KHNuYXBzaG90KSA6IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdFNvdXJjZUNvZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0U291cmNlQ29kZS5jcHAKaW5kZXggOGM3OGI2NGEyZTIxMWY1ZTQ1OWI0ODE4YjRlOTg0NjM2
ZWZkY2JjYS4uZTRkOGY4MjhjN2I3NjM0YjAxYTVlYWFlZjg2MWFiOTNiNTAxMTFkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0U291cmNlQ29kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0U291cmNlQ29kZS5jcHAKQEAgLTU5
LDcgKzU5LDcgQEAgUGFzc093blB0cjx2ODo6U2NyaXB0RGF0YT4gU2NyaXB0U291cmNlQ29kZTo6
cHJlY29tcGlsZVNjcmlwdCh2ODo6SGFuZGxlPHY4OjpTdHIKIAogdjg6OkhhbmRsZTx2ODo6U2Ny
aXB0PiBTY3JpcHRTb3VyY2VDb2RlOjpjb21waWxlU2NyaXB0KHY4OjpIYW5kbGU8djg6OlN0cmlu
Zz4gY29kZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgVGV4dFBvc2l0aW9uJiBzY3Jp
cHRTdGFydFBvc2l0aW9uLCB2ODo6U2NyaXB0RGF0YSogc2NyaXB0RGF0YSkKIHsKLSAgICB2ODo6
SGFuZGxlPHY4OjpTdHJpbmc+IG5hbWUgPSB2OFN0cmluZyhmaWxlTmFtZSk7CisgICAgdjg6Okhh
bmRsZTx2ODo6U3RyaW5nPiBuYW1lID0gdjhTdHJpbmdXaXRob3V0SXNvbGF0ZShmaWxlTmFtZSk7
CiAgICAgdjg6OkhhbmRsZTx2ODo6SW50ZWdlcj4gbGluZSA9IHY4SW50ZWdlcihzY3JpcHRTdGFy
dFBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6SW50
ZWdlcj4gY29sdW1uID0gdjhJbnRlZ2VyKHNjcmlwdFN0YXJ0UG9zaXRpb24ubV9jb2x1bW4uemVy
b0Jhc2VkSW50KCkpOwogICAgIHY4OjpTY3JpcHRPcmlnaW4gb3JpZ2luKG5hbWUsIGxpbmUsIGNv
bHVtbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IDVkZTZlZWNh
NDljNDhjMDgzMzYwMmE3ZDg1MDhiZjQwNGVjYjZkMmUuLjJlZmY5M2Y3NjRiMDU3NzI3YzUwNTg4
NmM2NTQyNWZiNjM5MDM5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
CkBAIC0xNTQsNiArMTU0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJu
IFY4UGVySXNvbGF0ZURhdGE6OmZyb20oaXNvbGF0ZSktPnN0cmluZ0NhY2hlKCktPnY4RXh0ZXJu
YWxTdHJpbmcoc3RyaW5nLmltcGwoKSwgaXNvbGF0ZSk7CiAgICAgfQogCisgICAgLy8gRklYTUU6
IEFsbCBjYWxsIHNpdGVzIG9mIHRoaXMgbWV0aG9kIHNob3VsZCB1c2UgdjhVbnNpZ25lZEludGVn
ZXIoKS4KKyAgICBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiB2OFN0cmluZ1dpdGhvdXRJ
c29sYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHY4U3Ry
aW5nKHN0cmluZywgdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CisgICAgfQorCiAgICAgaW5s
aW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OFN0cmluZ09yTnVsbChjb25zdCBTdHJpbmcmIHN0
cmluZywgdjg6Oklzb2xhdGUqIGlzb2xhdGUgPSAwKQogICAgIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKCFpc29sYXRlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5jcHAKaW5kZXggODVjMmNhNWJjZGUwYjgzNTdiMTNlZDdhYzk5NWQ4OTJiYmJlY2M1
MC4uNzVlMjI4Y2I4MDNjMDhkNDQ4YjQ2ODUwOTFmY2YxNzBlYWVlNzIyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKQEAgLTI0NSw3ICsy
NDUsNyBAQCBib29sIFY4RE9NV2luZG93U2hlbGw6OmluaXRpYWxpemVJZk5lZWRlZCgpCiAgICAg
ICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBDb250ZW50U2VjdXJp
dHlQb2xpY3kqIGNzcCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpOwogICAgICAgICAgICAgY29udGV4dC0+QWxsb3dDb2RlR2VuZXJhdGlvbkZyb21TdHJpbmdz
KGNzcC0+YWxsb3dFdmFsKDAsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6U3VwcHJlc3NSZXBvcnQp
KTsKLSAgICAgICAgICAgIGNvbnRleHQtPlNldEVycm9yTWVzc2FnZUZvckNvZGVHZW5lcmF0aW9u
RnJvbVN0cmluZ3ModjhTdHJpbmcoY3NwLT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSkpOwor
ICAgICAgICAgICAgY29udGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9yQ29kZUdlbmVyYXRpb25Gcm9t
U3RyaW5ncyh2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGNzcC0+ZXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKCkpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFVzaW5nIHRoZSBk
ZWZhdWx0IHNlY3VyaXR5IHRva2VuIG1lYW5zIHRoYXQgdGhlIGNhbkFjY2VzcyBpcyBhbHdheXMK
QEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6Om5hbWVkSXRlbUFkZGVk
KEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZwogCiAgICAgQVNTRVJU
KCFtX2RvY3VtZW50LmlzRW1wdHkoKSk7CiAgICAgY2hlY2tEb2N1bWVudFdyYXBwZXIobV9kb2N1
bWVudC5nZXQoKSwgZG9jdW1lbnQpOwotICAgIG1fZG9jdW1lbnQtPlNldEFjY2Vzc29yKHY4U3Ry
aW5nKG5hbWUpLCBnZXR0ZXIpOworICAgIG1fZG9jdW1lbnQtPlNldEFjY2Vzc29yKHY4U3RyaW5n
V2l0aG91dElzb2xhdGUobmFtZSksIGdldHRlcik7CiB9CiAKIHZvaWQgVjhET01XaW5kb3dTaGVs
bDo6bmFtZWRJdGVtUmVtb3ZlZChIVE1MRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpCkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBWOERPTVdpbmRvd1NoZWxsOjpu
YW1lZEl0ZW1SZW1vdmVkKEhUTUxEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmkK
IAogICAgIEFTU0VSVCghbV9kb2N1bWVudC5pc0VtcHR5KCkpOwogICAgIGNoZWNrRG9jdW1lbnRX
cmFwcGVyKG1fZG9jdW1lbnQuZ2V0KCksIGRvY3VtZW50KTsKLSAgICBtX2RvY3VtZW50LT5EZWxl
dGUodjhTdHJpbmcobmFtZSkpOworICAgIG1fZG9jdW1lbnQtPkRlbGV0ZSh2OFN0cmluZ1dpdGhv
dXRJc29sYXRlKG5hbWUpKTsKIH0KIAogdm9pZCBWOERPTVdpbmRvd1NoZWxsOjp1cGRhdGVTZWN1
cml0eU9yaWdpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExh
enlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2
ZW50TGlzdGVuZXIuY3BwCmluZGV4IGRjZTg2YjZiNTlmZWZkMWQ5OGM3MGYxYTEzZTg1ZmMyMTg4
YjQ5ZGQuLjY5ZWUwMmQ2NjliOGYzNTMxNzEyZGVkZWM3N2NiNjg4ZGEzZWU4ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBA
IC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWOExhenlFdmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVu
ZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICAgICAgICAgICJ9
OyIKICAgICAgICAgIn19fX0pIjsKIAotICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gY29kZUV4
dGVybmFsU3RyaW5nID0gdjhTdHJpbmcoY29kZSk7CisgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5n
PiBjb2RlRXh0ZXJuYWxTdHJpbmcgPSB2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGNvZGUpOwogCiAg
ICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSBTY3JpcHRTb3VyY2VDb2RlOjpjb21w
aWxlU2NyaXB0KGNvZGVFeHRlcm5hbFN0cmluZywgbV9zb3VyY2VVUkwsIG1fcG9zaXRpb24pOwog
ICAgIGlmIChzY3JpcHQuSXNFbXB0eSgpKQpAQCAtMjIwLDExICsyMjAsMTEgQEAgdm9pZCBWOExh
enlFdmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKICAgICAgICAgdG9TdHJpbmdGdW5jdGlvbiA9IHRvU3RyaW5nVGVtcGxh
dGUtPkdldEZ1bmN0aW9uKCk7CiAgICAgaWYgKCF0b1N0cmluZ0Z1bmN0aW9uLklzRW1wdHkoKSkg
ewogICAgICAgICBTdHJpbmcgdG9TdHJpbmdTdHJpbmcgPSAiZnVuY3Rpb24gIiArIG1fZnVuY3Rp
b25OYW1lICsgIigiICsgbV9ldmVudFBhcmFtZXRlck5hbWUgKyAiKSB7XG4gICIgKyBtX2NvZGUg
KyAiXG59IjsKLSAgICAgICAgd3JhcHBlZEZ1bmN0aW9uLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRl
blByb3BlcnR5TmFtZTo6dG9TdHJpbmdTdHJpbmcoKSwgdjhTdHJpbmcodG9TdHJpbmdTdHJpbmcp
KTsKKyAgICAgICAgd3JhcHBlZEZ1bmN0aW9uLT5TZXRIaWRkZW5WYWx1ZShWOEhpZGRlblByb3Bl
cnR5TmFtZTo6dG9TdHJpbmdTdHJpbmcoKSwgdjhTdHJpbmdXaXRob3V0SXNvbGF0ZSh0b1N0cmlu
Z1N0cmluZykpOwogICAgICAgICB3cmFwcGVkRnVuY3Rpb24tPlNldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woInRvU3RyaW5nIiksIHRvU3RyaW5nRnVuY3Rpb24pOwogICAgIH0KIAotICAgIHdyYXBw
ZWRGdW5jdGlvbi0+U2V0TmFtZSh2OFN0cmluZyhtX2Z1bmN0aW9uTmFtZSkpOworICAgIHdyYXBw
ZWRGdW5jdGlvbi0+U2V0TmFtZSh2OFN0cmluZ1dpdGhvdXRJc29sYXRlKG1fZnVuY3Rpb25OYW1l
KSk7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBmb2xsb3dpbmcgY29tbWVudC1vdXRzLgog
ICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxNTIg
Zm9yIG1vcmUgZGV0YWlscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4V2luZG93RXJyb3JIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
V2luZG93RXJyb3JIYW5kbGVyLmNwcAppbmRleCBmMTE4YzM1ZTRjNTZmYzMzNmIwZmNmYzA0NDky
MzE4YmEzOTM2ZDkyLi5lNzhjYTU2MWI2MTRjYWI0ZWM0NzI4MzA3ZDA4N2E3MWNiZGJiOWY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdpbmRvd0Vycm9ySGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXaW5kb3dFcnJvckhhbmRs
ZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4V2luZG93RXJy
b3JIYW5kbGVyOjpjYWxsTGlzdGVuZXJGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25DCiAgICAgaWYg
KCFsaXN0ZW5lci5Jc0VtcHR5KCkgJiYgbGlzdGVuZXItPklzRnVuY3Rpb24oKSkgewogICAgICAg
ICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6TG9jYWw8djg6OkZ1
bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB0
aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwoKTsKLSAgICAgICAg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IHY4U3RyaW5nKGVycm9yRXZl
bnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQtPmZpbGVuYW1lKCkpLCB2OEludGVn
ZXIoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGVycm9yRXZlbnQtPm1l
c3NhZ2UoKSksIHY4U3RyaW5nV2l0aG91dElzb2xhdGUoZXJyb3JFdmVudC0+ZmlsZW5hbWUoKSks
IHY4SW50ZWdlcihlcnJvckV2ZW50LT5saW5lbm8oKSkgfTsKICAgICAgICAgdjg6OlRyeUNhdGNo
IHRyeUNhdGNoOwogICAgICAgICB0cnlDYXRjaC5TZXRWZXJib3NlKHRydWUpOwogICAgICAgICBy
ZXR1cm5WYWx1ZSA9IFNjcmlwdENvbnRyb2xsZXI6OmNhbGxGdW5jdGlvbldpdGhJbnN0cnVtZW50
YXRpb24oMCwgY2FsbEZ1bmN0aW9uLCB0aGlzVmFsdWUsIDMsIHBhcmFtZXRlcnMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEVycm9y
SGFuZGxlci5jcHAKaW5kZXggZGQ0NWE4NGMzMDE1ZDg0MTEwYTQ1OTE5MzlkNDQxMzJiNzI5YTI5
Mi4uMGVhNzZiNjc2MjMxYzE4NzQ4N2ZkZTdiOGQzMjFlNzU5YzkwNGE2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHY4OjpMb2NhbDx2ODo6VmFsdWU+IFY4V29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlcjo6Y2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0RXhlCiAgICAg
ICAgIEVycm9yRXZlbnQqIGVycm9yRXZlbnQgPSBzdGF0aWNfY2FzdDxFcnJvckV2ZW50Kj4oZXZl
bnQpOwogICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjYWxsRnVuY3Rpb24gPSB2ODo6
TG9jYWw8djg6OkZ1bmN0aW9uPjo6Q2FzdChsaXN0ZW5lcik7CiAgICAgICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiB0aGlzVmFsdWUgPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpLT5HbG9iYWwo
KTsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBhcmFtZXRlcnNbM10gPSB7IHY4U3Ry
aW5nKGVycm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nKGVycm9yRXZlbnQtPmZpbGVuYW1l
KCkpLCB2OEludGVnZXIoZXJyb3JFdmVudC0+bGluZW5vKCkpIH07CisgICAgICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBwYXJhbWV0ZXJzWzNdID0geyB2OFN0cmluZ1dpdGhvdXRJc29sYXRlKGVy
cm9yRXZlbnQtPm1lc3NhZ2UoKSksIHY4U3RyaW5nV2l0aG91dElzb2xhdGUoZXJyb3JFdmVudC0+
ZmlsZW5hbWUoKSksIHY4SW50ZWdlcihlcnJvckV2ZW50LT5saW5lbm8oKSkgfTsKICAgICAgICAg
VjhSZWN1cnNpb25TY29wZSByZWN1cnNpb25TY29wZShjb250ZXh0KTsKICAgICAgICAgcmV0dXJu
VmFsdWUgPSBjYWxsRnVuY3Rpb24tPkNhbGwodGhpc1ZhbHVlLCAzLCBwYXJhbWV0ZXJzKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGQwN2JlMWJiZWZlMTUzZTczMWFmY2UwODRlMGJkNjhkMDM1MGE2
MzkuLjg0YTgzODVmY2Q1NTc3OWQ1ODE0MmI1YzZlYWM0MjNiMzBmZmVkNTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
CkBAIC0xNDcsNyArMTQ3LDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6
ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IFN0cmluZyYKIAogICAgIGlmICgh
bV9kaXNhYmxlRXZhbFBlbmRpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY29udGV4dC0+QWxs
b3dDb2RlR2VuZXJhdGlvbkZyb21TdHJpbmdzKGZhbHNlKTsKLSAgICAgICAgbV9jb250ZXh0LT5T
ZXRFcnJvck1lc3NhZ2VGb3JDb2RlR2VuZXJhdGlvbkZyb21TdHJpbmdzKHY4U3RyaW5nKG1fZGlz
YWJsZUV2YWxQZW5kaW5nKSk7CisgICAgICAgIG1fY29udGV4dC0+U2V0RXJyb3JNZXNzYWdlRm9y
Q29kZUdlbmVyYXRpb25Gcm9tU3RyaW5ncyh2OFN0cmluZ1dpdGhvdXRJc29sYXRlKG1fZGlzYWJs
ZUV2YWxQZW5kaW5nKSk7CiAgICAgICAgIG1fZGlzYWJsZUV2YWxQZW5kaW5nID0gU3RyaW5nKCk7
CiAgICAgfQogCkBAIC0xNTUsNyArMTU1LDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29u
dHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGNvbnN0IFN0cmluZyYKIAog
ICAgIHY4OjpUcnlDYXRjaCBibG9jazsKIAotICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gc2Ny
aXB0U3RyaW5nID0gdjhTdHJpbmcoc2NyaXB0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+
IHNjcmlwdFN0cmluZyA9IHY4U3RyaW5nV2l0aG91dElzb2xhdGUoc2NyaXB0KTsKICAgICB2ODo6
SGFuZGxlPHY4OjpTY3JpcHQ+IGNvbXBpbGVkU2NyaXB0ID0gU2NyaXB0U291cmNlQ29kZTo6Y29t
cGlsZVNjcmlwdChzY3JpcHRTdHJpbmcsIGZpbGVOYW1lLCBzY3JpcHRTdGFydFBvc2l0aW9uKTsK
ICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiByZXN1bHQgPSBTY3JpcHRSdW5uZXI6OnJ1bkNvbXBp
bGVkU2NyaXB0KGNvbXBpbGVkU2NyaXB0LCBtX3dvcmtlckNvbnRleHQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXJyYXlCdWZmZXJW
aWV3Q3VzdG9tLmNwcAppbmRleCBkMjFjZWI2MjA2MzlmMDVjYWE5YTQxZGZjOTljMTc0ODM1MTI5
OTAzLi4wOTNhM2M4ODY4ZjE4ZDBmZWI0MjhmY2Y5Y2M5MDA2ZjA0NDBlNGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVm
ZmVyVmlld0N1c3RvbS5jcHAKQEAgLTQxLDEyICs0MSwxMyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZ2V0SGlkZGVuQ29weU1ldGhvZCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvdHlwZSkK
ICAgICByZXR1cm4gcHJvdG90eXBlLT5HZXRIaWRkZW5WYWx1ZShrZXkpOwogfQogCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gaW5zdGFsbEhpZGRlbkNvcHlNZXRob2Qodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBwcm90b3R5cGUpIHsKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBpbnN0YWxsSGlkZGVuQ29w
eU1ldGhvZCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvdHlwZSwgdjg6Oklzb2xhdGUqIGlz
b2xhdGUpCit7CiAgICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoOwogICAgIHRyeUNhdGNoLlNldFZl
cmJvc2UodHJ1ZSk7CiAgICAgU3RyaW5nIHNvdXJjZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihWOEFycmF5QnVmZmVyVmlld0N1c3RvbVNjcmlwdF9qcyksCiAgICAgICAgICAgICAgICAg
ICBzaXplb2YoVjhBcnJheUJ1ZmZlclZpZXdDdXN0b21TY3JpcHRfanMpKTsKLSAgICB2ODo6SGFu
ZGxlPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUodjhTdHJpbmcoc291
cmNlKSk7CisgICAgdjg6OkhhbmRsZTx2ODo6U2NyaXB0PiBzY3JpcHQgPSB2ODo6U2NyaXB0OjpD
b21waWxlKHY4U3RyaW5nKHNvdXJjZSwgaXNvbGF0ZSkpOwogICAgIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB2YWx1ZSA9IHNjcmlwdC0+UnVuKCk7CiAgICAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBr
ZXkgPSB2ODo6U3RyaW5nOjpOZXdTeW1ib2woaGlkZGVuQ29weU1ldGhvZE5hbWUpOwogICAgIHBy
b3RvdHlwZS0+U2V0SGlkZGVuVmFsdWUoa2V5LCB2YWx1ZSk7CkBAIC02MSw3ICs2Miw3IEBAIGJv
b2wgY29weUVsZW1lbnRzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZGVzdEFycmF5LCB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IHNyY0FyCiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90b3R5
cGUgPSBwcm90b3R5cGVfdmFsdWUuQXM8djg6Ok9iamVjdD4oKTsKICAgICB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdmFsdWUgPSBnZXRIaWRkZW5Db3B5TWV0aG9kKHByb3RvdHlwZSk7CiAgICAgaWYg
KHZhbHVlLklzRW1wdHkoKSkKLSAgICAgICAgdmFsdWUgPSBpbnN0YWxsSGlkZGVuQ29weU1ldGhv
ZChwcm90b3R5cGUpOworICAgICAgICB2YWx1ZSA9IGluc3RhbGxIaWRkZW5Db3B5TWV0aG9kKHBy
b3RvdHlwZSwgaXNvbGF0ZSk7CiAgICAgaWYgKHZhbHVlLklzRW1wdHkoKSB8fCAhdmFsdWUtPklz
RnVuY3Rpb24oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHY4OjpIYW5kbGU8djg6OkZ1
bmN0aW9uPiBjb3B5X21ldGhvZCA9IHZhbHVlLkFzPHY4OjpGdW5jdGlvbj4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwCmluZGV4IDFiYTAzYTQ0NWNjZGY3OWY0Y2Q5ZDFlMGIwMWUxMTgwYmIw
OTNhMjQuLmFiNWI4MmExZGY1MGMxNzE3ZTc5YWEyMTRjM2M3MTYyZGNhY2JhYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtNzcsNyArNzcsNyBAQCBTdHJpbmcgVjhDdXN0b21YUGF0
aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAg
ICB0cnlDYXRjaC5TZXRWZXJib3NlKHRydWUpOyAvLyBQcmludCBleGNlcHRpb25zIHRvIGNvbnNv
bGUuCiAKICAgICBjb25zdCBpbnQgYXJnYyA9IDE7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IGFyZ3ZbYXJnY10gPSB7IHY4U3RyaW5nKHByZWZpeCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gYXJndlthcmdjXSA9IHsgdjhTdHJpbmdXaXRob3V0SXNvbGF0ZShwcmVmaXgpIH07CiAg
ICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uID0gbG9va3VwTmFtZXNwYWNlVVJJ
RnVuYy5Jc0VtcHR5KCkgPyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj46OkNhc3QobV9yZXNvbHZl
cikgOiBsb29rdXBOYW1lc3BhY2VVUklGdW5jOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHJldHZhbCA9IFNjcmlwdENvbnRyb2xsZXI6OmNhbGxGdW5jdGlvbldpdGhJbnN0cnVtZW50YXRp
b24oMCwgZnVuY3Rpb24sIG1fcmVzb2x2ZXIsIGFyZ2MsIGFyZ3YpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggMzM2MDI0YWQ4NmMwOWRmNjI4NmExNjQ4NWE2YmQyMjgyMzFk
OGZmMS4uNWYyYjA4OTY3NmFkZWJmN2Q3N2U3MzE4YjgxMjI1NjRkMTJkOGJmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRFdmVudExpc3RlbmVyc0NhbGxiYWNr
KGNvbnN0IHY4OjoKICAgICAgICAgaWYgKCFsaXN0ZW5lcnMtPkxlbmd0aCgpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIEF0b21pY1N0cmluZyBldmVudFR5cGUgPSBsaXN0ZW5lcnNB
cnJheVtpXS5ldmVudFR5cGU7Ci0gICAgICAgIHJlc3VsdC0+U2V0KHY4U3RyaW5nKGV2ZW50VHlw
ZSksIGxpc3RlbmVycyk7CisgICAgICAgIHJlc3VsdC0+U2V0KHY4U3RyaW5nKGV2ZW50VHlwZSwg
YXJncy5HZXRJc29sYXRlKCkpLCBsaXN0ZW5lcnMpOwogICAgIH0KIAogICAgIHJldHVybiByZXN1
bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcAppbmRleCAxZjE4MmU3Mzk2N2E1NGMzZjQyMmM0
NTQyOWRiYWRlODA4ODYxYzc2Li44ZDdhMDY2OGM1OTE4MmU5NGMwMTFhMGE1NTI0N2Y2YWU4ZmZk
NWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEluamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgU2NyaXB0
T2JqZWN0IEluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y3JlYXRlSW5qZWN0ZWRTY3JpcHQoY29uc3Qg
U3RyaW5nJiBzY3JpcHRTb3UKICAgICAvLyBpbnNwZWN0b3IncyBzdHVmZikgdGhlIGZ1bmN0aW9u
IGlzIGNhbGxlZCBhIGZldyBsaW5lcyBiZWxvdyB3aXRoIEluamVjdGVkU2NyaXB0SG9zdCB3cmFw
cGVyLAogICAgIC8vIGluamVjdGVkIHNjcmlwdCBpZCBhbmQgZXhwbGljaXQgcmVmZXJlbmNlIHRv
IHRoZSBpbnNwZWN0ZWQgZ2xvYmFsIG9iamVjdC4gVGhlIGZ1bmN0aW9uIGlzIGV4cGVjdGVkCiAg
ICAgLy8gdG8gY3JlYXRlIGFuZCBjb25maWd1cmUgSW5qZWN0ZWRTY3JpcHQgaW5zdGFuY2UgdGhh
dCBpcyBnb2luZyB0byBiZSB1c2VkIGJ5IHRoZSBpbnNwZWN0b3IuCi0gICAgdjg6OkxvY2FsPHY4
OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNvbXBpbGUodjhTdHJpbmcoc2NyaXB0U291
cmNlKSk7CisgICAgdjg6OkxvY2FsPHY4OjpTY3JpcHQ+IHNjcmlwdCA9IHY4OjpTY3JpcHQ6OkNv
bXBpbGUodjhTdHJpbmdXaXRob3V0SXNvbGF0ZShzY3JpcHRTb3VyY2UpKTsKICAgICBWOFJlY3Vy
c2lvblNjb3BlOjpNaWNyb3Rhc2tTdXBwcmVzc2lvbiByZWN1cnNpb25TY29wZTsKICAgICB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2ID0gc2NyaXB0LT5SdW4oKTsKICAgICBBU1NFUlQoIXYuSXNFbXB0
eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCmluZGV4IDliMDY1ZDUyYWU2MThhMWY3OWU0MTZmMDRk
MzRlNDBmNGU1OTU3NGUuLmM1YWU4NTk5NWZjNmRmN2MwMDU4YTk3ZWM1NmE4MGMyYTI2NjA0OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VF
dmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbgogCiAgICAgY2FzZSBNZXNzYWdlRXZlbnQ6OkRhdGFUeXBlU3RyaW5nOiB7CiAgICAg
ICAgIFN0cmluZyBzdHJpbmdWYWx1ZSA9IGV2ZW50LT5kYXRhQXNTdHJpbmcoKTsKLSAgICAgICAg
cmVzdWx0ID0gdjhTdHJpbmcoc3RyaW5nVmFsdWUpOworICAgICAgICByZXN1bHQgPSB2OFN0cmlu
ZyhzdHJpbmdWYWx1ZSwgaW5mby5HZXRJc29sYXRlKCkpOwogICAgICAgICBicmVhazsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDFjNDI4MTJkN2Iw
NzgxNGMyM2JjZGIzMjQxZmYyZjUzMzU0NWJiMzAuLjA2ZTY0Y2Q4MjY4NGE5YjdhYjQ0MzRhM2I3
NTk3NTZmMGExNTYzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApA
QCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVj
dChjb25zdCBXZWJHTEdldEluZm8mIGluZm8sIHY4OjpIYW5kbGU8djg6CiAgICAgY2FzZSBXZWJH
TEdldEluZm86OmtUeXBlTnVsbDoKICAgICAgICAgcmV0dXJuIHY4TnVsbChpc29sYXRlKTsKICAg
ICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVTdHJpbmc6Ci0gICAgICAgIHJldHVybiB2OFN0cmlu
ZyhpbmZvLmdldFN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIHY4U3RyaW5nKGluZm8uZ2V0U3Ry
aW5nKCksIGlzb2xhdGUpOwogICAgIGNhc2UgV2ViR0xHZXRJbmZvOjprVHlwZVVuc2lnbmVkSW50
OgogICAgICAgICByZXR1cm4gdjhVbnNpZ25lZEludGVnZXIoaW5mby5nZXRVbnNpZ25lZEludCgp
LCBpc29sYXRlKTsKICAgICBjYXNlIFdlYkdMR2V0SW5mbzo6a1R5cGVXZWJHTEJ1ZmZlcjoKQEAg
LTQwMSw3ICs0MDEsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnNDYWxsYmFjayhjbwogICAgIFZlY3RvcjxTdHJp
bmc+IHZhbHVlID0gaW1wLT5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCk7CiAgICAgdjg6OkxvY2Fs
PHY4OjpBcnJheT4gYXJyYXkgPSB2ODo6QXJyYXk6Ok5ldyh2YWx1ZS5zaXplKCkpOwogICAgIGZv
ciAoc2l6ZV90IGlpID0gMDsgaWkgPCB2YWx1ZS5zaXplKCk7ICsraWkpCi0gICAgICAgIGFycmF5
LT5TZXQodjhJbnRlZ2VyKGlpLCBhcmdzLkdldElzb2xhdGUoKSksIHY4U3RyaW5nKHZhbHVlW2lp
XSkpOworICAgICAgICBhcnJheS0+U2V0KHY4SW50ZWdlcihpaSwgYXJncy5HZXRJc29sYXRlKCkp
LCB2OFN0cmluZyh2YWx1ZVtpaV0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgcmV0dXJuIGFy
cmF5OwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>