<?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>70741</bug_id>
          
          <creation_ts>2011-10-24 10:42:33 -0700</creation_ts>
          <short_desc>Remove getOwnPropertySlotVirtual</short_desc>
          <delta_ts>2011-10-27 05:24:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489434</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-24 10:42:33 -0700</bug_when>
    <thetext>Now that we have an entry in the MethodTable for both versions of getOwnPropertySlot, we can remove their virtual counterparts and replace all call sites with an explicit lookup in the MethodTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490364</commentid>
    <comment_count>1</comment_count>
      <attachid>112404</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-25 14:30:51 -0700</bug_when>
    <thetext>Created attachment 112404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490941</commentid>
    <comment_count>2</comment_count>
      <attachid>112404</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-26 09:47:14 -0700</bug_when>
    <thetext>Comment on attachment 112404
Patch

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

r=me

&gt; Source/JavaScriptCore/API/JSCallbackObject.h:178
&gt; +    const MethodTable* methodTable() const
&gt; +    {
&gt; +        return Parent::methodTable();
&gt; +    }

I believe &quot;using Parent::methodTable;&quot; would work here, and be slightly more precise about what you mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491021</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-26 11:04:01 -0700</bug_when>
    <thetext>Committed r98501: &lt;http://trac.webkit.org/changeset/98501&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491449</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-10-27 04:26:10 -0700</bug_when>
    <thetext>It seems it broke bindings-tests on all bot. Could you fix it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491469</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-27 05:10:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; It seems it broke bindings-tests on all bot. Could you fix it, please?

Looks like the tests only need a reset. I can land it unless someone objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491474</commentid>
    <comment_count>6</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-10-27 05:24:46 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; It seems it broke bindings-tests on all bot. Could you fix it, please?
&gt; 
&gt; Looks like the tests only need a reset. I can land it unless someone objects.

Landed http://trac.webkit.org/changeset/98552</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112404</attachid>
            <date>2011-10-25 14:30:51 -0700</date>
            <delta_ts>2011-10-26 09:47:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70741-20111025143050.patch</filename>
            <type>text/plain</type>
            <size>108940</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgzODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZl
ODU0NjQ0NzkxMWU3ZmQ1ZDY5ZThkZDI5MWJjMzIyOTg2ZjI1NTcuLjM5MWU2ODc4MDczNTJiYTZj
MGI3YmEyNmVlNzIwMTg2Mjk5MmE0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDEwMiBAQAogMjAxMS0xMC0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCisgICAgICAgIFJlbW92ZSBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc0MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgYWxsIGRl
Y2xhcmF0aW9ucyBhbmQgZGVmaW5pdGlvbnMgb2YgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbC4K
KyAgICAgICAgQWxzbyByZXBsYWNlZCBhbGwgY2FsbCBzaXRlcyB0byBnZXRPd25Qcm9wZXJ0eVZp
cnR1YWxWaXJ0dWFsIHdpdGggYSAKKyAgICAgICAgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhl
IE1ldGhvZFRhYmxlLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAg
ICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6bWV0aG9kVGFibGUpOgorICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICog
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoK
KyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlND
OjpEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMu
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90eXBlOjpj
cmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAq
IHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlv
bi5jcHA6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU0NlbGwuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6
CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5j
dGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlv
bjo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OnB1dCk6
CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU05v
dEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAgICAg
KEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzT3du
UHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6
SlNDZWxsOjpmYXN0R2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6
OmdldFByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmdldCk6CisgICAgICAg
ICogcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAg
ICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
ICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAg
ICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6Ok9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDogQWRkZWQgZGVmaW5pdGlvbiBvZiBDbGFzc0lu
Zm8gZmllbGQgZm9yIFJlZ0V4cE1hdGNoZXNBcnJheS4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDog
R2F2ZSBSZWdFeHBNYXRjaGVzQXJyYXkgaXRzIG93biBjcmVhdGVTdHJ1Y3R1cmUgbWV0aG9kIGFu
ZCAKKyAgICAgICAgQ2xhc3NJbmZvIGZpZWxkIHNvIHRoYXQgd2UgZ2V0IHRoZSByaWdodCBDbGFz
c0luZm8vTWV0aG9kVGFibGUgZm9yIGxvb2t1cHMuCisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNo
ZXNBcnJheTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVj
dC5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmg6CisKKzIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKwogICAgICAgICBGaXhpbmcgV2luZG93cyBidWlsZCBhZnRlciByOTgzNjcKIAog
ICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXgg
MjdmYmM5Y2Q3NzhhMDU3ZWZhNTA1ZDIxNzY0NWE3Mzc2YmU4ZjU0YS4uNDlmYzk5YzJkZmE1MDQz
MWVlYzIwYWEyYmYwMmM3MjUxOTUxMWQwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGFsbCBk
ZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwu
CisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMgdG8gZ2V0T3duUHJvcGVydHlW
aXJ0dWFsVmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRo
ZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAq
IFVzZXJPYmplY3RJbXAuaDoKKwogMjAxMS0xMC0xOSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgU3RyaW5nSW1wbEJhc2UsIGZ1c2luZyBpdCBp
bnRvIFN0cmluZ0ltcGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMTkzYWY1YmM3ZjM1YzZkYTZjMGRlMDQzZGRk
MTY0MDg0N2I1YWVmLi45MWY5ZGQ5YzEwZjhlYWYyZWI2YmEyZjY1ODk5ZDcwZDZmM2MzODE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZ2V0T3duUHJvcGVydHlT
bG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzA3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVtb3ZlZCBhbGwgZGVjbGFyYXRpb25zIGFuZCBk
ZWZpbml0aW9ucyBvZiBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsLgorICAgICAgICBBbHNvIHJl
cGxhY2VkIGFsbCBjYWxsIHNpdGVzIHRvIGdldE93blByb3BlcnR5VmlydHVhbFZpcnR1YWwgd2l0
aCBhIAorICAgICAgICBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisK
KyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWFsb2dIYW5kbGVyOjpyZXR1cm5W
YWx1ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVT
ZXJpYWxpemVyOjpnZXRTcGFyc2VJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlh
bGl6ZXI6OmdldFByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9u
KToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uKToKKyAgICAgICAgKiBi
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW06CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgorICAgICAgICAq
IGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX29iamVjdC5oOgorCiAyMDExLTEwLTI1ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTWFrZSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYSBDYWNo
ZWRSZXNvdXJjZUNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1MGY3NzE4OGQ3MWVjNTRlOWZjNzhlZmIx
NjNhNWQ1Y2NjN2U0Nzk3Li5hMjIzYTIwNThlNTMzZDQxMjk0ODM4ZDIxN2UyMTkzN2RlZGZmNTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMjUgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgZ2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzA3NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmVkIGFsbCBkZWNsYXJhdGlvbnMgYW5kIGRlZmluaXRpb25zIG9mIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwuCisgICAgICAgIEFsc28gcmVwbGFjZWQgYWxsIGNhbGwgc2l0ZXMg
dG8gZ2V0T3duUHJvcGVydHlWaXJ0dWFsVmlydHVhbCB3aXRoIGEgCisgICAgICAgIGNvcnJlc3Bv
bmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RUYWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDExLTEwLTI1ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUERGIFNVQkZSQU1FUzogSW5jb21w
bGV0ZSByZXBhaW50IGFmdGVyIHBpbmNoIHRvIHpvb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMzk4ZGQwM2QwNzc0NTBjMDI2NTljYjRhZWVh
MWViNjBjMjZhNzIzMS4uN2U4YjM0NTBmMDhiMmRmNDg4MjJlZTc4ZTAxZjY1YTcwYjI4MGNlOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE3
MiwxMyArMTcyLDE3IEBAIHB1YmxpYzoKICAgICAgICAgbV9jYWxsYmFja09iamVjdERhdGEtPmRl
bGV0ZVByaXZhdGVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpOwogICAgIH0KIAorICAgIGNvbnN0IE1l
dGhvZFRhYmxlKiBtZXRob2RUYWJsZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gUGFy
ZW50OjptZXRob2RUYWJsZSgpOworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJy
aWRlc0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBQYXJlbnQ6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCAxZGJiMWQ1
YzcyNjdhYTBmZmQzNGYwNjViYmQ3MGMyZGY0M2M4NjdiLi4yYTg2NGUwODU5M2QwZGE2MjMxMjU2
MzYwYzk2MmM3Yzg5NzgzYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtMTI0LDEyICsxMjQsNiBAQCBVU3Ry
aW5nIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2xhc3NOYW1lKCkgY29uc3QKIH0KIAogdGVt
cGxhdGUgPGNsYXNzIFBhcmVudD4KLWJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi10ZW1wbGF0
ZSA8Y2xhc3MgUGFyZW50PgogYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNDYWxsYmFja09i
amVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3QqPihjZWxsKTsK
QEAgLTE5Miw3ICsxODYsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgogYm9vbCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewogICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgIGlmIChnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICBpZiAobWV0
aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCkpIHsKICAgICAgICAgLy8gSWRlYWxseSB3ZSBzaG91bGQgcmV0dXJuIGFuIGFjY2VzcyBk
ZXNjcmlwdG9yLCBidXQgcmV0dXJuaW5nIGEgdmFsdWUgZGVzY3JpcHRvciBpcyBiZXR0ZXIgdGhh
biBub3RoaW5nLgogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggOTE4YTU5ZmZkNmQ5YzRiM2M2
YmViNDgwNjFhYzZhY2FlYjE4MWFiYy4uMWRmYzBmYmMxZDhmZjRlMDg2ZTM1Yjc4MzY4YmExODlh
MDE4OThjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0x
NzAsNyArMTcwLDYgQEAgX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxz
RVBOUzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdw
dXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNW
YWx1ZUVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNf
NkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNs
b3RFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JF
Ci1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5T
XzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNK
U0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxNEpTR2xvYmFsT2Jq
ZWN0NnNfaW5mb0UKQEAgLTI2Niw4ICsyNjUsNiBAQCBfX1pOM0pTQzZKU0NlbGwxMWdldENhbGxE
YXRhRVBTMF9STlNfOENhbGxEYXRhRQogX19aTjNKU0M2SlNDZWxsMTZnZXRDb25zdHJ1Y3REYXRh
RVBTMF9STlNfMTNDb25zdHJ1Y3REYXRhRQogX19aTjNKU0M2SlNDZWxsMjFkZWxldGVQcm9wZXJ0
eVZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzZKU0Nl
bGwyMWRlbGV0ZVByb3BlcnR5VmlydHVhbEVQTlNfOUV4ZWNTdGF0ZUVqCi1fX1pOM0pTQzZKU0Nl
bGwyNWdldE93blByb3BlcnR5U2xvdFZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50
aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0M2SlNDZWxsMjVnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pT
QzZKU0NlbGw5Z2V0T2JqZWN0RXYKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFTlNf
MTRKU0xvY2tCZWhhdmlvckUKIF9fWk4zSlNDNkpTTG9jazEyRHJvcEFsbExvY2tzQzFFUE5TXzlF
eGVjU3RhdGVFCkBAIC0zMzcsNyArMzM0LDYgQEAgX19aTjNKU0M4SlNPYmplY3QyMmZpbGxHZXR0
ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldyaXRlQmFycmllckIKIF9f
Wk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERh
dGFFbW0KIF9fWk4zSlNDOEpTT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19a
TjNKU0M4SlNPYmplY3QyNWdldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5T
XzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDOEpTT2JqZWN0MjVnZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4
SlNPYmplY3Q2c19pbmZvRQogX19aTjNKU0M4SlNTdHJpbmc2c19pbmZvRQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCAwNzg4MzE4
NDk0YzU3YmQwOTdlMzNjMDE5NWQ1ODIwODUzMTJkNGQ3Li5kMWQ4YjdlOWU0N2VmMTczZTdiNGFm
ZjdiNDIxNjgxN2E2NDdlMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjA3LDEwICsyMDcsNiBAQCBFWFBPUlRTCiAgICAg
P2dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhASlNBcnJheUBKU0NAQFNBX05QQVZKU0NlbGxAMkBQ
QVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleEBKU0J5dGVBcnJheUBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVA
MkBJQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleEBK
U09iamVjdEBKU0NAQFNBX05QQVZKU0NlbGxAMkBQQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlT
bG90QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEBKU0NlbGxASlNDQEBNQUVf
TlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eVNsb3RAMkBAWgotICAg
ID9nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsQEpTQ2VsbEBKU0NAQE1BRV9OUEFWRXhlY1N0YXRl
QDJASUFBVlByb3BlcnR5U2xvdEAyQEBaCi0gICAgP2dldE93blByb3BlcnR5U2xvdFZpcnR1YWxA
SlNHbG9iYWxPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBB
QVZQcm9wZXJ0eVNsb3RAMkBAWgotICAgID9nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsQEpTT2Jq
ZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVAMkBJQUFWUHJvcGVydHlTbG90QDJAQFoKICAgICA/
Z2V0UHJvcGVydHlEZXNjcmlwdG9yQEpTT2JqZWN0QEpTQ0BAUUFFX05QQVZFeGVjU3RhdGVAMkBB
QlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKICAgICA/Z2V0UHJvcGVy
dHlOYW1lc0BKU09iamVjdEBKU0NAQFVBRVhQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVB
cnJheUAyQFc0RW51bWVyYXRpb25Nb2RlQDJAQFoKICAgICA/Z2V0U2xpY2VAQXJnTGlzdEBKU0NA
QFFCRVhIQUFWMTJAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggNzBlMWJhZWI2ZTBiNDBlY2QwNjVkNGZhMjc5
ZGMwMDJjMWVlZjg3ZS4uYmQ4N2UwNDYxMmMzZmQxYTdlYjE1NDIwYTEzZGU3ZDg2NDFkNzY0NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZh
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5jcHAKQEAgLTYwLDE0ICs2MCwxMCBAQCBVU3RyaW5nIERlYnVnZ2VyQWN0aXZhdGlv
bjo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV9hY3RpdmF0aW9uLT5jbGFzc05hbWUo
KTsKIH0KIAotYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9hY3RpdmF0aW9uLT5n
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAg
RGVidWdnZXJBY3RpdmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3Rp
dmF0aW9uKj4oY2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi0+bWV0
aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi5n
ZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2
YXRpb246OnB1dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRl
eCAzZDdiMDI2ODIxZjk2NjU3ODlmYzA0ZDAzNmRlZTQ4ODBlMzhiZjdjLi5jNTU1ZWNiYjQ4YThi
NTI2ZjY5MTFlNDAxODE3NDg5ZDUyNGM3MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00Myw3ICs0Myw2IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNv
bnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRleCA3YjY2ZWRhMTMzNTk2Njk0MjFkNGI5MTNjZTg3
N2RhMmVlNWRmOGY3Li5hOWYwNTYwY2QwNDcxNDEwMTc3ODFjY2FkMDc4ZDczNWZjZWViOThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTE0NSwx
MSArMTQ1LDYgQEAgdm9pZCBBcmd1bWVudHM6OmZpbGxBcmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywg
TWFya2VkQXJndW1lbnRCdWZmZXImIGFyZ3MpCiAgICAgfQogfQogCi1ib29sIEFyZ3VtZW50czo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eCh0aGlzLCBleGVjLCBpLCBzbG90KTsKLX0KLQogYm9vbCBBcmd1bWVudHM6OmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGks
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBBcmd1bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxBcmd1bWVudHMqPihjZWxsKTsKQEAgLTE4OCwxMSArMTgzLDYgQEAgdm9pZCBBcmd1
bWVudHM6OmNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgZGVmaW5lT3duUHJvcGVydHkoZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxl
ZSwgZGVzY3JpcHRvciwgZmFsc2UpOwogfQogCi1ib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9vbCBBcmd1bWVudHM6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgQXJn
dW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IGQ5NzY1NWQxMDA5YjE2
YWY4YWQ1ZGNkNWZhNjFjOGZlZDExZjFkNGIuLjc1ZjVmMGY4MDhiMzgxNjdlNzA2NGVkM2FmODJj
NGNlNjJlMjhiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CkBAIC0xMzUsOSArMTM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiomLCBwdHJk
aWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwgaW50JiBhcmdjKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRl
RG9udEVudW1Qcm9wZXJ0aWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMmFlNTMwN2E2N2Q4ZTVmMDU5NGE0YjUyNzYw
Njg0NjM2Yjg0ZmVhMy4uNmFlNDQ0MzdkZWFhZDEzZmRiYmNkMWQ3MTZhZTBhMTY1ZGQ0ODI5MCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTYzLDExICs2Myw2IEBAIHZvaWQgQXJyYXlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24oRXhlY1N0YXRlKiBleGVjLCBBcnJheVByb3RvdHlwZSogYXJyYXlQcm90CiAgICAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnRE
ZWxldGUpOwogfQogCi1ib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0
ZTo6YXJyYXlDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheUNvbnN0cnVj
dG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggZGZmNzBhNDhmZmFlNzgwZjNj
OTQ5NGU4ODhiOTdmM2RkYjhjNmI0OC4uYmRjZTg0NmU2ZDFmOTUyMmE5M2YxYTEzMWQxNTY4ZjA0
NWNkNWI0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaApAQCAtNTEsNyArNTEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwCmluZGV4IGM1NDQwM2I5ZjVjOWMxYmJlNzhkZjQ2NmQwZTY5NjU0N2JmZTYzYWIu
Ljc3NWU3NDQzZDU5ZjcyMDk2MzFmYjE3OWE2MzU3MjRjMmFlZWE1MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEyNSwxMSAr
MTI1LDYgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1i
b29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Ci17Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwotfQotCiBib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlv
blNsb3Q8SlNBcnJheT4oZXhlYywgRXhlY1N0YXRlOjphcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMp
LCBzdGF0aWNfY2FzdDxBcnJheVByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5
cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5k
ZXggYjIzYzc2NjM2NTJhMTRlZWYyOTY3Y2I3YTgxYjE4NDc5N2VhYmE3MS4uMTc3NmFiM2IzMTQx
NmZmNjkyM2IxYTQ1MGU5MjcwOWQ3NWEzNmJlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00MCw3ICs0MCw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVh
blByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJv
dG90eXBlLmNwcAppbmRleCA3NjA5ZDRlNzU4YzAxYTY5N2VjZmU4NzMxNjc3NjFhNTNiOTAxNDNh
Li45ZjFmYTQxZTljZDgyMWIyMjRlZTFiNjJhODFlODFhODZjZTI2MTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApAQCAtNjIs
MTEgKzYyLDYgQEAgdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCi1ib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25TbG90PEJvb2xlYW5PYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6Ym9vbGVh
blByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxCb29sZWFuUHJvdG90eXBlKj4oY2Vs
bCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggNzA3YTdlZjA5MGVjNzY5ZmMzYTIxMDYzODgy
NTUzMmMyZTAzYzU1ZC4uMWJjZjhiNTIxMGU0YTVkYWJhYWVjY2I5NjU2NGZiMDhjMjRjM2MxNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
aApAQCAtNDksNyArNDksNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDFiOTBjNmRjMGExMzY2MjBmZmJiMDhjYTU5MDdjNmYzM2ViMmEzYjYuLmE5ZTgxODhlNzU2
NzQxODc1YmQ3ZDYwOTgxNjk5YWFkZmMzMjhhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtODUsMTEgKzg1LDYgQEAgdm9p
ZCBEYXRlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVBy
b3RvdHlwZSogZGF0ZVByb3RvdHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDcp
LCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwot
fQotCiBib29sIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVy
bmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZGF0ZUNvbnN0cnVjdG9yVGFibGUoZXhlYyks
IHN0YXRpY19jYXN0PERhdGVDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApp
bmRleCAxZjFiYzE1ZmM0ZWNjMGQ4MjBiN2NhODVlZTBhYjgzZjY0NDRjZTRjLi4yMmMwNDM3NmY2
NTMyNTM4YjkxNDNlM2IzYzViYmY4Y2E1NzlkMzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApAQCAtNTQsNyArNTQsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggYTEyZDMzZGM5MWIzNDU5MmIw
MjQyODIxODlmODcyNGI2ODk0MGQ4OS4uNjQ2NGM0MDJjNGMyYjA4MmRjMmQxY2UyNmE0YTk1NTZj
NmVhNThmNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAKQEAgLTQ0MywxMSArNDQzLDYgQEAgdm9pZCBEYXRlUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKICAgICAvLyBUaGUgY29u
c3RydWN0b3Igd2lsbCBiZSBhZGRlZCBsYXRlciwgYWZ0ZXIgRGF0ZUNvbnN0cnVjdG9yIGhhcyBi
ZWVuIGJ1aWx0LgogfQogCi1ib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OmRhdGVUYWJs
ZShleGVjKSwgc3RhdGljX2Nhc3Q8RGF0ZVByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5o
CmluZGV4IGRkZDY1NGI3YTI4ZDA3ZGM5OWRjMzNmNWJlNjBmYjllNDg5YWNmNzIuLjFlNmZmZGZk
ZGQ3YzQzMDE0MjM1Y2ZmOGI2ZDY2NjUwNTI4MjQ1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKQEAgLTQwLDcgKzQwLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2Jh
bE9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9Ci0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNw
cAppbmRleCBhOGE5NTgxOGE4NDE5YWE0ZTJmNTYyOWEzZWVlMWNmMjQwYTQ0MTcxLi4xMTllYWE4
NTljOTQ0NTNkY2RlNzVkNjBlYWM1ZTE4Njk5MmNmZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC02MiwxMSArNjIsNiBAQCB2
b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KikKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250
RW51bSk7CiB9CiAKLWJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxFcnJvckluc3RhbmNlPihleGVjLCBFeGVjU3RhdGU6OmVycm9y
UHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEVycm9yUHJvdG90eXBlKj4oY2VsbCks
IHByb3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaAppbmRleCBmNjJkZDU1MTM5ZmE0MTkxMWZiY2M2MjkyOWY3N2Q0MzMw
ODdmNWVmLi5mYWU0ODJmY2IwZjIxOTYwNTEzYWEzYjA3ZjMzMmFmMGY0M2YyMGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTUyLDcg
KzUyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5zdGFu
Y2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggODUzMTA4
MjVjMGZiNDgxOTllMTYxZjIzMzQxYzlhODJhYTZjM2YxYy4uMDE1MWZiODk1MzI1YTZmODcyZWM0
MDI2ZmYzN2Y2YzYzODg2N2Y3YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FjdGl2YXRpb24uY3BwCkBAIC0xNDEsMTEgKzE0MSw2IEBAIGlubGluZSBib29sIEpTQWN0
aXZhdGlvbjo6c3ltYm9sVGFibGVQdXRXaXRoQXR0cmlidXRlcyhKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSlNBY3RpdmF0aW9uOjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIEpTQWN0
aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBKU0FjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24q
PihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0
aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgK
aW5kZXggZDQ0YjJiNjA2ZGQxODgyNmU3NGVmZGRlMDRlYTY0ZDcwODU0YzdlNS4uYzE5ZWViNDJh
MDE0MDIxYzNhNGIxOTFjODZhYzlkNjY5MjliMzQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTYxLDcgKzYxLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzQWN0aXZhdGlvbk9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAppbmRleCAzMjE0MWY4MDlmYmU1MjI1NDBjNjE1OWQxZjNmYTdkOGNlNmIyZDllLi4yMzkyNDE5
MzgyMDRmNmIxYWIxZTBjNWY4N2FhMTk3NjYyMDMzZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMjQ1LDExICsyNDUsNiBAQCBKU0FycmF5Ojp+SlNB
cnJheSgpCiAgICAgZmFzdEZyZWUobV9zdG9yYWdlLT5tX2FsbG9jQmFzZSk7CiB9CiAKLWJvb2wg
SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCh0aGlzLCBleGVjLCBpLCBzbG90KTsKLX0KLQogYm9vbCBKU0FycmF5OjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNBcnJheSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKQEAgLTI1Nyw3ICsyNTIsNyBAQCBib29sIEpT
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkCiAgICAgCiAgICAgaWYgKGkgPj0gc3RvcmFnZS0+bV9sZW5ndGgpIHsK
ICAgICAgICAgaWYgKGkgPiBNQVhfQVJSQVlfSU5ERVgpCi0gICAgICAgICAgICByZXR1cm4gdGhp
c09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIGkpLCBzbG90KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRob2RU
YWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6
ZnJvbShleGVjLCBpKSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAg
LTI4MCwxMSArMjc1LDYgQEAgYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZAogICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZy
b20oZXhlYywgaSksIHNsb3QpOwogfQogCi1ib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgSlNBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0FycmF5KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBcnJheSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5oCmluZGV4IDZiNWZiYzZlMGNiMWI3ZjhjZmE1MzQ3ZmQ0Yjll
OGI3YTlkY2JjMjMuLmQ3NmM5ZmE3ODU3MmQ4ZWIzYzFmNDRjYzBlNDMwYmJmZGVmZDJlMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKQEAgLTk0LDkgKzk0LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KIAot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6IE1ha2UgcHJvdGVjdGVkIGFu
ZCBhZGQgc2V0SXRlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcAppbmRleCA2NzA1OGI0MDkwMDkyNzZkZjYyZmQ3Y2RkZWYxNzlmMTZjY2E4ZWFjLi5m
NzEyMWU5NDZhZWQzMzNkZGFlZWEzNzAyMzFjNzFjZGM4NTkwNzBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC01NCwxMSArNTQsNiBAQCBT
dHJ1Y3R1cmUqIEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBjbGFzc0luZm8pOwogfQogCi1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Q
cm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIEpTQnl0
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihj
ZWxsKTsKQEAgLTgyLDExICs3Nyw2IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKIH0KIAotYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTQnl0ZUFycmF5
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IGRlNmI5YzI4MjZkYzI5
NDZhOGI2ZmIwZmQ2NGNjNzI0ZDRlYmMzYjMuLjlmMjdiYzViYzg3OTI4YjFkZDQyZDA3ZGI4ZDlm
NTZhMzhjNGRmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaApAQCAtODgsOSArODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3Qq
LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfaW5mbyk7CiAK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuY3BwCmluZGV4IDE1MjgzNWYzYzkwYzk5NzI5ZGIzNzc5OTU5NjgxMGIzZGQ1NDhhYjcuLjQ4
OGI1NGRiYjlkZTI1Mjk5NzAzY2M0ZTI2YWRhZTVjY2MwZDkzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtNjQsMTEgKzY0LDYgQEAgQ29uc3RydWN0VHlw
ZSBKU0NlbGw6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpCiAgICAg
cmV0dXJuIENvbnN0cnVjdFR5cGVOb25lOwogfQogCi1ib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVy
dHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZp
ZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOwotfQotCiBib29sIEpTQ2VsbDo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgLy8gVGhpcyBpcyBu
b3QgYSBnZW5lcmFsIHB1cnBvc2UgaW1wbGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90
LgpAQCAtODEsMTEgKzc2LDYgQEAgYm9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpcywgZXhlYywgaWRlbnRpZmll
ciwgc2xvdCk7Ci19Ci0KIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgLy8gVGhpcyBpcyBub3QgYSBnZW5lcmFsIHB1cnBvc2UgaW1w
bGVtZW50YXRpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90LgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGwuaAppbmRleCBjZTFkMjY4YTI3Y2NkMWEzYmE5YTg1YTM4Y2U4MGE1OTYxYzAy
Njk1Li42MjNkNTM4YjNjM2E0NjNmNjVjOTAzM2ZiZDgyMjI5OWE2MjUwYjk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTMzLDkgKzEzMyw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSosIENyZWF0aW5nRWFybHlDZWxsVGFnKTsKIAogICAgICAgICAvLyBCYXNlIGltcGxlbWVu
dGF0aW9uOyBmb3Igbm9uLW9iamVjdCBjbGFzc2VzIGltcGxlbWVudHMgZ2V0UHJvcGVydHlTbG90
LgotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICAKICAgICBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAzODNiOTUzZTAw
OWE4OWUxYzMwMDE3OGIxOGI2YTg4NTQ1NjcxOGFhLi5kYWRmZjNjYmJjNDcwYTU3ZjBiZGU0OWFj
N2MxN2Q5MDE2ZGI3YWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcApAQCAtMTk1LDExICsxOTUsNiBAQCBKU1ZhbHVlIEpTRnVuY3Rpb246Omxlbmd0
aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJgog
ICAgIHJldHVybiBqc051bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291
bnQoKSk7CiB9CiAKLWJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTRnVuY3Rpb24qIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CkBAIC0yNjMsNyArMjU4LDcg
QEAgYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICAKICAgICBpZiAocHJvcGVydHlOYW1lID09
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpIHsKICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3Q7Ci0gICAgICAgIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICAgICAgbWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAg
ICB9CiAgICAgCkBAIC0zMDgsNyArMzAzLDcgQEAgdm9pZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAg
ICBpZiAoIWlzSG9zdEZ1bmN0aW9uKCkgJiYgKG1vZGUgPT0gSW5jbHVkZURvbnRFbnVtUHJvcGVy
dGllcykpIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHByb3RvdHlwZSBoYXMgYmVlbiByZWlmaWVk
LgogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBzbG90KTsKKyAg
ICAgICAgbWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHNsb3QpOwogCiAgICAgICAgIHByb3BlcnR5TmFt
ZXMuYWRkKGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpOwogICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVyKTsKQEAgLTMzMyw3ICszMjgs
NyBAQCB2b2lkIEpTRnVuY3Rpb246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYQogICAgICAgICAvLyBNYWtlIHN1cmUgcHJvdG90
eXBlIGhhcyBiZWVuIHJlaWZpZWQsIHN1Y2ggdGhhdCBpdCBjYW4gb25seSBiZSBvdmVyd3JpdHRl
bgogICAgICAgICAvLyBmb2xsb3dpbmcgdGhlIHJ1bGVzIHNldCBvdXQgaW4gRUNNQS0yNjIgOC4x
Mi45LgogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgdGhpc09iamVjdC0+Z2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAg
ICB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9CiAgICAgaWYgKHRoaXNPYmplY3Qt
PmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSAmJiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMgfHwgcHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5jYWxsZXIpKSB7CiAgICAgICAgIC8vIFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSBw
cm9wZXJ0eSB0byBiZSByZWlmaWVkLCBpZiB0aGlzIGlzIG5vdCBhbHJlYWR5IHRoZSBjYXNlIQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IGY4NWFhMzgw
ZGNjMTQzNmQ3NDEzOWU3ZTZmZDMyNGJlOTUyMzBjYzkuLjhlOGEwMTUzZWFmN2ZlMzlkNTI3Yjhl
YzMyNDdiZWI1YTE4NTk0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKQEAgLTEyOSw3ICsxMjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBOYXRpdmVFeGVjdXRhYmxlKiwgaW50IGxlbmd0
aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3Bl
cnRpZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCmluZGV4IGU4ZWNmYTQzZGJhZTc4MGI2NTU3MmFlZDFhNjQ5Y2I4MTVhNDFmYWEuLmU0
MzAxYzZjNWI5YjAxZTkwZmZhZjJjZGMzMTZhY2RhMzcyODg4MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTQzNCwxMSArNDM0
LDYgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6YWRkU3RhdGljR2xvYmFscyhHbG9iYWxQcm9wZXJ0
eUluZm8qIGdsb2JhbHMsIGludCBjb3VudCkKICAgICB9CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0K
IGJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZTY5MDJlOWJjMzgyYzk4NzJjYTAwOTFiYWMwNjA2
MGMzMDlkYjUxYS4uNzFlMDg2YTAwZDg0MDJjMmRlZDIzYjNhNDY4MmQ5ZGIxNzNhYTcyNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0x
ODIsNyArMTgyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5j
cHAKaW5kZXggZTlkNDVkNTEyMWI2YTllYmE5YWE3Zjc2ZGQzN2IwMWRiNjZmOWE4Ny4uYWZkYjk5
YjM4Njc5NDAwN2FmODAzN2NlNDNjODEwNTA0MmM3NDE3MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTQ1LDExICs0NSw2IEBAIEpT
VmFsdWUgSlNOb3RBbk9iamVjdDo6ZGVmYXVsdFZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSkgY29uCiAgICAgcmV0dXJuIGpzTnVtYmVyKDApOwogfQogCi1ib29s
IEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90
KTsKLX0KLQogLy8gSlNPYmplY3QgbWV0aG9kcwogYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90JikKIHsKQEAgLTU3LDExICs1Miw2IEBAIGJvb2wgSlNOb3RBbk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTTm90QW5PYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIEpTTm90QW5P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCwgUHJvcGVydHlTbG90JikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuaAppbmRleCA4ZDVlN2JjNDkxZjMwMTU5YTJhNzc4MDI4MzE4Y2U4YjgwY2M2
M2ZmLi43YjRiNDlhZWMwZjdjOWE3MjYyODc1MGZiN2VmZWU0MWM2YjQ5NDlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCkBAIC02OCw5ICs2OCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIEpTVmFsdWUgZGVmYXVsdFZhbHVl
KEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5cGUpIGNvbnN0OwogCiAgICAgICAgIC8v
IEpTT2JqZWN0IG1ldGhvZHMKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggN2M1OWFlZmNlMTBmM2NkZTZiN2ZjYzY0ZWUxNTM1
MjdhNjNkN2MyOC4uOTY0OGE4NzUxYzU5ZGUyYjIyY2I4ZmFhZDNiYmJjZWJlNzMyZjE4NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTUyMyw3
ICs1MjMsNyBAQCBib29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShT
dHJpbmdpZmllciYgc3RyaW5naWZpZXIsIFVTdHJpbmdCdQogICAgICAgICAgICAgdmFsdWUgPSBh
c0FycmF5KG1fb2JqZWN0LmdldCgpKS0+Z2V0SW5kZXgoaW5kZXgpOwogICAgICAgICBlbHNlIHsK
ICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKLSAgICAgICAg
ICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgaW5kZXgs
IHNsb3QpKQorICAgICAgICAgICAgaWYgKCFtX29iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChtX29iamVjdC5nZXQoKSwgZXhlYywgaW5kZXgsIHNsb3QpKQog
ICAgICAgICAgICAgICAgIHNsb3Quc2V0VW5kZWZpbmVkKCk7CiAgICAgICAgICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTQx
LDcgKzU0MSw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAgICAgICAgIC8vIEdldCB0aGUg
dmFsdWUuCiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90KG1fb2JqZWN0LmdldCgpKTsKICAgICAg
ICAgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5hbWVzLT5wcm9wZXJ0eU5h
bWVWZWN0b3IoKVtpbmRleF07Ci0gICAgICAgIGlmICghbV9vYmplY3QtPmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKCFtX29i
amVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG1fb2JqZWN0LmdldCgpLCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIEpTVmFsdWUgdmFsdWUgPSBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAg
ICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTU5OCwxMSArNTk4LDYgQEAgY29u
c3QgQ2xhc3NJbmZvIEpTT05PYmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAmSlNOb25GaW5hbE9i
amVjdDo6c19pbmZvLCAwLCBFeGUKIAogLy8gRUNNQSAxNS44CiAKLWJvb2wgSlNPTk9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9v
bCBKU09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsIEV4
ZWNTdGF0ZTo6anNvblRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxKU09OT2JqZWN0Kj4oY2VsbCks
IHByb3BlcnR5TmFtZSwgc2xvdCk7CkBAIC02OTMsNyArNjg4LDcgQEAgTkVWRVJfSU5MSU5FIEpT
VmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAgICAg
ICAgaW5WYWx1ZSA9IGFycmF5LT5nZXRJbmRleChpbmRleCk7CiAgICAgICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
ICAgICAgICBpZiAoYXJyYXktPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwobV9leGVjLCBpbmRl
eCwgc2xvdCkpCisgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheS0+bWV0aG9kVGFibGUoKS0+
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChhcnJheSwgbV9leGVjLCBpbmRleCwgc2xvdCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBpblZhbHVlID0gc2xvdC5nZXRWYWx1ZShtX2V4ZWMsIGlu
ZGV4KTsKICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
aW5WYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CkBAIC03NTUsNyArNzUwLDcgQEAgTkVWRVJfSU5MSU5F
IEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90OwotICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwobV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSwgc2xvdCkpCisgICAgICAgICAgICAg
ICAgaWYgKG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwg
bV9leGVjLCBwcm9wZXJ0aWVzW2luZGV4XSwgc2xvdCkpCiAgICAgICAgICAgICAgICAgICAgIGlu
VmFsdWUgPSBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydGllc1tpbmRleF0pOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgaW5WYWx1ZSA9IGpzVW5kZWZpbmVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNDg3
ZmNmMGZlMmQ3Mjg0ZTRjMTk1NzExYzE3NWM4MmM1Y2FjZGFhNS4uY2ZhMmExMzAwZjNhNTUzZmM0
YTRlNDdlZTQwZDU3YzY1MmVmMjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuaApAQCAtNTYsNyArNTYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIEpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4
IGM2OTA5MzkxZjg2NzY3ZDEwMDc1NDQyYTRhMTFkYzdmY2VlM2ZhN2YuLjQ2OGUzYTNkOGU5NTEw
ODRlODQyYmY3NTNkNGViYjY4NTQxNmJlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5jcHAKQEAgLTEwNCwxNCArMTA0LDEwIEBAIFVTdHJpbmcgSlNPYmplY3Q6
OmNsYXNzTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIGluZm8tPmNsYXNzTmFtZTsKIH0KIAotYm9v
bCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
Ci19Ci0KIGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVy
dHlOYW1lKSwgc2xvdCk7CisgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U09iamVjdCo+KGNlbGwpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5n
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVj
LCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAogc3RhdGljIHZvaWQgdGhyb3dTZXR0ZXJFcnJv
cihFeGVjU3RhdGUqIGV4ZWMpCkBAIC0yOTIsNyArMjg4LDcgQEAgYm9vbCBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHAKIGJvb2wgSlNPYmplY3Q6Omhhc093blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKSBjb25zdAogewogICAgIFByb3BlcnR5U2xvdCBz
bG90OwotICAgIHJldHVybiBjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdldE93blByb3Bl
cnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gY29u
c3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNs
b3QoY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCiBib29sIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAppbmRleCAxYzI4ODU3YmZlZGQxMzU1MzM5YzFhYTkyODQ1MjA5YmY1ZDY1Mzcw
Li5hMjk2NTc4NmViOTBjNmY5MTQxOTkzZjJhMmFiOTkyZjFlN2Y3NmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTk5LDkgKzk5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIGJvb2wgZ2V0UHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKQEAgLTUyNCwxMSArNTIyLDYgQEAgQUxX
QVlTX0lOTElORSBib29sIEpTT2JqZWN0OjppbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUFMV0FZU19JTkxJ
TkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQot
ewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKLX0KLQogLy8gSXQgbWF5IHNlZW0gY3JhenkgdG8gaW5saW5lIGEgZnVuY3Rpb24g
dGhpcyBsYXJnZSwgZXNwZWNpYWxseSBhIHZpcnR1YWwgZnVuY3Rpb24sCiAvLyBidXQgaXQgbWFr
ZXMgYSBiaWcgZGlmZmVyZW5jZSB0byBwcm9wZXJ0eSBsb29rdXAgdGhhdCBkZXJpdmVkIGNsYXNz
ZXMgY2FuIGlubGluZSB0aGVpcgogLy8gYmFzZSBjbGFzcyBjYWxsIHRvIHRoaXMuCkBAIC01NDEs
NyArNTM0LDcgQEAgQUxXQVlTX0lOTElORSBib29sIEpTQ2VsbDo6ZmFzdEdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWYKIHsKICAgICBpZiAoIXN0cnVjdHVy
ZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgpKQogICAgICAgICBy
ZXR1cm4gYXNPYmplY3QodGhpcyktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIG1ldGhvZFRhYmxlKCktPmdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiAvLyBG
YXN0IGNhbGwgdG8gZ2V0IGEgcHJvcGVydHkgd2hlcmUgd2UgbWF5IG5vdCB5ZXQgaGF2ZSBjb252
ZXJ0ZWQgdGhlIHN0cmluZyB0byBhbgpAQCAtNTc5LDcgKzU3Miw3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOCiB7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7CiAgICAgd2hpbGUgKHRy
dWUpIHsKLSAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAob2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBKU1ZhbHVlIHByb3RvdHlw
ZSA9IG9iamVjdC0+cHJvdG90eXBlKCk7CiAgICAgICAgIGlmICghcHJvdG90eXBlLmlzT2JqZWN0
KCkpCkBAIC04MDAsNyArNzkzLDcgQEAgaW5saW5lIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QKICAgICB9CiAg
ICAgSlNDZWxsKiBjZWxsID0gY29uc3RfY2FzdDxKU0NlbGwqPihhc0NlbGwoKSk7CiAgICAgd2hp
bGUgKHRydWUpIHsKLSAgICAgICAgaWYgKGNlbGwtPmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgaWYgKGNlbGwtPm1ldGhvZFRhYmxl
KCktPmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoY2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KSkKICAgICAgICAgICAgIHJldHVybiBzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gYXNPYmplY3QoY2VsbCktPnByb3RvdHlw
ZSgpOwogICAgICAgICBpZiAoIXByb3RvdHlwZS5pc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAppbmRleCA3
ZmE1YzQ4OWViOWFmYjRiYTQzMmQzOTU5ZjFlMWUyYWM1NTA0NTA3Li5hNGZmNjI3ZWM4NzUyZmY2
Njk1MTViYWY2YTljMTIzYWI5MjJiMTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcApAQCAtOTEsMTEgKzkxLDYgQEAg
Ym9vbCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojppc0R5bmFtaWNTY29wZShib29sJikgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9vbCBKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdGF0aWNTY29wZU9iamVjdCo+KGNlbGwpLT5zeW1i
b2xUYWJsZUdldChwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IDAzMjExZmZmMzc5NDc5
NDg1ZmIwZGVmYTQ4MTA4MDg1MTMxN2U3MjEuLjE0OTc2MTUzZDM0ODEzMTQ5NzRhODkyYzMyZDU0
YjY3NTg4NzlmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAgLTQ0LDcgKzQ0LDYgQEAgbmFtZXNwYWNlIEpTQ3sKICAg
ICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwog
ICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHluYW1pY0NoZWNrcykg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUq
KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0Vmly
dHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKaW5kZXggYWNjODEzNjFkNzQzMzljNjlmNjE4
Yjc1NGI4NTJiZGMyNjI2ZDIzNS4uNTNlMmQzYjM0NWYxNzBmY2VmZDk0YWI0MmJmYzFmM2UxZmY5
ZGVmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcApAQCAt
MjAxLDExICsyMDEsNiBAQCBKU09iamVjdCogSlNTdHJpbmc6OnRvVGhpc09iamVjdChFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZ09iamVjdDo6Y3JlYXRlKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgY29uc3RfY2FzdDxKU1N0cmluZyo+KHRoaXMpKTsK
IH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKLX0KLQogYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU1N0cmluZyogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTU3RyaW5nKj4oY2VsbCk7CkBAIC0yMjEsNyArMjE2LDcgQEAgYm9vbCBKU1N0cmlu
Zzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWUKICAgICBKU09iamVjdCogb2JqZWN0OwogICAgIGZvciAoSlNWYWx1ZSBwcm90
b3R5cGUgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgpOyAh
cHJvdG90eXBlLmlzTnVsbCgpOyBwcm90b3R5cGUgPSBvYmplY3QtPnByb3RvdHlwZSgpKSB7CiAg
ICAgICAgIG9iamVjdCA9IGFzT2JqZWN0KHByb3RvdHlwZSk7Ci0gICAgICAgIGlmIChvYmplY3Qt
PmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAg
ICAgICAgaWYgKG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG9iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwpAQCAtMjU1LDExICsyNTAsNiBAQCBib29s
IEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEpTU3RyaW5n
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9v
bCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgSlNTdHJpbmcqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGNlbGwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggZjVhZTFlOTM5
ZjE1MzMzOGQwY2JiNDk1YTZmZmY3ODI1NTdiY2FiNC4uYjZmM2RiOWQ0YzI4YTMxNWYyYTYwODZi
MWYxMDUyZDAzNDRhOGRlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCkBAIC0yNTAsOSArMjUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwg
SlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICAvLyBB
Y3R1YWxseSBnZXRQcm9wZXJ0eVNsb3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNsb3QgKHNlZSBKU0Nl
bGwpLgotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcAppbmRleCA2MjRmNGRkYmJkM2U5MDcwNzY4ZWMxZmU5M2Q5MTMwNzljNWVjZDgzLi44
MThhYTAyZjIxZGRmMzhjZDc3ZmJlYjQ1M2U3ZTE4ODQ3NGQ1NjRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcApAQCAtMTA0LDExICsxMDQsNiBAQCB2
b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIlNRUlQyIiksIGpzTnVtYmVyKHNxcnQo
Mi4wKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKIH0KIAotYm9vbCBNYXRo
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwot
fQotCiBib29sIE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4o
ZXhlYywgRXhlY1N0YXRlOjptYXRoVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE1hdGhPYmplY3Qq
PihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuaAppbmRleCAyNDI0YTcxZTVlZTllMWI3NDU0MDk3MWY4YTdkZjgyNWJi
MTc1MGYxLi5kZGY2ZjEyZWUyNmNkZDUwYjMwNDBiZGE5MjMwN2VjNWZlM2FhNTEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zOCw3ICszOCw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVj
LCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggMDBhMmRjODQ1MTJiNWEwNzE3ODA0ZGQyOTU3YzMzNzc2NWU1Njg1
OC4uMzJmNTRiZTQwNzIyMjYwYTBmZDJlMmVlZTJiZmE2OGM2MDZjNTU2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAt
NzEsMTEgKzcxLDYgQEAgdm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclAKICAgICBwdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiB9
CiAKLWJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDxOdW1iZXJDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywg
RXhlY1N0YXRlOjpudW1iZXJDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxOdW1i
ZXJDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggOTNiMTY5
ZDc5NjA1YmMyNjk5NWQ4ZGFhZmY1ZWQ4NWEzNjBiOGY2MS4uNmU2NjNkMDBjNDI2ZmQ0ZGNkOGJl
ODM1Y2FkYjgyOTlkOTZmMzJiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBAIC0zOCw3ICszOCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICAgICAgSlNWYWx1ZSBnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmNwcAppbmRleCA0ZmIyOWI1NWQ2ZDZlMGY2NWQwZTBhMmFjNDk5ZmU1MDQ1NjA1NmI5Li5mZmYw
YzE0OWQzYWE0MzM2ODhhYjY0ODBkYmVlNzBhZGU4ZjcyNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTgzLDExICs4Myw2
IEBAIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KikKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1i
b29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90
KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKLX0KLQogYm9vbCBOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0
aW9uU2xvdDxOdW1iZXJPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFi
bGUoZXhlYyksIHN0YXRpY19jYXN0PE51bWJlclByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuaAppbmRleCBiZWJiNWU3M2EyMTQ3NzY4MDU5ZjRiYjhlMzc0MDNlOWMxOWI1YmY4Li5j
NGQ3YTUwMzY1MDQwNWUyYzZjYWZlY2I5YzQ3NWJiMTIxMTE4YWI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaApAQCAtNDksNyArNDksNiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIE51bWJlclByb3RvdHlw
ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IGZiZGNj
MzgxMWYyYWMzYTAyOTc4ZGY4YzExYjAzYTUwY2VkYWJkMDYuLmZlN2Y3OTM0ZjQ0NDU5ZmE5ZjE0
MGU0MzcxZWMwOGVlYjE0Y2IwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTg5LDExICs4OSw2IEBAIHZvaWQgT2Jq
ZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgT2JqZWN0UHJv
dG90eXBlKiBvYmplY3RQCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVh
ZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1ib29sIE9iamVjdENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0dXJu
IGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQot
CiBib29sIE9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmpl
Y3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0Q29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGlj
X2Nhc3Q8T2JqZWN0Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGJiZTE1ZWZmYzVhYzUxOTcyNGE1MDM2NjAxZDE0M2RkY2JhOGRkYzYuLjMxMzEzNjQ1OTY1
ZWEwZWY0N2VhMWEzOGFkNDJhMzI3MTNkM2IyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzgsNyArMzgsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQog
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCmluZGV4IDk4ZTFkMTc4ZDRmNDZiNDBkNTdiNmIxMWFlMGY0ZGZiZTdjODlhOWUu
LjBkZjRmOWI2NjgzYjE2MzEzOTliYzFmYTg2NmNlZGY5ODJkZDIyNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtOTIsMTEg
KzkyLDYgQEAgdm9pZCBPYmplY3RQcm90b3R5cGU6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGUKICAgICB9CiB9CiAKLWJvb2wgT2JqZWN0
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
LX0KLQogYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIE9iamVjdFByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpOwpAQCAtMTA1LDExICsxMDAsNiBAQCBib29s
IE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgdQogICAgIHJldHVybiBKU05vbkZpbmFsT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKLWJvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1cm4gZ2V0U3Rh
dGljRnVuY3Rpb25TbG90PEpTTm9uRmluYWxPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0
UHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwp
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCBjODU5ZDU3ZjMzMWViNDU2MmExZTM2ZjM3OTQ3NDA4
NDJkZDQxNTFkLi4yYjNjZGFkMTkwZTM4NTA0ZGQxYjcwODA4OWFiY2E4Mzk3YjhkZmZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAt
NTMsOSArNTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDkwZmEzNzEzMDlmMGE0
NjM2ZDcxODUxNTcyNmYwMjdkZjFjZjAxNzkuLmFkMzkyNjBhYWFiMmRjOWVhNjA3NmYwNmVmYmI2
MDFiMzc1Y2YwZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTY5LDYgKzY5LDggQEAgQVNTRVJUX0NMQVNTX0ZJVFNf
SU5fQ0VMTChSZWdFeHBDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZv
LCAwLCBFeGVjU3RhdGU6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUsIENSRUFURV9NRVRIT0RfVEFC
TEUoUmVnRXhwQ29uc3RydWN0b3IpIH07CiAKK2NvbnN0IENsYXNzSW5mbyBSZWdFeHBNYXRjaGVz
QXJyYXk6OnNfaW5mbyA9IHsiQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCAwLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFJlZ0V4cE1hdGNoZXNBcnJheSl9OworCiAvKiBTb3VyY2UgZm9yIFJlZ0V4
cENvbnN0cnVjdG9yLmx1dC5oCiBAYmVnaW4gcmVnRXhwQ29uc3RydWN0b3JUYWJsZQogICAgIGlu
cHV0ICAgICAgICAgICByZWdFeHBDb25zdHJ1Y3RvcklucHV0ICAgICAgICAgIE5vbmUKQEAgLTIw
MiwxMSArMjA0LDYgQEAgSlNWYWx1ZSBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0UmlnaHRDb250ZXh0
KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4ganNFbXB0eVN0cmluZyhleGVjKTsK
IH0KICAgICAKLWJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgUmVnRXhwQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgcmV0dXJu
IGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4o
ZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2Fz
dDxSZWdFeHBDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXgg
MmZmOWMxZDMzY2RkODI2MjQ1ZDZmYjZlZTk4ZDRkMTA2YzVhMGI3OC4uNzk3ZTVhY2RmZGU4YzJm
MGM1ZDJhNjRhY2Q1ODY1Njc2ZTFjMzJiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03NCw3ICs3NCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNDcwMGZjOTNlMWZlNWJlZmM5ZTFk
NDEwMTdkZWRjOTFmM2EyOWQxMy4uOTU4ZDliYjI5ZGQ3NDFkZmZhNTUyNjNjMzM0YTViMTJmYTg1
YWRiOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0
Y2hlc0FycmF5LmgKQEAgLTM5LDE1ICszOSwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
fQogICAgICAgICB2aXJ0dWFsIH5SZWdFeHBNYXRjaGVzQXJyYXkoKTsKIAorICAgICAgICBzdGF0
aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOworICAgICAgICAKKyAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCAmc19pbmZvKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0
b3JQcml2YXRlKiBkYXRhKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKLSAgICAgICAgfQotCiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJlZ0V4
cE1hdGNoZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJh
eSo+KGNlbGwpOwpAQCAtNTYsMTEgKzU4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotICAgICAgICB9Ci0KICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKICAgICAgICAgICAgIFJlZ0V4cE1hdGNo
ZXNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJheSo+KGNl
bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
aW5kZXggZDVlOTI0M2UzMjg2ODNmNmE2NzRhYzEzM2UxYmVhYjFhNzBmZDY5OC4uOTk4NzM4YzQ3
MGI1MGE0YmY2M2I2YzVkOGNhNmZhMjFmYWEyOWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC05MSwxMSArOTEsNiBAQCB2b2lkIFJl
Z0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+ZC0+bGFzdEluZGV4KTsK
IH0KIAotYm9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1
ZVNsb3Q8UmVnRXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBUYWJs
ZShleGVjKSwgc3RhdGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwg
c2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmlu
ZGV4IDBmYTM2YTUxYTY3MTAyMGNkNWM2YzJlMTA1ODU2MDg0NDc1Mzg2MmMuLjY5MDE1NjJmNDZk
NWQyZjMxNzZmNDVjMzBhNjE4ZjExZTJmOTM3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC02NSw3ICs2NSw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKU1ZhbHVlIHRlc3QoRXhlY1N0YXRlKik7CiAgICAgICAgIEpTVmFsdWUgZXhl
YyhFeGVjU3RhdGUqKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCA4MzA0ZTYyZTE4
YzBkZTdlNjk0N2MxMWVkODg5NjllNGJmMGMwOGMwLi42ZGQ4YjU4NTI4ZDQ0ZjBmNjQ4NWZiOGNi
NTNhODkyMzBhMmFiZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTY3LDExICs2Nyw2IEBAIFJlZ0V4cFByb3RvdHlwZTo6
UmVnRXhwUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0CiB7CiB9CiAKLWJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QgJnNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIFJlZ0V4cFByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKICAgICByZXR1
cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PFJlZ0V4cE9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpy
ZWdFeHBQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8UmVnRXhwUHJvdG90eXBlKj4o
Y2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IDhjOTJiMjJlNDQxODdiYzBlZDI0YTU3OWI2
MTNkNzZlNWE3OTg0YjAuLjhjYWI5MGE4YjNmZDRkMjI2ZjVkNDY4NDdkYzRhNDczYjY4ZWJiMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5o
CkBAIC00OSw3ICs0OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBS
ZWdFeHBPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwCmluZGV4IDM2ZTczNmEzNzI4NzliYWMxZmUxYWZhNjI4ODM1YWQ0ZTIwNGM1MTguLmM2
OGEyODg0Yjk5ZGVkNGU3M2EwOWRmYTVhMDM0YzE2ODMxNWQ0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTU5LDEx
ICs1OSw2IEBAIHZvaWQgU3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQCiAgICAgcHV0RGlyZWN0V2l0aG91dFRy
YW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOwogfQogCi1i
b29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNs
b3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwotfQotCiBib29sIFN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJldHVybiBnZXRTdGF0aWNG
dW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpzdHJpbmdDb25z
dHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdHJpbmdDb25zdHJ1Y3Rvcio+KGNlbGwp
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggY2E4M2YwMTEwMWU1Njc1NjJjZWFhNjllOWY4
Zjk5M2UzNjIwMzhlYi4uZjlhZGI1YjZlZjI0ODUzZmI4MzhlZTliOGNiODdjN2RjYzQzYWIxZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rv
ci5oCkBAIC01NCw3ICs1NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgQ29u
c3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCosIENvbnN0cnVjdERhdGEmKTsKICAg
ICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAK
LSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdC5jcHAKaW5kZXggNjc1MDRjYTBmZjdmNzZhZjk1ZTVmYTAwMGNhOTUyNGJlMjZjMzVhMy4u
N2ViNGQxNWE5NjU2MzczMTUxNjdiOWM1MmIwNjdjOGRkNzQ5ZmI5NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC00MSwxMSArNDEsNiBA
QCB2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1N0cmluZyogc3RyaW5nKQogICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwg
c3RyaW5nKTsKIH0KIAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1
YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFN0cmluZ09iamVj
dCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFN0cmluZ09iamVjdCo+KGNlbGwpOwpAQCAtNTQs
MTEgKzQ5LDYgQEAgYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnQKICAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogICAgIAotYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgU3RyaW5nT2JqZWN0KiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCmluZGV4IDQxZDUzYTEyNmIwNTAxMmI4
MjM4OTgxMTZlNTZiYzE2OGZmMGRkZGIuLjZmNDVjZDliOTVmZjMxMmY0ZTkzNDk2ZDU4NmRjMWJj
MmQwOWViZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5oCkBAIC00NSw5ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAg
IHN0YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IEpTU3RyaW5nKik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGFkYmZjMmIyZjVmYzMyZjBmOTQxMWUx
ZmQ2N2U3MTJiOGViOWNhYTkuLjQxYWMwYWIwOTlmZGQ0MGI1OThiM2Q1YjA0YmViNTEzYWQ5MzEw
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcApAQCAtMTQ1LDExICsxNDUsNiBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKgogICAg
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMCksIERvbnREZWxldGUgfCBSZWFkT25seSB8
IERvbnRFbnVtKTsKIH0KIAotYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgU3RyaW5nUHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewogICAgIHJl
dHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8U3RyaW5nT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6
OnN0cmluZ1RhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdHJpbmdQcm90b3R5cGUqPihjZWxsKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmgKaW5kZXggNDcxMGE1YzA4MzhlNzQ1MDQzMGYxMzc0OWI1YjNlYTE4
YmQxMDQyZC4uZDFjYzAwMWM5YWI4YTI1MDdmNjU3YjYzNDM2MDQxN2Y3NDRmN2YyYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQy
LDcgKzQyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBl
OwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggOWU5ZDIwNjQwNjc5ZDEwOGJkMjZk
NWE3MjkxNWFjMWQ2ZjRiNTdhMC4uN2RhZmJjNTgwMWI3OTZkODQzODE5MjQ2NWFhNjBhZTMxNzJk
OTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTIzLDEx
ICsxMjMsNiBAQCBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OnVzZXJPYmplY3RHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbgogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLWJvb2wgVXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKLX0KLQogYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFVzZXJPYmplY3RJbXAqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCAyMGI2MmY0YjU4OTk5ODkzZDdkMjAzMjc3NDZiMmVm
YzA1ZDcxNDg5Li42MmFhYmI2YTdiYmE5MGY4Zjg2Y2YzZTVkZjdkZWQxM2YxM2U3OTNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU0LDcgKzU0LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3Bl
cnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9w
ZXJ0aWVzKTsKIAogICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUg
KmV4ZWMpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNT
dGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1YWwoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggM2MyYjdlMWMwYzZiOTI3NzZhYTM4ZTZkYTU0Nzk0NTBlNWZj
YmJkYi4uOTk2N2UwMDUzMzQ2ZWJkYmJlZDk5NjU2YmQwYTFhODkyMmRkMjkwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTE2OTMsNyArMTY5Myw2IEBAIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9k
MTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0MxM1J1bnRp
bWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRp
ZmllckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZK
U0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90
RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCi1f
X1pOM0pTQzEzUnVudGltZU1ldGhvZDI1Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbEVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEz
UnVudGltZU1ldGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpT
R2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZN
ZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKQEAgLTE3MDYs
NyArMTcwNSw2IEBAIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MThnZXRPd25Qcm9w
ZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzhCaW5kaW5nczEz
UnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQ
cm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0MjFkZWxldGVQcm9wZXJ0eVZpcnR1YWxFUE5TXzlFeGVjU3RhdGVFUktO
U18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18x
OFByb3BlcnR5RGVzY3JpcHRvckUKLV9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjVn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0M3B1
dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVj
dDZzX2luZm9FCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdEMyRVBOU185RXhlY1N0
YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TMF84SW5zdGFuY2VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93Q3VzdG9tLmNwcAppbmRleCAwYWUyNDc3OGEzMjE5NjhmOWM0NTg4ZGQyZDA2NGVlN2I5
OWVmYjYxLi5lZDVkOTMxZTc2MzM0MzRjZTQ2ZmYwMjU0ODI4MDNlMTc0YTA1MmJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0x
MjEsMTEgKzEyMSw2IEBAIHN0YXRpYyBKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgdGhpc09iaiwgY29sbGVjdGlvbi5nZXQoKSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3c6
OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJv
b2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdp
bmRvdyo+KGNlbGwpOwpAQCAtNjk1LDcgKzY5MCw3IEBAIGlubGluZSBKU1ZhbHVlIERpYWxvZ0hh
bmRsZXI6OnJldHVyblZhbHVlKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiAgICAgSWRlbnRpZmllciBpZGVudGlmaWVyKG1fZXhlYywgInJldHVyblZhbHVlIik7CiAgICAg
UHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QtPmdldE93blByb3BlcnR5
U2xvdFZpcnR1YWwobV9leGVjLCBpZGVudGlmaWVyLCBzbG90KSkKKyAgICBpZiAoIWdsb2JhbE9i
amVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KGdsb2JhbE9iamVjdCwgbV9l
eGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAg
ICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBpZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZTNkMzMz
Y2MzMGNkODM5MzdjMWJjNDRmMDE3ZTE1NWRiMTllYmVhMS4uN2RjY2UwZGEzOWQwN2JiMmJmODNl
YzhlNDRlYThhZGEzNWFmNDNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTEwMCwxNCArMTAwLDEwIEBAIFVTdHJpbmcgSlNET01X
aW5kb3dTaGVsbDo6Y2xhc3NOYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3ctPmNsYXNz
TmFtZSgpOwogfQogCi1ib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdFZp
cnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpLT5tX3dpbmRvdy0+Z2V0T3du
UHJvcGVydHlTbG90VmlydHVhbChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIEpTRE9N
V2luZG93U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4o
Y2VsbCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPm1fd2luZG93LT5tZXRob2RUYWJsZSgpLT5n
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggMGQ2OTIxNjAyNjUwZGQzZDg1NDE4
YTkxMGRjNDdjYzhjYjBiY2VhNC4uNGRmZTlkNTZmNDk2YWQ4Y2FiMmQ0ZWE5M2EzNjlmM2UwODg3
Y2Q2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aApAQCAtODAsNyArODAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKICAg
ICAgICAgdmlydHVhbCBKU0M6OlVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFZpcnR1
YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggOTYyYmY1
ZDkwNTJhNzI1ZTJmZTM2ZWJiZmY1ZTdjN2U4YWI1ODNkMC4uMDFiYTQwYzJiN2EzYzc0YTQ0NzA1
ZjNmNjVjZDk1OTY3NDllODMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0zMzcsNyArMzM3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICBoYXNJbmRleCA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIHNsb3QuZ2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgfQot
ICAgICAgICB9IGVsc2UgaWYgKGFycmF5LT5nZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICB9IGVsc2UgaWYgKGFycmF5LT5tZXRo
b2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KGFycmF5LCBtX2V4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGhhc0luZGV4ID0gdHJ1ZTsKICAgICAgICAg
ICAgIHJldHVybiBzbG90LmdldFZhbHVlKG1fZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
fQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHByaXZhdGU6CiAgICAgSlNWYWx1ZSBnZXRQcm9wZXJ0eShK
U09iamVjdCogb2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAgewog
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdChvYmplY3QpOwotICAgICAgICBpZiAob2JqZWN0LT5n
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKG1fZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAg
ICAgICAgaWYgKG9iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KG9iamVj
dCwgbV9leGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgcmV0dXJuIHNsb3Qu
Z2V0VmFsdWUobV9leGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1cm4gSlNWYWx1ZSgp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KaW5kZXggNWU5MmM4ZDg3Y2NiNmU2YWQ0NmQ2NWI4YWNjMjY2OTBhMjBmNTk4
My4uNDNkMmY1ZWI4NmYyZDFiNjFjMTk5MjdhYWU3ZWE1ZTQ1NGQ5ZTAwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTc3
MCwxMCArNzcwLDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEdldHRlcnMKICAgICBp
ZiAoJGhhc0dldHRlcikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4i
KSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRl
ciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05h
bWVHZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKSBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSAmJiAh
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIi
fTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5
U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRP
d25Qcm9wZXJ0eVNsb3QifTsKQEAgLTk2OSwxMCArOTY3LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn07XG5cbiIpOwogCiAgICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklubGluZUdldE93blByb3BlcnR5U2xvdCJ9ICYmICEk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Qi
fSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7
Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
JiBzbG90KVxuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIn1cblxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJBTFdBWVNf
SU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwq
IGNlbGwsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7
Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwp
O1xuIik7CkBAIC0xMDQyLDcgKzEwMzYsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bztcbiIpOwogICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0
T3duUHJvcGVydHlTbG90In0pIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVs
ZWdhdGluZ1Byb3RvdHlwZUdldE93blByb3BlcnR5U2xvdCJ9OwpAQCAtMTQzOCwxMSArMTQzMSw2
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKICAgICB9CiAgICAgaWYgKCRudW1Db25zdGFudHMgPiAwIHx8ICRudW1GdW5j
dGlvbnMgPiAwIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQ
cm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgImJvb2wgJHtjbGFzc05hbWV9UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFs
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
Ym9vbCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oY2VsbCk7XG4i
KTsKQEAgLTE1ODMsMTAgKzE1NzEsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICMgQXR0cmlidXRlcwogICAgIGlmICgkaGFzR2V0dGVyKSB7CiAgICAgICAgIGlmICghJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5saW5lR2V0T3duUHJvcGVydHlTbG90In0gJiYg
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xv
dCJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFt
ZX0qPihjZWxsKTtcbiIpOwpAQCAtMTYwMiwxMCArMTU4Niw2IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAKICAgICAgICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNJbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhh
c0N1c3RvbUluZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SGFzTnVtZXJpY0luZGV4R2V0dGVyIn0pIAogICAgICAgICAgICAgICAgICYmICEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNPdmVycmlkaW5nTmFtZUdldHRlciJ9KSB7Ci0gICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0T3du
UHJvcGVydHlTbG90QnlJbmRleCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NO
YW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7
CkBAIC0xNjE4LDcgKzE1OTgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0
cnVlO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0aGlzT2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVy
dHlOYW1lKSwgc2xvdCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiB0aGlzT2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhp
c09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAg
ICB9CiAgICAgICAgIApAQCAtMzIxMSw3ICszMTkxLDYgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB0
cjtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG5cbiIpOwogCi0gICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0
dWFsKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwpAQCAtMzI2MywxMSArMzI0Miw2IEBAIHN1YiBHZW5l
cmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBw
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCBqc051bWJlcigke251bWJlck9mY29uc3RydWN0UGFyYW1ldGVyc30pLCBSZWFkT25seSB8IERv
bnREZWxldGUgfCBEb250RW51bSk7XG4iKSBpZiAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJz
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3RW
aXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsK
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFy
cmF5LCAifVxuXG4iKTsKLSAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29u
c3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX0sIEpTRE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9
VGFibGUsIHN0YXRpY19jYXN0PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4oY2VsbCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmgKaW5kZXggMThkNWUzNDIwYTM5MTUyYmQ2MzFlNTQ2OGI3NjczMDViNTViNGVhNi4uMmRl
NDA0Mzg3ZjAzYmEzNGJmNTQ3NDQwZjBkM2Y2MTFmMzI2ODEyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKQEAgLTEyMyw3ICsxMjMsNiBAQCBwcm90ZWN0ZWQ6
CiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCosIFN0
cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwotICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBw
dXRWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0KaW5kZXggMmI3MTFiNDE0MDljYzgxOTcwMTA0MzE5NmYzNzQwYTQ4ZjM4MDE0
Mi4uOTE2NzU3NDU4OTJiZWNmZjk5ODVjYjkyYTY2MzI4OTZlOThiM2MxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDExICsyMDUsNiBAQCB2
b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1ib29s
IE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xv
dCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGlkZW50aWZp
ZXIsIHNsb3QpOwotfQotCiBib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgLy8ga2VlcCB0aGUgcHJvdG90eXBlIGZyb20gZ2V0dGluZyBjYWxs
ZWQgaW5zdGVhZCBvZiBqdXN0IHJldHVybmluZyBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCmluZGV4IDUwODAwODJjZDM0NzI5MmIyZWI1NjBmNTc4OWQ4OTEyZWNk
NjY4ZWIuLmY2YWIwNWFiZTE5YmVkN2ZhOWZlNTVjOTIwOTliNjUxNmNmY2RhYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTE0OTQsMTEgKzE0OTQsNiBAQCBD
YWxsVHlwZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0
YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotYm9vbCBRdFJ1bnRp
bWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwotfQotCiBib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgUXRSdW50aW1lTWV0YU1ldGhvZCogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PFF0UnVudGltZU1ldGFNZXRob2QqPihjZWxsKTsKQEAgLTE3
NDEsMTEgKzE3MzYsNiBAQCBDYWxsVHlwZSBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBl
SG9zdDsKIH0KIAotYm9vbCBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0
eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCiBib29sIFF0UnVudGltZUNv
bm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5oCmluZGV4IGFhOWQ1OGQ4YjU1YTAzMjViMTczNDQ4YWI0ZTYwZWY2
YzQzYmQyNjkuLjljYmJjZDQxMDIzZDVlZTBlOTlkNWIxMjQxZjI1M2EyNTc3NjdhMmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMTY0LDcgKzE2NCw2IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1ldGhvZDsKICAgICB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKQEAgLTIwNSw3ICsyMDQsNiBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAgfQogCi0gICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggZTNiNTQwZWJkNzIwMjE3ZTBkZWNiYjg4
YzhiYTQ0NWFkNWNmMGM4OC4uOTIwNjM2MjVmMDA5NGU1NDgzYjRiZjJmYTUzMTVjZjNhZTZlZWVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNzgsMTEgKzc4
LDYgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGUKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotYm9vbCBSdW50aW1lQXJy
YXk6OmdldE93blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0K
IGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1
bnRpbWVBcnJheSo+KGNlbGwpOwpAQCAtMTI2LDExICsxMjEsNiBAQCBib29sIFJ1bnRpbWVBcnJh
eTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcAogICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4
ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJvb2wgUnVudGltZUFycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCh0aGlzLCBleGVjLCBpbmRleCwgc2xvdCk7Ci19Ci0KIGJvb2wgUnVudGltZUFycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlICpleGVjLCB1
bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFJ1bnRpbWVBcnJheSog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggZGRiZTM3ZmQzYjhlY2RkNmVhZDgyYTE3ZWUx
ZjdkYWRiYjgyYzA5Yi4uNGMwZTRjZjc2YWZkZWU3Zjg0M2JhYzJhNjM5MmY1ZTA1NDg4OTkyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC01MCw5ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5SdW50aW1lQXJyYXkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVy
YXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKLSAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCB1
bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lk
IHB1dFZpcnR1YWwoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwCmluZGV4IGNhOTFiOGQxNThlZTk0NzNiMTg1ODRjMjBkZTdmZTkxODAwOWI2MzAu
LjdmODEyN2Y3ZTBiMDc5YjUwOWIwOWY4MTdmODA2NTRmOTI3NjAyMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNjksMTEgKzY5LDYgQEAgSlNWYWx1ZSBS
dW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwg
Y29uc3QgSWRlbnRpZmkKICAgICByZXR1cm4ganNOdW1iZXIodGhpc09iai0+X21ldGhvZExpc3Qt
PmF0KDApLT5udW1QYXJhbWV0ZXJzKCkpOwogfQogCi1ib29sIFJ1bnRpbWVNZXRob2Q6OmdldE93
blByb3BlcnR5U2xvdFZpcnR1YWwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KIGJvb2wgUnVu
dGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkK
IHsKICAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU1l
dGhvZCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCAy
NWQyZjdlNTI4MWNhOTNkMDEyMDk4Y2E3MTRkNTQwMjAyMjliNTA4Li45ZDhkZTIzNGI3MWJkZDQ0
NWRiN2UzOTEyM2QzODk2OWVkYmY5MWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaApAQCAtNjQsNyArNjQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50
ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CiAgICAgc3RhdGljIENhbGxUeXBlIGdldENh
bGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90VmlydHVhbChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDMyOGVjYmZmOGFhYzdm
YTFhNTI3MTc3YTIwODcwMTIxZDI1NzBkNGUuLjNmYTcwZmJlYjk0YzM4Mzk3NzUwYTk4MGY1MDU2
YzkwMTYxMzFkZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApA
QCAtMTE2LDExICsxMTYsNiBAQCBKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZQogICAgIHJldHVybiBt
ZXRob2Q7CiB9CiAKLWJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90VmlydHVh
bChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQogYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIFJ1bnRpbWVPYmpl
Y3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDhhMjcxOWUxODFlYzNkNWQ1YzFm
NzY4MGIzMjJlY2I5NzhlNjY5MjMuLjM2ZmRmNzM1ZjBlZTUyZTI3MTA2MWRlYjRmNWM1ZmE3OTVi
MDM1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00NSw3ICs0
NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgflJ1bnRpbWVPYmplY3QoKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXRWaXJ0dWFsKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggZDA1OGVlNWViMGY2ZTUwZmY4ZDk2
ZTJjYzQwODcwNGM5YmE0Y2U4MS4uMDIwODA3NmRjYjNhZjdiMDQ4ZTAyY2JjZjE0MWM5MDgyYTU3
N2RhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMjQ3LDExICsyNDcsNiBAQCBDb25zdHJ1Y3RU
eXBlIEpTTlBPYmplY3Q6OmdldENvbnN0cnVjdERhdGEoSlNDZWxsKiBjZWxsLCBDb25zdHJ1Y3RE
YXRhJiBjb25zdHJ1YwogICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKIH0KIAotYm9vbCBK
U05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotfQotCiBib29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNOUE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PEpTTlBPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDRhZTEzYmFmNjA1YTE0ODI4
ZDhjMjM5MDViN2IwMmMzOTYxMWRmOTYuLmI1NmZmY2E2NWQ0YzM1ZTQ4ODg5YjRiY2FmYzcyNmFh
NjE5YzAyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaApAQCAtODIsNyArODIsNiBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBKU0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDYWxs
RGF0YSYpOwogICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpOwogCi0gICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdFZpcnR1YWwoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0VmlydHVhbChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJv
cGVydHlTbG90Jik7Cg==
</data>
<flag name="review"
          id="110511"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>