<?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>69593</bug_id>
          
          <creation_ts>2011-10-06 19:06:19 -0700</creation_ts>
          <short_desc>Add static version of JSCell::getOwnPropertySlot</short_desc>
          <delta_ts>2011-10-08 14:30:47 -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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>479722</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-06 19:06:19 -0700</bug_when>
    <thetext>On the path to de-virtualizing JSCell, we come to getOwnPropertySlot.  We first need to add static versions of the functions to be called by the corresponding virtual methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480244</commentid>
    <comment_count>1</comment_count>
      <attachid>110202</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 13:02:27 -0700</bug_when>
    <thetext>Created attachment 110202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480305</commentid>
    <comment_count>2</comment_count>
      <attachid>110202</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-07 14:14:18 -0700</bug_when>
    <thetext>Comment on attachment 110202
Patch

Attachment 110202 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10015141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480347</commentid>
    <comment_count>3</comment_count>
      <attachid>110226</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-07 15:27:19 -0700</bug_when>
    <thetext>Created attachment 110226
Fix qt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480383</commentid>
    <comment_count>4</comment_count>
      <attachid>110226</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-07 16:42:52 -0700</bug_when>
    <thetext>Comment on attachment 110226
Fix qt

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480622</commentid>
    <comment_count>5</comment_count>
      <attachid>110226</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 14:30:42 -0700</bug_when>
    <thetext>Comment on attachment 110226
Fix qt

Clearing flags on attachment: 110226

Committed r97015: &lt;http://trac.webkit.org/changeset/97015&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480623</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-08 14:30:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110202</attachid>
            <date>2011-10-07 13:02:27 -0700</date>
            <delta_ts>2011-10-07 15:27:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69593-20111007130227.patch</filename>
            <type>text/plain</type>
            <size>105015</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5NjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJj
NTZkMmZjYTBlNTQ2YzRlNmQwNDcyYzhiYWY3OGUxNmZlYjFiZTguLjk4MTVlZTE3OGM1ODZmOTdh
NmUwNjBjYmIwNjc1MmY2ZjkyNjQ5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEwOSBAQAorMjAxMS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blBy
b3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njk1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZXZlcnkgY2xh
c3MgdGhhdCBvdmVycmlkZXMKKyAgICAgICAgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QuICBU
aGUgdmlydHVhbCB2ZXJzaW9ucyBub3cgY2FsbCB0aGUgc3RhdGljIHZlcnNpb25zLgorCisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0
aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAg
ICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6
Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAg
ICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OkRhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KiBydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xv
dCk6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkVycm9yUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuaDoKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTQWN0aXZh
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlv
bi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJy
YXk6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6Cisg
ICAgICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Jv
dW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU0Jv
dW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQnl0ZUFycmF5LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9KU0J5dGVBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNDZWxsLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpT
Qzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pT
RnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9K
U09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU1N0YXRpY1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6CisgICAgICAg
ICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAg
ICAgKiBydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6TnVtYmVy
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoK
KyAgICAgICAgKEpTQzo6TnVtYmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9PYmpl
Y3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok9i
amVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL09i
amVjdFByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGlt
ZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0FycmF5
OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaDoKKwogMjAxMS0xMC0wNyAgRG9t
aW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0pTQ10gRGlz
YWJsZSBUaHJlYWRSZXN0cmljdGlvblZlcmlmaWVyIGZvciBKSVQgRXhlY3V0YWJsZU1lbW9yeUhh
bmRsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDY2ODRi
MjJlZmEyNGUyZWExYjFkYWQ3OWNhY2I1NThkYmQ5YWNkNzEuLjI1MTUzNGYyYjJkNTg0ZGRiMmY0
ZGVhYjFmN2M3MjdkNDdhMWQ4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtMzIzLDYgKzMyMyw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0
cmlidXRlc0VQTlNfMTJKU0dsb2JhbERhdGFFak5TXzdKU1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVO
U183SlNWYWx1ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFamJSTlNfMTVQdXRQcm9wZXJ0
eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3Rh
dGVFak5TXzdKU1ZhbHVlRWoKK19fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RF
UE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlND
OEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3Bl
cnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhl
Y1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQogX19a
TjNKU0M4SlNPYmplY3QyMWdldFByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGQ3
Yjg2NmQyNjgwMGFjODZjYzFlMzZiOTNmYTE0OGIwZDc2NTk4NDcuLjRmNmY2NDYyNzUzZjMyYjk1
YzcxNzNmZjMzOWU0NjYzYTYzNjBkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC02Miw3ICs2MiwxMiBAQCBV
U3RyaW5nIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y2xhc3NOYW1lKCkgY29uc3QKIAogYm9vbCBEZWJ1
Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJl
dHVybiBtX2FjdGl2YXRpb24tPmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PERlYnVnZ2VyQWN0aXZhdGlvbio+KGNlbGwpLT5tX2FjdGl2YXRpb24tPmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0
aXZhdGlvbjo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggOTcx
MTBiMmY4ODkzZTA5ZWY0ZTM0NTg1M2FjMmQ3YWEwOTFkMjBkMS4uYzQ0ZGYzMjA1YmZiN2YzNzA4
NWRmYTI1Mjk2NTU1ODA4Nzk0NjkyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1
dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0
eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKaW5kZXggZjUzYjliZGNiNmI4ODEy
OGE2MTNjYTVkZTUzM2M4NTZmY2RhYjQzYy4uZjA0YTY3OWYxZTMzYmM3ZGQwNzM5NTlkNzk0YzQy
NTJlNmUwYzA5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
Y3BwCkBAIC0xNDcsMTUgKzE0NywyMSBAQCB2b2lkIEFyZ3VtZW50czo6ZmlsbEFyZ0xpc3QoRXhl
Y1N0YXRlKiBleGVjLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYgYXJncykKIAogYm9vbCBBcmd1bWVu
dHM6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAoaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRl
bGV0ZWRBcmd1bWVudHMgfHwgIWQtPmRlbGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlm
IChpIDwgZC0+bnVtUGFyYW1ldGVycykgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZShkLT5y
ZWdpc3RlcnNbZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpKTsKKyAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGksIHNsb3QpOworfQorCitib29sIEFyZ3Vt
ZW50czo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1
bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgQXJndW1lbnRzKiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4oY2VsbCk7CisgICAgaWYgKGkgPCB0aGlzT2Jq
ZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRz
IHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRzW2ldKSkgeworICAgICAgICBpZiAo
aSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdC0+ZC0+cmVnaXN0ZXJzW3RoaXNPYmplY3QtPmQtPmZpcnN0UGFyYW1l
dGVySW5kZXggKyBpXS5nZXQoKSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZShkLT5leHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCkpOwor
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5kLT5leHRyYUFyZ3VtZW50c1tp
IC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChl
eGVjLCBJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6Om51bWJlcihpKSksIHNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50
aWZpZXIoZXhlYywgVVN0cmluZzo6bnVtYmVyKGkpKSwgc2xvdCk7CiB9CiAgICAgCiB2b2lkIEFy
Z3VtZW50czo6Y3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVjZXNzYXJ5KEV4ZWNTdGF0ZSogZXhl
YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggZmU5OTBi
NDQ3M2U0YTk4MDEyOGI5M2NjYmQ5NTVmOTI2MDZiZTc3Ni4uYWY0YjNjMzAxYWUwMGQ5NDBhODY0
YjQyM2U3YjIyYjk4ZTMyMDQwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmgKQEAgLTEyNSw3ICsxMjUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRl
OgogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiom
LCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwgaW50JiBh
cmdjKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0
aWVzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGM0NmRj
YjIzNjMyZGFiNGZjN2I4NjZmOWE3YzA3NzAzZTM2MWUwMjYuLjI5ZThiZTA3ZTc1MTdmMjllZjVh
ZTM4ZWM5ZTFhNzA4MGE4NTlmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTUyLDYgKzUyLDggQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgcHJpdmF0ZToKICAgICAgICAgQXJyYXlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3Ry
dWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggZDRiOTMzNGY1OGNhZDliNDY0NmUyZDZmZWMy
M2UwZTU2MDYyOTBiNi4uY2YxNjE2MDNhMzRmMTU5MzM2YmMzOTVlN2RkODI0OWExZjU3ZWNlZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNw
cApAQCAtMTI3LDcgKzEyNywxMiBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogCiBib29sIEFycmF5UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25TbG90PEpTQXJyYXk+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlQcm90b3R5cGVUYWJsZShl
eGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgQXJyYXlQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7
CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU0FycmF5PihleGVjLCBFeGVjU3Rh
dGU6OmFycmF5UHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEFycmF5UHJvdG90eXBl
Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgQXJyYXlQcm90b3R5cGU6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNDFmZjU5
NGI3YmRhNWE5OGRjMzg3MWFmMmQ4NjI3MTQ1ZWFjMGVkYy4uOWM4NjBjNmM0M2U5ZmE5MzhhOGZh
MWU3ZmNiNTYyOWQyYjkyZjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCkBAIC00MCw3ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3Bw
CmluZGV4IGJiOTMwNmQ5YzgxNGFiNWJmNGI1NmRmMjQ4YjI2NzcyNDVlNzAwOTAuLmU3NDhkZTJi
MTliNTg3YTNkYmZkN2MyOGMyNmY3NmY0YWZhNDFjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCkBAIC02NCw3ICs2NCwxMiBA
QCB2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqKQogCiBib29sIEJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8Qm9v
bGVhbk9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpib29sZWFuUHJvdG90eXBlVGFibGUoZXhlYyks
IHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xv
dCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEJvb2xlYW5Qcm90
b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7Cisg
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxCb29sZWFuT2JqZWN0PihleGVjLCBFeGVj
U3RhdGU6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8Qm9vbGVhblBy
b3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEJvb2xlYW5Q
cm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3Rv
dHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5o
CmluZGV4IDJkY2ZjMWQ1NmYyMDFlMzNmN2I2Njk5NDFmNWIyNDA0NmI0NDMyMDYuLmIwYjRmNTUw
ZWYyOTM4NjZhMDU3ZTEyNTRjMWFlMDVmZjRlMGE0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAgLTUwLDYgKzUwLDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggM2VhMTYzN2RiZDUxY2ZiMThl
ZjBjNzBkZjg1MjgzYzhmMzliMDk0Yy4uY2E2NDQyNTRjNjBlZTdhZmI4MWE4ZmNmODA1MDk3ZjMy
ZWQ0NzBhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCkBAIC04Nyw3ICs4NywxMiBAQCB2b2lkIERhdGVDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBEYXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eQog
CiBib29sIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7
Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVj
LCBFeGVjU3RhdGU6OmRhdGVDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OmRhdGVDb25z
dHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxEYXRlQ29uc3RydWN0b3IqPihjZWxsKSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCAwNmRjOTRhOGI3YjBj
MzRjZjFkMDlhZDI0ODI0YTMyNzVmOWQ0YjA2Li4yOGU0MTcwM2JmZDY3ODYzZDQ0ZmQ0ZDRjYTQ3
NDEyNTg2ZGExMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuaApAQCAtNTYsNiArNTYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
c3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cAppbmRleCA5ZmY0NGYyODY4MDM0MDBmZWYzNjI4YmJlMzVhNTllMDcwNmQyMDIwLi5hNjhmNDgz
OGJiMDYyNjVjOTdiYzA0NjQyZGYxYzk0Njc3YzhhODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtNDQ1LDkgKzQ0NSwxMyBAQCB2
b2lkIERhdGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqKQogCiBib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4
ZWMsIEV4ZWNTdGF0ZTo6ZGF0ZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAorYm9vbCBEYXRlUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNs
b3Q8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZGF0ZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2Fz
dDxEYXRlUHJvdG90eXBlKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CiAKIGJvb2wg
RGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBl
LmgKaW5kZXggNzFkOWVkYTMwOGE0YmM5NWZiOWMwNjQ3YmIxNTdkYjgwYzA3ZjY5YS4uNzIwNTI2
MmQyOWI0ODc4YmJhZTA3NDQyYTI1ZTQ0YzRmZGU3MGE2OCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtNDEsNiArNDEsOCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAgIH0KICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAg
ICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggOWVhMTI5MDY0YzA2YmZl
MjQ5MjU4YWRmODJlMWQ0ODMzMjUwZDdmYS4uNDM5ZDlhODMxNDdmOGYwMTRkNzQ2Y2ZmN2Q4MzJl
ZWZmYTRjNTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcApAQCAtNjQsNyArNjQsMTIgQEAgdm9pZCBFcnJvclByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCopCiAKIGJvb2wgRXJy
b3JQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8RXJyb3JJbnN0YW5jZT4oZXhlYywgRXhlY1N0YXRlOjpl
cnJvclByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKK30KKworYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEVy
cm9ySW5zdGFuY2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwg
c3RhdGljX2Nhc3Q8RXJyb3JQcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAppbmRleCA0MjVkNjZiY2UzZWI2YjJmYjEwNWIyOGZjMWM3NDRhZjNiYWI0
Yzc0Li42NWYzZmZmNWY2ZTBmZDM1MTY1ZDUzZTliYjNhMjUxOTVjYzExZjc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTUzLDYgKzUz
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggODIyNjlhNTU1
YWEyNWY3MmNjMTVjMjc1N2E3MDYwN2RmYzgxODdhYi4uNzljOGI1MDcwNTMwZDExNDc2ZGNmNzlj
MWE1MTFhZGU3MTEwN2MzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uY3BwCkBAIC0xNDMsMjMgKzE0MywyOSBAQCBpbmxpbmUgYm9vbCBKU0FjdGl2
YXRpb246OnN5bWJvbFRhYmxlUHV0V2l0aEF0dHJpYnV0ZXMoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLAogCiBib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworfQorCitib29sIEpTQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0FjdGl2YXRpb24qIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU0FjdGl2YXRpb24qPihjZWxsKTsKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5hcmd1bWVudHMpIHsKLSAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpcywgZ2V0QXJndW1lbnRzR2V0dGVyKCkpOworICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5nZXRBcmd1bWVudHNHZXR0ZXIoKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmIChzeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5h
bWUsIHNsb3QpKQorICAgIGlmICh0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5h
bWUsIHNsb3QpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChXcml0ZUJhcnJpZXJC
YXNlPFVua25vd24+KiBsb2NhdGlvbiA9IGdldERpcmVjdExvY2F0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+
KiBsb2NhdGlvbiA9IHRoaXNPYmplY3QtPmdldERpcmVjdExvY2F0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBzbG90LnNldFZhbHVlKGxvY2F0aW9uLT5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFdlIGRvbid0IGNh
bGwgdGhyb3VnaCB0byBKU09iamVjdCBiZWNhdXNlIHRoZXJlJ3Mgbm8gd2F5IHRvIGdpdmUgYW4g
CiAgICAgLy8gYWN0aXZhdGlvbiBvYmplY3QgZ2V0dGVyIHByb3BlcnRpZXMgb3IgYSBwcm90b3R5
cGUuCi0gICAgQVNTRVJUKCFoYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpOwotICAgIEFTU0VS
VChwcm90b3R5cGUoKS5pc051bGwoKSk7CisgICAgQVNTRVJUKCF0aGlzT2JqZWN0LT5oYXNHZXR0
ZXJTZXR0ZXJQcm9wZXJ0aWVzKCkpOworICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5wcm90b3R5cGUo
KS5pc051bGwoKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IDNjY2UyNTU4M2MyMTdkNDc5ZTk3NzJj
NjdiMzlhZmVmYzhmNzZhYmUuLjYwMjZkMjlmYjAzOGVlYmJiNzA3M2YwZGNiZmVkMDI5MWZlY2U0
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBA
IC02Miw2ICs2Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNB
Y3RpdmF0aW9uT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDlj
ZDA3OTVmMDZlYWY1MGFjZTk0MWE2YTIyMTMzZGRiMTRjMzg4MTguLjkzMWM0YjRkNWUzODg3NGMx
MDMyZTcxNjFkOWQ2MzQxZmIyYjM3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwCkBAIC0yNDcsMTUgKzI0NywyMSBAQCBKU0FycmF5Ojp+SlNBcnJheSgpCiAK
IGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWdu
ZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9
IG1fc3RvcmFnZTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGks
IHNsb3QpOworfQorCitib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEpTQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4oY2VsbCk7Cisg
ICAgQXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gdGhpc09iamVjdC0+bV9zdG9yYWdlOwogICAgIAog
ICAgIGlmIChpID49IHN0b3JhZ2UtPm1fbGVuZ3RoKSB7CiAgICAgICAgIGlmIChpID4gTUFYX0FS
UkFZX0lOREVYKQotICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpLCBzbG90KTsKKyAgICAgICAgICAgIHJldHVybiB0aGlz
T2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBp
KSwgc2xvdCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoaSA8IG1f
dmVjdG9yTGVuZ3RoKSB7CisgICAgaWYgKGkgPCB0aGlzT2JqZWN0LT5tX3ZlY3Rvckxlbmd0aCkg
ewogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc3RvcmFnZS0+bV92ZWN0b3JbaV0uZ2V0KCk7CiAg
ICAgICAgIGlmICh2YWx1ZSkgewogICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh2YWx1ZSk7CkBA
IC0yNzEsMjIgKzI3NywyOCBAQCBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBp
KSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNBcnJheSogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTQXJyYXkqPihjZWxsKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZShqc051bWJlcihs
ZW5ndGgoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmxl
bmd0aCgpKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGJvb2wgaXNBcnJh
eUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJy
YXlJbmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRleCkKLSAgICAgICAgcmV0dXJuIEpTQXJyYXk6
OmdldE93blByb3BlcnR5U2xvdChleGVjLCBpLCBzbG90KTsKKyAgICAgICAgcmV0dXJuIEpTQXJy
YXk6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBpLCBzbG90KTsKIAotICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0FycmF5OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlNTUzMmFiM2JiNTkxOWIzMWVkMDRkNTVlZmVm
NmMyM2UyZDZjMTJmLi41YTc5ZWQyOWZjOTdiMjM5MWRjNjU4ODRmZWNiOTk2ZTI3MGU1NjNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC05NSw3ICs5NSw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsgLy8gRklYTUU6IE1ha2UgcHJvdGVjdGVk
IGFuZCBhZGQgc2V0SXRlbS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5jcHAKaW5kZXggZmQzMWJjZGQ2MzY1NDY3ODAwNThmMjZlZjU1OWVi
NDQ4MjBiMmRlOS4uNzFlZDM4MGEyMzY3OTdmZDZlNmVkODRjMTA2ZWViYTNmYWU4ZjU3YiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3Bw
CkBAIC05OCw2ICs5OCwxMSBAQCBib29sIEpTQm91bmRGdW5jdGlvbjo6aGFzSW5zdGFuY2UoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlKQogCiBib29sIEpTQm91bmRGdW5j
dGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0dXJuIGdldE93
blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29s
IEpTQm91bmRGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK3sKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5h
cmd1bWVudHMpIHsKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZUFyZ3Vt
ZW50c0FjY2Vzc0Vycm9yKTsKICAgICAgICAgc2xvdC5zZXRWYWx1ZShqc051bGwoKSk7CkBAIC0x
MTAsNyArMTE1LDcgQEAgYm9vbCBKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3AKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
Y2VsbCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0JvdW5kRnVuY3Rp
b246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAppbmRleCBl
YmJjNDZjMGYyMjc3NDQ5NTZhNWExNTU5NGViYjFjNDE5ZmE5MDY5Li5jYzUxNjkzNzYxZmFjODk0
ZDA5MDNjMGIxY2UyOTVmZDFmNTkwYmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaApAQCAtNDAsNiArNDAsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEpTQm91bmRGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIHRhcmdldEZ1bmN0aW9uLCBKU1ZhbHVlIGJvdW5kVGhpcywgSlNWYWx1ZSBi
b3VuZEFyZ3MsIGludCwgY29uc3QgSWRlbnRpZmllciYpOwogCiAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNJbnN0YW5jZShF
eGVjU3RhdGUqLCBKU1ZhbHVlIHZhbHVlLCBKU1ZhbHVlIHByb3RvKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCAyNzU5N2JhMTdkODdhZjJm
NmNjMDdjMzFjODllZWM4OGZjNGI0NzA0Li5hOWJmODllNmE1NTQ5Zjk1NDk5NGQ4N2RiMTMwMDQw
OWFjYTI1NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuY3BwCkBAIC01NiwxMyArNTYsMTkgQEAgU3RydWN0dXJlKiBKU0J5dGVBcnJheTo6Y3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QKIAogYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
fQorCitib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQoreworICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SlNCeXRlQXJyYXkqPihjZWxsKTsKICAgICBib29sIG9rOwogICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLnRvVUludDMyKG9rKTsKLSAgICBpZiAob2sgJiYgY2FuQWNjZXNzSW5kZXgo
aW5kZXgpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUoZ2V0SW5kZXgoZXhlYywgaW5kZXgpKTsK
KyAgICBpZiAob2sgJiYgdGhpc09iamVjdC0+Y2FuQWNjZXNzSW5kZXgoaW5kZXgpKSB7CisgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0SW5kZXgoZXhlYywgaW5kZXgpKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCkBAIC03OCwxMSArODQsMTcgQEAgYm9vbCBKU0J5dGVBcnJheTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHIKIAogYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAg
aWYgKGNhbkFjY2Vzc0luZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZShnZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNCeXRl
QXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNCeXRl
QXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0J5dGVBcnJheSo+KGNlbGwpOworICAg
IGlmICh0aGlzT2JqZWN0LT5jYW5BY2Nlc3NJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSks
IHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CiB9
CiAKIHZvaWQgSlNCeXRlQXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggMjEzYjhm
NjI2NjIyNDk1MTVjZGM5MzQxNTE4OTcyZTRjZTA3OWRjMy4uZTc2Y2ZiYmUyYmE2MTc0NmI5ZGRm
ZDA3NDMxMTcyYjg5OWE3YzY4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0J5dGVBcnJheS5oCkBAIC04OSw3ICs4OSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgSlNDOjpDbGFzc0luZm8qID0gJnNfaW5m
byk7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBKU0M6OkpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbC5jcHAKaW5kZXggNzlhMDE0NDc0ZWQwMDE0NzUwMTliMGE5ODA4NzI1Njc4MWI3M2I2Mi4u
Yzc5NWQ2MjZkYTc1Y2MxNGE4MTdmNWFhOTVlYjY2YTA4ODI0YmUwNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC03MSwxMCArNzEsMTUgQEAgQ29uc3RydWN0
VHlwZSBKU0NlbGw6OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpCiAKIGJvb2wgSlND
ZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0dXJuIGdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKK30KKworYm9vbCBKU0Nl
bGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQorewogICAgIC8v
IFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVudGF0aW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgSlNWYWx1ZTo6
Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwgbm90IGdldE93blByb3BlcnR5
U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gY2VsbC0+dG9PYmplY3Qo
ZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAgICBzbG90LnNldEJhc2Uob2Jq
ZWN0KTsKICAgICBpZiAoIW9iamVjdC0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50aWZpZXIs
IHNsb3QpKQogICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwpAQCAtODMsMTAgKzg4LDE1IEBA
IGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQCiAKIGJvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlm
aWVyLCBzbG90KTsKK30KKworYm9vbCBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRpZmllciwgUHJvcGVydHlTbG90
JiBzbG90KQorewogICAgIC8vIFRoaXMgaXMgbm90IGEgZ2VuZXJhbCBwdXJwb3NlIGltcGxlbWVu
dGF0aW9uIG9mIGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBJdCBzaG91bGQgb25seSBiZSBj
YWxsZWQgYnkgSlNWYWx1ZTo6Z2V0LgogICAgIC8vIEl0IGNhbGxzIGdldFByb3BlcnR5U2xvdCwg
bm90IGdldE93blByb3BlcnR5U2xvdC4KLSAgICBKU09iamVjdCogb2JqZWN0ID0gdG9PYmplY3Qo
ZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICBKU09iamVjdCogb2JqZWN0
ID0gY2VsbC0+dG9PYmplY3QoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsKICAg
ICBzbG90LnNldEJhc2Uob2JqZWN0KTsKICAgICBpZiAoIW9iamVjdC0+Z2V0UHJvcGVydHlTbG90
KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQogICAgICAgICBzbG90LnNldFVuZGVmaW5lZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCBjY2MxZTk5MGU4YjhiZWY0
YzU5Yjg4MWJhNWJlYmYyOTZmYzQ4YmVmLi5kN2VmMjVmM2NmMzZkNTRhMWMxYjRmYjg5Mjk5MzYx
ZThmMDM3ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAtMTMx
LDcgKzEzMSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIEJh
c2UgaW1wbGVtZW50YXRpb247IGZvciBub24tb2JqZWN0IGNsYXNzZXMgaW1wbGVtZW50cyBnZXRQ
cm9wZXJ0eVNsb3QuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIAogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJl
PiBtX3N0cnVjdHVyZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcAppbmRleCBmYmVkZGVkODFjMjkyOGFiNWUwZjI1NGZkMTNlMDE3NTQ3MDM5
MTNjLi42YWJmNmNlNmIxYmI5M2RkMzUwY2IzNzNjNWYyMWQ1ZTZlM2RkOWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtMjA0LDUwICsyMDQs
NTYgQEAgSlNWYWx1ZSBKU0Z1bmN0aW9uOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1
ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYKIAogYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAoaXNIb3N0RnVuY3Rpb24oKSkKLSAg
ICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU0Z1bmN0aW9uKj4oY2VsbCk7CisgICAgaWYgKHRoaXNPYmplY3QtPmlz
SG9zdEZ1bmN0aW9uKCkpCisgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIAogICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewotICAgICAgICBXcml0
ZUJhcnJpZXJCYXNlPFVua25vd24+KiBsb2NhdGlvbiA9IGdldERpcmVjdExvY2F0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgV3JpdGVCYXJyaWVyQmFzZTxV
bmtub3duPiogbG9jYXRpb24gPSB0aGlzT2JqZWN0LT5nZXREaXJlY3RMb2NhdGlvbihleGVjLT5n
bG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CiAKICAgICAgICAgaWYgKCFsb2NhdGlvbikgewot
ICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCgpLT5lbXB0eU9iamVjdFN0cnVjdHVyZSgpKTsKLSAgICAgICAgICAg
IHByb3RvdHlwZS0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlO
YW1lcygpLmNvbnN0cnVjdG9yLCB0aGlzLCBEb250RW51bSk7CisgICAgICAgICAgICBKU09iamVj
dCogcHJvdG90eXBlID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYywgdGhpc09iamVjdC0+Z2xv
YmFsT2JqZWN0KCktPmVtcHR5T2JqZWN0U3RydWN0dXJlKCkpOworICAgICAgICAgICAgcHJvdG90
eXBlLT5wdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
Y29uc3RydWN0b3IsIHRoaXNPYmplY3QsIERvbnRFbnVtKTsKICAgICAgICAgICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90OwotICAgICAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgcHJvdG90eXBlLCBEb250RGVsZXRlIHwg
RG9udEVudW0sIGZhbHNlLCBzbG90KTsKLSAgICAgICAgICAgIGxvY2F0aW9uID0gZ2V0RGlyZWN0
TG9jYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90
eXBlKTsKKyAgICAgICAgICAgIHRoaXNPYmplY3QtPnB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRh
KCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHByb3RvdHlwZSwgRG9udERlbGV0
ZSB8IERvbnRFbnVtLCBmYWxzZSwgc2xvdCk7CisgICAgICAgICAgICBsb2NhdGlvbiA9IHRoaXNP
YmplY3QtPmdldERpcmVjdExvY2F0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSk7CiAgICAgICAgIH0KIAotICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXMsIGxvY2F0aW9uLT5nZXQoKSwgb2Zmc2V0Rm9yTG9jYXRpb24obG9jYXRpb24pKTsKKyAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBsb2NhdGlvbi0+Z2V0KCksIHRoaXNPYmpl
Y3QtPm9mZnNldEZvckxvY2F0aW9uKGxvY2F0aW9uKSk7CiAgICAgfQogCiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzKSB7Ci0gICAgICAgIGlm
IChqc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKKyAgICAgICAgaWYgKHRoaXNPYmpl
Y3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZXhlYywgU3RyaWN0TW9kZUFyZ3VtZW50c0FjY2Vzc0Vycm9yKTsKICAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUoanNOdWxsKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgIAotICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBhcmd1
bWVudHNHZXR0ZXIpOworICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0
LCBhcmd1bWVudHNHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAg
ICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpcywgbGVuZ3RoR2V0dGVyKTsKKyAgICAgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgbGVuZ3RoR2V0dGVyKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkuY2FsbGVyKSB7Ci0gICAgICAgIGlmIChqc0V4ZWN1dGFibGUoKS0+aXNT
dHJpY3RNb2RlKCkpIHsKKyAgICAgICAgaWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5p
c1N0cmljdE1vZGUoKSkgewogICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0
TW9kZUNhbGxlckFjY2Vzc0Vycm9yKTsKICAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUoanNOdWxs
KCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgc2xvdC5z
ZXRDYWNoZWFibGVDdXN0b20odGhpcywgY2FsbGVyR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRD
YWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgY2FsbGVyR2V0dGVyKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0Z1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA5MWMzY2Nm
ZDk1MjRjMmM5Y2QzNTA4NTNiNjA2NTJiYjJlMTBmYWFiLi5jZDJlYjM0NTQ1YjQ5MTEzZmU4YjI3
MTg5YmZmYzQ2N2I2MzMxODg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCkBAIC0xMzIsNiArMTMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVD
aGFpbk5vZGUqKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlID0gRXhjbHVkZURv
bnRFbnVtUHJvcGVydGllcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCBjMTY5MWMzYzQ0Y2E4NjBjYjE4YWY2MTgwZTk3Y2I0
ZDQyOWU4N2Y0Li5iYmJmYWJjZTZmYWE0NWUxN2RhMjk0YTBjZDE4YjdiZTAwYTgwMmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBA
IC00MTYsOSArNDE2LDE1IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmFkZFN0YXRpY0dsb2JhbHMo
R2xvYmFsUHJvcGVydHlJbmZvKiBnbG9iYWxzLCBpbnQgY291bnQpCiAKIGJvb2wgSlNHbG9iYWxP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIGlmIChnZXRTdGF0
aWNGdW5jdGlvblNsb3Q8SlNWYXJpYWJsZU9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpnbG9iYWxP
YmplY3RUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICByZXR1cm4g
Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisK
K2Jvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCit7CisgICAgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOworICAgIGlmIChnZXRTdGF0aWNGdW5jdGlvblNsb3Q8
SlNWYXJpYWJsZU9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpnbG9iYWxPYmplY3RUYWJsZShleGVj
KSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIHN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0
dXJuIHRoaXNPYmplY3QtPnN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
IGJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKaW5kZXggMTUxOWMzNjcxMzc1ODhkMTVkZGNiZTAyY2I3NTg4ZjM5NzE3ZGVkNC4u
YmI4NTM3NGUzN2I1NWMxNWE5ZWVmNWJlOWJiODlmMjExMTcxZWVkYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xODAsNiArMTgwLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0
eUZvcldyaXRlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwCmluZGV4IDBkNTg5YmYyZmEyM2Y3N2JlNDg1MGY3ZThkOGZhMDY4YzdhOGUwZmIu
LmFkZTE5Nzk5YmY1NTMwNmQyOTU1MmIxNjhmYzE4NzRkN2I5Mjg2YzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCkBAIC01NywxNCArNTcs
MjQgQEAgVVN0cmluZyBKU05vdEFuT2JqZWN0Ojp0b1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMpIGNv
bnN0CiAgICAgcmV0dXJuICIiOwogfQogCitib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpOworfQorCiAvLyBKU09iamVjdCBtZXRob2RzCi1ib29s
IEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKQorYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90JikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMsIGV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYp
Citib29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30K
KworYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0
YXRlKiBleGVjLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90JikKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGV4ZWMsIGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggYWRhZmViZTQ5
YmEwMGNlYzk3YWQyNjlkOWRjNjYzNTU3NmJmM2EyYS4uZGM3NGU0YWQzNGU4YjY2NzgxMWMzMjYw
ZjJiNTAzYTczNjFhYjU1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNOb3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Tm90QW5PYmplY3QuaApAQCAtNzEsNyArNzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICAvLyBKU09iamVjdCBtZXRob2RzCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggZjRlOGI4
ZTEwYzk3MzU5NjYwMzc1MTcwNGZmMmNmMzhhMWY5YzJjNC4uNmVmMjE1NjAwYjA3Nzk5ZjVjMTQ5
MzI1OGU5YzlmNzA1ZDU2ZGU5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAKQEAgLTYwMCw3ICs2MDAsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIEpTT05P
YmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCBF
eGUKIAogYm9vbCBKU09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3Rh
dGU6Ompzb25UYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9
CisKK2Jvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0Pihl
eGVjLCBFeGVjU3RhdGU6Ompzb25UYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8SlNPTk9iamVjdCo+
KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTT05PYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IGJmMWJhOGMwMjg2ZjFjYjVkMmUx
MmJkOWNhNzc5ZWM2ODI2YzUyZmMuLjI4ZDI4NjJmOGQ0YTVjMDhlODM2ZDM1OGIxNjdjY2VmMzY2
Y2UyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAg
LTU3LDYgKzU3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNP
Tk9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDRiYTZmOGE2ZWEwZjBmZTBh
NDcwNDdmYmJlZDQzYTkwY2QyNDg2ODcuLjY0Mzg0MWUwOTBkMGFlYTMwMDk2ZTg5YWE1MTYzOWFm
YWE2OWU5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
QEAgLTk1LDcgKzk1LDEyIEBAIFVTdHJpbmcgSlNPYmplY3Q6OmNsYXNzTmFtZSgpIGNvbnN0CiAK
IGJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUp
LCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2Vs
bCktPmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3Bl
cnR5TmFtZSksIHNsb3QpOwogfQogCiBzdGF0aWMgdm9pZCB0aHJvd1NldHRlckVycm9yKEV4ZWNT
dGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4
IDMwOTYxZDZhZmI2MjIxMjQ0M2UyNGYxZDIwNDY1ZGM2NWFjYTliN2YuLjEzM2ZjNDYzMzgyZjc0
NWExMWE5ZGM3NTIyOTY0NWJhMmEwM2FiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaApAQCAtMTAyLDcgKzEwMiw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBib29sIGdldFByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKQEAgLTUwOCwxMiArNTEwLDE3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBKU09iamVjdDo6aW5saW5lR2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitBTFdBWVNfSU5MSU5FIGJvb2wgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwogLy8g
SXQgbWF5IHNlZW0gY3JhenkgdG8gaW5saW5lIGEgZnVuY3Rpb24gdGhpcyBsYXJnZSwgZXNwZWNp
YWxseSBhIHZpcnR1YWwgZnVuY3Rpb24sCiAvLyBidXQgaXQgbWFrZXMgYSBiaWcgZGlmZmVyZW5j
ZSB0byBwcm9wZXJ0eSBsb29rdXAgdGhhdCBkZXJpdmVkIGNsYXNzZXMgY2FuIGlubGluZSB0aGVp
cgogLy8gYmFzZSBjbGFzcyBjYWxsIHRvIHRoaXMuCi1BTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorQUxXQVlTX0lOTElORSBib29sIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIHJldHVybiBpbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPihjZWxsKS0+aW5saW5lR2V0
T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIEFMV0FZU19J
TkxJTkUgYm9vbCBKU0NlbGw6OmZhc3RHZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5jcHAKaW5kZXggNTYxNWMxMTY3ODNlNjk4ODc0N2Y3N2YyMTFkODAyMmY2YTFlOTAxNS4uY2Iw
ZjU2ZGY3YjYxYThiZDIzNmJlODhhZDI2ZjBkNzM1NmExZjAxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKQEAgLTg1
LDkgKzg1LDE0IEBAIGJvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6aXNEeW5hbWljU2NvcGUoYm9v
bCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTU3RhdGljU2NvcGVPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNTdGF0aWNTY29wZU9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIHN5bWJvbFRhYmxl
R2V0KHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTU3RhdGljU2NvcGVP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKU1N0YXRpY1Njb3BlT2JqZWN0Kj4oY2VsbCktPnN5bWJvbFRhYmxl
R2V0KHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCAwZjkzY2U3Zjg0YWU4
ODAzNmRkN2E5ODI0MmEzYjhhZWRlZmQ0ZWNjLi45YTQ5NmIwODA3NTQ1MjIxMjM2MDVjMWRkZjVh
YzFiZDk4ZTk3ZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00NSw2ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0N7CiAg
ICAgICAgIGJvb2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBj
b25zdDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlzT2JqZWN0KEV4ZWNTdGF0ZSop
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpT
VmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0cmluZy5jcHAKaW5kZXggM2Y4MjkzZDE2NTk5YzJiOGJhYjY5NWJmOWE2MzFhMzYw
ZTVjYThkNS4uYzczZjRhMmVlMmM4NTc1ZmIwZDA0ODliOGQ2MzhlMDBhYjEzYjViMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcApAQCAtMzE1LDE1ICszMTUs
MjEgQEAgSlNPYmplY3QqIEpTU3RyaW5nOjp0b1RoaXNPYmplY3QoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAogCiBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
KyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK2Jvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNTdHJpbmcqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2Fz
dDxKU1N0cmluZyo+KGNlbGwpOwogICAgIC8vIFRoZSBzZW1hbnRpY3MgaGVyZSBhcmUgcmVhbGx5
IGdldFByb3BlcnR5U2xvdCwgbm90IGdldE93blByb3BlcnR5U2xvdC4KICAgICAvLyBUaGlzIGZ1
bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBKU1ZhbHVlOjpnZXQuCi0gICAgaWYgKGdl
dFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIGlmICh0
aGlzT2JqZWN0LT5nZXRTdHJpbmdQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKSB7CiAgICAgICAgIHNsb3Quc2V0VmFsdWUo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdQcm90b3R5cGUoKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICBzbG90LnNldEJhc2UodGhpcyk7CisgICAgc2xvdC5z
ZXRCYXNlKHRoaXNPYmplY3QpOwogICAgIEpTT2JqZWN0KiBvYmplY3Q7CiAgICAgZm9yIChKU1Zh
bHVlIHByb3RvdHlwZSA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90
eXBlKCk7ICFwcm90b3R5cGUuaXNOdWxsKCk7IHByb3RvdHlwZSA9IG9iamVjdC0+cHJvdG90eXBl
KCkpIHsKICAgICAgICAgb2JqZWN0ID0gYXNPYmplY3QocHJvdG90eXBlKTsKQEAgLTM2MywxMSAr
MzY5LDE3IEBAIGJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlCiAKIGJvb2wgSlNTdHJpbmc6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU1N0cmluZyogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oY2VsbCk7CiAgICAgLy8gVGhlIHNlbWFudGljcyBoZXJl
IGFyZSByZWFsbHkgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90LgogICAg
IC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IEpTVmFsdWU6OmdldC4K
LSAgICBpZiAoZ2V0U3RyaW5nUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CisgICAgaWYgKHRoaXNPYmplY3QtPmdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5
TmFtZSksIHNsb3QpOworICAgIHJldHVybiBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xv
dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmgKaW5kZXggMWFjODRmNDkzNGMwNzVhMzJjZWJiYzQzNGI5MTdhNjc1MzFlMGRj
Zi4uOWFlM2VhMGU2NjFkM2U0MjEwMWI3ZWY1NjUyM2UzNDhlMDdhNWU5OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC01MDYsNyArNTA2LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgLy8gQWN0dWFsbHkgZ2V0UHJvcGVydHlTbG90LCBub3QgZ2V0
T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxsKS4KICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfbWF4
SW50ZXJuYWxSb3BlTGVuZ3RoID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5jcHAKaW5kZXggNGViMGY3OGMzODIwNzZjZmNjMThkNTUzNzE2NjMyYWY1NmIw
MTliYy4uNzlmZWVlN2UxOWVkZTJmZjEwM2MwNjAzZmQ0YTk3ZWZhMDBlYjZhMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwNiw3ICsxMDYs
MTIgQEAgdm9pZCBNYXRoT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIGJvb2wgTWF0aE9iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xv
dDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjptYXRoVGFibGUoZXhlYyksIHRoaXMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIE1hdGhPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjptYXRoVGFibGUoZXhlYyks
IHN0YXRpY19jYXN0PE1hdGhPYmplY3QqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAogYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApp
bmRleCA3YzQ3MDcyZjQ1OTAwMWUzMGNlNmY5ZWExNzk1OWQ1MGFmNTRjOTQ1Li4yZTJkNzJkZWJm
NDgwZDdjZmUyNzQwNGQ3NjM5YjQ5Y2U1ZDQ4NDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZmNhMDIyYjE0ZjkwNzVjOWUyMzIyNDNh
MTM0ODQwNjMwNzQyYzA5OC4uNjZhNDNmZDY1NWMzNjExZGM2MjU1MmE0NDdiNWVjNTI3YzNhMjhi
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmNwcApAQCAtNzMsNyArNzMsMTIgQEAgdm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclAKIAog
Ym9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxOdW1iZXJDb25zdHJ1Y3RvciwgSW50ZXJu
YWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJDb25zdHJ1Y3RvclRhYmxlKGV4ZWMp
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBOdW1iZXJDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PE51bWJlckNvbnN0cnVjdG9yLCBJbnRlcm5h
bEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6Om51bWJlckNvbnN0cnVjdG9yVGFibGUoZXhlYyks
IHN0YXRpY19jYXN0PE51bWJlckNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIGJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggOGFlYTY5MDdhMzI2ZWJhMDUzNWVmMzFh
YTI0ZGIwYTA2ZTdlY2RlMi4uNTBmZWYzOTFlZjJjMzI4ZWQ4NjZhZGRlY2EyM2UwYzFjOWYxNzA5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
ICAgICBKU1ZhbHVlIGdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5jcHAKaW5kZXggYzc5NDJlZmM4OWU4NTU3M2MxNTNkZTFhZTVmOTI5MjY0YjliYTQ4MC4uZjZm
MDE2ZTRlM2U1N2YyMjBlNzhmMjVlY2FlODEyZjQ3ZDJkYTBjOSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC04NSw3ICs4NSwx
MiBAQCB2b2lkIE51bWJlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCopCiAKIGJvb2wgTnVtYmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PE51
bWJlck9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZShleGVjKSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgTnVtYmVyUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAg
IHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8TnVtYmVyT2JqZWN0PihleGVjLCBFeGVjU3Rh
dGU6Om51bWJlclByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxOdW1iZXJQcm90b3R5
cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBOdW1iZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAppbmRleCAx
MjE4YTY2ODQyZjU1MjliMzNiZWY5YWUwYzMwYWUwNjRkMTVjYmRhLi4xYTU2ODZhZTU5MGE1YzA0
MzBhMjM1YTk1MDViMjllMmQzYmNjYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwcml2YXRlOgogICAgICAgICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3Ry
dWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMWEzOWMxODlkYzdiYzI3NjU1ZTc5ODk4NDM2
MzE0Nzk0MTM0YTUzZS4uZDJhYWRmMTBhYWM2NzI1ZTY2YmVlMDY5NjcxMDUxNjQ1MGQ4ZjliMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVj
dG9yLmNwcApAQCAtOTEsNyArOTEsMTIgQEAgdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFAKIAogYm9v
bCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRl
OjpvYmplY3RDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKK30KKworYm9vbCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rp
b25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVjdENvbnN0cnVjdG9yVGFibGUo
ZXhlYyksIHN0YXRpY19jYXN0PE9iamVjdENvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggZGRmM2NhZjRjNDExYzJiYTgw
YTg2MmRmZTA3MWEyZDdkYTMwMDk1Ny4uZjFiNmZjZDZjNmIxN2ZlZjJhMjlhNTNhNWY5YzQ5Y2Fh
YjU0NzgzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCkBAIC0zOSw2ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9
CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggZmVkYTI3
NTQwMDQ1OWMxZDM1NTg1NGVhZmM2MDIxMzk5ODMwNTEwYy4uOWI2OTljNmZmMWNjZWY5NTI3Nzdi
MjYwMWI5MGYyMmRkMTAwMGQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC04OCwxNCArODgsMjUgQEAgdm9pZCBPYmplY3RQ
cm90b3R5cGU6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWwKIAogYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIGlmIChtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcykKKyAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9
CisKK2Jvb2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQoreworICAgIE9iamVjdFByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PE9i
amVjdFByb3RvdHlwZSo+KGNlbGwpOworICAgIGlmICh0aGlzT2JqZWN0LT5tX2hhc05vUHJvcGVy
dGllc1dpdGhVSW50MzJOYW1lcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBK
U05vbkZpbmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gSlNOb25GaW5hbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgT2JqZWN0UHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJv
b2wgT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK2Jvb2wg
T2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZz
bG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNOb25GaW5hbE9iamVj
dD4oZXhlYywgRXhlY1N0YXRlOjpvYmplY3RQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTTm9u
RmluYWxPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0UHJvdG90eXBlVGFibGUoZXhlYyks
IHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCiBib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdFByb3RvdHlwZS5oCmluZGV4IDRjMTJkZmI0Njc5MmRjMWI4ZTFlZTEzMjBlOGQ0MjRi
YTZiOWZjMWUuLjU2YzIwNTQxNzFkMWVlNzdhYjQxNGMyOGRlMzNiZThlMzY5MTc0MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC01
Miw3ICs1Miw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKICAgICAgICAgYm9vbCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJO
YW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmNwcAppbmRleCBkMGVhOWExMGRkZTIyY2VkZGQ3YzgyYTFjZmJlNjBkNzVkYzY3MzA4
Li44NGQ5MmZkNWM1YzllMmZjMGY3ZjcwZjk5NWE4YWFjYzU4MGFkNWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0y
MDQsNyArMjA0LDEyIEBAIEpTVmFsdWUgUmVnRXhwQ29uc3RydWN0b3I6OmdldFJpZ2h0Q29udGV4
dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgCiBib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVTbG90PFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3Rh
dGU6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworfQorCitib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1
ZVNsb3Q8UmVnRXhwQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0
ZTo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8UmVnRXhwQ29uc3Ry
dWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBSZWdFeHBDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
aAppbmRleCBkZWU0ODQ0NTFkNThmOWYzNDMxZGVmYjllODVlZDU1MjFkY2QzMmIyLi4xZWQ3OGM5
MTNmOWI4NWY1ODEzMmRhN2Y1MzI1NTY0OGQxMTVhYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTczLDYgKzczLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
TWF0Y2hlc0FycmF5LmgKaW5kZXggYWQ5NGUwN2RhN2MxM2Y5YjFiM2M0ZTcwYjY2ZTU2NmFmYTdh
OWY4Yy4uYTg3ZGViNTBhYmJlNDlmZmZjYzRkZWRmNTBmNDQzYWNhZDVhNTlmNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAg
LTQ1LDE2ICs0NSwyOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcml2YXRlOgogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIGlmIChzdWJjbGFzc0RhdGEoKSkKLSAgICAgICAgICAgICAgICBmaWxsQXJyYXlJ
bnN0YW5jZShleGVjKTsKLSAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAg
fQorCisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZ0V4cE1hdGNoZXNBcnJheSog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJlZ0V4cE1hdGNoZXNBcnJheSo+KGNlbGwpOworICAg
ICAgICAgICAgaWYgKHRoaXNPYmplY3QtPnN1YmNsYXNzRGF0YSgpKQorICAgICAgICAgICAgICAg
IHRoaXNPYmplY3QtPmZpbGxBcnJheUluc3RhbmNlKGV4ZWMpOworICAgICAgICAgICAgcmV0dXJu
IEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc3ViY2xhc3NEYXRhKCkpCi0g
ICAgICAgICAgICAgICAgZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7Ci0gICAgICAgICAgICByZXR1
cm4gSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CisgICAgICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB7CisgICAgICAgICAgICBSZWdF
eHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBNYXRjaGVzQXJy
YXkqPihjZWxsKTsKKyAgICAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5zdWJjbGFzc0RhdGEoKSkK
KyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5maWxsQXJyYXlJbnN0YW5jZShleGVjKTsKKyAg
ICAgICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDJi
ODQzMjRmZmU4OTE3ZDUzMWM4Yzc3MzNmYTUwMTRjZjgxYjUwMzQuLmE2MTk3MzY4OWFlMzIyYjA2
MjliYjdmOTVkZGMyZGFjMjgzNjQwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtOTMsNyArOTMsMTIgQEAgdm9pZCBSZWdFeHBPYmpl
Y3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIAog
Ym9vbCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8UmVnRXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywg
RXhlY1N0YXRlOjpyZWdFeHBUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsK
KyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7Cit9CisKK2Jvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8UmVn
RXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBUYWJsZShleGVjKSwg
c3RhdGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmgKaW5kZXggZThhZjZkNmJjMWYzNzRiOTkyMWM5MGMzYjYwNGQyZWY1NWI4YzUzOS4uYzkz
MDJhNTIyMzRhOTcxYjViOTk3ZWI5ZGMxZjJmODVmMzJkNGI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTY2LDYgKzY2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgZXhlYyhFeGVjU3RhdGUqKTsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNw
cAppbmRleCBiMWM0NDdhZTgxODVkYTQ5Njg5ZjZjZjhmNTA4MmJkYTllODRiNzkwLi4zZTNhMTY5
ZmE5YjA2MmNkYzJlNDI5N2Y1Njk2MDlhZDIxZjNhYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTY5LDcgKzY5LDEyIEBA
IFJlZ0V4cFByb3RvdHlwZTo6UmVnRXhwUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0CiAKIGJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25T
bG90PFJlZ0V4cE9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBQcm90b3R5cGVUYWJsZShl
eGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgUmVnRXhw
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQor
eworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8UmVnRXhwT2JqZWN0PihleGVjLCBF
eGVjU3RhdGU6OnJlZ0V4cFByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBQ
cm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApp
bmRleCBjYTJhMjZkODE1MzNmMzRjZGI3ODc3YmYzNWNhN2RkNzk1OWVmMDA4Li5jYzg0MDNhNzVi
NGJmM2I5MmRlNWE4NGFiMjNjYTgyYTE2MjQyMTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzEzN2NjYjFkNzNh
MDc1ZGU2ODYzYWRiYmRhNDMyNTYwNGUzNzM1ZS4uMzdiOTAyYTUzN2E0MDljYmQ1YTNlZGQ4ZGY1
NTdkZGI3MWI3NDhlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtNjEsNyArNjEsMTIgQEAgdm9pZCBTdHJpbmdDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBTdHJpbmdQcm90b3R5cGUq
IHN0cmluZ1AKIAogYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QgJnNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1
bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OnN0cmluZ0NvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRo
aXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIFN0cmluZ0NvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQoreworICAg
IHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhl
Y1N0YXRlOjpzdHJpbmdDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdHJpbmdD
b25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIFN0cmlu
Z0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1
Y3Rvci5oCmluZGV4IDcwMGRlYWI1ZjdlYzg4NTdiNGYzNTYyYjEyNDNkZDEwYTllMjMxMzUuLjRi
MTY5NjhiNDIwOGIwYjUxNDAwMmU1ZTI3MTJiMWJjYTQzMTRmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApAQCAtNTYsNiArNTYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIENhbGxUeXBlIGdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Cisg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IGE2NDk5OWVhYzdhZDZmMGUzYTExMTVj
Nzg0ZjQwYmMxYWY1MGRmNTYuLjFiOTlhMDUyNzcyMzA4ZGJlOWViMTI0ZmRmM2U3YzZkZmRjM2Ix
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cApAQCAtNDMsMTYgKzQzLDI4IEBAIHZvaWQgU3RyaW5nT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTU3RyaW5nKiBzdHJpbmcpCiAKIGJvb2wgU3RyaW5n
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAoaW50ZXJu
YWxWYWx1ZSgpLT5nZXRTdHJpbmdQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90
KSkKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7Cit9CisKK2Jvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PFN0cmluZ09iamVjdCo+KGNlbGwpOworICAgIGlmICh0aGlzT2JqZWN0LT5p
bnRlcm5hbFZhbHVlKCktPmdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAgICAgCiBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7Ci0gICAgaWYgKGludGVybmFsVmFsdWUoKS0+Z2V0U3RyaW5nUHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIFN0cmluZ09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBTdHJpbmdPYmplY3QqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihjZWxsKTsKKyAgICBpZiAodGhp
c09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLT5nZXRTdHJpbmdQcm9wZXJ0eVNsb3QoZXhlYywgcHJv
cGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7ICAgIAotICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywg
cHJvcGVydHlOYW1lKSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5h
bWUpLCBzbG90KTsKIH0KIAogYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuaAppbmRleCBmZjkxZGIzMjRmOGMwYTg5YzI3YjA4MTIxZTgwZDE5
Mjg4OTMyMzk0Li5iODY3ODA3NmJlNjJhYzUxODAxMjhmNTM3M2FhMzZmYjRkODgxMTg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNDcsNyAr
NDcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cmluZ09iamVjdCogY3Jl
YXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJpbmcqKTsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDUyMWQzMGE4M2UzM2MyNzQ2ZjM2NmM1
ODU4OTBlMDA0NDJkODZkNWUuLjg4ZmIyZTkyMWFlN2RmYTNjMDNhYzgwNmUzMzI5N2UzNGJkMmVm
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcApAQCAtMTQ3LDcgKzE0NywxMiBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCosIEpTU3RyaW5nKgogCiBi
b29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxTdHJpbmdPYmplY3Q+KGV4ZWMsIEV4ZWNT
dGF0ZTo6c3RyaW5nVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworfQorCitib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PFN0
cmluZ09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpzdHJpbmdUYWJsZShleGVjKSwgc3RhdGljX2Nh
c3Q8U3RyaW5nUHJvdG90eXBlKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJv
b2wgU3RyaW5nUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmgKaW5kZXggMTIxNDMzYzU2M2FmOWRlNTQxYTY1YzA3YTY3YzlhMGIxMzgxMmQ1Mi4u
Yzg5YTg5YmE5NTJkOTZmODVmYjkxYTcwYTQ5MmY4ZDdmMTA4ZGEyMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQzLDYgKzQzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IGMyZTQxNzk5NmNiYWViOTNmODliNDBh
ZmU1YTIwMzE5NzI0MTBmYjguLjkzMzBhZjFkYTExNTM4ZTJiZjhmMDg4MjVlMWVhZjVlMWQ0ODhh
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTEwLTA3
ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN0YXRpYyB2ZXJzaW9uIG9mIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHN0YXRpYyB2ZXJzaW9u
IG9mIGdldE93blByb3BlcnR5U2xvdCB0byBldmVyeSBjbGFzcyB0aGF0IG92ZXJyaWRlcworICAg
ICAgICBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdC4gIFRoZSB2aXJ0dWFsIHZlcnNpb25zIG5v
dyBjYWxsIHRoZSBzdGF0aWMgdmVyc2lvbnMuCisKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNw
cDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
ICogVXNlck9iamVjdEltcC5oOgorCiAyMDExLTEwLTA2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgV2hlbiBidWlsZGluZyB3aXRoIGNsYW5nLCBlbmFi
bGUgLVdnbG9iYWwtY29uc3RydWN0b3JzIGFuZCAtV2V4aXQtdGltZS1kZXN0cnVjdG9ycwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDYzMjU5OTRmMWUxY2Y5YzIw
OTBmZDgyZjZhMDIzYzk1YjQwMTJkMmEuLjk0ZWIxOGUwMTc3MGM5NDMwNzI3NmEyYjdkMDhkNGQ4
NTllYTQzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTEz
MCwyNSArMTMwLDMxIEBAIEpTVmFsdWUgVXNlck9iamVjdEltcDo6dXNlck9iamVjdEdldHRlcihF
eGVjU3RhdGUqLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiAKIGJvb2wgVXNlck9iamVj
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgaWYgKCFmSlNVc2Vy
T2JqZWN0KQorICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIFVzZXJPYmplY3RJbXAqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxVc2VyT2JqZWN0SW1wKj4oY2VsbCk7CisgICAgaWYgKCF0aGlz
T2JqZWN0LT5mSlNVc2VyT2JqZWN0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDRlN0
cmluZ1JlZiBjZlByb3BOYW1lID0gSWRlbnRpZmllclRvQ0ZTdHJpbmcocHJvcGVydHlOYW1lKTsK
LSAgICBKU1VzZXJPYmplY3QgKmpzUmVzdWx0ID0gZkpTVXNlck9iamVjdC0+Q29weVByb3BlcnR5
KGNmUHJvcE5hbWUpOworICAgIEpTVXNlck9iamVjdCoganNSZXN1bHQgPSB0aGlzT2JqZWN0LT5m
SlNVc2VyT2JqZWN0LT5Db3B5UHJvcGVydHkoY2ZQcm9wTmFtZSk7CiAgICAgUmVsZWFzZUNGVHlw
ZShjZlByb3BOYW1lKTsKICAgICBpZiAoanNSZXN1bHQpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpcywgdXNlck9iamVjdEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNP
YmplY3QsIHVzZXJPYmplY3RHZXR0ZXIpOwogICAgICAgICBqc1Jlc3VsdC0+UmVsZWFzZSgpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgewotICAgICAgICBKU1ZhbHVlIGtqc1Zh
bHVlID0gdG9QcmltaXRpdmUoZXhlYyk7CisgICAgICAgIEpTVmFsdWUga2pzVmFsdWUgPSB0aGlz
T2JqZWN0LT50b1ByaW1pdGl2ZShleGVjKTsKICAgICAgICAgaWYgKCFranNWYWx1ZS5pc1VuZGVm
aW5lZE9yTnVsbCgpKSB7CiAgICAgICAgICAgICBKU09iamVjdCoga2pzT2JqZWN0ID0ga2pzVmFs
dWUudG9PYmplY3QoZXhlYyk7CiAgICAgICAgICAgICBpZiAoa2pzT2JqZWN0LT5nZXRQcm9wZXJ0
eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKIHZvaWQgVXNlck9iamVjdEltcDo6cHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRl
bnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggMmQ1NmQ0YTA5ZDc2NmQ3NDdl
Yzc1NTM1OWQyMTA1NTUwMWZhMTI4ZS4uMzg5Nzc3OWE3MzQ2N2VhNWU5MjM3ZDkzZDcwYzlhN2U2
ZWQzM2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSlNWYWx1ZSBjYWxsQXNGdW5jdGlvbihFeGVj
U3RhdGUgKmV4ZWMpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKIAogICAgIEpTVmFsdWUgdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVy
cmVkUHJpbWl0aXZlVHlwZSBwcmVmZXJyZWRUeXBlID0gTm9QcmVmZXJlbmNlKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlNjIwMjc0MjgyZWFhYmIxMTI2MDZmYTRiMGYyYzliYzRhODBkMDhjLi42ZjJj
NDFiYjA5MjFiNDQxNGNiYjU5NWM3NDY0NWEyZWM2Y2NiMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTEtMTAtMDcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3RhdGljIHZlcnNpb24gb2YgSlNDZWxsOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY5NTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLgorCisgICAgICAgIEFkZGVkIHN0YXRpYyB2ZXJzaW9uIG9mIGdldE93blBy
b3BlcnR5U2xvdCB0byBldmVyeSBjbGFzcyB0aGF0IG92ZXJyaWRlcworICAgICAgICBKU0NlbGw6
OmdldE93blByb3BlcnR5U2xvdC4gIFRoZSB2aXJ0dWFsIHZlcnNpb25zIG5vdyBjYWxsIHRoZSBz
dGF0aWMgdmVyc2lvbnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5
U2xvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAg
ICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVj
dEltcDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGlt
ZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRP
d25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRf
cnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAg
KEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJyaWRn
ZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAx
MS0xMC0wNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1h
a2UgSWNvbkxvYWRlciBhIENhY2hlZFJlc291cmNlQ2xpZW50IGluc3RlYWQgb2YgYSBTdWJyZXNv
dXJjZUxvYWRlckNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKaW5kZXggZmJiNDZmZTgyYzZkNmM5MmIyNDUzMTQxOTc4Zjc4NTg1MGRi
OWUwZi4uNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2IxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTEwMiw3
ICsxMDIsMTIgQEAgVVN0cmluZyBKU0RPTVdpbmRvd1NoZWxsOjpjbGFzc05hbWUoKSBjb25zdAog
CiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQog
ewotICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKS0+bV93aW5kb3ctPmdldE93blByb3BlcnR5
U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93U2hl
bGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDQ2NDUz
ODE5ZmFkZDRhODFlNmZlNGU0OGQ0YjNmNGQwMWE5ODI0MDEuLmI1ZGQzYTZhMTZjMmNkOGE2M2Y5
OGEzZjkyNzk4MzUyYmRmMGQ2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgxLDYgKzgxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiwgSlNDOjpTbG90
VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6VVN0cmluZyBjbGFzc05hbWUoKSBjb25z
dDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwq
LCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
dXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYzFhZGViM2UwOGMz
ZDFhNGRhMzNiMjAyMjQ1MTRmYzQzMjZjMWIxZC4uMjkxOWZhM2ExNjMyNGJlMzFiNTJkMDNmZGE3
NDcxYTdhMzkyZWZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
LmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdElt
cChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
dmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KaW5kZXggY2Y3ZjIyZThhN2Q1YWU5NzlkNGZkMWQ5NzliMDk2YWI3MmFh
NDkyOS4uYjYyZjUwMmI5MzkyZTM3ZDkwMzk3NmZkZDJiZDk1NzRkYmM2MjkxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDcgKzIwNSwxMiBA
QCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi1i
b29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9iamNGYWxsYmFj
a09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7Cit9CisKK2Jv
b2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICAv
LyBrZWVwIHRoZSBwcm90b3R5cGUgZnJvbSBnZXR0aW5nIGNhbGxlZCBpbnN0ZWFkIG9mIGp1c3Qg
cmV0dXJuaW5nIGZhbHNlCiAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCBkOTY1ZTk0ZTNkMzE0ZWY4Nzg0YzBhZjlhOTJh
M2I1OWRhOTFmNjIzLi5kMmZmNjlhMjJhOWI4N2IzYjE0NjdhYjZhOWU2OTRjOTcxYThiMWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC0xNTAxLDE4ICsxNTAx
LDI0IEBAIENhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKIAogYm9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgUXRSdW50aW1lTWV0
YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UXRSdW50
aW1lTWV0YU1ldGhvZCo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gImNvbm5lY3Qi
KSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNvbm5lY3RHZXR0ZXIpOworICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzLCB0aGlzT2JqZWN0LT5jb25uZWN0R2V0dGVyKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT0gImRpc2Nvbm5l
Y3QiKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGRpc2Nvbm5lY3RHZXR0ZXIpOwor
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCB0aGlzT2JqZWN0LT5kaXNjb25uZWN0R2V0dGVy
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewotICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzLCBsZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCB0aGlzT2Jq
ZWN0LT5sZW5ndGhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gUXRSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICByZXR1cm4gUXRSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBRdFJ1
bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKQEAgLTE3NDcsMTIgKzE3NTMsMTggQEAgQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVj
dGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogCiBi
b29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVy
dHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxRdFJ1bnRpbWVDb25u
ZWN0aW9uTWV0aG9kKj4oY2VsbCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubGVuZ3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGxlbmd0
aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3Qt
Pmxlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVy
biBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIHJldHVybiBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggYWVjMTFj
YTZkODE1YTIzOWVhYmUwNzg3NDZiMWQ5YmI5YmMyZDE1NC4uZjI3NDdiMTZmYWJlMDIyYTAyMjcw
MTljNzkwYmQ0ZjU4MzUxMWM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5o
CkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhl
Y1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBt
b2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKQEAgLTIwMSw2ICsyMDIsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFBy
b3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Q
cm9wZXJ0aWVzKTsKICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRl
eCBiNjg4MmVkZmUwNzU1MWU2YmMwNGVhY2YyMmZkZTM3YmM3ZDExMmQ5Li40NmM0Mjk1MGZjNTUw
YjljZjFlY2I3ZGJjMWZjZWZiYTllYWJkYmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCkBAIC04MCwyMSArODAsMjcgQEAgdm9pZCBSdW50aW1lQXJyYXk6OmdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGUK
IAogYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewor
ICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKK30KKworYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxl
Q3VzdG9tKHRoaXMsIGxlbmd0aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3Vz
dG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPmxlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAKICAgICBib29sIG9rOwogICAgIHVuc2lnbmVkIGluZGV4ID0g
cHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChvayk7CiAgICAgaWYgKG9rKSB7Ci0gICAgICAgIGlm
IChpbmRleCA8IGdldExlbmd0aCgpKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4
KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmpl
Y3QtPmdldExlbmd0aCgpKSB7CisgICAgICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNP
YmplY3QsIGluZGV4LCB0aGlzT2JqZWN0LT5pbmRleEdldHRlcik7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTEyMiwxMiArMTI4LDE4IEBAIGJvb2wgUnVu
dGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwCiAKIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIGlmIChpbmRleCA8IGdldExlbmd0aCgpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5k
ZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIGluZGV4LCBzbG90KTsKK30KKworYm9vbCBSdW50aW1lQXJyYXk6Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQg
aW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKKyAgICBpZiAoaW5kZXggPCB0
aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgeworICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRo
aXNPYmplY3QsIGluZGV4LCB0aGlzT2JqZWN0LT5pbmRleEdldHRlcik7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChleGVjLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIFJ1bnRp
bWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBhMDg3N2EwNjJkZDY5OWMxNzVkZTE2ZGYzY2FmYWFk
ZjEwY2M4ZGMyLi43MDI0Yjg4NDQyMjY4ZGNlMWNjYTNhZWJjOGM2MmJlNGEwODM5YjgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTUxLDcgKzUxLDkgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJv
cGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVBy
b3BlcnRpZXMpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZv
aWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX21ldGhvZC5jcHAKaW5kZXggMGU1NWMxNjRjYjRkNzJlYjU3MzY5YmI5NmVmOGUxMjdlMzBh
N2U1OC4uOWZkZTNiMmYxYjYyN2IwN2M2ZWJkMDBkZDdhYWIyYmMxYzFjYjBlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC03MSwxMiArNzEsMTggQEAgSlNW
YWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90
QmFzZSwgY29uc3QgSWRlbnRpZmkKIAogYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCAmc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgUnVudGltZU1ldGhvZDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICBSdW50aW1l
TWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU1ldGhvZCo+KGNlbGwpOwog
ICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewot
ICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzLCBsZW5ndGhHZXR0ZXIpOworICAg
ICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5sZW5n
dGhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJu
IEludGVybmFsRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOworICAgIHJldHVybiBJbnRlcm5hbEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBSdW50aW1l
TWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciAmZGVzY3JpcHRvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggMzU0YWNmODg2YTBjMzJl
ZDlkNzYwYjUyN2VmZTVhNDBlN2Q5MWYxMi4uMjllMzY2NDg0NGYxYjYxNWQ2Mzg0ZjEyODJhZDAy
MWEwM2U0MjFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTY4
LDYgKzY4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBsZW5n
dGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICBPd25QdHI8QmluZGlu
Z3M6Ok1ldGhvZExpc3Q+IF9tZXRob2RMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKaW5kZXggZGYxMWZlYjZjYTk4ZWFjOTIyYThhMGYzNmMzYjA3OWQzZGM1Y2Y1
ZS4uODg3YThlMjcxYWE2NmY1ODE0ZmI5ZDFkZmE4ZWQyM2QyNzE5OWUwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0xMTgsMTIgKzExOCwxOCBAQCBKU1Zh
bHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
c2xvdEJhc2UsIGNvbnN0IElkZQogCiBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90JiBzbG90KQogewotICAgIGlmICghbV9pbnN0YW5jZSkgeworICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwor
Ym9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxS
dW50aW1lT2JqZWN0Kj4oY2VsbCk7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX2luc3RhbmNlKSB7
CiAgICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIAotICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSBtX2lu
c3RhbmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqZWN0LT5tX2lu
c3RhbmNlOwogCiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAgICAgCkBAIC0xMzMsNyArMTM5LDcg
QEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAgICAgICAgLy8gU2VlIGlmIHRoZSBpbnN0YW5j
ZSBoYXMgYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KICAgICAgICAgRmllbGQgKmFG
aWVsZCA9IGFDbGFzcy0+ZmllbGROYW1lZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgpKTsK
ICAgICAgICAgaWYgKGFGaWVsZCkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywg
ZmllbGRHZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhp
c09iamVjdC0+ZmllbGRHZXR0ZXIpOwogICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNDEsNyArMTQ3LDcg
QEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAgICAgICAgICAgIC8vIHRoYXQgbWV0aG9kLgog
ICAgICAgICAgICAgTWV0aG9kTGlzdCBtZXRob2RMaXN0ID0gYUNsYXNzLT5tZXRob2RzTmFtZWQo
cHJvcGVydHlOYW1lLCBpbnN0YW5jZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAobWV0aG9kTGlz
dC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbWV0
aG9kR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0
aGlzT2JqZWN0LT5tZXRob2RHZXR0ZXIpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1
MCw3ICsxNTYsNyBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcgogCiAgICAgICAgIC8vIFRyeSBh
IGZhbGxiYWNrIG9iamVjdC4KICAgICAgICAgaWYgKCFhQ2xhc3MtPmZhbGxiYWNrT2JqZWN0KGV4
ZWMsIGluc3RhbmNlLmdldCgpLCBwcm9wZXJ0eU5hbWUpLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKKyAgICAg
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPmZhbGxiYWNrT2Jq
ZWN0R2V0dGVyKTsKICAgICAgICAgICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CkBAIC0xNTgsNyArMTY0LDcgQEAgYm9vbCBSdW50aW1lT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXIKICAgICAgICAgCiAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgIAotICAgIHJldHVy
biBpbnN0YW5jZS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBSdW50aW1lT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggMWFjMjFhZDQ4ZjI4MzdjOTYwMDhhZTM1
MDgxZmMwYzAzOTNhNjFhMy4uNDQ5MGQ3NDM2NjYzYWE2NWRmNGI4ODkyNTlhZGNhZjFiOGZiYmQy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTQ2LDYgKzQ2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgflJ1bnRpbWVPYmplY3QoKTsKIAogICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM5MDA0N2IyMmM2YWFjNWZkNjNlOGY1NzRhOTU1
ZTQ3MmY3NGMwOGEuLmUxMDUzYzllZDg5YTM2YTc3YmY0NmQzODFmZjhlZGRjZTJmODhkYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBK
U0NlbGw6OmdldE93blByb3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNs
b3QgdG8gZXZlcnkgY2xhc3MgdGhhdCBvdmVycmlkZXMKKyAgICAgICAgSlNDZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3QuICBUaGUgdmlydHVhbCB2ZXJzaW9ucyBub3cgY2FsbCB0aGUgc3RhdGljIHZl
cnNpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisK
IDIwMTEtMTAtMDcgIFFpIFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CiAKICAgICAgICAg
W1F0XVtXSzJdIEFwcGxpY2F0aW9uQ2FjaGUgTGF5b3V0VGVzdHMgZmFpbGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAKaW5kZXggYWU5YjllODQ1YTJjMTJmMDA5ZmRhNjdiYmY4NTUwOGI3NGMzZDFkMC4uMjYw
MzcwMWQ2ZDczZmU4NjdmMDlmYzZkNGY2OWMyZWMzNDViZTkzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNw
cApAQCAtMjUzLDggKzI1MywxNCBAQCBDb25zdHJ1Y3RUeXBlIEpTTlBPYmplY3Q6OmdldENvbnN0
cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKIAogYm9vbCBKU05QT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIGlmICghbV9ucE9iamVjdCkgeworICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
K30KKworYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQoreworICAgIEpTTlBPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U05QT2JqZWN0Kj4oY2VsbCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCAmc19pbmZvKTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPm1fbnBPYmplY3QpIHsKICAgICAg
ICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhlYyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC0yNjIsMTQgKzI2OCwxNCBAQCBib29sIEpTTlBPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TgogICAg
IE5QSWRlbnRpZmllciBucElkZW50aWZpZXIgPSBucElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihw
cm9wZXJ0eU5hbWUpOwogCiAgICAgLy8gRmlyc3QsIGNoZWNrIGlmIHRoZSBOUE9iamVjdCBoYXMg
YSBwcm9wZXJ0eSB3aXRoIHRoaXMgbmFtZS4KLSAgICBpZiAobV9ucE9iamVjdC0+X2NsYXNzLT5o
YXNQcm9wZXJ0eSAmJiBtX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5KG1fbnBPYmplY3Qs
IG5wSWRlbnRpZmllcikpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgcHJvcGVydHlH
ZXR0ZXIpOworICAgIGlmICh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3Bl
cnR5ICYmIHRoaXNPYmplY3QtPm1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVydHkodGhpc09i
amVjdC0+bV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgeworICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5wcm9wZXJ0eUdldHRlcik7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAogICAgIC8vIFNlY29uZCwgY2hlY2sgaWYgdGhlIE5QT2JqZWN0IGhh
cyBhIG1ldGhvZCB3aXRoIHRoaXMgbmFtZS4KLSAgICBpZiAobV9ucE9iamVjdC0+X2NsYXNzLT5o
YXNNZXRob2QgJiYgbV9ucE9iamVjdC0+X2NsYXNzLT5oYXNNZXRob2QobV9ucE9iamVjdCwgbnBJ
ZGVudGlmaWVyKSkgewotICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBtZXRob2RHZXR0ZXIp
OworICAgIGlmICh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc01ldGhvZCAmJiB0
aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc01ldGhvZCh0aGlzT2JqZWN0LT5tX25w
T2JqZWN0LCBucElkZW50aWZpZXIpKSB7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmpl
Y3QsIHRoaXNPYmplY3QtPm1ldGhvZEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDI2NGE2MzVjMDE1ZjQ5NjE4NzI2Njc4ZmIxYjNm
ZTcxM2VmYjlmMzUuLjI5MzlkYjk2OGJjYWQ2YTBjNThmYTMyYjRmNjRjMjZiMDQzNjdjZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaApAQCAtODQsNiArODQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSlND
OjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Cisg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6
UHV0UHJvcGVydHlTbG90Jik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110226</attachid>
            <date>2011-10-07 15:27:19 -0700</date>
            <delta_ts>2011-10-08 14:30:42 -0700</delta_ts>
            <desc>Fix qt</desc>
            <filename>bug-69593-20111007152720.patch</filename>
            <type>text/plain</type>
            <size>105349</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5NjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJj
NTZkMmZjYTBlNTQ2YzRlNmQwNDcyYzhiYWY3OGUxNmZlYjFiZTguLjZkNTMwYTc3NThhZThiYjdi
NjY2MzdlMzBiYjg3ZjExN2IxMTI0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDExMCBAQAorMjAxMS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blBy
b3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njk1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZXZlcnkgY2xh
c3MgdGhhdCBvdmVycmlkZXMKKyAgICAgICAgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QuICBU
aGUgdmlydHVhbCB2ZXJzaW9ucyBub3cgY2FsbCB0aGUgc3RhdGljIHZlcnNpb25zLgorICAgICAg
ICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGRlLXZpcnR1YWxpemluZyBKU0NlbGw6OmdldE93
blByb3BlcnR5U2xvdC4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAg
KiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dl
ckFjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3BwOgorICAg
ICAgICAoSlNDOjpBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVu
dGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoK
KyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJy
YXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkJvb2xlYW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAg
ICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmdldE93blBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAg
ICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlND
OjpFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgor
ICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAg
ICogcnVudGltZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3Bw
OgorICAgICAgICAoSlNDOjpKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAq
IHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6SlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9K
U0J5dGVBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKiBydW50
aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU05vdEFuT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT05P
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICog
cnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNT
Y29wZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGlt
ZS9KU1N0cmluZy5oOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6Ok1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGlt
ZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlclByb3RvdHlwZTo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpP
YmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChK
U0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhw
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBl
Lmg6CisKIDIwMTEtMTAtMDcgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtKU0NdIERpc2FibGUgVGhyZWFkUmVzdHJpY3Rpb25WZXJpZmllciBmb3Ig
SklUIEV4ZWN1dGFibGVNZW1vcnlIYW5kbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cAppbmRleCA2Njg0YjIyZWZhMjRlMmVhMWIxZGFkNzljYWNiNTU4ZGJkOWFjZDcx
Li4yNTE1MzRmMmIyZDU4NGRkYjJmNGRlYWIxZjdjNzI3ZDQ3YTFkODdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTMyMyw2ICszMjMsNyBAQCBfX1pOM0pT
QzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzEySlNHbG9iYWxEYXRhRWpOU183SlNW
YWx1ZUVqCiBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxN3B1
dFdpdGhBdHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1Zh
bHVlRWpiUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxN3B1dFdpdGhB
dHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUVqCitfX1pOM0pTQzhKU09iamVj
dDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQ
cm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185
RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDE5Z2V0T3du
UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUVOU18x
NUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0
b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlw
dG9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmNwcAppbmRleCBkN2I4NjZkMjY4MDBhYzg2Y2MxZTM2YjkzZmExNDhiMGQ3NjU5
ODQ3Li40ZjZmNjQ2Mjc1M2YzMmI5NWM3MTczZmYzMzllNDY2M2E2MzYwZDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cApAQCAtNjIsNyArNjIsMTIgQEAgVVN0cmluZyBEZWJ1Z2dlckFjdGl2YXRpb246OmNsYXNzTmFt
ZSgpIGNvbnN0CiAKIGJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gbV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgRGVidWdnZXJB
Y3RpdmF0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
eworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKS0+bV9h
Y3RpdmF0aW9uLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2Vy
QWN0aXZhdGlvbi5oCmluZGV4IDk3MTEwYjJmODg5M2UwOWVmNGUzNDU4NTNhYzJkN2FhMDkxZDIw
ZDEuLmM0NGRmMzIwNWJmYjdmMzcwODVkZmEyNTI5NjU1NTgwODc5NDY5MjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3Bw
CmluZGV4IGY1M2I5YmRjYjZiODgxMjhhNjEzY2E1ZGU1MzNjODU2ZmNkYWI0M2MuLmYwNGE2Nzlm
MWUzM2JjN2RkMDczOTU5ZDc5NGM0MjUyZTZlMGMwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcApAQCAtMTQ3LDE1ICsxNDcsMjEgQEAgdm9pZCBBcmd1
bWVudHM6OmZpbGxBcmdMaXN0KEV4ZWNTdGF0ZSogZXhlYywgTWFya2VkQXJndW1lbnRCdWZmZXIm
IGFyZ3MpCiAKIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgaWYgKGkgPCBkLT5u
dW1Bcmd1bWVudHMgJiYgKCFkLT5kZWxldGVkQXJndW1lbnRzIHx8ICFkLT5kZWxldGVkQXJndW1l
bnRzW2ldKSkgewotICAgICAgICBpZiAoaSA8IGQtPm51bVBhcmFtZXRlcnMpIHsKLSAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUoZC0+cmVnaXN0ZXJzW2QtPmZpcnN0UGFyYW1ldGVySW5kZXggKyBp
XS5nZXQoKSk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpLCBz
bG90KTsKK30KKworYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaSwgUHJvcGVydHlTbG90JiBzbG90KQorewor
ICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50cyo+KGNlbGwp
OworICAgIGlmIChpIDwgdGhpc09iamVjdC0+ZC0+bnVtQXJndW1lbnRzICYmICghdGhpc09iamVj
dC0+ZC0+ZGVsZXRlZEFyZ3VtZW50cyB8fCAhdGhpc09iamVjdC0+ZC0+ZGVsZXRlZEFyZ3VtZW50
c1tpXSkpIHsKKyAgICAgICAgaWYgKGkgPCB0aGlzT2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzKSB7
CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmQtPnJlZ2lzdGVyc1t0aGlz
T2JqZWN0LT5kLT5maXJzdFBhcmFtZXRlckluZGV4ICsgaV0uZ2V0KCkpOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUoZC0+ZXh0cmFBcmd1bWVudHNbaSAtIGQtPm51
bVBhcmFtZXRlcnNdLmdldCgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dC0+ZC0+ZXh0cmFBcmd1bWVudHNbaSAtIHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnNdLmdl
dCgpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcihleGVjLCBVU3RyaW5nOjpudW1i
ZXIoaSkpLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIFVTdHJpbmc6Om51bWJlcihpKSksIHNs
b3QpOwogfQogICAgIAogdm9pZCBBcmd1bWVudHM6OmNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5l
Y2Vzc2FyeShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCmluZGV4IGZlOTkwYjQ0NzNlNGE5ODAxMjhiOTNjY2JkOTU1ZjkyNjA2YmU3NzYu
LmFmNGIzYzMwMWFlMDBkOTQwYTg2NGI0MjNlN2IyMmI5OGUzMjA0MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBAIC0xMjUsNyArMTI1LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBnZXRBcmd1bWVudHNEYXRhKENh
bGxGcmFtZSosIEpTRnVuY3Rpb24qJiwgcHRyZGlmZl90JiBmaXJzdFBhcmFtZXRlckluZGV4LCBS
ZWdpc3RlciomIGFyZ3YsIGludCYgYXJnYyk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0g
RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29u
c3RydWN0b3IuaAppbmRleCBjNDZkY2IyMzYzMmRhYjRmYzdiODY2ZjlhN2MwNzcwM2UzNjFlMDI2
Li4yOWU4YmUwN2U3NTE3ZjI5ZWY1YWUzOGVjOWUxYTcwODBhODU5ZjRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCkBAIC01Miw2ICs1
Miw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIEFycmF5Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgdmlydHVhbCBD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGQ0Yjkz
MzRmNThjYWQ5YjQ2NDZlMmQ2ZmVjMjNlMGU1NjA2MjkwYjYuLmNmMTYxNjAzYTM0ZjE1OTMzNmJj
Mzk1ZTdkZDgyNDlhMWY1N2VjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEyNyw3ICsxMjcsMTIgQEAgdm9pZCBBcnJheVBy
b3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAog
Ym9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU0FycmF5PihleGVjLCBFeGVjU3RhdGU6
OmFycmF5UHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8
SlNBcnJheT4oZXhlYywgRXhlY1N0YXRlOjphcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0
aWNfY2FzdDxBcnJheVByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
CiBib29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5oCmluZGV4IDQxZmY1OTRiN2JkYTVhOThkYzM4NzFhZjJkODYyNzE0NWVhYzBlZGMu
LjljODYwYzZjNDNlOWZhOTM4YThmYTFlN2ZjYjU2MjlkMmI5MmYzODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDAsNyArNDAsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCBiYjkzMDZkOWM4MTRhYjViZjRiNTZkZjI0OGIy
Njc3MjQ1ZTcwMDkwLi5lNzQ4ZGUyYjE5YjU4N2EzZGJmZDdjMjhjMjZmNzZmNGFmYTQxYzg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmNwcApAQCAtNjQsNyArNjQsMTIgQEAgdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIAogYm9vbCBCb29sZWFuUHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25TbG90PEJvb2xlYW5PYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6Ym9vbGVh
blByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJl
dHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
K30KKworYm9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQoreworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8Qm9v
bGVhbk9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpib29sZWFuUHJvdG90eXBlVGFibGUoZXhlYyks
IHN0YXRpY19jYXN0PEJvb2xlYW5Qcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRleCAyZGNmYzFkNTZmMjAxZTMzZjdiNjY5OTQxZjVi
MjQwNDZiNDQzMjA2Li5iMGI0ZjU1MGVmMjkzODY2YTA1N2UxMjU0YzFhZTA1ZmY0ZTBhNDZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5o
CkBAIC01MCw2ICs1MCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAg
IEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IDNlYTE2MzdkYmQ1MWNmYjE4ZWYwYzcwZGY4NTI4M2M4ZjM5YjA5NGMuLmNhNjQ0MjU0YzYw
ZWU3YWZiODFhOGZjZjgwNTA5N2YzMmVkNDcwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtODcsNyArODcsMTIgQEAgdm9p
ZCBEYXRlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRGF0ZVBy
b3RvdHlwZSogZGF0ZVByb3RvdHkKIAogYm9vbCBEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8
SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpkYXRlQ29uc3RydWN0b3JUYWJsZShl
eGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgRGF0ZUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQor
eworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhl
YywgRXhlY1N0YXRlOjpkYXRlQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8RGF0
ZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgRGF0
ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9y
LmgKaW5kZXggMDZkYzk0YThiN2IwYzM0Y2YxZDA5YWQyNDgyNGEzMjc1ZjlkNGIwNi4uMjhlNDE3
MDNiZmQ2Nzg2M2Q0NGZkNGQ0Y2E0NzQxMjU4NmRhMTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmgKQEAgLTU2LDYgKzU2LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwq
LCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggOWZmNDRmMjg2ODAzNDAwZmVmMzYyOGJiZTM1
YTU5ZTA3MDZkMjAyMC4uYTY4ZjQ4MzhiYjA2MjY1Yzk3YmMwNDY0MmRmMWM5NDY3N2M4YTgwNyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
QEAgLTQ0NSw5ICs0NDUsMTMgQEAgdm9pZCBEYXRlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKIAogYm9vbCBEYXRlUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OmRhdGVUYWJsZShleGVjKSwgdGhp
cywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKK2Jvb2wgRGF0ZVByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1
cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OmRhdGVU
YWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8RGF0ZVByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOworfQogCiBib29sIERhdGVQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCmluZGV4IDcxZDllZGEzMDhhNGJjOTVmYjljMDY0N2Ji
MTU3ZGI4MGMwN2Y2OWEuLjcyMDUyNjJkMjliNDg3OGJiYWUwNzQ0MmEyNWU0NGM0ZmRlNzBhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKQEAg
LTQxLDYgKzQxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gcHJvdG90
eXBlOwogICAgICAgICB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3Bw
CmluZGV4IDllYTEyOTA2NGMwNmJmZTI0OTI1OGFkZjgyZTFkNDgzMzI1MGQ3ZmEuLjQzOWQ5YTgz
MTQ3ZjhmMDE0ZDc0NmNmZjdkODMyZWVmZmE0YzUyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTY0LDcgKzY0LDEyIEBAIHZv
aWQgRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqKQogCiBib29sIEVycm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEVycm9ySW5zdGFu
Y2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJv
cGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxFcnJvckluc3RhbmNlPihleGVjLCBFeGVjU3RhdGU6OmVycm9y
UHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEVycm9yUHJvdG90eXBlKj4oY2VsbCks
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgRXJyb3JQcm90b3R5cGU6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggNDI1ZDY2YmNlM2ViNmIy
ZmIxMDViMjhmYzFjNzQ0YWYzYmFiNGM3NC4uNjVmM2ZmZjVmNmUwZmQzNTE2NWQ1M2U5YmIzYTI1
MTk1Y2MxMWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCkBAIC01Myw2ICs1Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCmluZGV4IDgyMjY5YTU1NWFhMjVmNzJjYzE1YzI3NTdhNzA2MDdkZmM4MTg3YWIuLjc5
YzhiNTA3MDUzMGQxMTQ3NmRjZjc5YzFhNTExYWRlNzExMDdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcApAQCAtMTQzLDIzICsxNDMsMjkg
QEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0aW9uOjpzeW1ib2xUYWJsZVB1dFdpdGhBdHRyaWJ1dGVz
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwKIAogYm9vbCBKU0FjdGl2YXRpb246OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0FjdGl2YXRpb246
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgSlNB
Y3RpdmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4oY2VsbCk7
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRz
KSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGdldEFyZ3VtZW50c0dldHRlcigpKTsK
KyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhpc09iamVjdC0+Z2V0QXJndW1l
bnRzR2V0dGVyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoc3lt
Ym9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICBpZiAodGhpc09iamVjdC0+c3lt
Ym9sVGFibGVHZXQocHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBpZiAoV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSBnZXREaXJlY3RM
b2NhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoV3Jp
dGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSB0aGlzT2JqZWN0LT5nZXREaXJlY3RM
b2NhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgc2xv
dC5zZXRWYWx1ZShsb2NhdGlvbi0+Z2V0KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKICAgICAvLyBXZSBkb24ndCBjYWxsIHRocm91Z2ggdG8gSlNPYmplY3QgYmVjYXVzZSB0aGVy
ZSdzIG5vIHdheSB0byBnaXZlIGFuIAogICAgIC8vIGFjdGl2YXRpb24gb2JqZWN0IGdldHRlciBw
cm9wZXJ0aWVzIG9yIGEgcHJvdG90eXBlLgotICAgIEFTU0VSVCghaGFzR2V0dGVyU2V0dGVyUHJv
cGVydGllcygpKTsKLSAgICBBU1NFUlQocHJvdG90eXBlKCkuaXNOdWxsKCkpOworICAgIEFTU0VS
VCghdGhpc09iamVjdC0+aGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcygpKTsKKyAgICBBU1NFUlQo
dGhpc09iamVjdC0+cHJvdG90eXBlKCkuaXNOdWxsKCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCAz
Y2NlMjU1ODNjMjE3ZDQ3OWU5NzcyYzY3YjM5YWZlZmM4Zjc2YWJlLi42MDI2ZDI5ZmIwMzhlZWJi
YjcwNzNmMGRjYmZlZDAyOTFmZWNlNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjIsNiArNjIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCBib29sIGlzQWN0aXZhdGlvbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAppbmRleCA5Y2QwNzk1ZjA2ZWFmNTBhY2U5NDFhNmEyMjEzM2RkYjE0YzM4
ODE4Li45MzFjNGI0ZDVlMzg4NzRjMTAzMmU3MTYxZDlkNjM0MWZiMmIzN2E5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMjQ3LDE1ICsyNDcsMjEgQEAg
SlNBcnJheTo6fkpTQXJyYXkoKQogCiBib29sIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBB
cnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CisgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdCh0aGlzLCBleGVjLCBpLCBzbG90KTsKK30KKworYm9vbCBKU0FycmF5OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGksIFBy
b3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNBcnJheSo+KGNlbGwpOworICAgIEFycmF5U3RvcmFnZSogc3RvcmFnZSA9IHRoaXNPYmpl
Y3QtPm1fc3RvcmFnZTsKICAgICAKICAgICBpZiAoaSA+PSBzdG9yYWdlLT5tX2xlbmd0aCkgewog
ICAgICAgICBpZiAoaSA+IE1BWF9BUlJBWV9JTkRFWCkKLSAgICAgICAgICAgIHJldHVybiBnZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpKSwgc2xvdCk7Cisg
ICAgICAgICAgICByZXR1cm4gdGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElk
ZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0gICAgaWYgKGkgPCBtX3ZlY3Rvckxlbmd0aCkgeworICAgIGlmIChpIDwgdGhpc09i
amVjdC0+bV92ZWN0b3JMZW5ndGgpIHsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHN0b3JhZ2Ut
Pm1fdmVjdG9yW2ldLmdldCgpOwogICAgICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUodmFsdWUpOwpAQCAtMjcxLDIyICsyNzcsMjggQEAgYm9vbCBKU0FycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBQcm9wZXJ0eVNs
b3QmIHNsb3QKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOworICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElk
ZW50aWZpZXI6OmZyb20oZXhlYywgaSksIHNsb3QpOwogfQogCiBib29sIEpTQXJyYXk6OmdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0FycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTQXJy
YXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0FycmF5Kj4oY2VsbCk7CiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7Ci0gICAgICAgIHNs
b3Quc2V0VmFsdWUoanNOdW1iZXIobGVuZ3RoKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZShq
c051bWJlcih0aGlzT2JqZWN0LT5sZW5ndGgoKSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1bnNpZ25lZCBpID0gcHJvcGVydHlO
YW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwogICAgIGlmIChpc0FycmF5SW5kZXgpCi0g
ICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgaSwgc2xvdCk7
CisgICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
ZXhlYywgaSwgc2xvdCk7CiAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
IGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggZTU1MzJh
YjNiYjU5MTliMzFlZDA0ZDU1ZWZlZjZjMjNlMmQ2YzEyZi4uNWE3OWVkMjlmYzk3YjIzOTFkYzY1
ODg0ZmVjYjk5NmUyNzBlNTYzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaApAQCAtOTUsNyArOTUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHV0KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7IC8v
IEZJWE1FOiBNYWtlIHByb3RlY3RlZCBhbmQgYWRkIHNldEl0ZW0uCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCmluZGV4IGZkMzFiY2Rk
NjM2NTQ2NzgwMDU4ZjI2ZWY1NTllYjQ0ODIwYjJkZTkuLjcxZWQzODBhMjM2Nzk3ZmQ2ZTZlZDg0
YzEwNmVlYmEzZmFlOGY1N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtOTgsNiArOTgsMTEgQEAgYm9vbCBKU0JvdW5kRnVu
Y3Rpb246Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1
ZSkKIAogYm9vbCBKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90
KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKK30KKworYm9vbCBKU0JvdW5kRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9y
KGV4ZWMsIFN0cmljdE1vZGVBcmd1bWVudHNBY2Nlc3NFcnJvcik7CiAgICAgICAgIHNsb3Quc2V0
VmFsdWUoanNOdWxsKCkpOwpAQCAtMTEwLDcgKzExNSw3IEBAIGJvb2wgSlNCb3VuZEZ1bmN0aW9u
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgSlNCb3VuZEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmgKaW5kZXggZWJiYzQ2YzBmMjI3NzQ0OTU2YTVhMTU1OTRlYmIxYzQxOWZh
OTA2OS4uY2M1MTY5Mzc2MWZhYzg5NGQwOTAzYzBiMWNlMjk1ZmQxZjU5MGJhMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTQwLDYg
KzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU0JvdW5kRnVuY3Rpb24qIGNyZWF0ZShFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiB0YXJnZXRGdW5jdGlvbiwgSlNWYWx1
ZSBib3VuZFRoaXMsIEpTVmFsdWUgYm91bmRBcmdzLCBpbnQsIGNvbnN0IElkZW50aWZpZXImKTsK
IAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICB2aXJ0
dWFsIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBw
cm90byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAK
aW5kZXggMjc1OTdiYTE3ZDg3YWYyZjZjYzA3YzMxYzg5ZWVjODhmYzRiNDcwNC4uYTliZjg5ZTZh
NTU0OWY5NTQ5OTRkODdkYjEzMDA0MDlhY2EyNTRlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtNTYsMTMgKzU2LDE5IEBAIFN0cnVjdHVy
ZSogSlNCeXRlQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBKU0J5dGVBcnJheSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTQnl0ZUFycmF5Kj4oY2VsbCk7CiAgICAgYm9vbCBvazsK
ICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQzMihvayk7Ci0gICAgaWYg
KG9rICYmIGNhbkFjY2Vzc0luZGV4KGluZGV4KSkgewotICAgICAgICBzbG90LnNldFZhbHVlKGdl
dEluZGV4KGV4ZWMsIGluZGV4KSk7CisgICAgaWYgKG9rICYmIHRoaXNPYmplY3QtPmNhbkFjY2Vz
c0luZGV4KGluZGV4KSkgeworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmdldElu
ZGV4KGV4ZWMsIGluZGV4KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtNzgsMTEgKzg0LDE3
IEBAIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByCiAKIGJvb2wgSlNCeXRlQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQogewotICAgIGlmIChjYW5BY2Nlc3NJbmRleChwcm9wZXJ0eU5hbWUpKSB7
Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUoZ2V0SW5kZXgoZXhlYywgcHJvcGVydHlOYW1lKSk7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQoreworICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNC
eXRlQXJyYXkqPihjZWxsKTsKKyAgICBpZiAodGhpc09iamVjdC0+Y2FuQWNjZXNzSW5kZXgocHJv
cGVydHlOYW1lKSkgeworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QtPmdldEluZGV4
KGV4ZWMsIHByb3BlcnR5TmFtZSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmllcjo6ZnJv
bShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHBy
b3BlcnR5TmFtZSksIHNsb3QpOwogfQogCiB2b2lkIEpTQnl0ZUFycmF5OjpwdXQoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5oCmluZGV4IDIxM2I4ZjYyNjYyMjQ5NTE1Y2RjOTM0MTUxODk3MmU0Y2UwNzlkYzMu
LmU3NmNmYmJlMmJhNjE3NDZiOWRkZmQwNzQzMTE3MmI4OTlhN2M2ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtODksNyArODksOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvKiA9ICZzX2luZm8pOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
SlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCmluZGV4IDc5YTAxNDQ3NGVkMDAxNDc1MDE5
YjBhOTgwODcyNTY3ODFiNzNiNjIuLmM3OTVkNjI2ZGE3NWNjMTRhODE3ZjVhYTk1ZWI2NmEwODgy
NGJlMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcApAQCAtNzEs
MTAgKzcxLDE1IEBAIENvbnN0cnVjdFR5cGUgSlNDZWxsOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0
cnVjdERhdGEmKQogCiBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQog
eworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwg
c2xvdCk7Cit9CisKK2Jvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK3sKICAgICAvLyBUaGlzIGlzIG5vdCBhIGdlbmVyYWwgcHVycG9zZSBpbXBs
ZW1lbnRhdGlvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QuCiAgICAgLy8gSXQgc2hvdWxkIG9ubHkg
YmUgY2FsbGVkIGJ5IEpTVmFsdWU6OmdldC4KICAgICAvLyBJdCBjYWxscyBnZXRQcm9wZXJ0eVNs
b3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNsb3QuCi0gICAgSlNPYmplY3QqIG9iamVjdCA9IHRvT2Jq
ZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7CisgICAgSlNPYmplY3QqIG9i
amVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7
CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFvYmplY3QtPmdldFByb3BlcnR5
U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAgc2xvdC5zZXRVbmRlZmluZWQo
KTsKQEAgLTgzLDEwICs4OCwxNSBAQCBib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUAogCiBib29sIEpT
Q2VsbDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaWRlbnRp
ZmllciwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7Cit9CisKK2Jvb2wgSlNDZWxsOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGlk
ZW50aWZpZXIsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKICAgICAvLyBUaGlzIGlzIG5vdCBhIGdl
bmVyYWwgcHVycG9zZSBpbXBsZW1lbnRhdGlvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QuCiAgICAg
Ly8gSXQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IEpTVmFsdWU6OmdldC4KICAgICAvLyBJdCBj
YWxscyBnZXRQcm9wZXJ0eVNsb3QsIG5vdCBnZXRPd25Qcm9wZXJ0eVNsb3QuCi0gICAgSlNPYmpl
Y3QqIG9iamVjdCA9IHRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSk7
CisgICAgSlNPYmplY3QqIG9iamVjdCA9IGNlbGwtPnRvT2JqZWN0KGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSk7CiAgICAgc2xvdC5zZXRCYXNlKG9iamVjdCk7CiAgICAgaWYgKCFv
YmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKICAgICAgICAg
c2xvdC5zZXRVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ2VsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgK
aW5kZXggY2NjMWU5OTBlOGI4YmVmNGM1OWI4ODFiYTViZWJmMjk2ZmM0OGJlZi4uZDdlZjI1ZjNj
ZjM2ZDU0YTFjMWI0ZmI4OTI5OTM2MWU4ZjAzN2VlNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmgKQEAgLTEzMSw3ICsxMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBw
cml2YXRlOgogICAgICAgICAvLyBCYXNlIGltcGxlbWVudGF0aW9uOyBmb3Igbm9uLW9iamVjdCBj
bGFzc2VzIGltcGxlbWVudHMgZ2V0UHJvcGVydHlTbG90LgogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICAKICAgICAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9zdHJ1Y3R1cmU7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggZmJlZGRlZDgxYzI5Mjhh
YjVlMGYyNTRmZDEzZTAxNzU0NzAzOTEzYy4uNmFiZjZjZTZiMWJiOTNkZDM1MGNiMzczYzVmMjFk
NWU2ZTNkZDlkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKQEAgLTIwNCw1MCArMjA0LDU2IEBAIEpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0
dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImCiAKIGJv
b2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgaWYg
KGlzSG9zdEZ1bmN0aW9uKCkpCi0gICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlT
bG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNGdW5jdGlv
bjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBK
U0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOwor
ICAgIGlmICh0aGlzT2JqZWN0LT5pc0hvc3RGdW5jdGlvbigpKQorICAgICAgICByZXR1cm4gQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUpIHsKLSAgICAgICAgV3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPiogbG9jYXRpb24gPSBn
ZXREaXJlY3RMb2NhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CisgICAg
ICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4qIGxvY2F0aW9uID0gdGhpc09iamVjdC0+Z2V0
RGlyZWN0TG9jYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm9wZXJ0eU5hbWUpOwogCiAgICAg
ICAgIGlmICghbG9jYXRpb24pIHsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBwcm90b3R5cGUgPSBj
b25zdHJ1Y3RFbXB0eU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QoKS0+ZW1wdHlPYmplY3RTdHJ1
Y3R1cmUoKSk7Ci0gICAgICAgICAgICBwcm90b3R5cGUtPnB1dERpcmVjdChleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdGhpcywgRG9udEVudW0p
OworICAgICAgICAgICAgSlNPYmplY3QqIHByb3RvdHlwZSA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0
KGV4ZWMsIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT5lbXB0eU9iamVjdFN0cnVjdHVyZSgp
KTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+cHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB0aGlzT2JqZWN0LCBEb250RW51bSk7
CiAgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIHBy
b3RvdHlwZSwgRG9udERlbGV0ZSB8IERvbnRFbnVtLCBmYWxzZSwgc2xvdCk7Ci0gICAgICAgICAg
ICBsb2NhdGlvbiA9IGdldERpcmVjdExvY2F0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT5wdXRE
aXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBwcm90b3R5cGUsIERvbnREZWxldGUgfCBEb250RW51bSwgZmFsc2UsIHNsb3QpOworICAgICAg
ICAgICAgbG9jYXRpb24gPSB0aGlzT2JqZWN0LT5nZXREaXJlY3RMb2NhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpOwogICAgICAgICB9CiAK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzLCBsb2NhdGlvbi0+Z2V0KCksIG9mZnNldEZvckxv
Y2F0aW9uKGxvY2F0aW9uKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgbG9j
YXRpb24tPmdldCgpLCB0aGlzT2JqZWN0LT5vZmZzZXRGb3JMb2NhdGlvbihsb2NhdGlvbikpOwog
ICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFy
Z3VtZW50cykgewotICAgICAgICBpZiAoanNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7
CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkp
IHsKICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIFN0cmljdE1vZGVBcmd1bWVudHNB
Y2Nlc3NFcnJvcik7CiAgICAgICAgICAgICBzbG90LnNldFZhbHVlKGpzTnVsbCgpKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAKLSAgICAgICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpcywgYXJndW1lbnRzR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpc09iamVjdCwgYXJndW1lbnRzR2V0dGVyKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkubGVuZ3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXMsIGxl
bmd0aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3Qs
IGxlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNhbGxlcikgewotICAgICAgICBp
ZiAoanNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgICAgIGlmICh0aGlzT2Jq
ZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKICAgICAgICAgICAgIHRocm93
VHlwZUVycm9yKGV4ZWMsIFN0cmljdE1vZGVDYWxsZXJBY2Nlc3NFcnJvcik7CiAgICAgICAgICAg
ICBzbG90LnNldFZhbHVlKGpzTnVsbCgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXMsIGNhbGxlckdldHRl
cik7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIGNhbGxlckdl
dHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAKIGJvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmgKaW5kZXggOTFjM2NjZmQ5NTI0YzJjOWNkMzUwODUzYjYwNjUyYmIyZTEwZmFhYi4u
Y2QyZWIzNDU0NWI0OTExM2ZlOGIyNzE4OWJmZmM0NjdiNjMzMTg4NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtMTMyLDYgKzEzMiw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0
aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1l
cmF0aW9uTW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggYzE2OTFjM2M0
NGNhODYwY2IxOGFmNjE4MGU5N2NiNGQ0MjllODdmNC4uYmJiZmFiY2U2ZmFhNDVlMTdkYTI5NGEw
Y2QxOGI3YmUwMGE4MDJhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtNDE2LDkgKzQxNiwxNSBAQCB2b2lkIEpTR2xvYmFsT2Jq
ZWN0OjphZGRTdGF0aWNHbG9iYWxzKEdsb2JhbFByb3BlcnR5SW5mbyogZ2xvYmFscywgaW50IGNv
dW50KQogCiBib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICBpZiAoZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTVmFyaWFibGVPYmplY3Q+KGV4
ZWMsIEV4ZWNTdGF0ZTo6Z2xvYmFsT2JqZWN0VGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTR2xvYmFsT2JqZWN0KiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihjZWxsKTsKKyAgICBpZiAo
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEpTVmFyaWFibGVPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6
Z2xvYmFsT2JqZWN0VGFibGUoZXhlYyksIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBzeW1ib2xUYWJsZUdldChwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5zeW1ib2xUYWJsZUdldChwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDE1MTljMzY3MTM3NTg4ZDE1ZGRj
YmUwMmNiNzU4OGYzOTcxN2RlZDQuLmJiODUzNzRlMzdiNTVjMTVhOWVlZjViZTliYjg5ZjIxMTE3
MWVlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaApAQCAtMTgwLDYgKzE4MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
dm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgaGFzT3duUHJvcGVydHlGb3JXcml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAppbmRleCAwZDU4OWJmMmZhMjNmNzdiZTQ4
NTBmN2U4ZDhmYTA2OGM3YThlMGZiLi5hZGUxOTc5OWJmNTUzMDZkMjk1NTJiMTY4ZmMxODc0ZDdi
OTI4NmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFu
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmNwcApAQCAtNTcsMTQgKzU3LDI0IEBAIFVTdHJpbmcgSlNOb3RBbk9iamVjdDo6dG9TdHJp
bmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHJldHVybiAiIjsKIH0KIAorYm9vbCBKU05v
dEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudGlmaWVyLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdl
dE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBpZGVudGlmaWVyLCBzbG90KTsKK30KKwogLy8g
SlNPYmplY3QgbWV0aG9kcwotYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90JikKK2Jvb2wg
SlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIEpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkLCBQcm9wZXJ0eVNsb3QmKQorYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYp
CiB7CiAgICAgQVNTRVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5oCmluZGV4IGFkYWZlYmU0OWJhMDBjZWM5N2FkMjY5ZDlkYzY2MzU1NzZiZjNhMmEuLmRj
NzRlNGFkMzRlOGI2Njc4MTFjMzI2MGYyYjUwM2E3MzYxYWI1NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTcxLDcgKzcxLDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgLy8gSlNPYmplY3QgbWV0aG9kcwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwg
UHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuY3BwCmluZGV4IGY0ZThiOGUxMGM5NzM1OTY2MDM3NTE3MDRmZjJjZjM4YTFmOWMyYzQu
LjZlZjIxNTYwMGIwNzc5OWY1YzE0OTMyNThlOWM5ZjcwNWQ1NmRlOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC02MDAsNyArNjAwLDEyIEBA
IGNvbnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpTTm9uRmlu
YWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlCiAKIGJvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxK
U09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpqc29uVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTT05PYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpqc29uVGFibGUoZXhlYyksIHN0
YXRpY19jYXN0PEpTT05PYmplY3QqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRl
eCBiZjFiYThjMDI4NmYxY2I1ZDJlMTJiZDljYTc3OWVjNjgyNmM1MmZjLi4yOGQyODYyZjhkNGE1
YzA4ZTgzNmQzNThiMTY3Y2NlZjM2NmNlMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5oCkBAIC01Nyw2ICs1Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IHByaXZhdGU6CiAgICAgICAgIEpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApp
bmRleCA0YmE2ZjhhNmVhMGYwZmUwYTQ3MDQ3ZmJiZWQ0M2E5MGNkMjQ4Njg3Li42NDM4NDFlMDkw
ZDBhZWEzMDA5NmU4OWFhNTE2MzlhZmFhNjllOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC05NSw3ICs5NSwxMiBAQCBVU3RyaW5nIEpTT2JqZWN0
OjpjbGFzc05hbWUoKSBjb25zdAogCiBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKLSAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIElkZW50aWZpZXI6OmZy
b20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2ln
bmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIHJldHVybiBzdGF0
aWNfY2FzdDxKU09iamVjdCo+KGNlbGwpLT5nZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRp
Zmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAogc3RhdGljIHZvaWQg
dGhyb3dTZXR0ZXJFcnJvcihFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAzMDk2MWQ2YWZiNjIyMTI0NDNlMjRmMWQyMDQ2NWRjNjVh
Y2E5YjdmLi4xMzNmYzQ2MzM4MmY3NDVhMTFhOWRjNzUyMjk2NDViYTJhMDNhYjAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwMiw3ICsxMDIsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBnZXRQcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CkBAIC01MDgsMTIgKzUx
MCwxNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmlubGluZUdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAor
QUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK3sKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7Cit9CisKIC8vIEl0IG1heSBzZWVtIGNyYXp5IHRvIGlubGluZSBhIGZ1bmN0
aW9uIHRoaXMgbGFyZ2UsIGVzcGVjaWFsbHkgYSB2aXJ0dWFsIGZ1bmN0aW9uLAogLy8gYnV0IGl0
IG1ha2VzIGEgYmlnIGRpZmZlcmVuY2UgdG8gcHJvcGVydHkgbG9va3VwIHRoYXQgZGVyaXZlZCBj
bGFzc2VzIGNhbiBpbmxpbmUgdGhlaXIKIC8vIGJhc2UgY2xhc3MgY2FsbCB0byB0aGlzLgotQUxX
QVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
K0FMV0FZU19JTkxJTkUgYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gaW5saW5lR2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2Jq
ZWN0Kj4oY2VsbCktPmlubGluZUdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNDZWxsOjpmYXN0R2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4IDU2MTVjMTE2NzgzZTY5ODg3NDdmNzdm
MjExZDgwMjJmNmExZTkwMTUuLmNiMGY1NmRmN2I2MWE4YmQyMzZiZTg4YWQyNmYwZDczNTZhMWYw
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2Nv
cGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGlj
U2NvcGVPYmplY3QuY3BwCkBAIC04NSw5ICs4NSwxNCBAQCBib29sIEpTU3RhdGljU2NvcGVPYmpl
Y3Q6OmlzRHluYW1pY1Njb3BlKGJvb2wmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
Ym9vbCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29s
IEpTU3RhdGljU2NvcGVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIHJldHVybiBzeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30K
KworYm9vbCBKU1N0YXRpY1Njb3BlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdGF0aWNTY29wZU9iamVj
dCo+KGNlbGwpLT5zeW1ib2xUYWJsZUdldChwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
LmgKaW5kZXggMGY5M2NlN2Y4NGFlODgwMzZkZDdhOTgyNDJhM2I4YWVkZWZkNGVjYy4uOWE0OTZi
MDgwNzU0NTIyMTIzNjA1YzFkZGY1YWMxYmQ5OGU5N2RiYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDUsNiArNDUs
NyBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJl
cXVpcmVzRHluYW1pY0NoZWNrcykgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRv
VGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwogICAgICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IDNmODI5M2QxNjU5
OWMyYjhiYWI2OTViZjlhNjMxYTM2MGU1Y2E4ZDUuLmM3M2Y0YTJlZTJjODU3NWZiMGQwNDg5Yjhk
NjM4ZTAwYWIxM2I1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5jcHAKQEAgLTMxNSwxNSArMzE1LDIxIEBAIEpTT2JqZWN0KiBKU1N0cmluZzo6dG9UaGlzT2Jq
ZWN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIAogYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTU3RyaW5nOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIEpTU3RyaW5nKiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihjZWxsKTsKICAgICAvLyBUaGUgc2Vt
YW50aWNzIGhlcmUgYXJlIHJlYWxseSBnZXRQcm9wZXJ0eVNsb3QsIG5vdCBnZXRPd25Qcm9wZXJ0
eVNsb3QuCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgSlNW
YWx1ZTo6Z2V0LgotICAgIGlmIChnZXRTdHJpbmdQcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KSkKKyAgICBpZiAodGhpc09iamVjdC0+Z2V0U3RyaW5nUHJvcGVydHlTbG90KGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90bykgewog
ICAgICAgICBzbG90LnNldFZhbHVlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5n
UHJvdG90eXBlKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgc2xvdC5zZXRC
YXNlKHRoaXMpOworICAgIHNsb3Quc2V0QmFzZSh0aGlzT2JqZWN0KTsKICAgICBKU09iamVjdCog
b2JqZWN0OwogICAgIGZvciAoSlNWYWx1ZSBwcm90b3R5cGUgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgpOyAhcHJvdG90eXBlLmlzTnVsbCgpOyBwcm90b3R5
cGUgPSBvYmplY3QtPnByb3RvdHlwZSgpKSB7CiAgICAgICAgIG9iamVjdCA9IGFzT2JqZWN0KHBy
b3RvdHlwZSk7CkBAIC0zNjMsMTEgKzM2OSwxNyBAQCBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZQog
CiBib29sIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAg
SlNTdHJpbmcqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KGNlbGwpOwogICAg
IC8vIFRoZSBzZW1hbnRpY3MgaGVyZSBhcmUgcmVhbGx5IGdldFByb3BlcnR5U2xvdCwgbm90IGdl
dE93blByb3BlcnR5U2xvdC4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIGNh
bGxlZCBieSBKU1ZhbHVlOjpnZXQuCi0gICAgaWYgKGdldFN0cmluZ1Byb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIGlmICh0aGlzT2JqZWN0LT5nZXRTdHJpbmdQcm9w
ZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIEpTU3RyaW5nOjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgSWRlbnRpZmll
cjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKKyAgICByZXR1cm4gSlNTdHJpbmc6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4
ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDFhYzg0ZjQ5MzRjMDc1YTMy
Y2ViYmM0MzRiOTE3YTY3NTMxZTBkY2YuLjlhZTNlYTBlNjYxZDNlNDIxMDFiN2VmNTY1MjNlMzQ4
ZTA3YTVlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAt
NTA2LDcgKzUwNiw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIC8vIEFjdHVhbGx5IGdl
dFByb3BlcnR5U2xvdCwgbm90IGdldE93blByb3BlcnR5U2xvdCAoc2VlIEpTQ2VsbCkuCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzX21heEludGVybmFsUm9wZUxlbmd0aCA9IDM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IDRlYjBmNzhjMzgyMDc2
Y2ZjYzE4ZDU1MzcxNjYzMmFmNTZiMDE5YmMuLjc5ZmVlZTdlMTllZGUyZmYxMDNjMDYwM2ZkNGE5
N2VmYTAwZWI2YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuY3BwCkBAIC0xMDYsNyArMTA2LDEyIEBAIHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogCiBib29s
IE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bWF0aFRh
YmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBN
YXRoT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQor
eworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNT
dGF0ZTo6bWF0aFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxNYXRoT2JqZWN0Kj4oY2VsbCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgTWF0aE9iamVjdDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggN2M0NzA3MmY0NTkwMDFlMzBjZTZmOWVhMTc5NTlk
NTBhZjU0Yzk0NS4uMmUyZDcyZGViZjQ4MGQ3Y2ZlMjc0MDRkNzYzOWI0OWNlNWQ0ODQwYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtMzksNiArMzks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgICAg
IH0KICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IGZj
YTAyMmIxNGY5MDc1YzllMjMyMjQzYTEzNDg0MDYzMDc0MmMwOTguLjY2YTQzZmQ2NTVjMzYxMWRj
NjI1NTJhNDQ3YjVlYzUyN2MzYTI4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTczLDcgKzczLDEyIEBAIHZvaWQg
TnVtYmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgTnVtYmVy
UHJvdG90eXBlKiBudW1iZXJQCiAKIGJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8TnVt
YmVyQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVtYmVy
Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBy
ZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7
Cit9CisKK2Jvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxOdW1i
ZXJDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJD
b25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxOdW1iZXJDb25zdHJ1Y3Rvcio+KGNl
bGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIE51bWJlckNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4IDhh
ZWE2OTA3YTMyNmViYTA1MzVlZjMxYWEyNGRiMGEwNmU3ZWNkZTIuLjUwZmVmMzkxZWYyYzMyOGVk
ODY2YWRkZWNhMjNlMGMxYzlmMTcwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgSlNWYWx1ZSBnZXRWYWx1ZVByb3BlcnR5KEV4ZWNT
dGF0ZSosIGludCB0b2tlbikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IGM3OTQyZWZjODllODU1NzNjMTUzZGUx
YWU1ZjkyOTI2NGI5YmE0ODAuLmY2ZjAxNmU0ZTNlNTdmMjIwZTc4ZjI1ZWNhZTgxMmY0N2QyZGEw
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90
eXBlLmNwcApAQCAtODUsNyArODUsMTIgQEAgdm9pZCBOdW1iZXJQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqKQogCiBib29sIE51bWJlclBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxOdW1iZXJPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVtYmVy
UHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0
dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
fQorCitib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PE51bWJl
ck9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZShleGVjKSwgc3Rh
dGljX2Nhc3Q8TnVtYmVyUHJvdG90eXBlKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgTnVtYmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmgKaW5kZXggMTIxOGE2Njg0MmY1NTI5YjMzYmVmOWFlMGMzMGFlMDY0ZDE1
Y2JkYS4uMWE1Njg2YWU1OTBhNWMwNDMwYTIzNWE5NTA1YjI5ZTJkM2JjY2FhOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKQEAgLTUwLDYg
KzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgTnVtYmVyUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDFhMzlj
MTg5ZGM3YmMyNzY1NWU3OTg5ODQzNjMxNDc5NDEzNGE1M2UuLmQyYWFkZjEwYWFjNjcyNWU2NmJl
ZTA2OTY3MTA1MTY0NTBkOGY5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTkxLDcgKzkxLDEyIEBAIHZvaWQgT2Jq
ZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgT2JqZWN0UHJv
dG90eXBlKiBvYmplY3RQCiAKIGJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNP
YmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0Q29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhp
cywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRo
aXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgT2JqZWN0Q29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAg
cmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpv
YmplY3RDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxPYmplY3RDb25zdHJ1Y3Rv
cio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIE9iamVjdENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGRkZjNjYWY0YzQxMWMyYmE4MGE4NjJkZmUwNzFhMmQ3ZGEzMDA5NTcuLmYxYjZmY2Q2YzZi
MTdmZWYyYTI5YTUzYTVmOWM0OWNhYWI1NDc4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzksNiArMzksNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwCmluZGV4IGZlZGEyNzU0MDA0NTljMWQzNTU4NTRlYWZjNjAyMTM5OTgzMDUxMGMu
LjliNjk5YzZmZjFjY2VmOTUyNzc3YjI2MDFiOTBmMjJkZDEwMDBkNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtODgsMTQg
Kzg4LDI1IEBAIHZvaWQgT2JqZWN0UHJvdG90eXBlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsCiAKIGJvb2wgT2JqZWN0UHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAobV9oYXNOb1Byb3BlcnRpZXNXaXRo
VUludDMyTmFtZXMpCisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBPYmplY3RQcm90b3R5cGUqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxPYmplY3RQcm90b3R5cGUqPihjZWxsKTsKKyAgICBpZiAodGhp
c09iamVjdC0+bV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gSlNOb25GaW5hbE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTTm9uRmluYWxPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworfQorCitib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCit7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QgJnNsb3QpCitib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rp
b25TbG90PEpTTm9uRmluYWxPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0UHJvdG90eXBl
VGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldFN0
YXRpY0Z1bmN0aW9uU2xvdDxKU05vbkZpbmFsT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVj
dFByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxPYmplY3RQcm90b3R5cGUqPihjZWxs
KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCA0YzEyZGZiNDY3
OTJkYzFiOGUxZWUxMzIwZThkNDI0YmE2YjlmYzFlLi41NmMyMDU0MTcxZDFlZTc3YWI0MTRjMjhk
ZTMzYmU4ZTM2OTE3NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuaApAQCAtNTIsNyArNTIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIGJvb2wgbV9oYXNO
b1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDBlYTlhMTBkZGUyMmNlZGRk
N2M4MmExY2ZiZTYwZDc1ZGM2NzMwOC4uODRkOTJmZDVjNWM5ZTJmYzBmN2Y3MGY5OTVhOGFhY2M1
ODBhZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcApAQCAtMjA0LDcgKzIwNCwxMiBAQCBKU1ZhbHVlIFJlZ0V4cENvbnN0
cnVjdG9yOjpnZXRSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIAogYm9v
bCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxG
dW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0
aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBSZWdFeHBDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1
bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0
YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKIGJvb2wgUmVnRXhwQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggZGVlNDg0NDUxZDU4ZjlmMzQzMWRlZmI5ZTg1
ZWQ1NTIxZGNkMzJiMi4uMWVkNzhjOTEzZjliODVmNTgxMzJkYTdmNTMyNTU2NDhkMTE1YWFjMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5oCkBAIC03Myw2ICs3Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4IGFkOTRlMDdkYTdjMTNm
OWIxYjNjNGU3MGI2NmU1NjZhZmE3YTlmOGMuLmE4N2RlYjUwYWJiZTQ5ZmZmY2M0ZGVkZjUwZjQ0
M2FjYWQ1YTU5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE1hdGNoZXNBcnJheS5oCkBAIC00NSwxNiArNDUsMjggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc3ViY2xhc3NEYXRhKCkpCi0gICAg
ICAgICAgICAgICAgZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7Ci0gICAgICAgICAgICByZXR1cm4g
SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorICAgICAgICB7CisgICAgICAgICAg
ICBSZWdFeHBNYXRjaGVzQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBNYXRj
aGVzQXJyYXkqPihjZWxsKTsKKyAgICAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5zdWJjbGFzc0Rh
dGEoKSkKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5maWxsQXJyYXlJbnN0YW5jZShleGVj
KTsKKyAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgfQogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewotICAgICAgICAgICAg
aWYgKHN1YmNsYXNzRGF0YSgpKQotICAgICAgICAgICAgICAgIGZpbGxBcnJheUluc3RhbmNlKGV4
ZWMpOwotICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChleGVj
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICAgICAgcmV0dXJuIGdldE93blByb3BlcnR5
U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICB9CisKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKKyAgICAg
ICAgeworICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4oY2VsbCk7CisgICAgICAgICAgICBpZiAodGhpc09i
amVjdC0+c3ViY2xhc3NEYXRhKCkpCisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+ZmlsbEFy
cmF5SW5zdGFuY2UoZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAg
IH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmNwcAppbmRleCAyYjg0MzI0ZmZlODkxN2Q1MzFjOGM3NzMzZmE1MDE0Y2Y4MWI1
MDM0Li5hNjE5NzM2ODlhZTMyMmIwNjI5YmI3Zjk1ZGRjMmRhYzI4MzY0MDJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKQEAgLTkzLDcgKzkz
LDEyIEBAIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiAKIGJvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PFJlZ0V4cE9i
amVjdCwgSlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFibGUoZXhlYyksIHRoaXMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIFJlZ0V4cE9iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PFJlZ0V4cE9iamVjdCwgSlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0
ZTo6cmVnRXhwVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cE9iamVjdCo+KGNlbGwpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGU4YWY2ZDZiYzFmMzc0Yjk5MjFjOTBj
M2I2MDRkMmVmNTViOGM1MzkuLmM5MzAyYTUyMjM0YTk3MWI1Yjk5N2ViOWRjMWYyZjg1ZjMyZDRi
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBA
IC02Niw2ICs2Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIGV4ZWMoRXhl
Y1N0YXRlKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwdXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggYjFjNDQ3YWU4MTg1ZGE0OTY4OWY2Y2Y4ZjUw
ODJiZGE5ZTg0Yjc5MC4uM2UzYTE2OWZhOWIwNjJjZGMyZTQyOTdmNTY5NjA5YWQyMWYzYWM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUu
Y3BwCkBAIC02OSw3ICs2OSwxMiBAQCBSZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlwZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdAogCiBib29sIFJl
Z0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCiB7Ci0gICAgcmV0
dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxSZWdFeHBPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6
cmVnRXhwUHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cisg
ICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworfQorCitib29sIFJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90
PFJlZ0V4cE9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBQcm90b3R5cGVUYWJsZShleGVj
KSwgc3RhdGljX2Nhc3Q8UmVnRXhwUHJvdG90eXBlKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKIGJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmgKaW5kZXggY2EyYTI2ZDgxNTMzZjM0Y2RiNzg3N2JmMzVjYTdk
ZDc5NTllZjAwOC4uY2M4NDAzYTc1YjRiZjNiOTJkZTVhODRhYjIzY2E4MmExNjI0MjEzZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKQEAg
LTUwLDYgKzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGMxMzdjY2IxZDczYTA3NWRlNjg2M2FkYmJkYTQzMjU2MDRlMzczNWUuLjM3Yjkw
MmE1MzdhNDA5Y2JkNWEzZWRkOGRmNTU3ZGRiNzFiNzQ4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTYxLDcgKzYx
LDEyIEBAIHZvaWQgU3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQCiAKIGJvb2wgU3RyaW5nQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNG
dW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpzdHJpbmdDb25z
dHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVy
biBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30K
KworYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCAmc2xvdCkKK3sKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVy
bmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nQ29uc3RydWN0b3JUYWJsZShleGVj
KSwgc3RhdGljX2Nhc3Q8U3RyaW5nQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KIAogYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCA3MDBkZWFiNWY3ZWM4ODU3YjRmMzU2
MmIxMjQzZGQxMGE5ZTIzMTM1Li40YjE2OTY4YjQyMDhiMGI1MTQwMDJlNWUyNzEyYjFiY2E0MzE0
ZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRp
YyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBh
NjQ5OTllYWM3YWQ2ZjBlM2ExMTE1Yzc4NGY0MGJjMWFmNTBkZjU2Li4xYjk5YTA1Mjc3MjMwOGRi
ZTllYjEyNGZkZjNlN2M2ZGZkYzNiMTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTQzLDE2ICs0MywyOCBAQCB2b2lkIFN0cmluZ09i
amVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyog
c3RyaW5nKQogCiBib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7Ci0gICAgaWYgKGludGVybmFsVmFsdWUoKS0+Z2V0U3RyaW5nUHJvcGVydHlTbG90KGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0
aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIFN0cmluZ09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBTdHJp
bmdPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxTdHJpbmdPYmplY3QqPihjZWxsKTsK
KyAgICBpZiAodGhpc09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpLT5nZXRTdHJpbmdQcm9wZXJ0eVNs
b3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogICAgIAogYm9vbCBTdHJpbmdPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIGlmIChpbnRlcm5hbFZhbHVlKCktPmdldFN0
cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHJldHVybiBn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKwor
Ym9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7
CisgICAgU3RyaW5nT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0
Kj4oY2VsbCk7CisgICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKS0+Z2V0U3RyaW5n
UHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVybiB0
cnVlOyAgICAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNsb3QpOworICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIElkZW50aWZpZXI6
OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSwgc2xvdCk7CiB9CiAKIGJvb2wgU3RyaW5nT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggZmY5MWRiMzI0
ZjhjMGE4OWMyN2IwODEyMWU4MGQxOTI4ODkzMjM5NC4uYjg2NzgwNzZiZTYyYWM1MTgwMTI4ZjUz
NzNhYTM2ZmI0ZDg4MTE4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nT2JqZWN0LmgKQEAgLTQ3LDcgKzQ3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBTdHJpbmdPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIEpT
U3RyaW5nKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA1
MjFkMzBhODNlMzNjMjc0NmYzNjZjNTg1ODkwZTAwNDQyZDg2ZDVlLi44OGZiMmU5MjFhZTdkZmEz
YzAzYWM4MDZlMzMyOTdlMzRiZDJlZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTE0Nyw3ICsxNDcsMTIgQEAgdm9pZCBT
dHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqLCBKU1N0cmluZyoKIAogYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5
U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90ICZzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8U3Ry
aW5nT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OnN0cmluZ1RhYmxlKGV4ZWMpLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhl
YywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCit7CisgICAgcmV0dXJuIGdl
dFN0YXRpY0Z1bmN0aW9uU2xvdDxTdHJpbmdPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5n
VGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFN0cmluZ1Byb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCmluZGV4IDEyMTQzM2M1NjNhZjlkZTU0MWE2
NWMwN2E2N2M5YTBiMTM4MTJkNTIuLmM4OWE4OWJhOTUyZDk2Zjg1ZmI5MWE3MGE0OTJmOGQ3ZjEw
OGRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1By
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5oCkBAIC00Myw2ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAg
ICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBj
MmU0MTc5OTZjYmFlYjkzZjg5YjQwYWZlNWEyMDMxOTcyNDEwZmI4Li4zNWFiY2MxOWRmMzBhYTA0
NGYxMjM4NWQ1YTRmYWMzNDZmMDdlM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blBy
b3BlcnR5U2xvdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njk1OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBzdGF0aWMgdmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZXZlcnkgY2xh
c3MgdGhhdCBvdmVycmlkZXMKKyAgICAgICAgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QuICBU
aGUgdmlydHVhbCB2ZXJzaW9ucyBub3cgY2FsbCB0aGUgc3RhdGljIHZlcnNpb25zLgorICAgICAg
ICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIGluIGRlLXZpcnR1YWxpemluZyBKU0NlbGw6OmdldE93
blByb3BlcnR5U2xvdC4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAo
VXNlck9iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBVc2VyT2JqZWN0
SW1wLmg6CisKIDIwMTEtMTAtMDYgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KIAogICAgICAgICBXaGVuIGJ1aWxkaW5nIHdpdGggY2xhbmcsIGVuYWJsZSAtV2dsb2JhbC1j
b25zdHJ1Y3RvcnMgYW5kIC1XZXhpdC10aW1lLWRlc3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNjMyNTk5NGYxZTFjZjljMjA5MGZkODJmNmEwMjNj
OTViNDAxMmQyYS4uOTRlYjE4ZTAxNzcwYzk0MzA3Mjc2YTJiN2QwOGQ0ZDg1OWVhNDM1MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMTMwLDI1ICsxMzAsMzEg
QEAgSlNWYWx1ZSBVc2VyT2JqZWN0SW1wOjp1c2VyT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW4KIAogYm9vbCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBpZiAoIWZKU1VzZXJPYmplY3QpCisgICAg
cmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OworfQorCitib29sIFVzZXJPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgVXNlck9iamVjdEltcCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKTsKKyAgICBpZiAoIXRoaXNPYmplY3QtPmZKU1Vz
ZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIENGU3RyaW5nUmVmIGNmUHJv
cE5hbWUgPSBJZGVudGlmaWVyVG9DRlN0cmluZyhwcm9wZXJ0eU5hbWUpOwotICAgIEpTVXNlck9i
amVjdCAqanNSZXN1bHQgPSBmSlNVc2VyT2JqZWN0LT5Db3B5UHJvcGVydHkoY2ZQcm9wTmFtZSk7
CisgICAgSlNVc2VyT2JqZWN0KiBqc1Jlc3VsdCA9IHRoaXNPYmplY3QtPmZKU1VzZXJPYmplY3Qt
PkNvcHlQcm9wZXJ0eShjZlByb3BOYW1lKTsKICAgICBSZWxlYXNlQ0ZUeXBlKGNmUHJvcE5hbWUp
OwogICAgIGlmIChqc1Jlc3VsdCkgewotICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCB1c2Vy
T2JqZWN0R2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgdXNlck9i
amVjdEdldHRlcik7CiAgICAgICAgIGpzUmVzdWx0LT5SZWxlYXNlKCk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIEpTVmFsdWUga2pzVmFsdWUgPSB0b1ByaW1p
dGl2ZShleGVjKTsKKyAgICAgICAgSlNWYWx1ZSBranNWYWx1ZSA9IHRoaXNPYmplY3QtPnRvUHJp
bWl0aXZlKGV4ZWMpOwogICAgICAgICBpZiAoIWtqc1ZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkp
IHsKICAgICAgICAgICAgIEpTT2JqZWN0KiBranNPYmplY3QgPSBranNWYWx1ZS50b09iamVjdChl
eGVjKTsKICAgICAgICAgICAgIGlmIChranNPYmplY3QtPmdldFByb3BlcnR5U2xvdChleGVjLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogdm9pZCBV
c2VyT2JqZWN0SW1wOjpwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCAyZDU2ZDRhMDlkNzY2ZDc0N2VjNzU1MzU5ZDIxMDU1
NTAxZmExMjhlLi4zODk3Nzc5YTczNDY3ZWE1ZTkyMzdkOTNkNzBjOWE3ZTZlZDMzYTAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBKU1ZhbHVlIGNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYyk7
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVu
dGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwog
CiAgICAgSlNWYWx1ZSB0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBQcmVmZXJyZWRQcmltaXRpdmVU
eXBlIHByZWZlcnJlZFR5cGUgPSBOb1ByZWZlcmVuY2UpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU2
MjAyNzQyODJlYWFiYjExMjYwNmZhNGIwZjJjOWJjNGE4MGQwOGMuLjVkOGQxZmZkNjA4Yjg1YmU4
NzZiZDk5M2RkMzNkODhjYTQ1ODc5ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAx
MS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMu
CisKKyAgICAgICAgQWRkZWQgc3RhdGljIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlTbG90IHRv
IGV2ZXJ5IGNsYXNzIHRoYXQgb3ZlcnJpZGVzCisgICAgICAgIEpTQ2VsbDo6Z2V0T3duUHJvcGVy
dHlTbG90LiAgVGhlIHZpcnR1YWwgdmVyc2lvbnMgbm93IGNhbGwgdGhlIHN0YXRpYyB2ZXJzaW9u
cy4KKyAgICAgICAgVGhpcyBpcyB0aGUgZmlyc3Qgc3RlcCBpbiBkZS12aXJ0dWFsaXppbmcgSlND
ZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93
blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5o
OgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxs
YmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcXQv
cXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50
aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlk
Z2UvcXQvcXRfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuaDoKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKwogMjAxMS0xMC0wNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIE1ha2UgSWNvbkxvYWRlciBhIENhY2hlZFJlc291cmNlQ2xpZW50IGluc3RlYWQgb2Yg
YSBTdWJyZXNvdXJjZUxvYWRlckNsaWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZmJiNDZmZTgyYzZkNmM5MmIyNDUzMTQxOTc4
Zjc4NTg1MGRiOWUwZi4uNmQyNmY5ODVjNzFiNmM0YjgzYjBhMzAyOTg5YjA3ZjBiYTMyN2IxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAK
QEAgLTEwMiw3ICsxMDIsMTIgQEAgVVN0cmluZyBKU0RPTVdpbmRvd1NoZWxsOjpjbGFzc05hbWUo
KSBjb25zdAogCiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQogewotICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldE93blByb3BlcnR5U2xvdCh0aGlz
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworfQorCitib29sIEpTRE9NV2luZG93U2hlbGw6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKS0+bV93aW5kb3ctPmdldE93
blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9N
V2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmlu
ZGV4IDQ2NDUzODE5ZmFkZDRhODFlNmZlNGU0OGQ0YjNmNGQwMWE5ODI0MDEuLmI1ZGQzYTZhMTZj
MmNkOGE2M2Y5OGEzZjkyNzk4MzUyYmRmMGQ2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKQEAgLTgxLDYgKzgxLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiwg
SlNDOjpTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6VVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYzFh
ZGViM2UwOGMzZDFhNGRhMzNiMjAyMjQ1MTRmYzQzMjZjMWIxZC4uMjkxOWZhM2ExNjMyNGJlMzFi
NTJkMDNmZGE3NDcxYTdhMzkyZWZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIE9iamNGYWxsYmFj
a09iamVjdEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggY2Y3ZjIyZThhN2Q1YWU5NzlkNGZkMWQ5Nzli
MDk2YWI3MmFhNDkyOS4uYjYyZjUwMmI5MzkyZTM3ZDkwMzk3NmZkZDJiZDk1NzRkYmM2MjkxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjA1LDcg
KzIwNSwxMiBAQCB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCi1ib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIE9i
amNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAg
IHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywgaWRlbnRpZmllciwgc2xvdCk7
Cit9CisKK2Jvb2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKICAgICAvLyBrZWVwIHRoZSBwcm90b3R5cGUgZnJvbSBnZXR0aW5nIGNhbGxlZCBpbnN0ZWFk
IG9mIGp1c3QgcmV0dXJuaW5nIGZhbHNlCiAgICAgc2xvdC5zZXRVbmRlZmluZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCBkOTY1ZTk0ZTNkMzE0ZWY4Nzg0
YzBhZjlhOTJhM2I1OWRhOTFmNjIzLi5mYzFjMzExMDU2ODNiY2M0ODVhMzAxNGU5ZWZlOWY3YTY5
MDY4NTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCkBAIC0xNTAx
LDE4ICsxNTAxLDI0IEBAIENhbGxUeXBlIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldENhbGxEYXRh
KEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIAogYm9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9k
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKKyAgICByZXR1cm4gZ2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jvb2wgUXRS
dW50aW1lTWV0YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK3sKKyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8UXRSdW50aW1lTWV0YU1ldGhvZCo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ImNvbm5lY3QiKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNvbm5lY3RHZXR0ZXIp
OworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5jb25uZWN0
R2V0dGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eU5h
bWUgPT0gImRpc2Nvbm5lY3QiKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGRpc2Nv
bm5lY3RHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2Jq
ZWN0LT5kaXNjb25uZWN0R2V0dGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNl
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewotICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBsZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gUXRSdW50aW1lTWV0aG9kOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gUXRSdW50
aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAgLTE3NDcsMTIgKzE3NTMsMTgg
QEAgQ2FsbFR5cGUgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogCiBib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6
OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBRdFJ1
bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQoreworICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKj4oY2VsbCk7CiAgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7Ci0gICAgICAg
IHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGxlbmd0aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPmxlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBRdFJ1bnRpbWVN
ZXRob2Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9x
dC9xdF9ydW50aW1lLmgKaW5kZXggYWVjMTFjYTZkODE1YTIzOWVhYmUwNzg3NDZiMWQ5YmI5YmMy
ZDE1NC4uZjI3NDdiMTZmYWJlMDIyYTAyMjcwMTljNzkwYmQ0ZjU4MzUxMWM2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGll
cyk7CiAKQEAgLTIwMSw2ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Q
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25N
b2RlIG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBiNjg4MmVkZmUwNzU1MWU2YmMwNGVhY2YyMmZk
ZTM3YmM3ZDExMmQ5Li40NmM0Mjk1MGZjNTUwYjljZjFlY2I3ZGJjMWZjZWZiYTllYWJkYmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC04MCwyMSArODAsMjcg
QEAgdm9pZCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGUKIAogYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQogeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpcywgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBSdW50aW1lQXJyYXk6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCit7CisgICAgUnVu
dGltZUFycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7
Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXMsIGxlbmd0aEdldHRlcik7Cisg
ICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPmxl
bmd0aEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKICAgICBib29s
IG9rOwogICAgIHVuc2lnbmVkIGluZGV4ID0gcHJvcGVydHlOYW1lLnRvQXJyYXlJbmRleChvayk7
CiAgICAgaWYgKG9rKSB7Ci0gICAgICAgIGlmIChpbmRleCA8IGdldExlbmd0aCgpKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7Cisg
ICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPmdldExlbmd0aCgpKSB7CisgICAgICAgICAg
ICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCB0aGlzT2JqZWN0LT5pbmRl
eEdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KICAg
ICAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgUnVudGltZUFy
cmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKQEAg
LTEyMiwxMiArMTI4LDE4IEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwCiAKIGJvb2wgUnVudGlt
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCB1bnNpZ25lZCBpbmRl
eCwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIGlmIChpbmRleCA8IGdldExlbmd0aCgpKSB7
Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpcywgaW5kZXgsIGluZGV4R2V0dGVyKTsK
KyAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIGluZGV4LCBzbG90KTsK
K30KKworYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sK
KyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkq
PihjZWxsKTsKKyAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgeworICAg
ICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCB0aGlzT2JqZWN0LT5p
bmRleEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBpbmRleCwgc2xvdCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgaW5k
ZXgsIHNsb3QpOwogfQogCiB2b2lkIFJ1bnRpbWVBcnJheTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBhMDg3
N2EwNjJkZDY5OWMxNzVkZTE2ZGYzY2FmYWFkZjEwY2M4ZGMyLi43MDI0Yjg4NDQyMjY4ZGNlMWNj
YTNhZWJjOGM2MmJlNGEwODM5YjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmgKQEAgLTUxLDcgKzUxLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1v
ZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCwgUHJvcGVydHlTbG90
Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgdmly
dHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggMGU1NWMxNjRj
YjRkNzJlYjU3MzY5YmI5NmVmOGUxMjdlMzBhN2U1OC4uOWZkZTNiMmYxYjYyN2IwN2M2ZWJkMDBk
ZDdhYWIyYmMxYzFjYjBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwCkBAIC03MSwxMiArNzEsMTggQEAgSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0
ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKIAogYm9vbCBS
dW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKIHsKKyAgICByZXR1
cm4gZ2V0T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9
CisKK2Jvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCAmc2xvdCkKK3sKKyAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8UnVudGltZU1ldGhvZCo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewotICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3Rv
bSh0aGlzLCBsZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0
aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEludGVybmFsRnVuY3Rpb246OmdldE93blByb3Bl
cnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBJbnRlcm5hbEZ1
bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAogYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciAmZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgKaW5kZXggMzU0YWNmODg2YTBjMzJlZDlkNzYwYjUyN2VmZTVhNDBlN2Q5MWYxMi4uMjll
MzY2NDg0NGYxYjYxNWQ2Mzg0ZjEyODJhZDAyMWEwM2U0MjFmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTY4LDYgKzY4LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0
ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwg
Y29uc3QgSWRlbnRpZmllciYpOwogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAKICAgICBPd25QdHI8QmluZGluZ3M6Ok1ldGhvZExpc3Q+IF9tZXRob2RMaXN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggZGYxMWZlYjZjYTk4
ZWFjOTIyYThhMGYzNmMzYjA3OWQzZGM1Y2Y1ZS4uODg3YThlMjcxYWE2NmY1ODE0ZmI5ZDFkZmE4
ZWQyM2QyNzE5OWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CkBAIC0xMTgsMTIgKzExOCwxOCBAQCBKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZQogCiBib29sIFJ1
bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIGlmICgh
bV9pbnN0YW5jZSkgeworICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3QodGhpcywgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKK30KKworYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQoreworICAgIFJ1bnRpbWVPYmplY3Qq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oY2VsbCk7CisgICAgaWYg
KCF0aGlzT2JqZWN0LT5tX2luc3RhbmNlKSB7CiAgICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vy
cm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIFJlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSBtX2luc3RhbmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4g
aW5zdGFuY2UgPSB0aGlzT2JqZWN0LT5tX2luc3RhbmNlOwogCiAgICAgaW5zdGFuY2UtPmJlZ2lu
KCk7CiAgICAgCkBAIC0xMzMsNyArMTM5LDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAg
ICAgICAgLy8gU2VlIGlmIHRoZSBpbnN0YW5jZSBoYXMgYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZp
ZWQgbmFtZS4KICAgICAgICAgRmllbGQgKmFGaWVsZCA9IGFDbGFzcy0+ZmllbGROYW1lZChwcm9w
ZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgpKTsKICAgICAgICAgaWYgKGFGaWVsZCkgewotICAgICAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZmllbGRHZXR0ZXIpOworICAgICAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpc09iamVjdCwgdGhpc09iamVjdC0+ZmllbGRHZXR0ZXIpOwogICAgICAg
ICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0gZWxzZSB7CkBAIC0xNDEsNyArMTQ3LDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAg
ICAgICAgICAgIC8vIHRoYXQgbWV0aG9kLgogICAgICAgICAgICAgTWV0aG9kTGlzdCBtZXRob2RM
aXN0ID0gYUNsYXNzLT5tZXRob2RzTmFtZWQocHJvcGVydHlOYW1lLCBpbnN0YW5jZS5nZXQoKSk7
CiAgICAgICAgICAgICBpZiAobWV0aG9kTGlzdC5zaXplKCkgPiAwKSB7Ci0gICAgICAgICAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpcywgbWV0aG9kR2V0dGVyKTsKKyAgICAgICAgICAgICAgICBz
bG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5tZXRob2RHZXR0ZXIpOwogICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE1MCw3ICsxNTYsNyBAQCBib29sIFJ1bnRpbWVPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcgogCiAgICAgICAgIC8vIFRyeSBhIGZhbGxiYWNrIG9iamVjdC4KICAgICAgICAgaWYg
KCFhQ2xhc3MtPmZhbGxiYWNrT2JqZWN0KGV4ZWMsIGluc3RhbmNlLmdldCgpLCBwcm9wZXJ0eU5h
bWUpLmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGZh
bGxiYWNrT2JqZWN0R2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmpl
Y3QsIHRoaXNPYmplY3QtPmZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKICAgICAgICAgICAgIGluc3Rh
bmNlLT5lbmQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0xNTgs
NyArMTY0LDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXIKICAgICAgICAgCiAgICAgaW5zdGFu
Y2UtPmVuZCgpOwogICAgIAotICAgIHJldHVybiBpbnN0YW5jZS0+Z2V0T3duUHJvcGVydHlTbG90
KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGluc3RhbmNlLT5n
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5k
ZXggMWFjMjFhZDQ4ZjI4MzdjOTYwMDhhZTM1MDgxZmMwYzAzOTNhNjFhMy4uNDQ5MGQ3NDM2NjYz
YWE2NWRmNGI4ODkyNTlhZGNhZjFiOGZiYmQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJ1bnRp
bWVPYmplY3QoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgdmlydHVhbCB2b2lk
IHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDM5
MDA0N2IyMmM2YWFjNWZkNjNlOGY1NzRhOTU1ZTQ3MmY3NGMwOGEuLmFjODA4NGQ2N2QzNzczYWEw
NmZjYmUxNmY2ODliOTAxZGM3MzNkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
MS0xMC0wNyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdGF0aWMgdmVyc2lvbiBvZiBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1OTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzdGF0aWMg
dmVyc2lvbiBvZiBnZXRPd25Qcm9wZXJ0eVNsb3QgdG8gZXZlcnkgY2xhc3MgdGhhdCBvdmVycmlk
ZXMKKyAgICAgICAgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QuICBUaGUgdmlydHVhbCB2ZXJz
aW9ucyBub3cgY2FsbCB0aGUgc3RhdGljIHZlcnNpb25zLgorICAgICAgICBUaGlzIGlzIHRoZSBm
aXJzdCBzdGVwIGluIGRlLXZpcnR1YWxpemluZyBKU0NlbGw6OmdldE93blByb3BlcnR5U2xvdC4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgorCiAyMDExLTEw
LTA3ICBRaSBaaGFuZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0sy
XSBBcHBsaWNhdGlvbkNhY2hlIExheW91dFRlc3RzIGZhaWxlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmlu
ZGV4IGFlOWI5ZTg0NWEyYzEyZjAwOWZkYTY3YmJmODU1MDhiNzRjM2QxZDAuLjI2MDM3MDFkNmQ3
M2ZlODY3ZjA5ZmM2ZDRmNjljMmVjMzQ1YmU5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTI1
Myw4ICsyNTMsMTQgQEAgQ29uc3RydWN0VHlwZSBKU05QT2JqZWN0OjpnZXRDb25zdHJ1Y3REYXRh
KENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiAKIGJvb2wgSlNOUE9iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzLCAmc19pbmZvKTsKLSAgICBpZiAoIW1fbnBPYmplY3QpIHsKKyAgICByZXR1cm4gZ2V0
T3duUHJvcGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK2Jv
b2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK3sKKyAgICBKU05QT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNOUE9iamVj
dCo+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNf
aW5mbyk7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0KSB7CiAgICAgICAgIHRocm93
SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpA
QCAtMjYyLDE0ICsyNjgsMTQgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU4KICAgICBOUElkZW50
aWZpZXIgbnBJZGVudGlmaWVyID0gbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIocHJvcGVydHlO
YW1lKTsKIAogICAgIC8vIEZpcnN0LCBjaGVjayBpZiB0aGUgTlBPYmplY3QgaGFzIGEgcHJvcGVy
dHkgd2l0aCB0aGlzIG5hbWUuCi0gICAgaWYgKG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVy
dHkgJiYgbV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50
aWZpZXIpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIHByb3BlcnR5R2V0dGVyKTsK
KyAgICBpZiAodGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSAmJiB0
aGlzT2JqZWN0LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5KHRoaXNPYmplY3QtPm1f
bnBPYmplY3QsIG5wSWRlbnRpZmllcikpIHsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgdGhpc09iamVjdC0+cHJvcGVydHlHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKICAgICAvLyBTZWNvbmQsIGNoZWNrIGlmIHRoZSBOUE9iamVjdCBoYXMgYSBtZXRo
b2Qgd2l0aCB0aGlzIG5hbWUuCi0gICAgaWYgKG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzTWV0aG9k
ICYmIG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzTWV0aG9kKG1fbnBPYmplY3QsIG5wSWRlbnRpZmll
cikpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbWV0aG9kR2V0dGVyKTsKKyAgICBp
ZiAodGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5oYXNNZXRob2QgJiYgdGhpc09iamVj
dC0+bV9ucE9iamVjdC0+X2NsYXNzLT5oYXNNZXRob2QodGhpc09iamVjdC0+bV9ucE9iamVjdCwg
bnBJZGVudGlmaWVyKSkgeworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlz
T2JqZWN0LT5tZXRob2RHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaAppbmRleCAyNjRhNjM1YzAxNWY0OTYxODcyNjY3OGZiMWIzZmU3MTNlZmI5
ZjM1Li4yOTM5ZGI5NjhiY2FkNmEwYzU4ZmEzMmI0ZjY0YzI2YjA0MzY3Y2QzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmgKQEAgLTg0LDYgKzg0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIEpTQzo6Q29uc3Ry
dWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwogCiAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3Bl
cnR5U2xvdCYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>