<?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>68122</bug_id>
          
          <creation_ts>2011-09-14 15:12:06 -0700</creation_ts>
          <short_desc>Unzip initialization lists and constructors in JSCell hierarchy (7/7)</short_desc>
          <delta_ts>2011-09-15 18:19:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67692</dependson>
          <blocked>66567</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>467388</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-14 15:12:06 -0700</bug_when>
    <thetext>This is the seventh (and final) level of the unzipping process described in https://bugs.webkit.org/show_bug.cgi?id=66567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467480</commentid>
    <comment_count>1</comment_count>
      <attachid>107424</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-14 17:05:58 -0700</bug_when>
    <thetext>Created attachment 107424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467946</commentid>
    <comment_count>2</comment_count>
      <attachid>107424</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-15 11:39:25 -0700</bug_when>
    <thetext>Comment on attachment 107424
Patch

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

r=me

&gt; Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm:188
&gt;          // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object
&gt;          // exec-globalData() is also likely wrong.
&gt;          Structure* domStructure = deprecatedGetDOMStructure&lt;ProxyRuntimeMethod&gt;(exec);

Can you remove this FIXME?

&gt; Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h:46
&gt;          // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object.
&gt;          // exec-&gt;globalData() is also likely wrong.
&gt;          JSC::Structure* structure = WebCore::deprecatedGetDOMStructure&lt;ProxyRuntimeObject&gt;(exec);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468012</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-15 12:53:34 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm:188
&gt; &gt;          // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object
&gt; &gt;          // exec-globalData() is also likely wrong.
&gt; &gt;          Structure* domStructure = deprecatedGetDOMStructure&lt;ProxyRuntimeMethod&gt;(exec);
&gt; 
&gt; Can you remove this FIXME?
I talked to Oliver, and I think it still needs to be fixed.  We can probably just use the JSGlobalObject that&apos;s passed into the create method, but we should ASSERT that the JSGlobalObject is indeed a JSDOMGlobalObject.  It&apos;s probably better to do as a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468021</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-15 13:01:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; &gt; Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm:188
&gt; &gt; &gt;          // FIXME: deprecatedGetDOMStructure uses the prototype off of the wrong global object
&gt; &gt; &gt;          // exec-globalData() is also likely wrong.
&gt; &gt; &gt;          Structure* domStructure = deprecatedGetDOMStructure&lt;ProxyRuntimeMethod&gt;(exec);
&gt; &gt; 
&gt; &gt; Can you remove this FIXME?
&gt; I talked to Oliver, and I think it still needs to be fixed.  We can probably just use the JSGlobalObject that&apos;s passed into the create method, but we should ASSERT that the JSGlobalObject is indeed a JSDOMGlobalObject.  It&apos;s probably better to do as a separate patch.

No, you should be using the global object that comes from this, e.g.. this-&gt;globalObject() -- that ensure the method from a runtime object has the same origin global object (and hence prototypes, etc) as the actual object being accessed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468044</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-15 13:34:07 -0700</bug_when>
    <thetext>&gt; No, you should be using the global object that comes from this, e.g.. this-&gt;globalObject() -- that ensure the method from a runtime object has the same origin global object (and hence prototypes, etc) as the actual object being accessed.

Bottom line: this is still broken and will take at least an additional patch to fix, along with some info from Anders about how we currently store RootObjects for plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468209</commentid>
    <comment_count>6</comment_count>
      <attachid>107424</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-15 18:18:57 -0700</bug_when>
    <thetext>Comment on attachment 107424
Patch

Clearing flags on attachment: 107424

Committed r95250: &lt;http://trac.webkit.org/changeset/95250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468211</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-15 18:19:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107424</attachid>
            <date>2011-09-14 17:05:58 -0700</date>
            <delta_ts>2011-09-15 18:18:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68122-20110914170558.patch</filename>
            <type>text/plain</type>
            <size>32647</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUxMjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggYzBkMTYxMGZmNjA3Y2VhZGM0NDhhNDY0ZmI2YjJiOWFj
MDFhYmJjYi4uNGI3YTQyYmE1MGYwZjllNGE2NGY3OWNhOGM0MmVhMzZkODEwNTk2MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTEzNCwxMSAr
MTM0LDEzIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2Jq
ZWN0LCAhc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSB8fCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVj
dCgpID09IGdsb2JhbE9iamVjdCk7CiAgICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNr
T2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAo
KSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIGNhbGxiYWNrT2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVjKTsKICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewogICAgICAgICBKU0NhbGxiYWNrT2JqZWN0KiBjYWxs
YmFja09iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KGdsb2JhbERh
dGEuaGVhcCkpIEpTQ2FsbGJhY2tPYmplY3QoZ2xvYmFsRGF0YSwgY2xhc3NSZWYsIHN0cnVjdHVy
ZSk7CisgICAgICAgIGNhbGxiYWNrT2JqZWN0LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCAy
N2M1Yzc2NTY0ZDI3ODFkZjc4YWJkZTcyN2JjMjlkYTY1NWE2ZWVmLi42M2JmYmM2ZjY3ZTc2Zjky
NjQ3ZmMzYmQ1ZTkwOWYyYmI0Y2RmYjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsNyArNTQsNiBAQCBK
U0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVj
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZQogICAgIDogUGFyZW50KGV4ZWMtPmdsb2JhbERhdGEoKSwg
c3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2Fs
bGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihl
eGVjKTsKIH0KIAogLy8gR2xvYmFsIG9iamVjdCBjb25zdHJ1Y3Rvci4KQEAgLTY0LDcgKzYzLDYg
QEAgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVj
dHVyZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNr
T2JqZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCA1YTBmZTM5M2I1MTU3MzIwNTkxYmRiZTI3MTMyYzVmYjk0ZDUxNTRkLi4zMmQ1ODUyNmY3
NTJmMmVhZTgzMmYyNDRkOGU4YWM1YTI4ZTFiM2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAxMS0wOS0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJl
cmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBj
b25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoNy83KQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMjIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wbGV0ZWQgdGhlIHNldmVudGggYW5kIGZp
bmFsIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAg
ICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkg
d2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAgICAg
IEpTQ2FsbGJhY2tPYmplY3Qgd2FzIG1pc3NlZCBpbiBwcmV2aW91cyBwYXRjaGVzIGR1ZSB0byB0
aGUgZmFjdCB0aGF0IAorICAgICAgICBpdCdzIG5vbi1vYnZpb3VzIChhdCBsZWFzdCB0byBteSBz
Y3JpcHQpIHRoYXQgaXQgaXMgaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHksIHNvIAorICAgICAgICB0
aGlzIGlzIGp1c3QgYSBiaXQgb2YgcmV0cm9hY3RpdmUgY2xlYW51cC4KKworICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAg
ICAgKEpTQzo6OjpKU0NhbGxiYWNrT2JqZWN0KToKKwogMjAxMS0wOS0xNCAgRmlsaXAgUGl6bG8g
IDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LiAgVHVy
biBvZmYgdGllcmVkIGNvbXBpbGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFlZTEyYWFkMjg4MWE0OGZm
OWU2OTAxMDgzY2RjYzQ1MmNiYzhmZjYuLjA5NDYyYTRmYmMyMThlODVkMGU4ZTNjYzcyMGMyY2Y4
OTJlZWFjZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMS0wOS0xNCAgTWFyayBI
YWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuemlwIGluaXRp
YWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoNy83
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcg
dGVzdHMuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBzZXZlbnRoIGFuZCBmaW5hbCBsZXZlbCBv
ZiB0aGUgcmVmYWN0b3JpbmcgdG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhv
ZHMgdG8gYWxsIGNsYXNzZXMgd2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRy
aXZpYWwgCisgICAgICAgIGNvbnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIGNvbnNp
c3RzIG9mIG1vdmluZyB0aGUgZmluaXNoQ3JlYXRpb24oKSBtZXRob2QgY2FsbCBpbnRvIHRoZSBj
cmVhdGUgbWV0aG9kcworICAgICAgICBvZiB0aGUgc2l4dGggbGV2ZWwgb2YgdGhlIGhpZXJhcmNo
eSBhcyB3YXMgZG9uZSBpbiBwcmV2aW91cyBwYXRjaGVzLiAgCisKKyAgICAgICAgVGhlIHNwZWNp
YWwgY2FzZXMgZm9yIEpTQXVkaW9Db25zdHJ1Y3RvciwgSlNPcHRpb25Db25zdHJ1Y3RvciwgYW5k
IEpTSW1hZ2VDb25zdHJ1Y3RvciAKKyAgICAgICAgd2VyZSBhbHNvIGx1bXBlZCBpbiBhbmQgZ2l2
ZW4gZmluaXNoQ3JlYXRpb24oKSBtZXRob2RzIHRoYXQgYXJlIGNhbGxlZCBpbiB0aGVpciAKKyAg
ICAgICAgY3JlYXRlIG1ldGhvZHMgYmVjYXVzZSB3ZSBhcmUgYXQgdGhlIGVuZCBhbmQgd2FudCB0
byBhdm9pZCBhIHRyaXZpYWwgcGF0Y2gganVzdCAKKyAgICAgICAgZm9yIG1vdmluZyB0aGVpciBm
aW5pc2hDcmVhdGlvbigpIG1ldGhvZHMgZnJvbSB0aGVpciBjb25zdHJ1Y3RvciB0byB0aGVpciBj
cmVhdGUgbWV0aG9kLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQXVkaW9Db25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQXVkaW9Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6SlNBdWRpb0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ29uc3RydWN0
b3JXaXRoRG9jdW1lbnQ6OkRPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW1h
Z2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0ltYWdlQ29uc3RydWN0b3I6
OkpTSW1hZ2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0ltYWdlQ29uc3RydWN0
b3I6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNXb3JrZXJDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRl
eHRCYXNlOjpKU1dvcmtlckNvbnRleHRCYXNlKToKKworICAgICAgICBUaGUgYmluZGluZ3MgZ2Vu
ZXJhdGlvbiBzY3JpcHQgd2FzIGFsc28gY2hhbmdlZCB0byBtb3ZlIHRoZSBmaW5pc2hDcmVhdGlv
bigpIGNhbGwgaW50byB0aGUgCisgICAgICAgIGNyZWF0ZSBtZXRob2RzIGZvciBkZXNjZW5kYW50
cyBvZiBKU1dvcmtlckNvbnRleHRCYXNlIGFuZCBKU0RPTVdpbmRvd0Jhc2UgYmVjYXVzZSB0aG9z
ZSBiYXNlCisgICAgICAgIGNsYXNzZXMgaGFkIGl0IHJlbW92ZWQgZnJvbSB0aGVpciBjb25zdHJ1
Y3RvcnMuICAKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAqIGJyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Q1J1bnRpbWVNZXRob2Q6OmNyZWF0ZSk6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU1ldGhvZDo6Q1J1bnRpbWVNZXRob2Qp
OgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAg
IChKYXZhUnVudGltZU1ldGhvZDo6Y3JlYXRlKToKKyAgICAgICAgKEphdmFSdW50aW1lTWV0aG9k
OjpKYXZhUnVudGltZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19pbnN0YW5j
ZS5tbToKKyAgICAgICAgKE9iakNSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAoT2Jq
Q1J1bnRpbWVNZXRob2Q6Ok9iakNSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKiBicmlkZ2UvcXQv
cXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpRdFJ1bnRpbWVNZXRhTWV0aG9kKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QpOgorICAgICAg
ICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1
bnRpbWVNZXRhTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50
aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y3JlYXRlKToKKwogMjAxMS0wOS0xNCAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEdldCByaWQgb2YgUmVzb3VyY2VI
YW5kbGU6OmJ1ZmZlcmVkRGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCAyOTVhODE5ZGI5OTI2YzVmMzAxNjljZTNiYjI5
YjNiYjc4OWM4ZWEyLi5mMzA5YzI4MWYxZGI3MGFhMWI0MzcyYTRlNzU4NzZjY2E0NGQ0NzA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5j
cHAKQEAgLTM5LDkgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQ2xhc3NJ
bmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3RvciIsICZE
T01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6c19pbmZvLCAwLCAwIH07CiAKLUpTQXVkaW9Db25z
dHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU0F1ZGlvQ29uc3Ry
dWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50
KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQogeworfQorCit2b2lkIEpTQXVkaW9Db25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0hUTUxBdWRpb0VsZW1l
bnRQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CiAgICAgcHV0RGly
ZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNO
dW1iZXIoMSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKaW5kZXggMTllNjQ1ZmJk
ZmE3OGE0Zjk0ZTBlZGQzNGFmNzk1Mjk4NDE5NzJlNS4uMzVjNDgwNTE2YmRkNTFmYTcwYzc3MjMz
NjBlNTNjNzYzNjZjMWE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnN0cnVjdG9yLmgKQEAgLTQwLDcgKzQwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHN0YXRpYyBKU0F1ZGlvQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoSlNDOjphbGxv
Y2F0ZUNlbGw8SlNBdWRpb0NvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNBdWRpb0NvbnN0
cnVjdG9yKGV4ZWMsIHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIEpTQXVk
aW9Db25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTQXVk
aW9Db25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEpTQXVkaW9Db25zdHJ1Y3RvcihzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRp
b24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsK
ICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC01MSw3ICs1Myw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEpTQXVkaW9Db25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICAgICAg
SlNBdWRpb0NvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVj
dERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA0ZTI5MGVkOTE5MzJjY2M5ZTYyNjg5N2MwOGQx
NDc5NDU1OWI3YjE2Li43ODBjNjM4MzY2NGEyYjk2NWY5NmY2OTUzMGE2NDE4Njg2MmJmMTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNzMsNyArNzMs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50KEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiAgICAgICAgICAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0cnVjdHVyZSwgZ2xv
YmFsT2JqZWN0KQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxP
YmplY3QpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggN2ZjYWU3NjQ2YjY0Mzc4ZGI0OTAyNTZlMGQ0NDI3
ZjU5MTcwYjEzYi4uMjg4Y2EwYjZmYmQ3NjFlOTZiZWE0ZmRmY2I2ZTNjYjA3NjI1MzIwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC00
OCw3ICs0OCw2IEBAIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAgICAgLCBtX2ltcGwod2luZG93
KQogICAgICwgbV9zaGVsbChzaGVsbCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBzaGVsbCk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYjZk
YmJlNzA5OGUwNTdiNWQ0ZTViNjcyOWNjY2FmMzNiZTM1NjQ1Ny4uOWExODBmOWFlMzYxNzM3Mzcz
NWRjYmU2YWI4ZmY1NDAwNWY3OGUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC0zNCw5ICszNCwxNCBAQCBBU1NFUlRfQ0xB
U1NfRklUU19JTl9DRUxMKEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBK
U0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29uc3RydWN0b3IiLCAmRE9NQ29u
c3RydWN0b3JXaXRoRG9jdW1lbnQ6OnNfaW5mbywgMCwgMCB9OwogCi1KU0ltYWdlQ29uc3RydWN0
b3I6OkpTSW1hZ2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQorSlNJbWFnZUNvbnN0cnVjdG9y
OjpKU0ltYWdlQ29uc3RydWN0b3IoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgOiBET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudChzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCkKIHsKK30KKwordm9pZCBKU0ltYWdlQ29uc3RydWN0b3I6OmZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJv
dG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCAzNWM0NDM0MDY0
MTYyM2NhNDBiNTVhNjBiNjU5NThlOWJhYjc0ZjdlLi5kNDU0YjQyNWE0ZTM3ODQwNjE3YjNjMmIy
Yjc4NDZkZDdiOGQ0NjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ltYWdlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lt
YWdlQ29uc3RydWN0b3IuaApAQCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgc3RhdGljIEpTSW1hZ2VDb25zdHJ1Y3RvciogY3JlYXRlKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9j
YXRlQ2VsbDxKU0ltYWdlQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBKU0ltYWdlQ29uc3Ry
dWN0b3IoZXhlYywgc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgSlNJbWFn
ZUNvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8SlNJbWFn
ZUNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNJbWFnZUNvbnN0cnVjdG9yKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlv
bihleGVjLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTQyLDcgKzQ0LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19p
bmZvOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNJbWFnZUNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgICAgICBK
U0ltYWdlQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwor
ICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqKTsKICAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDA5MjA3ZTJiNDgw
Y2VhODFlNThiYTM5OTU1MGVkMGY5NjlhYzkwNTMuLmY3ZDNlN2M2ZWE4Y2NiNzliZGUwZDIxOTll
YzA3MTQ2NTY5N2U3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNSw5ICszNSwxNCBAQCBBU1NFUlRfQ0xBU1NfRklU
U19JTl9DRUxMKEpTT3B0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gSlNPcHRp
b25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9uQ29uc3RydWN0b3IiLCAmRE9NQ29uc3Ry
dWN0b3JXaXRoRG9jdW1lbnQ6OnNfaW5mbywgMCwgMCB9OwogCi1KU09wdGlvbkNvbnN0cnVjdG9y
OjpKU09wdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU09wdGlvbkNvbnN0cnVjdG9y
OjpKU09wdGlvbkNvbnN0cnVjdG9yKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgIDogRE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQoc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QpCiB7Cit9CisKK3ZvaWQgSlNPcHRpb25Db25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0hUTUxPcHRpb25FbGVtZW50
UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIHB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVt
YmVyKDQpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggMzkyNjFhMDk3
ZDU1OGVjZDA5MDQ2YWE2ODIxMDYxYTM4YmU4OGVkMS4uMmQ5MzVjYWU3M2ZiMzdkMWY3ODY2ZWZm
MzEyODVlN2RjZjRiNzg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaApAQCAtMzIsNyArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgc3RhdGljIEpTT3B0aW9uQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoSlNDOjph
bGxvY2F0ZUNlbGw8SlNPcHRpb25Db25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEpTT3B0aW9u
Q29uc3RydWN0b3IoZXhlYywgc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAg
SlNPcHRpb25Db25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxs
PEpTT3B0aW9uQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBKU09wdGlvbkNvbnN0cnVjdG9y
KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5p
c2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0
cnVjdG9yOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAgLTQzLDcgKzQ1
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNPcHRpb25Db25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsK
KyAgICAgICAgSlNPcHRpb25Db25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCopOwogICAgICAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBn
ZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKaW5kZXgg
NjU4NGU4NmY3NDRiZDQ5ZmIxY2UzMGRjNTllZWIwNzY0MTBmOTY5ZC4uZTdhMTViMjdhYTFmMTdk
YTU1YmMwOGNmMDcyZDlkNWM5MGQ2NzQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKQEAgLTUyLDcgKzUyLDYgQEAgSlNXb3Jr
ZXJDb250ZXh0QmFzZTo6SlNXb3JrZXJDb250ZXh0QmFzZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpTdHIKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSwgbm9ybWFsV29ybGQoZ2xvYmFsRGF0YSkpCiAgICAgLCBtX2ltcGwoaW1wbCkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzKTsKIH0KIAogdm9pZCBKU1dvcmtl
ckNvbnRleHRCYXNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
V29ya2VyQ29udGV4dEJhc2UqIHRoaXNWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMjYyNTIwNWQ3ODNjOTA3MGNi
MmQ4MWQxNjhmZmUzMDdlNjBmNDFhMS4uYTFjYjAyNjE4ZWJlMDhmNmUwNDhhOTkzNWU2YTc0NTgw
MmJjMTNhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTczMSwxMiArNzMxLDE0IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVh
dGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiB3aW5kb3dT
aGVsbClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICAkY2xhc3NOYW1lKiBwdHIgPSBuZXcg
KEpTQzo6YWxsb2NhdGVDZWxsPCRjbGFzc05hbWU+KGdsb2JhbERhdGEuaGVhcCkpICR7Y2xhc3NO
YW1lfShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGltcGwsIHdpbmRvd1NoZWxsKTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEsIHdpbmRvd1NoZWxsKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgfVxuXG4iKTsKICAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBs
KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoSlND
OjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFzc05hbWV9
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBwdHIpO1xu
Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4i
KTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0gZWxz
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3RhbmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCmluZGV4IDQxNWNiNDk0ZWY0
Zjg2ZmMxOTU5ZGQxYzMwMDhiM2Y3YzU1MjZjN2EuLjFkM2MzYTQyMTY1YzkwMzA5NjgxMTE2ZmEw
MGI5M2EzZDUxNTFhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5z
dGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCkBA
IC0xMTgsNyArMTE4LDkgQEAgcHVibGljOgogICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdl
dERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwg
b2JqZWN0CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9i
amVjdCBmb3IgImkiLgogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6
OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8Q1J1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkp
KSBDUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwg
bGlzdCk7CisgICAgICAgIENSdW50aW1lTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxDUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIENSdW50aW1lTWV0aG9kKGdsb2JhbE9i
amVjdCwgZG9tU3RydWN0dXJlLCBsaXN0KTsKKyAgICAgICAgbWV0aG9kLT5maW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOworICAgICAgICByZXR1cm4gbWV0aG9kOwogICAg
IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90
eXBlKQpAQCAtMTI5LDEwICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAgQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCisgICAg
Q1J1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAgICAgICA6IFJ1bnRpbWVN
ZXRob2QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxpc3QpCiAgICAgewotICAgICAgICBmaW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOwogICAgIH0KIAogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUlu
c3RhbmNlSlNDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5j
ZUpTQy5jcHAKaW5kZXggNDg2MjkxOGNmMjNhMjEyNWRiM2EwM2M1M2QwNGVmMjk5ZmNjNTI4NC4u
NDA2ZmZkMzVlYzcxNWI5NWVhZWRlMGYzZWU3MWE3NDUzNTI0MjdlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCkBAIC0xMjMsNyAr
MTIzLDkgQEAgcHVibGljOgogICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVj
dHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CiAg
ICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3Ig
ImkiLgogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBK
YXZhUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwg
bGlzdCk7CisgICAgICAgIEphdmFSdW50aW1lTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRl
Q2VsbDxKYXZhUnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEphdmFSdW50aW1lTWV0aG9k
KGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBsaXN0KTsKKyAgICAgICAgbWV0aG9kLT5maW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOworICAgICAgICByZXR1cm4gbWV0
aG9kOwogICAgIH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG90eXBlKQpAQCAtMTM0LDEwICsxMzYsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHByaXZhdGU6Ci0gICAgSmF2YVJ1bnRpbWVNZXRob2Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3Qm
IGxpc3QpCisgICAgSmF2YVJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQogICAg
ICAgICA6IFJ1bnRpbWVNZXRob2QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxpc3QpCiAgICAg
ewotICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOwogICAg
IH0KIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19pbnN0YW5jZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
aW5zdGFuY2UubW0KaW5kZXggMDZmYzkwZjc5OWM0ZDU5MzE1NzgxNmQxZjVjYTc5YjY4ZTliOWI3
Ni4uNTQyMmU2MzBkNzMyYTdhYmE1MmVjNWEzODQ0ODY1ZDIzOTE2M2NhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCkBAIC0xNzgsNyArMTc4LDkgQEAg
cHVibGljOgogICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2Vz
IHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CiAgICAgICAgIC8v
IFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgogICAg
ICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8T2JqQ1J1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8T2JqQ1J1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBPYmpDUnVudGlt
ZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgbmFtZSwgbGlzdCk7Cisg
ICAgICAgIE9iakNSdW50aW1lTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpD
UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lTWV0aG9kKGdsb2JhbE9i
amVjdCwgZG9tU3RydWN0dXJlLCBsaXN0KTsKKyAgICAgICAgbWV0aG9kLT5maW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOworICAgICAgICByZXR1cm4gbWV0aG9kOwogICAg
IH0KIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBw
cm90b3R5cGUpCkBAIC0xOTEsMTAgKzE5Myw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdHlw
ZWRlZiBSdW50aW1lTWV0aG9kIEJhc2U7CiAKLSAgICBPYmpDUnVudGltZU1ldGhvZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkK
KyAgICBPYmpDUnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCiAgICAgICAgIDog
UnVudGltZU1ldGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGlzdCkKICAgICB7Ci0gICAg
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CiAgICAgfQogCiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
cnVudGltZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5k
ZXggZmU3ZWM2MTBhZTlhNTM4OWZkMzRmZWNmNTYzMWRkMGQ0ZjdiNDUwMy4uNzNkZDJiZjU2MmVl
ZjEyZjIyMWM2NjMyNjA4OTc5ODMzNjgyOGJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmNwcApAQCAtMTQyNSwxMCArMTQyNSw5IEBAIHN0YXRpYyBpbnQgZmluZFNpZ25h
bEluZGV4KGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRhLCBpbnQgaW5pdGlhbEluZGV4LCBRQnl0ZUFy
cmF5CiAgICAgcmV0dXJuIGluZGV4OwogfQogCi1RdFJ1bnRpbWVNZXRhTWV0aG9kOjpRdFJ1bnRp
bWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdGFuY2Us
IGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0
ZSkKK1F0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBl
eGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikK
ICAgICA6IFF0UnVudGltZU1ldGhvZCAobmV3IFF0UnVudGltZU1ldGFNZXRob2REYXRhKCksIGV4
ZWMsIHN0cnVjdHVyZSwgaWRlbnRpZmllcikKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBp
ZGVudGlmaWVyLCBpbnN0YW5jZSwgaW5kZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2YXRlKTsKIH0K
IAogdm9pZCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4g
aW5zdGFuY2UsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFs
bG93UHJpdmF0ZSkKQEAgLTE1NzUsMTAgKzE1NzQsOSBAQCBKU1ZhbHVlIFF0UnVudGltZU1ldGFN
ZXRob2Q6OmRpc2Nvbm5lY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LAogCiBRTXVsdGlNYXA8UU9iamVjdCosIFF0Q29ubmVjdGlvbk9iamVjdCo+IFF0UnVudGltZUNv
bm5lY3Rpb25NZXRob2Q6OmNvbm5lY3Rpb25zOwogCi1RdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9k
OjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIGJvb2wgaXNDb25uZWN0LCBQ
YXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3RhbmNlLCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJy
YXkmIHNpZ25hdHVyZSkKK1F0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5l
Y3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
SWRlbnRpZmllciYgaWRlbnRpZmllcikKICAgICA6IFF0UnVudGltZU1ldGhvZCAobmV3IFF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2REYXRhKCksIGV4ZWMsIHN0cnVjdHVyZSwgaWRlbnRpZmllcikK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBpZGVudGlmaWVyLCBpc0Nvbm5lY3QsIGluc3Rh
bmNlLCBpbmRleCwgc2lnbmF0dXJlKTsKIH0KIAogdm9pZCBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0
aG9kOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlk
ZW50aWZpZXIsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3RhbmNl
LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5oCmluZGV4IDQ0NDE1OTM5MjU2NjQzNzUxNGQ1YTY1NDY0MWI4Nzdk
ZGNhZjg1NTcuLjkwNmQxMDhlMWU3NjliMjU3NmFiZTNkZDEwNmQ3NDM1YjhiZjI4NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMTU2LDEwICsxNTYsMTEgQEAgY2xh
c3MgUXRSdW50aW1lTWV0YU1ldGhvZCA6IHB1YmxpYyBRdFJ1bnRpbWVNZXRob2QgewogcHVibGlj
OgogICAgIHR5cGVkZWYgUXRSdW50aW1lTWV0aG9kIEJhc2U7CiAKLSAgICBzdGF0aWMgUXRSdW50
aW1lTWV0YU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
biwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJy
YXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpCisgICAgc3RhdGljIFF0UnVudGltZU1l
dGFNZXRob2QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdGFuY2UsIGludCBpbmRleCwgY29uc3QgUUJ5dGVB
cnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKICAgICB7CiAgICAgICAgIFN0cnVj
dHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxR
dFJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKiBtZXRo
b2QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhlYy0+aGVhcCgp
KSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4sIGluc3QsIGluZGV4
LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CisgICAgICAgIFF0UnVudGltZU1ldGFNZXRob2Qq
IG1ldGhvZCA9IG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU1ldGFNZXRob2Q+KCpleGVjLT5o
ZWFwKCkpKSBRdFJ1bnRpbWVNZXRhTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwgbmFtZSk7Cisg
ICAgICAgIG1ldGhvZC0+ZmluaXNoQ3JlYXRpb24oZXhlYywgbmFtZSwgaW5zdGFuY2UsIGluZGV4
LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAg
fQogCkBAIC0xNzMsNyArMTc0LDcgQEAgcHJvdGVjdGVkOgogICAgIFF0UnVudGltZU1ldGFNZXRo
b2REYXRhKiBkX2Z1bmMoKSBjb25zdCB7cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXRSdW50aW1l
TWV0YU1ldGhvZERhdGEqPihkX3B0cik7fQogCiBwcml2YXRlOgotICAgIFF0UnVudGltZU1ldGFN
ZXRob2QoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQ
dHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYsIGJvb2wgYWxsb3dQ
cml2YXRlKTsKKyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSos
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNv
bnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpOwogCiAgICAgdmly
dHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwpAQCAtMTg4LDEwICsxODksMTIg
QEAgY2xhc3MgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCA6IHB1YmxpYyBRdFJ1bnRpbWVNZXRo
b2QgewogcHVibGljOgogICAgIHR5cGVkZWYgUXRSdW50aW1lTWV0aG9kIEJhc2U7CiAKLSAgICBz
dGF0aWMgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgbiwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5j
ZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpCisgICAgc3Rh
dGljIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFu
Y2U+IGluc3RhbmNlLCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKICAg
ICB7CiAgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRl
ZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZD4oKmV4ZWMtPmhlYXAo
KSkpIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoZXhlYywgZG9tU3RydWN0dXJlLCBuLCBpc0Nv
bm5lY3QsIGluc3QsIGluZGV4LCBzaWduYXR1cmUpOworICAgICAgICBRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVDb25uZWN0aW9u
TWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChleGVjLCBk
b21TdHJ1Y3R1cmUsIG5hbWUpOworICAgICAgICBtZXRob2QtPmZpbmlzaENyZWF0aW9uKGV4ZWMs
IG5hbWUsIGlzQ29ubmVjdCwgaW5zdGFuY2UsIGluZGV4LCBzaWduYXR1cmUpOworICAgICAgICBy
ZXR1cm4gbWV0aG9kOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTIw
Miw3ICsyMDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERh
dGEqIGRfZnVuYygpIGNvbnN0IHtyZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxRdFJ1bnRpbWVDb25u
ZWN0aW9uTWV0aG9kRGF0YSo+KGRfcHRyKTt9CiAKIHByaXZhdGU6Ci0gICAgUXRSdW50aW1lQ29u
bmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwg
Ym9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3Qg
UUJ5dGVBcnJheSYpOworICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRy
PFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSk7CiAK
ICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKaW5kZXggMzFkM2I3ZGQ4OGM0NjgyZThjNzZkOWQyMTVlMDBhNTkwNzNhMDMwMi4uZGE2MzMz
YTJkOTVjZTQ1ZDk5MDk0YTc0NTM4ZjJmNzQ2Y2FkNzI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSw1ICsxLDI0IEBACiAyMDExLTA5LTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CiAKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0
cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg3LzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODEyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgc2V2ZW50aCBhbmQgZmluYWwg
bGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAg
ICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRo
IG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgKiBQ
bHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm94eVJ1
bnRpbWVNZXRob2Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhv
ZDo6UHJveHlSdW50aW1lTWV0aG9kKToKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9Qcm94eVJ1
bnRpbWVPYmplY3QuaDoKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpjcmVh
dGUpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbToKKyAg
ICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lT2JqZWN0OjpQcm94eVJ1bnRpbWVPYmplY3QpOgor
CisyMDExLTA5LTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
ICAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBK
U0NlbGwgaGllcmFyY2h5ICg2LzcpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzY5MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVn
aW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9I
b3N0ZWQvUHJveHlJbnN0YW5jZS5tbQppbmRleCA0M2Q1NDkyMzljZmYyMWI5MGQ0OTkwYzdiYTkz
MGI0YjNhZmVhNDZjLi5kYzJmZTI4Y2Q0YmE2YzYzNDY1YzdhNDhmNjA2ODgxZTIzNzY1YTAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0KQEAgLTE4Niw3ICsxODYsOSBAQCBwdWJsaWM6CiAgICAgICAgIC8vIEZJWE1FOiBkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGds
b2JhbCBvYmplY3QKICAgICAgICAgLy8gZXhlYy1nbG9iYWxEYXRhKCkgaXMgYWxzbyBsaWtlbHkg
d3JvbmcuCiAgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxQcm94eVJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICByZXR1cm4gbmV3
IChhbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUHJveHlS
dW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBuYW1lLCBsaXN0
KTsKKyAgICAgICAgUHJveHlSdW50aW1lTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxQcm94eVJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBQcm94eVJ1bnRpbWVNZXRob2Qo
Z2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGxpc3QpOworICAgICAgICBtZXRob2QtPmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CisgICAgICAgIHJldHVybiBtZXRo
b2Q7CiAgICAgfQogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCkBAIC0xOTcsMTAgKzE5OSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKLSAgICBQcm94eVJ1bnRpbWVNZXRob2Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3Qm
IGxpc3QpCisgICAgUHJveHlSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKICAg
ICAgICAgOiBSdW50aW1lTWV0aG9kKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBsaXN0KQogICAg
IHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lKTsKICAg
ICB9CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvUHJveHlSdW50aW1lT2JqZWN0LmgKaW5kZXggMWI0MGMxYjRlZjE3MGFhODVm
M2MyNzBkMGY3YTRjODZiYzdhYTlhMC4uYzE2NDY4MDRiMmViOGYwNTIwOGQ1MWY3NTU5YmU5NTkx
Y2MxODRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvUHJv
eHlSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
UHJveHlSdW50aW1lT2JqZWN0LmgKQEAgLTQ0LDcgKzQ0LDkgQEAgcHVibGljOgogICAgICAgICAv
LyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2Zm
IG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0LgogICAgICAgICAvLyBleGVjLT5nbG9iYWxEYXRh
KCkgaXMgYWxzbyBsaWtlbHkgd3JvbmcuCiAgICAgICAgIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFByb3h5UnVudGltZU9iamVj
dD4oZXhlYyk7Ci0gICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPFByb3h5UnVu
dGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFByb3h5UnVudGltZU9iamVjdChleGVjLCBnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBQcm94eVJ1bnRpbWVPYmpl
Y3QqIG9iamVjdCA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8UHJveHlSdW50aW1lT2JqZWN0Pigq
ZXhlYy0+aGVhcCgpKSkgUHJveHlSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlLCBpbnN0YW5jZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5Q
cm94eVJ1bnRpbWVPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1Byb3h5UnVudGltZU9iamVjdC5tbQppbmRleCA1Y2IyNzQ5YzkyODgzOWE4NTNh
NDFiZDk1NDA1Mzg1NDVmYWU1ODFkLi5lZTE5MTg5NWNiZjk0NzU5MDhjMDg5MGVlNDg3YmU4Mjll
MGYxYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94
eVJ1bnRpbWVPYmplY3QubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
UHJveHlSdW50aW1lT2JqZWN0Lm1tCkBAIC0zOSw3ICszOSw2IEBAIGNvbnN0IENsYXNzSW5mbyBQ
cm94eVJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIlByb3h5UnVudGltZU9iamVjdCIsICZSdW50
aW1lT2JqCiBQcm94eVJ1bnRpbWVPYmplY3Q6OlByb3h5UnVudGltZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPFByb3h5SW5zdGFuY2U+IGluc3RhbmNlKQogICAgIDogUnVudGltZU9iamVj
dChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7Ci0gICAgZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBQcm94eVJ1bnRpbWVPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>