<?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>104401</bug_id>
          
          <creation_ts>2012-12-07 14:20:36 -0800</creation_ts>
          <short_desc>[WK2] Network process should use a correct storage session in private browsing mode</short_desc>
          <delta_ts>2012-12-07 16:19:48 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>beidson</cc>
    
    <cc>jberlin</cc>
    
    <cc>philn</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>786152</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-07 14:20:36 -0800</bug_when>
    <thetext>It should!

&lt;rdar://problem/12838490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786165</commentid>
    <comment_count>1</comment_count>
      <attachid>178278</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-07 14:31:58 -0800</bug_when>
    <thetext>Created attachment 178278
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786176</commentid>
    <comment_count>2</comment_count>
      <attachid>178278</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-07 14:39:57 -0800</bug_when>
    <thetext>Comment on attachment 178278
proposed patch

Attachment 178278 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15183560</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786179</commentid>
    <comment_count>3</comment_count>
      <attachid>178282</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-07 14:41:30 -0800</bug_when>
    <thetext>Created attachment 178282
with a build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786189</commentid>
    <comment_count>4</comment_count>
      <attachid>178282</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-07 14:47:20 -0800</bug_when>
    <thetext>Comment on attachment 178282
with a build fix

Attachment 178282 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15188454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786192</commentid>
    <comment_count>5</comment_count>
      <attachid>178285</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-07 14:52:52 -0800</bug_when>
    <thetext>Created attachment 178285
more build fixing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786264</commentid>
    <comment_count>6</comment_count>
      <attachid>178285</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-12-07 16:06:04 -0800</bug_when>
    <thetext>Comment on attachment 178285
more build fixing

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

&gt; Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.h:46
&gt; -    RemoteNetworkingContext(bool needsSiteSpecificQuirks, bool localFileContentSniffingEnabled);
&gt; +    RemoteNetworkingContext(bool needsSiteSpecificQuirks, bool localFileContentSniffingEnabled, bool privateBrowsingEnabled);

Could we make this be enums instead of bools?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786273</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-12-07 16:19:48 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/136997&gt;.

&gt; Could we make this be enums instead of bools?

I&apos;m not sure if we really need to, at least not yet. We primarily use enums for readability, but when we&apos;re done hooking up all the arguments, there will be no mysterious false and true literals. Of course, there is the added benefit of type safety, which is worth considering too.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178278</attachid>
            <date>2012-12-07 14:31:58 -0800</date>
            <delta_ts>2012-12-07 14:41:30 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>UsePrivateSession.txt</filename>
            <type>text/plain</type>
            <size>22309</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk4NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTA3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmsgcHJvY2VzcyBz
aG91bGQgdXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24gaW4gcHJpdmF0ZSBicm93c2luZyBt
b2RlCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgzODQ5MD4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSBOZXR3b3JrUHJvY2VzcyB3aGVu
IGl0IG5lZWRzIHRvIGNyZWF0ZSBvciBkZXN0cm95IGEgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
LAorICAgICAgICBhbmQgYWRkIGEgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbWVtYmVy
IHRlbGxpbmcgaWYgdGhlIHBhcnRpY3VsYXIgcmVzb3VyY2UKKyAgICAgICAgc2hvdWxkIGJlIHJl
cXVlc3RlZCB1c2luZyBpdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxl
dGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMp
OgorICAgICAgICBBZGRlZCBhbm90aGVyIGR1bW15IGFyZ3VtZW50IHRvIGR1bW15IG5ldHdvcmtp
bmcgY29udGV4dC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIEVuc3VyZSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaWYgaXQncyBuZWVkZWQgZHVl
IHRvIGEgcGVyc2lzdGVudCBwcmVmZXJlbmNlLCBub3QKKyAgICAgICAgYW4gQVBJIGNhbGwgYXQg
cnVudGltZSAod2hpY2ggaXMgaGFuZGxlZCBiZWxvdyBhcyBlbnN1cmUvZGVzdHJveSkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KTogUGFzcyBwcml2YXRlIGJy
b3dzaW5nIHN0YXRlIHRvIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0CisgICAgICAgIHVzZWQgZm9y
IGxvYWRpbmcuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBBZGRlZCBhbiBpbXBsZW1udGF0aW9uIHRoYXQKKyAgICAgICAgbWF0Y2hl
cyBXZWJDb3JlLCBidXQgbWF5IGJlIG5vdCBuZWVkZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDogKFdlYktpdDo6UmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIFN0b3JlIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbTogKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgUmV0dXJuIGEgcHJpdmF0ZSBzZXNzaW9uIHdoZW4gaXQncyBpbiB1c2Uu
CisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICBQYXNzIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZyB0byB0aGUgbmV3IHByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6aW5Q
cml2YXRlQnJvd3NpbmdNb2RlKToKKyAgICAgICAgUGFzcyBpblByaXZhdGVCcm93c2luZ01vZGUg
ZmxhZyBmb3IgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc01hbmFnZXIuaDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYW5hZ2VyOjpwcm9j
ZXNzKToKKyAgICAgICAgRXhwb3NlZCwgc28gdGhhdCB3ZSBjYW4gc2VuZCBtZXNzYWdlcyB3aXRo
b3V0IGdvaW5nIHRocm91Z2ggTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp1c2Vz
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjphbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNpbmdQcml2
YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp3aWxsU3RvcFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKToKKyAgICAgICAgTm90aWZ5IE5ldHdvcmtQcm9jZXNzIHdoZW4gZW50
ZXJpbmcgb3IgZXhpdGluZyBwcml2YXRlIGJyb3dzaW5nLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHQuaDogRXhwb3NlZCB1c2VzTmV0d29ya1Byb2Nlc3MoKSBmb3IgdGhlIG5ldyBz
dGF0aWMgZnVuY3Rpb24KKyAgICAgICAgYW55Q29udGV4dFVzZXNOZXR3b3JrUHJvY2VzcyB0byB1
c2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcDogKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQp
OgorICAgICAgICBQdXQgY3VycmVudCBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIG92ZXIgaW4gTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuCisKIDIwMTItMTItMDcgIEhlbGRlciBDb3JyZWlh
ICA8aGVsZGVyLmNvcnJlaWFAbm9raWEuY29tPgogCiAgICAgICAgIFtDb29yZEdmeF0gVmFyaWFi
bGUgbmFtZSBzdGFydHMgd2l0aCB1cHBlciBjYXNlIGNoYXJhY3RlcgpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTcsMTkgKzE1NywxOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRTCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVz
Rm9yRE9NKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nJiBy
ZXN1bHQpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBz
dG9yYWdlIHNlc3Npb24uCi0gICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFy
dHksIHVybCk7CisgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBh
cnR5LCB1cmwpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OnNldENvb2tp
ZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5n
ZXQoKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOworICAgIFdlYkNvcmU6OnNldENv
b2tpZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNl
LCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoY29uc3QgS1VS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgS1VSTCYgdXJsLCBib29sJiByZXN1bHQpCiB7CiAgICAgLy8g
RklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0g
ICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBhcnR5LCB1cmwpOworICAgIHJl
c3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5n
JiByZXN1bHQpCkBAIC0xODEsMzMgKzE4MSwzMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjb29rCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRS
YXdDb29raWVzKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgVmVjdG9y
PENvb2tpZT4mIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBVc2Ug
YSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KLSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOworICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxldGVDb29raWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9y
YWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKKyAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShm
YWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAogdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoVmVj
dG9yPFN0cmluZz4mIGhvc3RuYW1lcykKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3Mp
OiBVc2UgYSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KICAgICBIYXNoU2V0PFN0cmluZz4gaG9z
dG5hbWVzU2V0OwotICAgIFdlYkNvcmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgaG9zdG5hbWVzU2V0
KTsKKyAgICBXZWJDb3JlOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBob3N0bmFtZXNTZXQp
OwogICAgIFdURjo6Y29weVRvVmVjdG9yKGhvc3RuYW1lc1NldCwgaG9zdG5hbWVzKTsKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9j
ZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlKS5nZXQoKSwgaG9zdG5hbWUpOworICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFs
c2UpLmdldCgpLCBob3N0bmFtZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMoKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OmRlbGV0ZUFs
bENvb2tpZXMoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdl
dCgpKTsKKyAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDEzNjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYg
KzEwMSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHIKICNpZiBQ
TEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UocGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgorCisgICAgaWYgKHBhcmFt
ZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQpJbmRleDogU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCShyZXZpc2lvbiAxMzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4
Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgcmVmKCk7CiAg
ICAgCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogQ3JlYXRlIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0IHdpdGggYWN0dWFsIHNldHRpbmdzLgotICAgIG1fbmV0d29ya2luZ0NvbnRleHQg
PSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSk7CisgICAgbV9u
ZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpKTsKIAog
ICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBk
ZWZlcnNMb2FkaW5nCiAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcmVxdWVzdFBhcmFtZXRlcnMucmVxdWVzdCgpLCB0aGlz
LCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5nICovLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSgpID09IFNuaWZmQ29udGVudCk7CkBAIC0yMzQsOSArMjM0LDExIEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVIKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2Uo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQb2xpY3kmKQor
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUG9saWN5JiBwb2xpY3kpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBGSVhNRSAoMTI4Mzg1NDMpOiBVbnN1cmUgaWYg
dGhpcyBpcyBuZWVkZWQsIHByaXZhdGUgc2Vzc2lvbiBpcyBpbi1tZW1vcnkgYW55d2F5LgorICAg
IGlmIChwb2xpY3kgPT0gU3RvcmFnZUFsbG93ZWQgJiYgbV9yZXF1ZXN0UGFyYW1ldGVycy5pblBy
aXZhdGVCcm93c2luZ01vZGUoKSkKKyAgICAgICAgcG9saWN5ID0gU3RvcmFnZUFsbG93ZWRJbk1l
bW9yeU9ubHk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IDog
cHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wg
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKSk7CiAgICAgfQogICAgIHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJv
b2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IE9WRVJSSURFOwogCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CiAgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9Owog
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCShyZXZpc2lvbiAxMzY5MTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vz
c2lvbjsKIAotUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCkKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKICAgICA6IG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpCiAgICAgLCBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCkKKyAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQogewogfQogCkBAIC02NCw3ICs2NSwxMSBAQCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojpsb2NhbEZpbGVDCiAKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSAoTmV0d29y
a1Byb2Nlc3MpOiBJbXBsZW1lbnQuCisgICAgaWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkg
eworICAgICAgICBBU1NFUlQocHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24pOworICAgICAg
ICByZXR1cm4gcHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb247CisgICAgfQorICAgIC8vIEZJ
WE1FIChOZXR3b3JrUHJvY2Vzcyk6IFJldHVybiBhIGRlZmF1bHQgc2Vzc2lvbiB0aGF0J3MgdXNl
ZCBmb3IgdGVzdGluZy4KICAgICByZXR1cm4gMDsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKIH0KIAogYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTUyLDYgKzUzLDggQEAg
Ym9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZAogICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogI2VuZGlmCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LnByaXZh
dGVCcm93c2luZ0VuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOCBAQCBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgU3RyaW5nIHBhcmVudFBy
b2Nlc3NOYW1lOwogICAgIFN0cmluZyB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogI2VuZGlm
CisKKyAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDEz
NjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTQgKzM4LDE2IEBAIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmUKICAgICA6IG1fcHJpb3JpdHkoUmVz
b3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KQogICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3ko
U25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFscykKKyAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKGZhbHNlKQog
ewogfQogCi1OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscykKK05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBTdG9yZWRDcmVk
ZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9k
ZSkKICAgICA6IG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkK
ICAgICAsIG1fY29udGVudFNuaWZmaW5nUG9saWN5KGNvbnRlbnRTbmlmZmluZ1BvbGljeSkKICAg
ICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyhhbGxvd1N0b3JlZENyZWRlbnRpYWxzKQorICAg
ICwgbV9pblByaXZhdGVCcm93c2luZ01vZGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKQogewogfQog
CkBAIC01NSw2ICs1Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y28KICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9wcmlvcml0eSk7CiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKG1fY29udGVudFNuaWZmaW5nUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
bV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2luUHJpdmF0
ZUJyb3dzaW5nTW9kZSk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC02Nyw2ICs3MCw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQubV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5t
X2luUHJpdmF0ZUJyb3dzaW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAx
MzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYg
dWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cygpOwotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93
c2luZ01vZGUpOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CkBAIC01MywxMiArNTMsMTQgQEAgcHVi
bGljOgogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRTbmlmZmlu
Z1BvbGljeTsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7IH0KKyAg
ICBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcml2YXRl
QnJvd3NpbmdNb2RlOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVxdWVzdDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5
OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBtX2FsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CisgICAgYm9vbCBtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSW1tdXRh
YmxlQXJyYXkuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTXV0YWJsZURpY3Rp
b25hcnkuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC0z
MjQsMTEgKzMyNiwzNyBAQCB2b2lkIFdlYkNvbnRleHQ6OnNldFVzZXNOZXR3b3JrUHJvY2Vzcyhi
CiAjZW5kaWYKIH0KIAorYm9vbCBXZWJDb250ZXh0Ojp1c2VzTmV0d29ya1Byb2Nlc3MoKSBjb25z
dAoreworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgcmV0dXJuIG1fdXNlc05ldHdv
cmtQcm9jZXNzOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworc3RhdGlj
IGJvb2wgYW55Q29udGV4dFVzZXNOZXR3b3JrUHJvY2VzcygpCit7CisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKKyAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBjb250ZXh0cyA9IFdl
YkNvbnRleHQ6OmFsbENvbnRleHRzKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0g
Y29udGV4dHMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKKyAgICBpZiAoY29udGV4dHNbaV0tPnVz
ZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYkNvbnRleHQ6OndpbGxTdGFydFVzaW5nUHJpdmF0
ZUJyb3dzaW5nKCkKIHsKICAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbnRlckNvdW50KyspCiAg
ICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKGFu
eUNvbnRleHRVc2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgTmV0d29ya1Byb2Nlc3NNYW5h
Z2VyOjpzaGFyZWQoKS5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpF
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCksIDApOworI2VuZGlmCisKICAgICBjb25zdCBW
ZWN0b3I8V2ViQ29udGV4dCo+JiBjb250ZXh0cyA9IGFsbENvbnRleHRzKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDAsIGNvdW50ID0gY29udGV4dHMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKICAg
ICAgICAgY29udGV4dHNbaV0tPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vz
czo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpKTsKQEAgLTM0MSw2ICszNjksMTEgQEAg
dm9pZCBXZWJDb250ZXh0Ojp3aWxsU3RvcFVzaW5nUHJpdmF0ZUJybwogICAgIGlmIChtX3ByaXZh
dGVCcm93c2luZ0VudGVyQ291bnQgJiYgLS1tX3ByaXZhdGVCcm93c2luZ0VudGVyQ291bnQpCiAg
ICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKGFu
eUNvbnRleHRVc2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgTmV0d29ya1Byb2Nlc3NNYW5h
Z2VyOjpzaGFyZWQoKS5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpE
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCAwKTsKKyNlbmRpZgorCiAgICAgY29uc3Qg
VmVjdG9yPFdlYkNvbnRleHQqPiYgY29udGV4dHMgPSBhbGxDb250ZXh0cygpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwLCBjb3VudCA9IGNvbnRleHRzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCiAg
ICAgICAgIGNvbnRleHRzW2ldLT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkpOwpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiAxMzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNiArMjQ0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgdGV4dENoZWNrZXJTdGF0ZUNoYW5nZWQoKTsKIAogICAgIHZv
aWQgc2V0VXNlc05ldHdvcmtQcm9jZXNzKGJvb2wpOworICAgIGJvb2wgdXNlc05ldHdvcmtQcm9j
ZXNzKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgc3RhdGljIGJvb2wgYXBwbGlj
YXRpb25Jc09jY2x1ZGVkKCkgeyByZXR1cm4gc19hcHBsaWNhdGlvbklzT2NjbHVkZWQ7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzTWFuYWdl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzTWFuYWdlci5oCShyZXZpc2lvbiAxMzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc01hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVuc3VyZU5ldHdvcmtQcm9jZXNz
KCk7CiAKKyAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKCkgeyByZXR1cm4gbV9uZXR3
b3JrUHJvY2Vzcy5nZXQoKTsgfQorCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4pOwogICAgIAogICAgIHZvaWQgcmVtb3ZlTmV0d29y
a1Byb2Nlc3NQcm94eShOZXR3b3JrUHJvY2Vzc1Byb3h5Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw4ICsxMDQsOCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1
bGVMCiAgICAgLy8gSW4gcHJhY3RpY2UgY2xpZW50cyB3ZSBrbm93IGFib3V0IGRvbid0IGNhcmUg
YWJvdXQgdGhlIGlkZW50aWZpZXIsIGJ1dCB0aGlzIGlzIGFub3RoZXIgcmVhc29uCiAgICAgLy8g
d2UgbmVlZCB0byBtYWtlIHN1cmUgUmVzb3VyY2VMb2FkZXJzIGdldCBjb3JyZWN0IGlkZW50aWZp
ZXJzIHJpZ2h0IG9mZiB0aGUgYmF0LgogICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVk
Q3JlZGVudGlhbHMgPSByZXNvdXJjZUxvYWRlci0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2Uo
KSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7
Ci0gICAgCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMo
cmVxdWVzdCwgcHJpb3JpdHksIHJlc291cmNlTG9hZGVyLT5zaG91bGRTbmlmZkNvbnRlbnQoKSA/
IFNuaWZmQ29udGVudCA6IERvTm90U25pZmZDb250ZW50LCBhbGxvd1N0b3JlZENyZWRlbnRpYWxz
KTsKKworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJl
cXVlc3QsIHByaW9yaXR5LCByZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkgPyBT
bmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVudCwgYWxsb3dTdG9yZWRDcmVkZW50aWFscywg
cmVzb3VyY2VMb2FkZXItPmZyYW1lTG9hZGVyKCktPmZyYW1lKCktPnNldHRpbmdzKCktPnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSk7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3
b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxvYWQobG9hZFBhcmFtZXRl
cnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxlUmVz
b3VyY2VMb2FkOjpSZXBseShpZGVudGlmaWVyKSwgMCkpIHsKICAgICAgICAgLy8gRklYTUUgKE5l
dHdvcmtQcm9jZXNzKTogV2hhdCBzaG91bGQgd2UgZG8gaWYgdGhpcyBmYWlscz8KICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cg==
</data>
<flag name="commit-queue"
          id="194756"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178282</attachid>
            <date>2012-12-07 14:41:30 -0800</date>
            <delta_ts>2012-12-07 14:52:52 -0800</delta_ts>
            <desc>with a build fix</desc>
            <filename>UsePrivateSession.txt</filename>
            <type>text/plain</type>
            <size>22232</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk4NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTA3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmsgcHJvY2VzcyBz
aG91bGQgdXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24gaW4gcHJpdmF0ZSBicm93c2luZyBt
b2RlCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgzODQ5MD4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSBOZXR3b3JrUHJvY2VzcyB3aGVu
IGl0IG5lZWRzIHRvIGNyZWF0ZSBvciBkZXN0cm95IGEgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
LAorICAgICAgICBhbmQgYWRkIGEgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbWVtYmVy
IHRlbGxpbmcgaWYgdGhlIHBhcnRpY3VsYXIgcmVzb3VyY2UKKyAgICAgICAgc2hvdWxkIGJlIHJl
cXVlc3RlZCB1c2luZyBpdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxl
dGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMp
OgorICAgICAgICBBZGRlZCBhbm90aGVyIGR1bW15IGFyZ3VtZW50IHRvIGR1bW15IG5ldHdvcmtp
bmcgY29udGV4dC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIEVuc3VyZSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaWYgaXQncyBuZWVkZWQgZHVl
IHRvIGEgcGVyc2lzdGVudCBwcmVmZXJlbmNlLCBub3QKKyAgICAgICAgYW4gQVBJIGNhbGwgYXQg
cnVudGltZSAod2hpY2ggaXMgaGFuZGxlZCBiZWxvdyBhcyBlbnN1cmUvZGVzdHJveSkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KTogUGFzcyBwcml2YXRlIGJy
b3dzaW5nIHN0YXRlIHRvIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0CisgICAgICAgIHVzZWQgZm9y
IGxvYWRpbmcuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBBZGRlZCBhbiBpbXBsZW1udGF0aW9uIHRoYXQKKyAgICAgICAgbWF0Y2hl
cyBXZWJDb3JlLCBidXQgbWF5IGJlIG5vdCBuZWVkZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDogKFdlYktpdDo6UmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIFN0b3JlIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbTogKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgUmV0dXJuIGEgcHJpdmF0ZSBzZXNzaW9uIHdoZW4gaXQncyBpbiB1c2Uu
CisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICBQYXNzIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZyB0byB0aGUgbmV3IHByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6aW5Q
cml2YXRlQnJvd3NpbmdNb2RlKToKKyAgICAgICAgUGFzcyBpblByaXZhdGVCcm93c2luZ01vZGUg
ZmxhZyBmb3IgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc01hbmFnZXIuaDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYW5hZ2VyOjpwcm9j
ZXNzKToKKyAgICAgICAgRXhwb3NlZCwgc28gdGhhdCB3ZSBjYW4gc2VuZCBtZXNzYWdlcyB3aXRo
b3V0IGdvaW5nIHRocm91Z2ggTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp1c2Vz
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjphbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNpbmdQcml2
YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp3aWxsU3RvcFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKToKKyAgICAgICAgTm90aWZ5IE5ldHdvcmtQcm9jZXNzIHdoZW4gZW50
ZXJpbmcgb3IgZXhpdGluZyBwcml2YXRlIGJyb3dzaW5nLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHQuaDogRXhwb3NlZCB1c2VzTmV0d29ya1Byb2Nlc3MoKSBmb3IgdGhlIG5ldyBz
dGF0aWMgZnVuY3Rpb24KKyAgICAgICAgYW55Q29udGV4dFVzZXNOZXR3b3JrUHJvY2VzcyB0byB1
c2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcDogKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQp
OgorICAgICAgICBQdXQgY3VycmVudCBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIG92ZXIgaW4gTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuCisKIDIwMTItMTItMDcgIEhlbGRlciBDb3JyZWlh
ICA8aGVsZGVyLmNvcnJlaWFAbm9raWEuY29tPgogCiAgICAgICAgIFtDb29yZEdmeF0gVmFyaWFi
bGUgbmFtZSBzdGFydHMgd2l0aCB1cHBlciBjYXNlIGNoYXJhY3RlcgpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTcsMTkgKzE1NywxOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRTCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVz
Rm9yRE9NKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nJiBy
ZXN1bHQpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBz
dG9yYWdlIHNlc3Npb24uCi0gICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFy
dHksIHVybCk7CisgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBh
cnR5LCB1cmwpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OnNldENvb2tp
ZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5n
ZXQoKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOworICAgIFdlYkNvcmU6OnNldENv
b2tpZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNl
LCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoY29uc3QgS1VS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgS1VSTCYgdXJsLCBib29sJiByZXN1bHQpCiB7CiAgICAgLy8g
RklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0g
ICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBhcnR5LCB1cmwpOworICAgIHJl
c3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5n
JiByZXN1bHQpCkBAIC0xODEsMzMgKzE4MSwzMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjb29rCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRS
YXdDb29raWVzKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgVmVjdG9y
PENvb2tpZT4mIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBVc2Ug
YSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KLSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOworICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxldGVDb29raWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9y
YWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKKyAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShm
YWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAogdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoVmVj
dG9yPFN0cmluZz4mIGhvc3RuYW1lcykKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3Mp
OiBVc2UgYSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KICAgICBIYXNoU2V0PFN0cmluZz4gaG9z
dG5hbWVzU2V0OwotICAgIFdlYkNvcmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgaG9zdG5hbWVzU2V0
KTsKKyAgICBXZWJDb3JlOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBob3N0bmFtZXNTZXQp
OwogICAgIFdURjo6Y29weVRvVmVjdG9yKGhvc3RuYW1lc1NldCwgaG9zdG5hbWVzKTsKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9j
ZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlKS5nZXQoKSwgaG9zdG5hbWUpOworICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFs
c2UpLmdldCgpLCBob3N0bmFtZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMoKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OmRlbGV0ZUFs
bENvb2tpZXMoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdl
dCgpKTsKKyAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDEzNjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYg
KzEwMSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHIKICNpZiBQ
TEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UocGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgorCisgICAgaWYgKHBhcmFt
ZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQpJbmRleDogU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCShyZXZpc2lvbiAxMzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4
Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgcmVmKCk7CiAg
ICAgCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogQ3JlYXRlIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0IHdpdGggYWN0dWFsIHNldHRpbmdzLgotICAgIG1fbmV0d29ya2luZ0NvbnRleHQg
PSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSk7CisgICAgbV9u
ZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpKTsKIAog
ICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBk
ZWZlcnNMb2FkaW5nCiAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcmVxdWVzdFBhcmFtZXRlcnMucmVxdWVzdCgpLCB0aGlz
LCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5nICovLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSgpID09IFNuaWZmQ29udGVudCk7CkBAIC0yMzQsOSArMjM0LDExIEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVIKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2Uo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQb2xpY3kmKQor
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUG9saWN5JiBwb2xpY3kpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBGSVhNRSAoMTI4Mzg1NDMpOiBVbnN1cmUgaWYg
dGhpcyBpcyBuZWVkZWQsIHByaXZhdGUgc2Vzc2lvbiBpcyBpbi1tZW1vcnkgYW55d2F5LgorICAg
IGlmIChwb2xpY3kgPT0gU3RvcmFnZUFsbG93ZWQgJiYgbV9yZXF1ZXN0UGFyYW1ldGVycy5pblBy
aXZhdGVCcm93c2luZ01vZGUoKSkKKyAgICAgICAgcG9saWN5ID0gU3RvcmFnZUFsbG93ZWRJbk1l
bW9yeU9ubHk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IDog
cHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wg
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKSk7CiAgICAgfQogICAgIHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJv
b2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IE9WRVJSSURFOwogCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CiAgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9Owog
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCShyZXZpc2lvbiAxMzY5MTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vz
c2lvbjsKIAotUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCkKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKICAgICA6IG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpCiAgICAgLCBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCkKKyAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQogewogfQogCkBAIC02NCw3ICs2NSwxMSBAQCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojpsb2NhbEZpbGVDCiAKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSAoTmV0d29y
a1Byb2Nlc3MpOiBJbXBsZW1lbnQuCisgICAgaWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkg
eworICAgICAgICBBU1NFUlQocHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24pOworICAgICAg
ICByZXR1cm4gcHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb247CisgICAgfQorICAgIC8vIEZJ
WE1FIChOZXR3b3JrUHJvY2Vzcyk6IFJldHVybiBhIGRlZmF1bHQgc2Vzc2lvbiB0aGF0J3MgdXNl
ZCBmb3IgdGVzdGluZy4KICAgICByZXR1cm4gMDsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKIH0KIAogYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTUyLDYgKzUzLDggQEAg
Ym9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZAogICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogI2VuZGlmCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LnByaXZh
dGVCcm93c2luZ0VuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOCBAQCBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgU3RyaW5nIHBhcmVudFBy
b2Nlc3NOYW1lOwogICAgIFN0cmluZyB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogI2VuZGlm
CisKKyAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDEz
NjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTQgKzM4LDE2IEBAIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmUKICAgICA6IG1fcHJpb3JpdHkoUmVz
b3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KQogICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3ko
U25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFscykKKyAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKGZhbHNlKQog
ewogfQogCi1OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscykKK05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBTdG9yZWRDcmVk
ZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9k
ZSkKICAgICA6IG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkK
ICAgICAsIG1fY29udGVudFNuaWZmaW5nUG9saWN5KGNvbnRlbnRTbmlmZmluZ1BvbGljeSkKICAg
ICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyhhbGxvd1N0b3JlZENyZWRlbnRpYWxzKQorICAg
ICwgbV9pblByaXZhdGVCcm93c2luZ01vZGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKQogewogfQog
CkBAIC01NSw2ICs1Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y28KICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9wcmlvcml0eSk7CiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKG1fY29udGVudFNuaWZmaW5nUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
bV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2luUHJpdmF0
ZUJyb3dzaW5nTW9kZSk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC02Nyw2ICs3MCw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQubV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5t
X2luUHJpdmF0ZUJyb3dzaW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAx
MzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYg
dWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cygpOwotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93
c2luZ01vZGUpOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CkBAIC01MywxMiArNTMsMTQgQEAgcHVi
bGljOgogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRTbmlmZmlu
Z1BvbGljeTsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7IH0KKyAg
ICBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcml2YXRl
QnJvd3NpbmdNb2RlOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVxdWVzdDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5
OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBtX2FsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CisgICAgYm9vbCBtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw4IEBACiAKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWFuYWdlci5oIgorI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1By
b3h5LmgiCiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQpAQCAtMzI0LDExICszMjYsMzcgQEAgdm9p
ZCBXZWJDb250ZXh0OjpzZXRVc2VzTmV0d29ya1Byb2Nlc3MoYgogI2VuZGlmCiB9CiAKK2Jvb2wg
V2ViQ29udGV4dDo6dXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorICAgIHJldHVybiBtX3VzZXNOZXR3b3JrUHJvY2VzczsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3N0YXRpYyBib29sIGFueUNvbnRleHRVc2Vz
TmV0d29ya1Byb2Nlc3MoKQoreworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgY29u
c3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgY29udGV4dHMgPSBXZWJDb250ZXh0OjphbGxDb250ZXh0
cygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGNvbnRleHRzLnNpemUoKTsgaSA8
IGNvdW50OyArK2kpCisgICAgaWYgKGNvbnRleHRzW2ldLT51c2VzTmV0d29ya1Byb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBXZWJDb250ZXh0Ojp3aWxsU3RhcnRVc2luZ1ByaXZhdGVCcm93c2luZygpCiB7CiAgICAg
aWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW50ZXJDb3VudCsrKQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmIChhbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKCkpCisgICAgICAgIE5ldHdvcmtQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkucHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpLCAwKTsKKyNlbmRpZgorCiAgICAgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYg
Y29udGV4dHMgPSBhbGxDb250ZXh0cygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9
IGNvbnRleHRzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIGNvbnRleHRzW2ldLT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKSk7CkBAIC0zNDEsNiArMzY5LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6d2ls
bFN0b3BVc2luZ1ByaXZhdGVCcm8KICAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbnRlckNvdW50
ICYmIC0tbV9wcml2YXRlQnJvd3NpbmdFbnRlckNvdW50KQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmIChhbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKCkpCisgICAgICAgIE5ldHdvcmtQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkucHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKSwgMCk7CisjZW5kaWYKKwogICAgIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0Kj4m
IGNvbnRleHRzID0gYWxsQ29udGV4dHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQg
PSBjb250ZXh0cy5zaXplKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBjb250ZXh0c1tpXS0+
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDYgKzI0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRleHRDaGVja2VyU3RhdGVDaGFuZ2VkKCk7CiAKICAgICB2b2lkIHNldFVzZXNOZXR3b3JrUHJv
Y2Vzcyhib29sKTsKKyAgICBib29sIHVzZXNOZXR3b3JrUHJvY2VzcygpIGNvbnN0OwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBib29sIGFwcGxpY2F0aW9uSXNPY2NsdWRlZCgpIHsg
cmV0dXJuIHNfYXBwbGljYXRpb25Jc09jY2x1ZGVkOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc01hbmFnZXIuaAko
cmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgTmV0d29ya1By
b2Nlc3NQcm94eSogcHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0K
KwogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk+KTsKICAgICAKICAgICB2b2lkIHJlbW92ZU5ldHdvcmtQcm9jZXNzUHJveHkoTmV0d29y
a1Byb2Nlc3NQcm94eSopOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHJldmlz
aW9uIDEzNjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsOCArMTA0LDggQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTAogICAgIC8vIEluIHByYWN0
aWNlIGNsaWVudHMgd2Uga25vdyBhYm91dCBkb24ndCBjYXJlIGFib3V0IHRoZSBpZGVudGlmaWVy
LCBidXQgdGhpcyBpcyBhbm90aGVyIHJlYXNvbgogICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IFJlc291cmNlTG9hZGVycyBnZXQgY29ycmVjdCBpZGVudGlmaWVycyByaWdodCBvZmYgdGhlIGJh
dC4KICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gcmVzb3Vy
Y2VMb2FkZXItPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgPyBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgIAotICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJlcXVlc3QsIHByaW9yaXR5LCBy
ZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05v
dFNuaWZmQ29udGVudCwgYWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CisKKyAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyhyZXF1ZXN0LCBwcmlvcml0eSwgcmVz
b3VyY2VMb2FkZXItPnNob3VsZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RT
bmlmZkNvbnRlbnQsIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHJlc291cmNlTG9hZGVyLT5mcmFt
ZUxvYWRlcigpLT5mcmFtZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkp
OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlNjaGVkdWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZDo6UmVwbHkoaWRl
bnRpZmllciksIDApKSB7CiAgICAgICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdoYXQg
c2hvdWxkIHdlIGRvIGlmIHRoaXMgZmFpbHM/CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
Owo=
</data>
<flag name="commit-queue"
          id="194762"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178285</attachid>
            <date>2012-12-07 14:52:52 -0800</date>
            <delta_ts>2012-12-07 16:06:04 -0800</delta_ts>
            <desc>more build fixing</desc>
            <filename>UsePrivateSession.txt</filename>
            <type>text/plain</type>
            <size>22232</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk4NSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBACisyMDEyLTEyLTA3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmsgcHJvY2VzcyBz
aG91bGQgdXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24gaW4gcHJpdmF0ZSBicm93c2luZyBt
b2RlCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgzODQ5MD4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmeSBOZXR3b3JrUHJvY2VzcyB3aGVu
IGl0IG5lZWRzIHRvIGNyZWF0ZSBvciBkZXN0cm95IGEgcHJpdmF0ZSBicm93c2luZyBzZXNzaW9u
LAorICAgICAgICBhbmQgYWRkIGEgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbWVtYmVy
IHRlbGxpbmcgaWYgdGhlIHBhcnRpY3VsYXIgcmVzb3VyY2UKKyAgICAgICAgc2hvdWxkIGJlIHJl
cXVlc3RlZCB1c2luZyBpdC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkZWxl
dGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMp
OgorICAgICAgICBBZGRlZCBhbm90aGVyIGR1bW15IGFyZ3VtZW50IHRvIGR1bW15IG5ldHdvcmtp
bmcgY29udGV4dC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIEVuc3VyZSBwcml2YXRlIGJyb3dzaW5nIHNlc3Npb24gaWYgaXQncyBuZWVkZWQgZHVl
IHRvIGEgcGVyc2lzdGVudCBwcmVmZXJlbmNlLCBub3QKKyAgICAgICAgYW4gQVBJIGNhbGwgYXQg
cnVudGltZSAod2hpY2ggaXMgaGFuZGxlZCBiZWxvdyBhcyBlbnN1cmUvZGVzdHJveSkuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KTogUGFzcyBwcml2YXRlIGJy
b3dzaW5nIHN0YXRlIHRvIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0CisgICAgICAgIHVzZWQgZm9y
IGxvYWRpbmcuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENh
Y2hlUmVzcG9uc2UpOiBBZGRlZCBhbiBpbXBsZW1udGF0aW9uIHRoYXQKKyAgICAgICAgbWF0Y2hl
cyBXZWJDb3JlLCBidXQgbWF5IGJlIG5vdCBuZWVkZWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDogKFdlYktpdDo6UmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIFN0b3JlIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbTogKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNz
aW9uKToKKyAgICAgICAgUmV0dXJuIGEgcHJpdmF0ZSBzZXNzaW9uIHdoZW4gaXQncyBpbiB1c2Uu
CisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICBQYXNzIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQgZmxhZyB0byB0aGUgbmV3IHByb2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9O
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6aW5Q
cml2YXRlQnJvd3NpbmdNb2RlKToKKyAgICAgICAgUGFzcyBpblByaXZhdGVCcm93c2luZ01vZGUg
ZmxhZyBmb3IgdGhlIHJlcXVlc3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc01hbmFnZXIuaDogKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYW5hZ2VyOjpwcm9j
ZXNzKToKKyAgICAgICAgRXhwb3NlZCwgc28gdGhhdCB3ZSBjYW4gc2VuZCBtZXNzYWdlcyB3aXRo
b3V0IGdvaW5nIHRocm91Z2ggTmV0d29ya1Byb2Nlc3NNYW5hZ2VyLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp1c2Vz
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjphbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6d2lsbFN0YXJ0VXNpbmdQcml2
YXRlQnJvd3NpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp3aWxsU3RvcFVzaW5n
UHJpdmF0ZUJyb3dzaW5nKToKKyAgICAgICAgTm90aWZ5IE5ldHdvcmtQcm9jZXNzIHdoZW4gZW50
ZXJpbmcgb3IgZXhpdGluZyBwcml2YXRlIGJyb3dzaW5nLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHQuaDogRXhwb3NlZCB1c2VzTmV0d29ya1Byb2Nlc3MoKSBmb3IgdGhlIG5ldyBz
dGF0aWMgZnVuY3Rpb24KKyAgICAgICAgYW55Q29udGV4dFVzZXNOZXR3b3JrUHJvY2VzcyB0byB1
c2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcDogKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQp
OgorICAgICAgICBQdXQgY3VycmVudCBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIG92ZXIgaW4gTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuCisKIDIwMTItMTItMDcgIEhlbGRlciBDb3JyZWlh
ICA8aGVsZGVyLmNvcnJlaWFAbm9raWEuY29tPgogCiAgICAgICAgIFtDb29yZEdmeF0gVmFyaWFi
bGUgbmFtZSBzdGFydHMgd2l0aCB1cHBlciBjYXNlIGNoYXJhY3RlcgpJbmRleDogU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTcsMTkgKzE1NywxOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRTCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVz
Rm9yRE9NKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nJiBy
ZXN1bHQpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBz
dG9yYWdlIHNlc3Npb24uCi0gICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFy
dHksIHVybCk7CisgICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0ZvckRPTShSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBh
cnR5LCB1cmwpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBLVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OnNldENvb2tp
ZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5n
ZXQoKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOworICAgIFdlYkNvcmU6OnNldENv
b2tpZXNGcm9tRE9NKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNl
LCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCwgY29va2llU3RyaW5nKTsKIH0KIAogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJsZWQoY29uc3QgS1VS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgS1VSTCYgdXJsLCBib29sJiByZXN1bHQpCiB7CiAgICAgLy8g
RklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0g
ICAgcmVzdWx0ID0gV2ViQ29yZTo6Y29va2llc0VuYWJsZWQoUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdldCgpLCBmaXJzdFBhcnR5LCB1cmwpOworICAgIHJl
c3VsdCA9IFdlYkNvcmU6OmNvb2tpZXNFbmFibGVkKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCksIGZpcnN0UGFydHksIHVybCk7CiB9CiAK
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5n
JiByZXN1bHQpCkBAIC0xODEsMzMgKzE4MSwzMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjb29rCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRS
YXdDb29raWVzKGNvbnN0IEtVUkwmIGZpcnN0UGFydHksIGNvbnN0IEtVUkwmIHVybCwgVmVjdG9y
PENvb2tpZT4mIHJlc3VsdCkKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBVc2Ug
YSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KLSAgICBXZWJDb3JlOjpnZXRSYXdDb29raWVzKFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOworICAgIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMoUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgZmlyc3RQ
YXJ0eSwgdXJsLCByZXN1bHQpOwogfQogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkZWxldGVDb29raWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogVXNlIGEgY29ycmVjdCBzdG9y
YWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKKyAg
ICBXZWJDb3JlOjpkZWxldGVDb29raWUoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShm
YWxzZSwgZmFsc2UsIGZhbHNlKS5nZXQoKSwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAogdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoVmVj
dG9yPFN0cmluZz4mIGhvc3RuYW1lcykKIHsKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3Mp
OiBVc2UgYSBjb3JyZWN0IHN0b3JhZ2Ugc2Vzc2lvbi4KICAgICBIYXNoU2V0PFN0cmluZz4gaG9z
dG5hbWVzU2V0OwotICAgIFdlYkNvcmU6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlKS5nZXQoKSwgaG9zdG5hbWVzU2V0
KTsKKyAgICBXZWJDb3JlOjpnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpLmdldCgpLCBob3N0bmFtZXNTZXQp
OwogICAgIFdURjo6Y29weVRvVmVjdG9yKGhvc3RuYW1lc1NldCwgaG9zdG5hbWVzKTsKIH0KIAog
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGVsZXRlQ29va2llc0Zvckhvc3Ru
YW1lKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiB7CiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9j
ZXNzKTogVXNlIGEgY29ycmVjdCBzdG9yYWdlIHNlc3Npb24uCi0gICAgV2ViQ29yZTo6ZGVsZXRl
Q29va2llc0Zvckhvc3RuYW1lKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlKS5nZXQoKSwgaG9zdG5hbWUpOworICAgIFdlYkNvcmU6OmRlbGV0ZUNvb2tpZXNGb3JI
b3N0bmFtZShSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgZmFs
c2UpLmdldCgpLCBob3N0bmFtZSk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRlbGV0ZUFsbENvb2tpZXMoKQogewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vz
cyk6IFVzZSBhIGNvcnJlY3Qgc3RvcmFnZSBzZXNzaW9uLgotICAgIFdlYkNvcmU6OmRlbGV0ZUFs
bENvb2tpZXMoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UpLmdl
dCgpKTsKKyAgICBXZWJDb3JlOjpkZWxldGVBbGxDb29raWVzKFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBmYWxzZSkuZ2V0KCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDEzNjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYg
KzEwMSw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHIKICNpZiBQ
TEFURk9STShNQUMpIHx8IFVTRShDRk5FVFdPUkspCiAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UocGFyYW1l
dGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgorCisgICAgaWYgKHBhcmFt
ZXRlcnMucHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKQpJbmRleDogU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCShyZXZpc2lvbiAxMzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4
Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgcmVmKCk7CiAg
ICAgCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogQ3JlYXRlIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0IHdpdGggYWN0dWFsIHNldHRpbmdzLgotICAgIG1fbmV0d29ya2luZ0NvbnRleHQg
PSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSk7CisgICAgbV9u
ZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2Us
IGZhbHNlLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpKTsKIAog
ICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBk
ZWZlcnNMb2FkaW5nCiAgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcmVxdWVzdFBhcmFtZXRlcnMucmVxdWVzdCgpLCB0aGlz
LCBmYWxzZSAvKiBkZWZlcnNMb2FkaW5nICovLCBtX3JlcXVlc3RQYXJhbWV0ZXJzLmNvbnRlbnRT
bmlmZmluZ1BvbGljeSgpID09IFNuaWZmQ29udGVudCk7CkBAIC0yMzQsOSArMjM0LDExIEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVIKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2Uo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGUqLCBXZWJDb3JlOjpDYWNoZVN0b3JhZ2VQb2xpY3kmKQor
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlKiwgV2ViQ29yZTo6Q2FjaGVTdG9yYWdlUG9saWN5JiBwb2xpY3kpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAvLyBGSVhNRSAoMTI4Mzg1NDMpOiBVbnN1cmUgaWYg
dGhpcyBpcyBuZWVkZWQsIHByaXZhdGUgc2Vzc2lvbiBpcyBpbi1tZW1vcnkgYW55d2F5LgorICAg
IGlmIChwb2xpY3kgPT0gU3RvcmFnZUFsbG93ZWQgJiYgbV9yZXF1ZXN0UGFyYW1ldGVycy5pblBy
aXZhdGVCcm93c2luZ01vZGUoKSkKKyAgICAgICAgcG9saWN5ID0gU3RvcmFnZUFsbG93ZWRJbk1l
bW9yeU9ubHk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZShSZXNvdXJjZUhhbmRsZSopCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFj
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDkgKzMyLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IDog
cHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wg
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKSk7CiAgICAgfQogICAgIHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCk7CiAKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJv
b2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IE9WRVJSSURFOwogCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CiAgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9Owog
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCShyZXZpc2lvbiAxMzY5MTMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM3LDkgKzM3LDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vz
c2lvbjsKIAotUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCkKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKICAgICA6IG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpCiAgICAgLCBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCkKKyAgICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFi
bGVkKQogewogfQogCkBAIC02NCw3ICs2NSwxMSBAQCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojpsb2NhbEZpbGVDCiAKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSAoTmV0d29y
a1Byb2Nlc3MpOiBJbXBsZW1lbnQuCisgICAgaWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkg
eworICAgICAgICBBU1NFUlQocHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb24pOworICAgICAg
ICByZXR1cm4gcHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb247CisgICAgfQorICAgIC8vIEZJ
WE1FIChOZXR3b3JrUHJvY2Vzcyk6IFJldHVybiBhIGRlZmF1bHQgc2Vzc2lvbiB0aGF0J3MgdXNl
ZCBmb3IgdGVzdGluZy4KICAgICByZXR1cm4gMDsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKIH0KIAogYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTUyLDYgKzUzLDggQEAg
Ym9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZAogICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogI2VuZGlmCisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0LnByaXZh
dGVCcm93c2luZ0VuYWJsZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsOCBAQCBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgCiAgICAgU3RyaW5nIHBhcmVudFBy
b2Nlc3NOYW1lOwogICAgIFN0cmluZyB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogI2VuZGlm
CisKKyAgICBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDEz
NjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTQgKzM4LDE2IEBAIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmUKICAgICA6IG1fcHJpb3JpdHkoUmVz
b3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93KQogICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3ko
U25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dT
dG9yZWRDcmVkZW50aWFscykKKyAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKGZhbHNlKQog
ewogfQogCi1OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscykKK05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBTdG9yZWRDcmVk
ZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9k
ZSkKICAgICA6IG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkK
ICAgICAsIG1fY29udGVudFNuaWZmaW5nUG9saWN5KGNvbnRlbnRTbmlmZmluZ1BvbGljeSkKICAg
ICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyhhbGxvd1N0b3JlZENyZWRlbnRpYWxzKQorICAg
ICwgbV9pblByaXZhdGVCcm93c2luZ01vZGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKQogewogfQog
CkBAIC01NSw2ICs1Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y28KICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9wcmlvcml0eSk7CiAgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKG1fY29udGVudFNuaWZmaW5nUG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0o
bV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2luUHJpdmF0
ZUJyb3dzaW5nTW9kZSk7CiB9CiAKIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC02Nyw2ICs3MCw4IEBAIGJvb2wgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY28KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQubV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5t
X2luUHJpdmF0ZUJyb3dzaW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCShyZXZpc2lvbiAx
MzY5MTMpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIHR5cGVkZWYg
dWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cygpOwotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzKTsKKyAgICBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93
c2luZ01vZGUpOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CkBAIC01MywxMiArNTMsMTQgQEAgcHVi
bGljOgogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3Qg
eyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRTbmlmZmlu
Z1BvbGljeTsgfQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7IH0KKyAg
ICBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcml2YXRl
QnJvd3NpbmdNb2RlOyB9CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IG1fcmVxdWVzdDsKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5
OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBtX2FsbG93U3RvcmVkQ3JlZGVu
dGlhbHM7CisgICAgYm9vbCBtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw4IEBACiAKICNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWFuYWdlci5oIgorI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1By
b3h5LmgiCiAjZW5kaWYKIAogI2lmIFVTRShTT1VQKQpAQCAtMzI0LDExICszMjYsMzcgQEAgdm9p
ZCBXZWJDb250ZXh0OjpzZXRVc2VzTmV0d29ya1Byb2Nlc3MoYgogI2VuZGlmCiB9CiAKK2Jvb2wg
V2ViQ29udGV4dDo6dXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorICAgIHJldHVybiBtX3VzZXNOZXR3b3JrUHJvY2VzczsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorc3RhdGljIGJvb2wgYW55Q29udGV4dFVzZXNOZXR3b3JrUHJvY2VzcygpCit7CisgICAgY29u
c3QgVmVjdG9yPFdlYkNvbnRleHQqPiYgY29udGV4dHMgPSBXZWJDb250ZXh0OjphbGxDb250ZXh0
cygpOworICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IGNvbnRleHRzLnNpemUoKTsgaSA8
IGNvdW50OyArK2kpCisgICAgaWYgKGNvbnRleHRzW2ldLT51c2VzTmV0d29ya1Byb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwog
dm9pZCBXZWJDb250ZXh0Ojp3aWxsU3RhcnRVc2luZ1ByaXZhdGVCcm93c2luZygpCiB7CiAgICAg
aWYgKG1fcHJpdmF0ZUJyb3dzaW5nRW50ZXJDb3VudCsrKQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmIChhbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKCkpCisgICAgICAgIE5ldHdvcmtQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkucHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpLCAwKTsKKyNlbmRpZgorCiAgICAgY29uc3QgVmVjdG9yPFdlYkNvbnRleHQqPiYg
Y29udGV4dHMgPSBhbGxDb250ZXh0cygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9
IGNvbnRleHRzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIGNvbnRleHRzW2ldLT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVuc3VyZVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKSk7CkBAIC0zNDEsNiArMzY5LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6d2ls
bFN0b3BVc2luZ1ByaXZhdGVCcm8KICAgICBpZiAobV9wcml2YXRlQnJvd3NpbmdFbnRlckNvdW50
ICYmIC0tbV9wcml2YXRlQnJvd3NpbmdFbnRlckNvdW50KQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmIChhbnlDb250ZXh0VXNlc05ldHdvcmtQ
cm9jZXNzKCkpCisgICAgICAgIE5ldHdvcmtQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkucHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKSwgMCk7CisjZW5kaWYKKwogICAgIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0Kj4m
IGNvbnRleHRzID0gYWxsQ29udGV4dHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQg
PSBjb250ZXh0cy5zaXplKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBjb250ZXh0c1tpXS0+
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEZXN0cm95UHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
aAkocmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDYgKzI0NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRleHRDaGVja2VyU3RhdGVDaGFuZ2VkKCk7CiAKICAgICB2b2lkIHNldFVzZXNOZXR3b3JrUHJv
Y2Vzcyhib29sKTsKKyAgICBib29sIHVzZXNOZXR3b3JrUHJvY2VzcygpIGNvbnN0OwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHN0YXRpYyBib29sIGFwcGxpY2F0aW9uSXNPY2NsdWRlZCgpIHsg
cmV0dXJuIHNfYXBwbGljYXRpb25Jc09jY2x1ZGVkOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc01hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc01hbmFnZXIuaAko
cmV2aXNpb24gMTM2OTEzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOwogCisgICAgTmV0d29ya1By
b2Nlc3NQcm94eSogcHJvY2VzcygpIHsgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MuZ2V0KCk7IH0K
KwogICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFBhc3NSZWZQdHI8TWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVk
UmVwbHk+KTsKICAgICAKICAgICB2b2lkIHJlbW92ZU5ldHdvcmtQcm9jZXNzUHJveHkoTmV0d29y
a1Byb2Nlc3NQcm94eSopOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAJKHJldmlz
aW9uIDEzNjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsOCArMTA0LDggQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTAogICAgIC8vIEluIHByYWN0
aWNlIGNsaWVudHMgd2Uga25vdyBhYm91dCBkb24ndCBjYXJlIGFib3V0IHRoZSBpZGVudGlmaWVy
LCBidXQgdGhpcyBpcyBhbm90aGVyIHJlYXNvbgogICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IFJlc291cmNlTG9hZGVycyBnZXQgY29ycmVjdCBpZGVudGlmaWVycyByaWdodCBvZmYgdGhlIGJh
dC4KICAgICBTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gcmVzb3Vy
Y2VMb2FkZXItPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgPyBBbGxvd1N0b3JlZENyZWRl
bnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotICAgIAotICAgIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJlcXVlc3QsIHByaW9yaXR5LCBy
ZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkgPyBTbmlmZkNvbnRlbnQgOiBEb05v
dFNuaWZmQ29udGVudCwgYWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CisKKyAgICBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyhyZXF1ZXN0LCBwcmlvcml0eSwgcmVz
b3VyY2VMb2FkZXItPnNob3VsZFNuaWZmQ29udGVudCgpID8gU25pZmZDb250ZW50IDogRG9Ob3RT
bmlmZkNvbnRlbnQsIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHJlc291cmNlTG9hZGVyLT5mcmFt
ZUxvYWRlcigpLT5mcmFtZSgpLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkp
OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29u
bmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlNjaGVkdWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZDo6UmVwbHkoaWRl
bnRpZmllciksIDApKSB7CiAgICAgICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdoYXQg
c2hvdWxkIHdlIGRvIGlmIHRoaXMgZmFpbHM/CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
Owo=
</data>
<flag name="review"
          id="194763"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>