<?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>71523</bug_id>
          
          <creation_ts>2011-11-03 17:04:35 -0700</creation_ts>
          <short_desc>De-virtualize JSObject::getOwnPropertyDescriptor</short_desc>
          <delta_ts>2011-11-09 13:09:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>70960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>495894</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-03 17:04:35 -0700</bug_when>
    <thetext>We&apos;re de-virtualizing JSObject. defineOwnPropertyDescriptor is a virtual method in JSObject.  Thus, we need to de-virtualize defineOwnPropertyDescriptor.  We&apos;ll put it in the MethodTable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496465</commentid>
    <comment_count>1</comment_count>
      <attachid>113713</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-04 14:21:12 -0700</bug_when>
    <thetext>Created attachment 113713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496479</commentid>
    <comment_count>2</comment_count>
      <attachid>113716</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-04 14:37:51 -0700</bug_when>
    <thetext>Created attachment 113716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498503</commentid>
    <comment_count>3</comment_count>
      <attachid>113716</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-11-08 16:18:25 -0800</bug_when>
    <thetext>Comment on attachment 113716
Patch

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

&gt; Source/JavaScriptCore/runtime/StringObject.h:33
&gt; +        virtual ~StringObject();

We tend to use a dummy virtual function (called dummyVirtual()) to anchor instead of the destructor.

&gt; Source/WebCore/bridge/runtime_method.h:40
&gt; +    ~RuntimeMethod();

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499286</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-11-09 13:09:55 -0800</bug_when>
    <thetext>Committed r99754: &lt;http://trac.webkit.org/changeset/99754&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113713</attachid>
            <date>2011-11-04 14:21:12 -0700</date>
            <delta_ts>2011-11-04 14:37:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71523-20111104142111.patch</filename>
            <type>text/plain</type>
            <size>155376</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzMDIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE3
YTNlYjk2YTc3MWNiY2RkYmMzYjVhMjMwZjI1YzlmODE5ZjdmMTEuLjY5NDgyMzM3ZDhmZmY2M2M4
OGYyM2IxMWQ2MjE4NTgxYThmOTRiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDExNyBAQAorMjAxMS0xMS0wNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIERlLXZpcnR1YWxpemUgSlNPYmplYzo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MTUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0byB0aGUgTWV0aG9kVGFibGUsIGNoYW5n
ZWQgYWxsIG9mIHRoZSAKKyAgICAgICAgdmlydHVhbCB2ZXJzaW9ucyBvZiBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IgdG8gc3RhdGljIG9uZXMsIGFuZCAKKyAgICAgICAgY2hhbmdlZCBhbGwgb2Yg
dGhlIGNhbGwgc2l0ZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RU
YWJsZS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVm
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAg
ICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0Fy
Z3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRp
bWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OkFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0
ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQnl0
ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAg
ICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnByb3BlcnR5SXNFbnVtZXJhYmxl
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDogUmVtb3ZlZCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IsIHNpbmNlIHRoaXMgc2VlbXMgdG8gYmUgYSByZWxpYyBmcm9tIGEg
CisgICAgICAgIGJ5Z29uZSBlcmEgd2hlbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Igd2FzIHJv
b3RlZCBpbiBKU0NlbGwgcmF0aGVyIHRoYW4gSlNPYmplY3QuICBUaGVyZSB3ZXJlIAorICAgICAg
ICBubyBjYWxsIHNpdGVzIGZvciB0aGlzIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yIGluIHRoZSBlbnRpcmUgcHJvamVjdC4KKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6
CisgICAgICAgICogcnVudGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljUHJv
cGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljRnVuY3Rpb25EZXNjcmlw
dG9yKToKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yKToKKyAgICAgICAg
KiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpNYXRoT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpO
dW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6flN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6
OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKIDIwMTEtMTEtMDQg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gUmVmYWN0b3IgYW5kIGNsZWFuIHVwIHRoZSBxbWFrZSBidWlsZCBzeXN0ZW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmOGU2MGUxNjkxOTFiZTQxMDM5YzA4MDRlYTE0ZWJlZDQ2NzZiYzkxLi5mOTZjYTlk
ZThiZjI3YThjMTczYWRlZDgxNmQwMzFmYzcwNTIwZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjggQEAKKzIwMTEtMTEtMDQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTT2JqZWM6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuCisKKyAgICAgICAgQWRkZWQgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIHRvIHRo
ZSBNZXRob2RUYWJsZSwgY2hhbmdlZCBhbGwgb2YgdGhlIAorICAgICAgICB2aXJ0dWFsIHZlcnNp
b25zIG9mIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0byBzdGF0aWMgb25lcywgYW5kIAorICAg
ICAgICBjaGFuZ2VkIGFsbCBvZiB0aGUgY2FsbCBzaXRlcyB0byB0aGUgY29ycmVzcG9uZGluZyBs
b29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb250ZXh0Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5
RGVzY3JpcHRvckJvZHkpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFy
YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6Cisg
ICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIGJyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZU1ldGFN
ZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgor
ICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9k
Ojp+UnVudGltZU1ldGhvZCk6IEFkZGVkIGFuIGVtcHR5IG91dC1vZi1saW5lIHZpcnR1YWwgZGVz
dHJ1Y3RvciB0byBwcmV2ZW50CisgICAgICAgIGEgd2VhayB2dGFibGUuCisgICAgICAgIChKU0M6
OlJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmg6IENoYW5nZWQgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIGZy
b20gcHJpdmF0ZSB0byBwcm90ZWN0ZWQgdG8gYWxsb3cgCisgICAgICAgIHN1YmNsYXNzZXMgdG8g
dXNlIGl0IGluIHRoZWlyIE1ldGhvZFRhYmxlcy4KKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoK
KwogMjAxMS0xMS0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IEltcGxlbWVudCBhbGxvdy1wb3B1cHMgZm9yIGlmcmFtZUBzYW5kYm94CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YmQ5N2QxZWYyOTdkZDAxMmJlMWM4YzU4YzRlNzEyMzcxNWRmZTM2Ny4uZGRjOGQ0ZTkwYjEzMmQ4
MWU5ZTMwMDc3MjUyYjY4YWM5YjhiNGJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDExLTExLTA0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTIzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yIHRvIHRoZSBNZXRob2RUYWJsZSwgY2hhbmdlZCBhbGwgb2YgdGhl
IAorICAgICAgICB2aXJ0dWFsIHZlcnNpb25zIG9mIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0
byBzdGF0aWMgb25lcywgYW5kIAorICAgICAgICBjaGFuZ2VkIGFsbCBvZiB0aGUgY2FsbCBzaXRl
cyB0byB0aGUgY29ycmVzcG9uZGluZyBsb29rdXAgaW4gdGhlIE1ldGhvZFRhYmxlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisKIDIwMTEtMTEt
MDMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
TmV0c2NhcGVQbHVnaW46OmNvbnZlcnRGcm9tUm9vdFZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggNjI1MDgyZWQzMWFmMzBhMDllMWZiNThi
ODBkY2Q5MzEwZDhlZGQ3MS4uMjZmMzg3Y2I5ZmY0ZjBhMzY1NDgxNTIxODhhYTM1MzRjN2U3NTU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAg
LTE3OCw3ICsxNzgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBVU3RyaW5nIGNsYXNzTmFtZShj
b25zdCBKU09iamVjdCopOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgcHV0KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA5YjEwMGJjZDgyZjc5NDUwMDBiN2VkMzRmNTJhNDJk
ZWFkNjk1MDQxLi44YzRkNGQ5ZmU2YjZmYWViNGZiM2VjYmU1OGY3NjYxNmFmZDkyNDkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5j
dGlvbnMuaApAQCAtMTg0LDEwICsxODQsMTEgQEAgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywKIH0K
IAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLWJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKKyAgICBKU0NhbGxiYWNrT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KG9iamVjdCk7
CiAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgaWYgKG1ldGhvZFRhYmxlKCktPmdldE93blBy
b3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgaWYgKHRo
aXNPYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIElkZWFsbHkgd2Ugc2hvdWxk
IHJldHVybiBhbiBhY2Nlc3MgZGVzY3JpcHRvciwgYnV0IHJldHVybmluZyBhIHZhbHVlIGRlc2Ny
aXB0b3IgaXMgYmV0dGVyIHRoYW4gbm90aGluZy4KICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9IHNs
b3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKCFleGVjLT5oYWRF
eGNlcHRpb24oKSkKQEAgLTE5OSw3ICsyMDAsNyBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gUGFyZW50OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBy
ZXR1cm4gUGFyZW50OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDk2YTVjMDYyNmNi
MGIyYmYyZTA2YjlhYjI1MDExODNmZDM5ZTRlNzIuLjJkNjZhY2JlNmMyNmQ4YjU4MmFjMjBhOTk3
ZWM0OGEwMzNkN2QxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cApAQCAtMTIxLDYgKzEyMSw3IEBAIF9fWk4zSlNDMTFKU0J5dGVBcnJheTEwcHV0QnlJbmRleEVQ
TlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzExSlNCeXRl
QXJyYXkxNWNyZWF0ZVN0cnVjdHVyZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxP
YmplY3RFTlNfN0pTVmFsdWVFUEtOU185Q2xhc3NJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5
MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTlnZXRP
d25Qcm9wZXJ0eU5hbWVzRVBOU184SlNPYmplY3RFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCitfX1pOM0pTQzExSlNCeXRlQXJyYXky
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMTFKU0J5
dGVBcnJheTI1Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNT
dGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5M3B1dEVQTlNf
NkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNf
MTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXk2c19pbmZvRQpAQCAtMTU2
LDcgKzE1Nyw2IEBAIF9fWk4zSlNDMTJTYW1wbGluZ1Rvb2w1c2V0dXBFdgogX19aTjNKU0MxMlNt
YWxsU3RyaW5nczE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNK
U0MxMlNtYWxsU3RyaW5nczI3Y3JlYXRlU2luZ2xlQ2hhcmFjdGVyU3RyaW5nRVBOU18xMkpTR2xv
YmFsRGF0YUVoCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJK
U0dsb2JhbERhdGFFUE5TXzhKU1N0cmluZ0UKLV9fWk4zSlNDMTJTdHJpbmdPYmplY3QyNGdldE93
blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNf
MThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0NnNfaW5mb0UKIF9f
Wk4zSlNDMTJTdHJpbmdPYmplY3RDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVF
CiBfX1pOM0pTQzEzSlNGaW5hbE9iamVjdDZzX2luZm9FCkBAIC0xNzIsNyArMTcyLDcgQEAgX19a
TjNKU0MxNEpTR2xvYmFsT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNs
b3RWaXNpdG9yRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTZhZGRTdGF0aWNHbG9iYWxzRVBO
UzBfMThHbG9iYWxQcm9wZXJ0eUluZm9FaQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MTdwdXRX
aXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1
ZUVqCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpT
Q2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RF
Ci1fX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitf
X1pOM0pTQzE0SlNHbG9iYWxPYmplY3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOEpT
T2JqZWN0RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVz
Y3JpcHRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlF
eGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlT
bG90RQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0NGluaXRFUE5TXzhKU09iamVjdEUKIF9fWk4z
SlNDMTRKU0dsb2JhbE9iamVjdDZzX2luZm9FCkBAIC0zMjYsNyArMzI2LDcgQEAgX19aTjNKU0M4
SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5QnlJbmRleEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0
ZUVqCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlND
OEpTT2JqZWN0MjJmaWxsR2V0dGVyUHJvcGVydHlTbG90RVJOU18xMlByb3BlcnR5U2xvdEVQTlNf
MTZXcml0ZUJhcnJpZXJCYXNlSU5TXzdVbmtub3duRUVFCiBfX1pOM0pTQzhKU09iamVjdDIzYWxs
b2NhdGVQcm9wZXJ0eVN0b3JhZ2VFUk5TXzEySlNHbG9iYWxEYXRhRW1tCi1fX1pOM0pTQzhKU09i
amVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVu
dGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDOEpTT2JqZWN0MjRnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JFUFMwX1BOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDOEpTT2JqZWN0MjVnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0
eVNsb3RFCiBfX1pOM0pTQzhKU09iamVjdDNwdXRFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19a
TjNKU0M4SlNPYmplY3Q2c19pbmZvRQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBmNjE1ODQ3ZjUzMTk1ZDNkYWUwZWQ1Y2JhOGEz
OTlhZTZlNTQ3ZmFiLi5iMGEzMTljNzc1YzVmN2UzY2UwYjM5ZmQxNjBjNzgxM2M3OWVhNThjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgpAQCAtMTkwLDEwICsxOTAsOSBAQCBFWFBPUlRTCiAgICAgP2dldENhbGxEYXRhQEpTQ2VsbEBK
U0NAQFNBP0FXNENhbGxUeXBlQDJAUEFWMTJAQUFUQ2FsbERhdGFAMkBAWgogICAgID9nZXRDb25z
dHJ1Y3REYXRhQEpTQ2VsbEBKU0NAQFNBP0FXNENvbnN0cnVjdFR5cGVAMkBQQVYxMkBBQVRDb25z
dHJ1Y3REYXRhQDJAQFoKICAgICA/Z2V0T2JqZWN0QEpTQ2VsbEBKU0NAQFFBRVBBVkpTT2JqZWN0
QDJAWFoKLSAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
VUFFX05QQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9y
QDJAQFoKLSAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTT2JqZWN0QEpTQ0BAVUFFX05Q
QVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoK
LSAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTU3RyaW5nQEpTQ0BARUFFX05QQVZFeGVj
U3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKLSAgICA/
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQFN0cmluZ09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCisgICAgP2dl
dE93blByb3BlcnR5RGVzY3JpcHRvckBKU0J5dGVBcnJheUBKU0NAQFNBX05QQVZKU09iamVjdEAy
QFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBA
WgorICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNHbG9iYWxPYmplY3RASlNDQEBTQV9O
UEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlE
ZXNjcmlwdG9yQDJAQFoKKyAgICA/Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQEpTT2JqZWN0QEpT
Q0BAU0FfTlBBVjEyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURl
c2NyaXB0b3JAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTQnl0ZUFycmF5QEpTQ0BA
U0FYUEFWSlNPYmplY3RAMkBQQVZFeGVjU3RhdGVAMkBBQVZQcm9wZXJ0eU5hbWVBcnJheUAyQFc0
RW51bWVyYXRpb25Nb2RlQDJAQFoKICAgICA/Z2V0T3duUHJvcGVydHlOYW1lc0BKU09iamVjdEBK
U0NAQFNBWFBBVjEyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVt
ZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTVmFyaWFibGVPYmpl
Y3RASlNDQEBTQVhQQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFy
cmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBmNmMyNDJiYThkY2Ri
NzU3MGQ0YzBlYTIzNWE3YTUzNzkwOWNiODkzLi4zY2U5YWEyZjFjYzcxNzNhYTgzMWJmY2JlZGNi
MGMwMmY3MWIzNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtOTAsOSArOTAsMTAgQEAgdm9pZCBEZWJ1Z2dl
ckFjdGl2YXRpb246OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBleGVjLAogICAgIHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi0+bWV0aG9kVGFibGUoKS0+
Z2V0UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LT5tX2FjdGl2YXRpb24uZ2V0KCksIGV4ZWMsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1ib29sIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIERlYnVnZ2Vy
QWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIG1fYWN0aXZhdGlvbi0+Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAg
RGVidWdnZXJBY3RpdmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RGVidWdnZXJBY3Rp
dmF0aW9uKj4ob2JqZWN0KTsKKyAgICByZXR1cm4gdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5t
ZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdC0+bV9hY3Rp
dmF0aW9uLmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB2b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6ZGVmaW5lR2V0dGVyKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggMGJjYjEzM2EzZGQy
NzUxZTU1ODI0MjBhOTNiNDY5NmE0OTc5Y2EyNi4uOTZhZjVlZjUxYjJhOGIwMjJlNGI5NjQxZGZk
ZTYyNTc0MTNlM2Q1MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7
CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQ2VsbCosIEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIGdl
dE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJh
eSYsIEVudW1lcmF0aW9uTW9kZSk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNP
YmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIGRlZmluZUdldHRlcihKU09iamVjdCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAgICAgICAgc3RhdGljIHZvaWQgZGVmaW5lU2V0
dGVyKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAppbmRleCBlZGU2YTkwYWJj
ZGZiNDNkMjIxMzQyODQ4ZmVkYjRkZWRhZTI4ZTk3Li5lMjAwODQ5YmQ5NzZkZTg2YTdmMzljMDgx
OGYwYzQxN2FkMTNiOTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5jcHAKQEAgLTIxNSwzNSArMjE1LDM2IEBAIGJvb2wgQXJndW1lbnRzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpCiAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBBcmd1bWVudHM6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQogeworICAgIEFyZ3VtZW50cyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEFyZ3VtZW50
cyo+KG9iamVjdCk7CiAgICAgYm9vbCBpc0FycmF5SW5kZXg7CiAgICAgdW5zaWduZWQgaSA9IHBy
b3BlcnR5TmFtZS50b0FycmF5SW5kZXgoaXNBcnJheUluZGV4KTsKLSAgICBpZiAoaXNBcnJheUlu
ZGV4ICYmIGkgPCBkLT5udW1Bcmd1bWVudHMgJiYgKCFkLT5kZWxldGVkQXJndW1lbnRzIHx8ICFk
LT5kZWxldGVkQXJndW1lbnRzW2ldKSkgewotICAgICAgICBpZiAoaSA8IGQtPm51bVBhcmFtZXRl
cnMpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihkLT5yZWdpc3RlcnNb
ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpLCBOb25lKTsKKyAgICBpZiAoaXNBcnJh
eUluZGV4ICYmIGkgPCB0aGlzT2JqZWN0LT5kLT5udW1Bcmd1bWVudHMgJiYgKCF0aGlzT2JqZWN0
LT5kLT5kZWxldGVkQXJndW1lbnRzIHx8ICF0aGlzT2JqZWN0LT5kLT5kZWxldGVkQXJndW1lbnRz
W2ldKSkgeworICAgICAgICBpZiAoaSA8IHRoaXNPYmplY3QtPmQtPm51bVBhcmFtZXRlcnMpIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5kLT5yZWdp
c3RlcnNbdGhpc09iamVjdC0+ZC0+Zmlyc3RQYXJhbWV0ZXJJbmRleCArIGldLmdldCgpLCBOb25l
KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Io
ZC0+ZXh0cmFBcmd1bWVudHNbaSAtIGQtPm51bVBhcmFtZXRlcnNdLmdldCgpLCBOb25lKTsKKyAg
ICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5kLT5leHRyYUFy
Z3VtZW50c1tpIC0gdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCksIE5vbmUpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9
PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoICYmIExJS0VMWSghZC0+b3ZlcnJvZGVMZW5n
dGgpKSB7Ci0gICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihqc051bWJlcihkLT5udW1B
cmd1bWVudHMpLCBEb250RW51bSk7CisgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubGVuZ3RoICYmIExJS0VMWSghdGhpc09iamVjdC0+ZC0+b3ZlcnJvZGVMZW5n
dGgpKSB7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihqc051bWJlcih0aGlzT2Jq
ZWN0LT5kLT5udW1Bcmd1bWVudHMpLCBEb250RW51bSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5jYWxsZWUgJiYgTElLRUxZKCFkLT5vdmVycm9kZUNhbGxlZSkpIHsKLSAgICAgICAgaWYgKCFk
LT5pc1N0cmljdE1vZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihk
LT5jYWxsZWUuZ2V0KCksIERvbnRFbnVtKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5jYWxsZWUgJiYgTElLRUxZKCF0aGlzT2JqZWN0LT5kLT5vdmVycm9k
ZUNhbGxlZSkpIHsKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5kLT5jYWxs
ZWUuZ2V0KCksIERvbnRFbnVtKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
Ci0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZWVJZk5lY2Vzc2FyeShleGVjKTsKKyAgICAg
ICAgdGhpc09iamVjdC0+Y3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOwog
ICAgIH0KIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlciAmJiBkLT5pc1N0cmljdE1vZGUpCi0gICAgICAgIGNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJ
Zk5lY2Vzc2FyeShleGVjKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5jYWxsZXIgJiYgdGhpc09iamVjdC0+ZC0+aXNTdHJpY3RNb2RlKQorICAgICAgICB0
aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVySWZOZWNlc3NhcnkoZXhlYyk7CiAgICAg
Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OwogfQogCiB2b2lkIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKaW5kZXggYmZiNGQ4MDZiYjA5ZDEwM2ZjZWRlYzU0ZjI4ZjU2YWQ1YmYyMzQyNC4uMTVj
MGQ4YTY4YzUzYWIzOGM4N2Q0NjBlNDg2MjU5NWU1MTRhYzUxNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBnZXRBcmd1bWVudHNEYXRhKENhbGxGcmFtZSosIEpTRnVuY3Rp
b24qJiwgcHRyZGlmZl90JiBmaXJzdFBhcmFtZXRlckluZGV4LCBSZWdpc3RlciomIGFyZ3YsIGlu
dCYgYXJnYyk7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2Vs
bCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCmluZGV4IDZh
ZTQ0NDM3ZGVhYWQxM2ZkYmJjZDFkNzE2YWUwYTE2NWRkNDgyOTAuLmRiZWExNzc3ODViOTVjZDli
NGY1NWNiMmRmYzg2ZTE3NjkzOTA0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwCkBAIC02OCw5ICs2OCw5IEBAIGJvb2wgQXJy
YXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5h
bEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OmFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwg
c3RhdGljX2Nhc3Q8QXJyYXlDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCi1ib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEludGVybmFsRnVuY3Rp
b24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRl
c2NyaXB0b3I8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVj
dG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEFycmF5Q29uc3RydWN0b3IqPihvYmplY3QpLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGJkY2U4
NDZlNmQxZjk1MjJhOTNmMWExMzFkMTU2OGYwNDVjZDViNDguLmVjMWZmNzgyMzU2MWFhMzM4MGQx
ZjJjYzI5ZGVhYWUyNDEzMWE3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKIAotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRpYyBDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDZWxsKiwgQ29uc3RydWN0RGF0YSYpOwogICAgICAgICBzdGF0aWMg
Q2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBiOGUyYzUyZTVk
ZTE3YWNiYmNlNzhjOTJkMTM4Mzc2NmQwMmE2MWZiLi45ZTdiOTQxMzgwYzRiMTYzYTYyMThhM2E4
MzkxY2JkMjVjZWVjMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwCkBAIC0xMzAsOSArMTMwLDkgQEAgYm9vbCBBcnJheVByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGUKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTQXJyYXk+KGV4ZWMsIEV4
ZWNTdGF0ZTo6YXJyYXlQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8QXJyYXlQcm90
b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBBcnJheVByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiti
b29sIEFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVu
Y3Rpb25EZXNjcmlwdG9yPEpTQXJyYXk+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlQcm90b3R5cGVU
YWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTQXJyYXk+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJy
YXlQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8QXJyYXlQcm90b3R5cGUqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gQXJyYXkgRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCmlu
ZGV4IDE3NzZhYjNiMzE0MTZmZjY5MjNiMWE0NTBlOTI3MDlkNzVhMzZiZTAuLjNmZTFhZWI1YWU3
NzBjNDliMTRmMWI4ZmM4NTFjMjMxYWQzZWIzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAppbmRleCA5ZjFmYTQxZTljZDgy
MWIyMjRlZTFiNjJhODFlODFhODZjZTI2MTgwLi5lNTNjMGY2ZTUzNjg2ZDUzZWYxNGZkZWZhOTdi
ZTRjMjY5ODZiNTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuUHJvdG90eXBlLmNwcApAQCAtNjcsOSArNjcsOSBAQCBib29sIEJvb2xlYW5Qcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSQogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8Qm9vbGVhbk9iamVjdD4oZXhl
YywgRXhlY1N0YXRlOjpib29sZWFuUHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PEJv
b2xlYW5Qcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBC
b29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKK2Jvb2wgQm9vbGVhblByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxCb29sZWFuT2JqZWN0PihleGVjLCBFeGVjU3Rh
dGU6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEJvb2xlYW5P
YmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6Ym9vbGVhblByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0
aWNfY2FzdDxCb29sZWFuUHJvdG90eXBlKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAppbmRleCAxYmNmOGI1MjEwZTRhNWRhYmFhZWNjYjk2
NTY0ZmIwOGMyNGMzYzE3Li5iNzljZWRjOTEwOWY3NzI2MzIyMjc5MWYwZmUxYTdmZjZlMzBmNTgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlw
ZS5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBCb29sZWFuUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYp
OworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9DbGFzc0luZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NsYXNzSW5mby5oCmluZGV4IDFiZDRiMWYwYmQyMDBjYTY0ZTU4ZWU5MWMwOGZmMTYzZWE2ZWNj
Y2QuLjk5OGM0Njg5NTcyMDYwM2ZkN2Y4MWMwMjBiYWNhNWYwY2NiNWEyYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NsYXNzSW5mby5oCkBAIC04MCw2ICs4MCw5IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgVVN0cmluZyAoKkNsYXNzTmFtZUZ1bmN0aW9u
UHRyKShjb25zdCBKU09iamVjdCopOwogICAgICAgICBDbGFzc05hbWVGdW5jdGlvblB0ciBjbGFz
c05hbWU7CisKKyAgICAgICAgdHlwZWRlZiBib29sICgqR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
RnVuY3Rpb25QdHIpKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JGdW5j
dGlvblB0ciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgfTsKIAogI2RlZmluZSBDUkVB
VEVfTUVNQkVSX0NIRUNLRVIobWVtYmVyKSBcCkBAIC0xMTgsNiArMTIxLDcgQEAgc3RydWN0IE1l
bWJlckNoZWNrIyNtZW1iZXIgeyBcCiAgICAgICAgICZDbGFzc05hbWU6OmdldE93blByb3BlcnR5
TmFtZXMsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6Z2V0UHJvcGVydHlOYW1lcywgXAogICAgICAg
ICAmQ2xhc3NOYW1lOjpjbGFzc05hbWUsIFwKKyAgICAgICAgJkNsYXNzTmFtZTo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLCBcCiAgICAgfSwgXAogICAgIHNpemVvZihDbGFzc05hbWUpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmlu
ZGV4IGE5ZTgxODhlNzU2NzQxODc1YmQ3ZDYwOTgxNjk5YWFkZmMzMjhhNzYuLjk4MDVlMTczNjY1
OTFkMDRlY2E4NTMwMmI4NzBjZWFkODg1MDZhZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtOTAsOSArOTAsOSBAQCBib29s
IERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZAogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SW50
ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpkYXRlQ29uc3RydWN0b3JUYWJsZShleGVj
KSwgc3RhdGljX2Nhc3Q8RGF0ZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEludGVybmFsRnVuY3Rp
b24+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZGF0ZUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVz
Y3JpcHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OmRhdGVDb25zdHJ1Y3Rv
clRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxEYXRlQ29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyBFQ01BIDE1LjkuMwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCAyMmMwNDM3NmY2
NTMyNTM4YjkxNDNlM2IzYzViYmY4Y2E1NzlkMzJkLi5hZTIzNzZhMGEzZDNhOTM0NjZlM2Q2ZThi
YjgyMTliNzZiNGM1YmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlQ29uc3RydWN0b3IuaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIAogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3REYXRl
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlzdCYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA2NDY0YzQw
MmM0YzJiMDgyZGMyZDFjZTI2YTRhOTU1NmM2ZWE1OGY3Li4wNDc4NGQzM2I1NDdkMGVhYTBjYWQ4
Y2MxYzNlZGM5ZGM2ODhjMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtNDQ4LDkgKzQ0OCw5IEBAIGJvb2wgRGF0ZVByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVuCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywg
RXhlY1N0YXRlOjpkYXRlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PERhdGVQcm90b3R5cGUqPihj
ZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBEYXRlUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgRGF0ZVBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3Jp
cHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpkYXRlVGFibGUoZXhlYyksIHRoaXMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVz
Y3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpkYXRlVGFibGUoZXhlYyksIHN0YXRp
Y19jYXN0PERhdGVQcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OwogfQogCiAvLyBGdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVQcm90b3R5cGUuaAppbmRleCAxZTZmZmRmZGRkN2M0MzAxNDIzNWNmZjhiNmQ2NjY1MDUyODI0
NTQ0Li41MGEwMGVjMGE1YThlZjRmNDdhNTk5NzY2MWM1ZTY4NDVkOWJmMzIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCkBAIC00Miw3ICs0Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAog
ICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IDExOWVhYTg1OWM5
NDQ1M2RjZGU3NWQ2MGVhYzVlMTg2OTkyY2ZlNTUuLjhhZDgwMzE5MGYyZWM1MTVmM2EyOGU5MGUw
YjgzM2NiMmY0NmY2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
cnJvclByb3RvdHlwZS5jcHAKQEAgLTY3LDkgKzY3LDkgQEAgYm9vbCBFcnJvclByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGUKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEVycm9ySW5zdGFuY2U+KGV4ZWMs
IEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8RXJyb3JQ
cm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBFcnJvclBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
Citib29sIEVycm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGlj
RnVuY3Rpb25EZXNjcmlwdG9yPEVycm9ySW5zdGFuY2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQ
cm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAg
ICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEVycm9ySW5zdGFuY2U+KGV4ZWMs
IEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8RXJyb3JQ
cm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmgKaW5kZXggNjdjNTQ0NjMzZmY1NDliZTU1NjY1MTNmZjM3MDQxODlhZjAwYzA0NS4uNjY3
YmU0MjdlZTJlZTU3YzNiNmJiNGQ1NzMwZTYxZDdiNGVhMWY4NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC01Myw3ICs1Myw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Cisg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5jcHAKaW5kZXggYzIzZjFjNTBmNGM0MDczNDgzZGEwZmYzODBlZDBjYjA3NzkyNGE2OC4u
NTNhMjk2NzQ4OWVkNWFlNzQyNjMzMzk3NzRkYTUzMmQ5OTRmMzY3YyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTI5MSwyMSArMjkxLDIyIEBAIGJvb2wg
SlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBKU0Fy
cmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jv
b2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CisgICAgSlNBcnJheSogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTQXJyYXkqPihvYmplY3QpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewotICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0
b3IoanNOdW1iZXIobGVuZ3RoKCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0pOworICAgICAgICBk
ZXNjcmlwdG9yLnNldERlc2NyaXB0b3IoanNOdW1iZXIodGhpc09iamVjdC0+bGVuZ3RoKCkpLCBE
b250RGVsZXRlIHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICBBcnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CisgICAgQXJyYXlTdG9yYWdlKiBz
dG9yYWdlID0gdGhpc09iamVjdC0+bV9zdG9yYWdlOwogICAgIAogICAgIGJvb2wgaXNBcnJheUlu
ZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KGlzQXJyYXlJ
bmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRleCkgewogICAgICAgICBpZiAoaSA+PSBzdG9yYWdl
LT5tX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKGkgPCBt
X3ZlY3Rvckxlbmd0aCkgeworICAgICAgICBpZiAoaSA8IHRoaXNPYmplY3QtPm1fdmVjdG9yTGVu
Z3RoKSB7CiAgICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4mIHZhbHVlID0gc3RvcmFn
ZS0+bV92ZWN0b3JbaV07CiAgICAgICAgICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgICAgICAg
ICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodmFsdWUuZ2V0KCksIDApOwpAQCAtMzIxLDcgKzMy
Miw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhl
YywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpOwogfQogCiAvLyBFQ01BIDE1LjQuNS4xCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmgKaW5kZXggYjJmODU5ZjgxMjQwN2MzNWEwZDRiNWQxZGI0YzEyNDQ4MmE3MzJk
ZC4uOWQzOTY0OGNmNGUyYWQ4MmEwMTdlY2ZiYzgxM2YzYjViMzFiZWEzMyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTYsNyArOTYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwq
LCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAg
ICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNf
aW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApp
bmRleCBjYmVlNmIyYTA1ZDgyNjlkMDM3NTQ3NmU0ZjBiMThjNDE5MGE4ZTlhLi40ZDgyY2ZmOWZh
NWYzMmZiZmU5OTY1OWE2MThmNTcwNzViN2FmM2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC02NiwxNSArNjYsMTYgQEAgYm9vbCBKU0J5
dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGkKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTQnl0ZUFy
cmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jv
b2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIEpTQnl0ZUFycmF5KiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihvYmplY3QpOwogICAgIGJvb2wgb2s7CiAgICAg
dW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIob2spOwotICAgIGlmIChvayAm
JiBjYW5BY2Nlc3NJbmRleChpbmRleCkpIHsKLSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlw
dG9yKGdldEluZGV4KGV4ZWMsIGluZGV4KSwgRG9udERlbGV0ZSk7CisgICAgaWYgKG9rICYmIHRo
aXNPYmplY3QtPmNhbkFjY2Vzc0luZGV4KGluZGV4KSkgeworICAgICAgICBkZXNjcmlwdG9yLnNl
dERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0SW5kZXgoZXhlYywgaW5kZXgpLCBEb250RGVsZXRl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogYm9vbCBKU0J5dGVBcnJheTo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCA2OGZjYjhhYzRlYmFlZjFlZGNh
OTQyYjBkMjcwODc4OTMyOWYyZDBlLi4wMDQxZDE0YzQ0MDAxNThiM2VhZTFiM2FlZjJkNGFlZDlm
ZTFmZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVB
cnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgK
QEAgLTkwLDcgKzkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTQ2VsbCosIEpT
Qzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBzdGF0aWMg
dm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggZjFlNmMxMDRjZTJjYmE3YWM4YmEz
ZmI0NGM4ODZiNTU1NTU0MTZjOS4uNDFjY2ExNTAzMzVmMDc4ZmVmZTQ1MmM5OWRjNWVjYTE4ZjQ0
ZWNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0xOTAs
NCArMTkwLDEwIEBAIHZvaWQgSlNDZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKK2Jvb2wgSlNDZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRl
eCBiYzFkNWVhNmEyOTczNjRlMmYwNGRkOGIyMzc0ZTFhZjgxMTNkYjY5Li4xMGU2NmFjN2VjMjI0
MGFlZjU0MzkzZGE4M2QxZTQ1NzYyYjEzNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNz
IEpTR2xvYmFsT2JqZWN0OwogICAgIGNsYXNzIFN0cnVjdHVyZTsKKyAgICBjbGFzcyBQcm9wZXJ0
eURlc2NyaXB0b3I7CiAgICAgY2xhc3MgUHJvcGVydHlOYW1lQXJyYXk7CiAKICAgICBlbnVtIEVu
dW1lcmF0aW9uTW9kZSB7CkBAIC0xNDYsNiArMTQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9u
TW9kZSk7CiAgICAgICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIGdldFBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVu
dW1lcmF0aW9uTW9kZSk7CiAgICAgICAgIHN0YXRpYyBVU3RyaW5nIGNsYXNzTmFtZShjb25zdCBK
U09iamVjdCopOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlw
dG9yJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X3N0cnVjdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKaW5kZXggMjhmZWUwOTdjMzE2MzVkYzFlODc5YzRkNDFkZWRlMDRkOWM5OGZmMy4uZWVhZjdk
NTQxMjBiYWEyODI0ZmU5OGQzNjk2YWRhOGQ0Y2YwMDI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTI1MSw1MSArMjUxLDUyIEBAIGJvb2wg
SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTRnVuY3Rp
b246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9v
bCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICBpZiAoaXNIb3N0RnVuY3Rpb24oKSkKLSAg
ICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU0Z1bmN0aW9uKj4ob2JqZWN0KTsKKyAgICBpZiAodGhpc09iamVjdC0+aXNIb3N0RnVu
Y3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0
aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgIAogICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSkgewogICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgbWV0aG9kVGFibGUoKS0+Z2V0T3duUHJv
cGVydHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci0gICAgICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKKyAgICAgICAgdGhpc09iamVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgICAgIHJl
dHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICB9CiAgICAgCiAgICAgaWYgKHByb3BlcnR5TmFt
ZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzKSB7Ci0gICAgICAgIGlmIChqc0V4
ZWN1dGFibGUoKS0+aXNTdHJpY3RNb2RlKCkpIHsKLSAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0g
QmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7CisgICAgICAgIGlmICh0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+aXNTdHJpY3RN
b2RlKCkpIHsKKyAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiAg
ICAgICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICAgICAgICAgIGluaXRpYWxpemVHZXR0
ZXJTZXR0ZXJQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUsIGdsb2JhbE9iamVjdCgpLT50aHJv
d1R5cGVFcnJvckdldHRlclNldHRlcihleGVjKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgR2V0
dGVyIHwgU2V0dGVyKTsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICAgICAg
ICAgICAgICB0aGlzT2JqZWN0LT5pbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywg
cHJvcGVydHlOYW1lLCB0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JH
ZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnREZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRl
cik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKHJlc3VsdCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihl
eGVjLT5pbnRlcnByZXRlcigpLT5yZXRyaWV2ZUFyZ3VtZW50cyhleGVjLCB0aGlzKSwgUmVhZE9u
bHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOworICAgICAgICBkZXNjcmlwdG9yLnNldERlc2Ny
aXB0b3IoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVBcmd1bWVudHMoZXhlYywgdGhpc09i
amVjdCksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVy
dHlOYW1lcygpLmxlbmd0aCkgewotICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IoanNO
dW1iZXIoanNFeGVjdXRhYmxlKCktPnBhcmFtZXRlckNvdW50KCkpLCBSZWFkT25seSB8IERvbnRF
bnVtIHwgRG9udERlbGV0ZSk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihqc051
bWJlcih0aGlzT2JqZWN0LT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSksIFJlYWRP
bmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlcikgewotICAgICAgICBpZiAoanNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7Ci0g
ICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgICAgICBpZiAodGhpc09iamVjdC0+
anNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgICAgICAgICBib29sIHJlc3Vs
dCA9IEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAg
ICAgICAgICAgICBpbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgcHJvcGVydHlO
YW1lLCBnbG9iYWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERv
bnREZWxldGUgfCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0ID0gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+aW5pdGlhbGl6ZUdl
dHRlclNldHRlclByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFs
T2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMpLCBEb250RGVsZXRlIHwg
RG9udEVudW0gfCBHZXR0ZXIgfCBTZXR0ZXIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJh
c2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpOwogICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQpOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBk
ZXNjcmlwdG9yLnNldERlc2NyaXB0b3IoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVDYWxs
ZXIoZXhlYywgdGhpcyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKKyAgICAg
ICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGV4ZWMtPmludGVycHJldGVyKCktPnJldHJpZXZl
Q2FsbGVyKGV4ZWMsIHRoaXNPYmplY3QpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0
ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gQmFzZTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CisgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB2b2lkIEpTRnVuY3Rpb246Omdl
dE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggZDMxMjZiMDhjODk2
NzNkZTE1YjY3MTg4OWVhY2EzZmU2NTJmZjk5Zi4uODNiYWFhZTVlZmU1ZjM2ZjJkMjQ2ZjZlYmEx
NDYwMDA2OWE3MjQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaApAQCAtMTMwLDcgKzEzMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5O
b2RlKik7CiAKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCos
IEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKICAgICAgICAg
c3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggMjYwMzRkMjA1MGE1
ZTg3M2ZmZGEzNTY4NzY1Y2I0NzBhMWRlNzVkNy4uNGY0MWJlMDc1YmM1YTA5OTM0MzlhOWJmYWI0
NDg3MTQyZDg0Y2FkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtNDM5LDExICs0MzksMTIgQEAgYm9vbCBKU0dsb2JhbE9iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGUKICAgICByZXR1cm4gdGhpc09iamVjdC0+c3ltYm9sVGFibGVHZXQocHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAotYm9vbCBKU0dsb2JhbE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKIHsKLSAgICBpZiAoZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTVmFyaWFibGVPYmpl
Y3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6Z2xvYmFsT2JqZWN0VGFibGUoZXhlYyksIHRoaXMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcikpCisgICAgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVjdCk7CisgICAgaWYgKGdldFN0YXRpY0Z1
bmN0aW9uRGVzY3JpcHRvcjxKU1ZhcmlhYmxlT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Omdsb2Jh
bE9iamVjdFRhYmxlKGV4ZWMpLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gc3ltYm9sVGFibGVHZXQocHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gdGhpc09iamVjdC0+c3ltYm9sVGFibGVH
ZXQocHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdDo6
Y2xlYXJSYXJlRGF0YShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBmN2ZjNTEyM2Q1NTQ2Y2FlYzVlMDg0ZGQ2ZDFl
YTk4MTQ5MGM5NmJhLi5iM2Q4ZTA1MmZhZTc3MjRmYWQyNTM0MDZmMDMyMTg2YjY4NTQzNzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAg
LTE4Myw3ICsxODMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25Qcm9wZXJ0eUZvcldyaXRlKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApp
bmRleCBiN2YxYjk0MmU3MzUyMDc1YTU1YjAzZmZiNjM1MjUzODUxMWFkNzZlLi45MWY5MGQ2MjQw
MTk4OWQ4ODdkYjA2ZmUwMjllNWY3NWEyZjM0MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcApAQCAtNTgsNyArNTgsNyBAQCBib29sIEpT
Tm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRl
KiBleGVjLCB1bnNpZ25lZAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU05vdEFuT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJikKK2Jvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGV4ZWMs
IGV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggZjU1NGU0ZGNmYmMyN2Iw
ZjU5ZjQ1MzU3YjA1ZjVjYjk1MjZjMGNiNS4uNzdmMDJlZWU2N2Y4Y2M2ZjUzZjk4MjYzMzA0MDEz
ZTY1MjdmM2RhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5P
YmplY3QuaApAQCAtNzAsNyArNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gSlNP
YmplY3QgbWV0aG9kcwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBw
dXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCmlu
ZGV4IGY2MzBkM2UxMDNkMGFhZWIxNmE4OWJjMDA2NjE1NDQ3ZDhmYzM0ODIuLmE5YTQyMmYwOTE3
OTliNmM5ODZhMzRlZDY3YTRhZmU1NWNjOTk4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC02MDMsOSArNjAzLDkgQEAgYm9vbCBKU09OT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWYKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0Pihl
eGVjLCBFeGVjU3RhdGU6Ompzb25UYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8SlNPTk9iamVjdCo+
KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTT05PYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU09OT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9y
PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Ompzb25UYWJsZShleGVjKSwgdGhpcywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlw
dG9yPEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Ompzb25UYWJsZShleGVjKSwgc3RhdGljX2Nh
c3Q8SlNPTk9iamVjdCo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAK
IGNsYXNzIFdhbGtlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmgKaW5kZXggY2ZhMmExMzAwZjNhNTUzZmM0YTRlNDdlZTQwZDU3YzY1MmVmMjJjNy4uNWI3YjUx
YWZjMGY2Mzg4MzhhMmQwNDU5ZDBmNjFhZGMyM2VlZDFmYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNTcsNyArNTcsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwcml2YXRlOgogICAgICAgICBKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggZTdjYWQ4OGMyMjMzYjU5YmI4YmQy
Y2NmM2Y2ODJlMGQ2ZmUyNzFhOC4uZWZmNjk4OWQwMDQ5YzY4MDFlZWFlYWY1YWQwM2M2YWQ3MzQ1
YmY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAt
NDc3LDcgKzQ3Nyw3IEBAIGJvb2wgSlNPYmplY3Q6Omhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90bykKIGJvb2wgSlNPYmplY3Q6OnByb3BlcnR5
SXNFbnVtZXJhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lKSBjb25zdAogewogICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwotICAgIGlm
ICghY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSkKKyAgICBpZiAoIWNvbnN0X2Nhc3Q8SlNP
YmplY3QqPih0aGlzKS0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNv
bnN0X2Nhc3Q8SlNPYmplY3QqPih0aGlzKSwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiBkZXNjcmlwdG9yLmVudW1lcmFi
bGUoKTsKIH0KQEAgLTY2OCwxNCArNjY4LDE0IEBAIHZvaWQgSlNPYmplY3Q6OmFsbG9jYXRlUHJv
cGVydHlTdG9yYWdlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgc2l6ZV90IG9sZFNpemUsCiAg
ICAgbV9wcm9wZXJ0eVN0b3JhZ2Uuc2V0KGdsb2JhbERhdGEsIHRoaXMsIG5ld1Byb3BlcnR5U3Rv
cmFnZSk7CiB9CiAKLWJvb2wgSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgdW5z
aWduZWQgYXR0cmlidXRlcyA9IDA7CiAgICAgSlNDZWxsKiBjZWxsID0gMDsKLSAgICBzaXplX3Qg
b2Zmc2V0ID0gc3RydWN0dXJlKCktPmdldChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFt
ZSwgYXR0cmlidXRlcywgY2VsbCk7CisgICAgc2l6ZV90IG9mZnNldCA9IG9iamVjdC0+c3RydWN0
dXJlKCktPmdldChleGVjLT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcywg
Y2VsbCk7CiAgICAgaWYgKG9mZnNldCA9PSBXVEY6Om5vdEZvdW5kKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGdldERpcmVjdE9mZnNldChvZmZz
ZXQpLCBhdHRyaWJ1dGVzKTsKKyAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Iob2JqZWN0LT5n
ZXREaXJlY3RPZmZzZXQob2Zmc2V0KSwgYXR0cmlidXRlcyk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTY4Myw3ICs2ODMsNyBAQCBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eQogewogICAgIEpT
T2JqZWN0KiBvYmplY3QgPSB0aGlzOwogICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIGlmIChv
YmplY3QtPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpKQorICAgICAgICBpZiAob2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlID0gb2JqZWN0
LT5wcm90b3R5cGUoKTsKICAgICAgICAgaWYgKCFwcm90b3R5cGUuaXNPYmplY3QoKSkKQEAgLTcz
MCw3ICs3MzAsNyBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZQogewogICAgIC8vIElmIHdlIGhh
dmUgYSBuZXcgcHJvcGVydHkgd2UgY2FuIGp1c3QgcHV0IGl0IG9uIG5vcm1hbGx5CiAgICAgUHJv
cGVydHlEZXNjcmlwdG9yIGN1cnJlbnQ7Ci0gICAgaWYgKCFnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZXhlYywgcHJvcGVydHlOYW1lLCBjdXJyZW50KSkgeworICAgIGlmICghbWV0aG9kVGFibGUo
KS0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgY3Vy
cmVudCkpIHsKICAgICAgICAgLy8gdW5sZXNzIGV4dGVuc2lvbnMgYXJlIHByZXZlbnRlZCEKICAg
ICAgICAgaWYgKCFpc0V4dGVuc2libGUoKSkgewogICAgICAgICAgICAgaWYgKHRocm93RXhjZXB0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggM2U4OTZl
NmNiMzEyNzJlY2IzMjU4NzllYmQ4OGM5ZjMzMzM1ZDNkYy4uM2NlMzYxNDgyMGU5NGFmMDM3NGFi
ZGM3N2JiY2YwMjEwYTU3NjVjMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC0xMDEsNyArMTAxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCmluZGV4IGE5ODJmMTliNjY5YjA0YjlhNmI1MzRiNTY1
MGRiYzAxNjcyYzJjNjguLmU5ZmMyNzFjMjI0ZGE4MmZhYWQzZmQ0Nzk0ZmNlZThiYmI1MjYzYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKQEAgLTI0MCwx
NiArMjQwLDYgQEAgYm9vbCBKU1N0cmluZzo6Z2V0U3RyaW5nUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgSlNTdHJpbmc6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQotewotICAgIGlmIChnZXRTdHJpbmdQcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYg
KHByb3BlcnR5TmFtZSAhPSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudW5kZXJzY29yZVByb3RvKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+c3RyaW5nUHJvdG90eXBlKCksIERvbnRFbnVtKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQogYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNTdHJpbmcqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU1N0cmluZyo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgKaW5kZXggMDk3YjQ5MTExNjI5NTQwODU1Y2Y5YTllN2JiMzcwNTc5NjA5ZjY0MS4u
OGVmMjM4NDU5MGYzMTQxMzYyYzNiM2UwYmU0MmZhZDgyN2JiOTkxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0yNTIsNyArMjUyLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIC8vIEFjdHVhbGx5IGdldFByb3BlcnR5U2xvdCwgbm90IGdldE93blBy
b3BlcnR5U2xvdCAoc2VlIEpTQ2VsbCkuCiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX21heEludGVybmFsUm9wZUxlbmd0aCA9
IDM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggODRjNzEzYzlk
ODQ2MjA4NDc4YzQzZGE4M2MwMmU0NmIwMWRmNjVkMC4uMWNiMjdkYTBjZGExNmU4YjNlYTVhZmQy
NDk1NmUxMTg1NGRjMDQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTG9va3VwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgK
QEAgLTI4NSw3ICsyODUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgSGFzaEVu
dHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAK
ICAgICAgICAgaWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3YXJkIHRvIHBhcmVudAotICAg
ICAgICAgICAgcmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgICAgICAgICByZXR1cm4g
UGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iaiwgZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKICAKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7CiAgICAg
ICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pIHsKQEAgLTMyNiw3ICszMjYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50SW1wPgogICAg
IGlubGluZSBib29sIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEhhc2hUYWJsZSogdGFibGUsIEpTT2JqZWN0KiB0aGlzT2JqLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICB7
Ci0gICAgICAgIGlmIChzdGF0aWNfY2FzdDxQYXJlbnRJbXAqPih0aGlzT2JqKS0+UGFyZW50SW1w
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KSkKKyAgICAgICAgaWYgKFBhcmVudEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHN0YXRp
Y19jYXN0PFBhcmVudEltcCo+KHRoaXNPYmopLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAogICAgICAgICBjb25zdCBI
YXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CkBAIC0z
NjgsNyArMzY4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSog
ZW50cnkgPSB0YWJsZS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAgICAgICAgCiAgICAg
ICAgIGlmICghZW50cnkpIC8vIG5vdCBmb3VuZCwgZm9yd2FyZCB0byBwYXJlbnQKLSAgICAgICAg
ICAgIHJldHVybiB0aGlzT2JqLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgICAgICAgICAgcmV0dXJuIFBhcmVu
dEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmosIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CiAgICAgICAgIAogICAgICAgICBBU1NFUlQoIShlbnRyeS0+YXR0cmli
dXRlcygpICYgRnVuY3Rpb24pKTsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IDgxOGFhMDJmMjFk
ZGYzOGNkNzdmYmViNDUzZTdlMTg4NDc0ZDU2NGUuLjU2YjZiMDMwYjJkNjEyNjVkYzQ2ZGY4NDdk
ODQ2ODk2OTlmMTRhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuY3BwCkBAIC0xMDksOSArMTA5LDkgQEAgYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWYKICAg
ICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6
Om1hdGhUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8TWF0aE9iamVjdCo+KGNlbGwpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBNYXRoT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0PihleGVj
LCBFeGVjU3RhdGU6Om1hdGhUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0Pihl
eGVjLCBFeGVjU3RhdGU6Om1hdGhUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8TWF0aE9iamVjdCo+
KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCBk
ZGY2ZjEyZWUyNmNkZDUwYjMwNDBiZGE5MjMwN2VjNWZlM2FhNTEzLi5hNDEyOTUzMmVlMWZhMmVi
OWJkMTM0ZDc2OWI2NjFlYzQyNzE2MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogICAgICAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
KyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0Kiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAg
ICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzJmNTRi
ZTQwNzIyMjYwYTBmZDJlMmVlZTJiZmE2OGM2MDZjNTU2ZC4uNzgxNzdjNGRmZDc5ZGQwOWVjNDc4
MGVkYzRkODdlM2VhMWMwMzM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcApAQCAtNzYsOSArNzYsOSBAQCBib29sIE51bWJl
ckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxOdW1iZXJDb25zdHJ1
Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJDb25zdHJ1Y3Rv
clRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxOdW1iZXJDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIE51bWJlckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgTnVtYmVyQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8
TnVtYmVyQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVt
YmVyQ29uc3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPE51bWJlckNvbnN0cnVjdG9y
LCBJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6Om51bWJlckNvbnN0cnVjdG9yVGFi
bGUoZXhlYyksIHN0YXRpY19jYXN0PE51bWJlckNvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogc3RhdGljIEpTVmFsdWUgbnVtYmVyQ29uc3RydWN0
b3JOYU5WYWx1ZShFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmluZGV4
IDZlNjYzZDAwYzQyNmZkNGRjZDhiZTgzNWNhZGI4Mjk5ZDk2ZjMyYmYuLjBiOWMyMDc2MDQ3NDU0
M2M3ZGE2NTU1MWFkMjhjMTNjNGMxMzJhOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIEpTVmFs
dWUgZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OwogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZmZmMGMxNDlkM2FhNDMz
Njg4YWI2NDgwZGJlZTcwYWRlOGY3MjY4Ny4uNDc2Nzc1ZGE4ZjIwODk1Mzc5M2U2ODc0YzI1YTBl
ZWQzMmVhYjIyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJQcm90b3R5cGUuY3BwCkBAIC04OCw5ICs4OCw5IEBAIGJvb2wgTnVtYmVyUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxOdW1iZXJPYmplY3Q+KGV4ZWMsIEV4
ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE51bWJlclBy
b3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIE51bWJlclBy
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
Citib29sIE51bWJlclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uRGVzY3JpcHRvcjxOdW1iZXJPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bnVtYmVy
UHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Cisg
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxOdW1iZXJPYmplY3Q+KGV4ZWMs
IEV4ZWNTdGF0ZTo6bnVtYmVyUHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE51bWJl
clByb3RvdHlwZSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5oCmluZGV4IGM0ZDdhNTAzNjUwNDA1ZTJjNmNhZmVjYjljNDc1YmIxMjExMThhYjgu
LjA1YmJlMjdkNDEyYmU5ZjE4YWZlNjYwM2U3Y2U4NWFkNjdhN2U4NzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC01MCw3ICs1MCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByaXZhdGU6CiAgICAgICAgIE51bWJlclByb3RvdHlw
ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA0YTcwM2I1MDFlYzNlY2VmZDE3MjYzNDdj
NDk5MzA0YjVmODQ3MGNkLi44MjQ5ZDU3M2MzZjcxM2VhMzhiZTc3ZjZlYjczODM1OTkyMzhjZDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwCkBAIC05NCw5ICs5NCw5IEBAIGJvb2wgT2JqZWN0Q29uc3RydWN0b3I6OmdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QKICAgICBy
ZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9i
amVjdENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE9iamVjdENvbnN0cnVjdG9y
Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgT2JqZWN0Q29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9v
bCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpvYmplY3RDb25zdHJ1
Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJl
dHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0
ZTo6b2JqZWN0Q29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8T2JqZWN0Q29uc3Ry
dWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyBFQ01B
IDE1LjIuMgpAQCAtMTUyLDcgKzE1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIEpTT2JqZWN0KiBvYmpl
Y3QgPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgUHJvcGVydHlEZXNjcmlwdG9y
IGRlc2NyaXB0b3I7Ci0gICAgaWYgKCFvYmplY3QtPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBJZGVudGlmaWVyKGV4ZWMsIHByb3BlcnR5TmFtZSksIGRlc2NyaXB0b3IpKQorICAgIGlm
ICghb2JqZWN0LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0
LCBleGVjLCBJZGVudGlmaWVyKGV4ZWMsIHByb3BlcnR5TmFtZSksIGRlc2NyaXB0b3IpKQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVj
dENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25z
dHJ1Y3Rvci5oCmluZGV4IDMxMzEzNjQ1OTY1ZWEwZWY0N2VhMWEzOGFkNDJhMzI3MTNkM2IyMzcu
LjRlMGFmYTljYTBlMjg2ODBlOTIwNTU3MTVjMTIxMzQ1YWQ3ZmQ3NDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzksNyAr
MzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmluZGV4IDVlNjNh
N2NlMmFmMzk5NzJkMGRhZDAyOWQ0ZTMyOWRhNjVmNTk2YjguLjFmYjc3N2NiZDdjNDU5ZTNiYjZh
ZWZmNTkzNmZmOGU3MDRiOThlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMTAwLDkgKzEwMCw5IEBAIGJvb2wgT2JqZWN0
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU05vbkZpbmFs
T2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVjdFByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0
aWNfY2FzdDxPYmplY3RQcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAotYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQorYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAg
IHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNOb25GaW5hbE9iamVjdD4oZXhl
YywgRXhlY1N0YXRlOjpvYmplY3RQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9y
PEpTTm9uRmluYWxPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0UHJvdG90eXBlVGFibGUo
ZXhlYyksIHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KG9iamVjdCksIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBG
dW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggY2M0YjdhM2YyMWE3
OWM4MTA5ZGY4NzY2ODEzMWQ0NDI3MmYxYTc5NS4uYjYwNWE0Nzc4MGZkZGI0N2U3YmYwOTYyZTZk
NjRkMDlmMThlMmQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmgKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogCiAgICAgICAgIGJvb2wgbV9oYXNOb1Byb3BlcnRpZXNXaXRoVUludDMyTmFtZXM7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENv
bnN0cnVjdG9yLmNwcAppbmRleCA0MTAwZGNjNDI2ZjYyYjlhOTM3MjBhYjhlZDhmNGIzNzA0ZDU4
MTA4Li42ODA2MzQzNjhiMjRjNDUwM2JhMTc4M2JmN2I3MDFlOTY4YjgwMGQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBA
IC0yMDksOSArMjA5LDkgQEAgYm9vbCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZVNsb3Q8UmVnRXhwQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMs
IEV4ZWNTdGF0ZTo6cmVnRXhwQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8UmVn
RXhwQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBS
ZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRl
c2NyaXB0b3IpCitib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1
bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRo
aXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
RGVzY3JpcHRvcjxSZWdFeHBDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhl
Y1N0YXRlOjpyZWdFeHBDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBD
b25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBz
bG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCBmYmFlNWIxODM4MmU1M2YxMDVhM2M5
ODQ5ZjEwNzllNWY4MDYwYmE5Li41ZjkzMGViODk1N2QxNWFmYzViMDNiMzgzMTYwZGRiNTA5YTRj
YmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0
cnVjdG9yLmgKQEAgLTc0LDcgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVz
QXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJh
eS5oCmluZGV4IDY5ZmNhMTI5MDllZmU1ZmMxZTczZDdhN2NiNjBlMDM5YTZmZGE4MDYuLmE0OTM2
ZjNiNWZmOWY1NDQyMTIzYjQzOTE2ZjdiNTE4YjQ3MzQyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC02NiwxMSArNjYs
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHN1YmNsYXNzRGF0YSgpKQotICAgICAgICAg
ICAgICAgIGZpbGxBcnJheUluc3RhbmNlKGV4ZWMpOwotICAgICAgICAgICAgcmV0dXJuIEpTQXJy
YXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpOworICAgICAgICAgICAgUmVnRXhwTWF0Y2hlc0FycmF5KiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8UmVnRXhwTWF0Y2hlc0FycmF5Kj4ob2JqZWN0KTsKKyAgICAgICAgICAgIGlmICh0aGlz
T2JqZWN0LT5zdWJjbGFzc0RhdGEoKSkKKyAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5maWxs
QXJyYXlJbnN0YW5jZShleGVjKTsKKyAgICAgICAgICAgIHJldHVybiBKU0FycmF5OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHYsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IGMyNDdlOTBlYTQ3YmQyNjZjNDJjMjZmMGJlYTJl
YjNjMDQ2MGRhMzIuLjYxN2Q4ZTkzMDE5ZTc2ZjJiNTFkZDJmYmU0NzIyMDBjM2I2MzZmMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAt
OTYsOSArOTYsOSBAQCBib29sIFJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogICAgIHJldHVybiBnZXRTdGF0
aWNWYWx1ZVNsb3Q8UmVnRXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdF
eHBUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oY2VsbCksIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgUmVnRXhwT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPFJlZ0V4cE9iamVjdCwg
SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFibGUoZXhlYyksIHRoaXMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRv
cjxSZWdFeHBPYmplY3QsIEpTT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4
ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBPYmplY3QqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiBKU1ZhbHVlIHJlZ0V4cE9iamVjdEdsb2JhbChFeGVjU3RhdGUqLCBK
U1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggODM2YjI1NGUzZjk3NWE3ZjkxZDUzYmRj
MzQ1ODRjZjU2NGY2OTIzMy4uYTExN2YzNjJjM2UzM2E4NzkxMzJhNmNhMjJiMWJlZjg1ZGFjN2Y1
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAg
LTY2LDcgKzY2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgZXhlYyhFeGVj
U3RhdGUqKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAKICAgICAgICAgc3RhdGljIEpT
X0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IDZkZDhiNTg1MjhkNDRm
MGY2NDg1ZmI4Y2I1M2E4OTIzMGEyYWJkNWMuLmVkOTM4NmZmZmFlZDFmYTkwZjc0NzAyZGExYmU0
ZjMyMWQzYzAxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwUHJvdG90eXBlLmNwcApAQCAtNzIsOSArNzIsOSBAQCBib29sIFJlZ0V4cFByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZAogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8UmVnRXhwT2JqZWN0PihleGVjLCBF
eGVjU3RhdGU6OnJlZ0V4cFByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBQ
cm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBSZWdFeHBQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQorYm9vbCBSZWdFeHBQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0
aWNGdW5jdGlvbkRlc2NyaXB0b3I8UmVnRXhwT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4
cFByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwor
ICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8UmVnRXhwT2JqZWN0PihleGVj
LCBFeGVjU3RhdGU6OnJlZ0V4cFByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdF
eHBQcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuaAppbmRleCA4Y2FiOTBhOGIzZmQ0ZDIyNmY1ZDQ2ODQ3ZGM0YTQ3M2I2OGViYjM4
Li4yNTU1ZTUyYzFmNjZhMjBjMTlkMDkwN2FlYTE1YTM5OGJlNWQ5Nzg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNTAsNyArNTAs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzY4YTI4ODRiOTlkZWQ0
ZTczYTA5ZGZhNWEwMzRjMTY4MzE1ZDRlZC4uMWU4MDRhOTFhZTc4NjdmZGNkZjk5N2JlZGNmZmEz
Yzk1M2FlNGJmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtNjQsOSArNjQsOSBAQCBib29sIFN0cmluZ0NvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxJbnRlcm5hbEZ1bmN0aW9uPihl
eGVjLCBFeGVjU3RhdGU6OnN0cmluZ0NvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0
PFN0cmluZ0NvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJv
b2wgU3RyaW5nQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQorYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAg
cmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVj
LCBFeGVjU3RhdGU6OnN0cmluZ0NvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRv
cjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OnN0cmluZ0NvbnN0cnVjdG9yVGFi
bGUoZXhlYyksIHN0YXRpY19jYXN0PFN0cmluZ0NvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggZjlh
ZGI1YjZlZjI0ODUzZmI4MzhlZTliOGNiODdjN2RjYzQzYWIxZi4uOWZiMjliMTU5YmNjYTNlZTg4
MjM2NWNiZWQ1Y2Y1MTRjMTU0ZGE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5k
ZXggZjAyMDg3Y2QzNGViYjg4Y2FjMWE1OWQ0ZTIyZGYzOWVlYTE0ZjhiNC4uMTI4ODllMGY5YmYy
NzFiYjcyMGJjY2M1YzA4OTYyMjViYWY3MmI2YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zNCw2ICszNCwxMCBAQCBTdHJpbmdPYmpl
Y3Q6OlN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewogfQogCitTdHJpbmdPYmplY3Q6On5TdHJpbmdPYmplY3QoKQoreworfQorCiB2
b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU1N0cmluZyogc3RyaW5nKQogewogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOwpAQCAtNTcsMTEgKzYxLDEyIEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRlbnRp
Zmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKIH0KIAotYm9vbCBTdHJpbmdP
YmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQor
Ym9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIGlmIChpbnRlcm5hbFZhbHVlKCkt
PmdldFN0cmluZ1Byb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpKQorICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFN0cmluZ09i
amVjdCo+KG9iamVjdCk7CisgICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKS0+Z2V0
U3RyaW5nUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikp
CiAgICAgICAgIHJldHVybiB0cnVlOyAgICAKLSAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgU3RyaW5nT2JqZWN0OjpwdXQo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCBiMTdiNzQ2ODI3ZmU1NTBj
ZWYwNmI4OTNjZjM5OWMzYWE5ZDFmNzM0Li5hY2ZlNjFmNjFiYzExNDJiNTA2ZTBmMTI0ZDE2OGJj
Y2Y1NGZiNDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuaApAQCAtMzAsNiArMzAsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CiAKKyAgICAgICAgdmlydHVhbCB+U3Ry
aW5nT2JqZWN0KCk7CisKICAgICAgICAgc3RhdGljIFN0cmluZ09iamVjdCogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKICAgICAgICAgICAg
IEpTU3RyaW5nKiBzdHJpbmcgPSBqc0VtcHR5U3RyaW5nKGV4ZWMpOwpAQCAtNDcsNyArNDksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAg
IHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCA0NGYwNDBj
NDU5M2M1OWU5MTE5NDc4M2I5MWQ0NmY1YmIxOTMwMmFhLi41ZDUwMWExYmNmYmE5ZDZjZWRlMjZm
ZTE4YWZmYmQ1NDJkY2RmY2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTE1MCw5ICsxNTAsOSBAQCBib29sIFN0cmluZ1By
b3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZAogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8U3RyaW5nT2JqZWN0
PihleGVjLCBFeGVjU3RhdGU6OnN0cmluZ1RhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdHJpbmdQ
cm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBTdHJpbmdQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQorYm9vbCBTdHJpbmdQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0
aWNGdW5jdGlvbkRlc2NyaXB0b3I8U3RyaW5nT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6OnN0cmlu
Z1RhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVy
biBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8U3RyaW5nT2JqZWN0PihleGVjLCBFeGVjU3Rh
dGU6OnN0cmluZ1RhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdHJpbmdQcm90b3R5cGUqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCmluZGV4IGQx
Y2MwMDFjOWFiOGEyNTA3ZjY1N2I2MzQzNjA0MTdmNzQ0ZjdmMmMuLjE0MTIyZmNjNGY2MjNhYTBh
NGFiMDIzYmY2YmNhZjJkNmJhNmRkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAg
ICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNDk5NTFmMDRmNWYxY2E5Zjk1ZDc2ODNk
OTBkOTdjNmQ2MWQyNzMwYS4uNDczMmZhNWYxYWQ3M2ExMzU2MDdlMjZiN2YxNzYzYmFhNTczMDBk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE3MDAsOSArMTcwMCwxMCBAQCBfX1pON1dlYkNv
cmU1RnJhbWUyNnNlbmRPcmllbnRhdGlvbkNoYW5nZUV2ZW50RWkKIF9fWk4zSlNDMTNSdW50aW1l
TWV0aG9kMTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNfOENhbGxEYXRhRQogX19aTjNKU0Mx
M1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEw
SWRlbnRpZmllckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RF
UE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVy
dHlTbG90RQotX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3BlcnR5RGVzY3JpcHRv
ckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0
b3JFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBO
U184SlNPYmplY3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVy
dHlEZXNjcmlwdG9yRQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Q2c19pbmZvRQogX19aTjNKU0Mx
M1J1bnRpbWVNZXRob2RDMkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVSTjNX
VEY2VmVjdG9ySVBOU184QmluZGluZ3M2TWV0aG9kRUxtMEVFRQorX19aTjNKU0MxM1J1bnRpbWVN
ZXRob2REMkV2CiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKIF9fWk4zSlNDOEJp
bmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVQTlNfNkpTQ2VsbEVSTlNfOENhbGxE
YXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMmRlZmF1bHRWYWx1ZUVQS05T
XzhKU09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCkBA
IC0xNzExLDcgKzE3MTIsNyBAQCBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE0Zmlu
aXNoQ3JlYXRpb25FUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVu
dGltZU9iamVjdDE2Z2V0Q29uc3RydWN0RGF0YUVQTlNfNkpTQ2VsbEVSTlNfMTNDb25zdHJ1Y3RE
YXRhRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxOGdldE93blByb3BlcnR5U2xv
dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9w
ZXJ0eVNsb3RFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDE5Z2V0T3duUHJvcGVy
dHlOYW1lc0VQTlNfOEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFy
cmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmpl
Y3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCitfX1pOM0pTQzhCaW5kaW5nczEzUnVudGlt
ZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU184SlNPYmplY3RFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNK
U0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QzcHV0RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1dFByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0NnNfaW5mb0UKIF9fWk4zSlNDOEJpbmRpbmdz
MTNSdW50aW1lT2JqZWN0QzJFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5T
XzlTdHJ1Y3R1cmVFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzhJbnN0YW5jZUVFRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDdjNGE2
NThmNzFmOWYyODM0MTk4MjQzNGU5OWUxZmQ4MjkwNzQ3OTAuLmFhZjU3YmI5ZmE1MzNhYjJlYmEw
ZDczNmIzMDQ2MzJkNDk3NmE2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTI2NywxNiArMjY3LDE3IEBAIGJvb2wgSlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTRE9NV2luZG93Ojpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAgIC8vIE5ldmVyIGFsbG93IGNyb3Nz
LWRvbWFpbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IKLSAgICBpZiAoIWFsbG93c0FjY2Vzc0Zy
b20oZXhlYykpCisgICAgaWYgKCF0aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5OwogICAg
IAogICAgIC8vIFdlIGRvbid0IHdhbnQgYW55IHByb3BlcnRpZXMgb3RoZXIgdGhhbiAiY2xvc2Ui
IGFuZCAiY2xvc2VkIiBvbiBhIGNsb3NlZCB3aW5kb3cuCi0gICAgaWYgKCFpbXBsKCktPmZyYW1l
KCkpIHsKKyAgICBpZiAoIXRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKSkgewogICAgICAgICAv
LyBUaGUgZm9sbG93aW5nIGNvZGUgaXMgc2FmZSBmb3IgY3Jvc3MtZG9tYWluIGFuZCBzYW1lIGRv
bWFpbiB1c2UuCiAgICAgICAgIC8vIEl0IGlnbm9yZXMgYW55IGN1c3RvbSBwcm9wZXJ0aWVzIHRo
YXQgbWlnaHQgYmUgc2V0IG9uIHRoZSBET01XaW5kb3cgKGluY2x1ZGluZyBhIGN1c3RvbSBwcm90
b3R5cGUpLgogICAgICAgICBlbnRyeSA9IHNfaW5mby5wcm9wSGFzaFRhYmxlKGV4ZWMpLT5lbnRy
eShleGVjLCBwcm9wZXJ0eU5hbWUpOwpAQCAtMjg3LDcgKzI4OCw3IEBAIGJvb2wgSlNET01XaW5k
b3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByCiAgICAgICAgIGVudHJ5ID0gSlNET01XaW5kb3dQcm90b3R5cGU6OnNfaW5mby5w
cm9wSGFzaFRhYmxlKGV4ZWMpLT5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBp
ZiAoZW50cnkgJiYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikgJiYgZW50cnktPmZ1
bmN0aW9uKCkgPT0ganNET01XaW5kb3dQcm90b3R5cGVGdW5jdGlvbkNsb3NlKSB7CiAgICAgICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMs
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0
aW9uQ2xvc2UsIDA+KTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5v
bkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcjxqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9u
Q2xvc2UsIDA+KTsKICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRF
bnVtKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0yOTgsNyArMjk5
LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIKICAgICBlbnRyeSA9IEpTRE9NV2luZG93Ojpz
X2luZm8ucHJvcEhhc2hUYWJsZShleGVjKS0+ZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTsKICAg
ICBpZiAoZW50cnkpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXMsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTsKKyAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpc09iamVjdCwgZW50cnktPnByb3BlcnR5R2V0dGVyKCkpOwogICAgICAgICBk
ZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUp
LCBlbnRyeS0+YXR0cmlidXRlcygpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAt
MzA4LDM1ICszMDksMzUgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIKICAgICAvLyBuYW1pbmcg
ZnJhbWVzIHRoaW5ncyB0aGF0IGNvbmZsaWN0IHdpdGggd2luZG93IHByb3BlcnRpZXMgdGhhdAog
ICAgIC8vIGFyZSBpbiBNb3ogYnV0IG5vdCBJRS4gU2luY2Ugd2UgaGF2ZSBzb21lIG9mIHRoZXNl
LCB3ZSBoYXZlIHRvIGRvCiAgICAgLy8gaXQgdGhlIE1veiB3YXkuCi0gICAgaWYgKGltcGwoKS0+
ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZChpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSkpIHsKKyAgICBpZiAodGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNo
aWxkKGlkZW50aWZpZXJUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSkgewogICAgICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgY2hpbGRGcmFt
ZUdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGNoaWxkRnJhbWVH
ZXR0ZXIpOwogICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShl
eGVjLCBwcm9wZXJ0eU5hbWUpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKICAgICBib29sIG9rOwogICAgIHVuc2ln
bmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KG9rKTsKLSAgICBpZiAob2sgJiYgaSA8
IGltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZENvdW50KCkpIHsKKyAgICBpZiAob2sgJiYg
aSA8IHRoaXNPYmplY3QtPmltcGwoKS0+ZnJhbWUoKS0+dHJlZSgpLT5jaGlsZENvdW50KCkpIHsK
ICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgo
dGhpcywgaSwgaW5kZXhHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNP
YmplY3QsIGksIGluZGV4R2V0dGVyKTsKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9y
KHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgUmVhZE9ubHkgfCBEb250RGVsZXRl
IHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBBbGxv
dyBzaG9ydGN1dHMgbGlrZSAnSW1hZ2UxJyBpbnN0ZWFkIG9mIGRvY3VtZW50LmltYWdlcy5JbWFn
ZTEKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBpbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpLT5k
b2N1bWVudCgpOwogICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSkgewogICAgICAg
ICBBdG9taWNTdHJpbmdJbXBsKiBhdG9taWNQcm9wZXJ0eU5hbWUgPSBmaW5kQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSk7CiAgICAgICAgIGlmIChhdG9taWNQcm9wZXJ0eU5hbWUgJiYgKHN0YXRp
Y19jYXN0PEhUTUxEb2N1bWVudCo+KGRvY3VtZW50KS0+aGFzTmFtZWRJdGVtKGF0b21pY1Byb3Bl
cnR5TmFtZSkgfHwgZG9jdW1lbnQtPmhhc0VsZW1lbnRXaXRoSWQoYXRvbWljUHJvcGVydHlOYW1l
KSkpIHsKICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpcywgbmFtZWRJdGVtR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIG5hbWVkSXRlbUdldHRlcik7CiAgICAgICAgICAgICBkZXNjcmlwdG9y
LnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpLCBSZWFkT25s
eSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KICAgICAKLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIEJhc2U6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IpOwogfQogCiB2b2lkIEpTRE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCAxZTlmYjVmNjlkM2M3ZTE2M2EwODA5NzAy
MDE2NGU3ZGNkZTBmNDkyLi5lMmQwMGJlZmI2OTQzNjVhMjY3YjY1NGMwMTY0M2FlNTUyNGJkZTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cApAQCAtOTYsOSArOTYsMTAgQEAgYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEkKICAgICByZXR1cm4g
dGhpc09iamVjdC0+d2luZG93KCktPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LT53aW5kb3coKSwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9v
bCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKK2Jvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0
dXJuIHdpbmRvdygpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KG9iamVjdCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3Qt
PndpbmRvdygpLT5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09i
amVjdC0+d2luZG93KCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZv
aWQgSlNET01XaW5kb3dTaGVsbDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAppbmRleCA3ODJlMTIzY2YwNzc3N2MwOTFmOWE0MTdhM2U2MmUwMmQwMWQ3NmQyLi43Zjg3
YjgxN2FjYWVhM2EwOThiMmVjNmI5NTAwM2NhMmU0MjU3YzYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZShj
b25zdCBKU0M6OkpTT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBwdXRXaXRoQXR0cmlidXRlcyhKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKaW5k
ZXggZmVjNDE5ZmI3NDA0NmZjMmMwN2NmODUwMGExNWMwZDU1YmM3Yjc1Ni4uOGQ5ZWFiZTE5YjVj
MWM4Mjc3NGM0NDljZDhjMzdiMzU0NGI3ZTE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCkBAIC04MCw3ICs4MCw3IEBA
IGJvb2wgSlNXb3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpCiBib29sIEpTV29ya2VyQ29udGV4dDo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICAv
LyBMb29rIGZvciBvdmVycmlkZXMgYmVmb3JlIGxvb2tpbmcgYXQgYW55IG9mIG91ciBvd24gcHJv
cGVydGllcy4KLSAgICBpZiAoSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQorICAgIGlmIChKU0dsb2JhbE9iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcikpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggNDAzN2EzMjg1OTJkODU5N2U4ZDliZWZlYmQ5MDE3YWY4NGYzZDY3Ni4uZjBkYjNmN2Fm
ZjMyNTNiNWRhZGYzZTBiNmI1YmViNzFhYjEzMWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTUxNywxNSArNTE3LDE1
IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkKICAgICBteSBAZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCA9ICgpOwogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDaGVja0RvbWFpblNlY3VyaXR5In0pIHsKICAgICAgICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBpZiAoIXN0YXRpY19jYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+YWxs
b3dzQWNjZXNzRnJvbShleGVjKSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKCF0aGlzT2JqZWN0LT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWFs
bG93c0FjY2Vzc0Zyb21GcmFtZShleGVjLCBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4odGhpc09i
amVjdCktPmltcGwoKS0+ZnJhbWUoKSkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbUZyYW1lKGV4ZWMsIHRoaXNPYmplY3QtPmlt
cGwoKS0+ZnJhbWUoKSkpXG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7CiAgICAgfQogICAgIAogICAgIGlmICgkaW50
ZXJmYWNlTmFtZSBlcSAiTmFtZWROb2RlTWFwIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTENv
bGxlY3Rpb24iIG9yICRpbnRlcmZhY2VOYW1lIGVxICJIVE1MQWxsQ29sbGVjdGlvbiIpIHsKLSAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAke25hbWVzcGFj
ZU1heWJlfUpTVmFsdWUgcHJvdG8gPSBwcm90b3R5cGUoKTtcbiIpOworICAgICAgICBwdXNoKEBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICR7bmFtZXNwYWNlTWF5YmV9SlNWYWx1
ZSBwcm90byA9IHRoaXNPYmplY3QtPnByb3RvdHlwZSgpO1xuIik7CiAgICAgICAgIHB1c2goQGdl
dE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYg
c3RhdGljX2Nhc3Q8JHtuYW1lc3BhY2VNYXliZX1KU09iamVjdCo+KGFzT2JqZWN0KHByb3RvKSkt
Pmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSkpXG4iKTsKICAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4iKTsK
ICAgICB9CkBAIC01MzYsNyArNTM2LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yQm9keQogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1w
bCwgIiAgICBjb25zdCAke25hbWVzcGFjZU1heWJlfUhhc2hFbnRyeSogZW50cnkgPSAke2NsYXNz
TmFtZX1UYWJsZS5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChlbnRyeSkge1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdDtcbiIpOwotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZW50cnktPnBy
b3BlcnR5R2V0dGVyKCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+
cHJvcGVydHlHZXR0ZXIoKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
RGVzY3JpcHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90Lmdl
dFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIGVudHJ5LT5hdHRyaWJ1dGVzKCkpO1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBy
ZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9ySW1wbCwgIiAgICB9XG4iKTsKQEAgLTU1MCwxNyArNTUwLDE3IEBAIHN1YiBHZW5lcmF0ZUdl
dE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgYm9vbCBvaztcbiIpOwogICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJv
cGVydHlOYW1lLnRvVUludDMyKG9rKTtcbiIpOwotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBs
Q2xhc3NOYW1lKj4oaW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOworICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChvayAmJiBpbmRleCA8IHN0YXRpY19j
YXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIp
OwogICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1l
cmljSW5kZXhHZXR0ZXIifSkgewogICAgICAgICAgICAgIyBBc3N1bWUgdGhhdCBpZiB0aGVyZSdz
IGEgc2V0dGVyLCB0aGUgaW5kZXggd2lsbCBiZSB3cml0YWJsZQogICAgICAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4U2V0dGVyIn0gfHwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhTZXR0ZXIifSkgewotICAg
ICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAg
IGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihnZXRCeUluZGV4KGV4ZWMsIGluZGV4KSwgJHtuYW1l
c3BhY2VNYXliZX1Eb250RGVsZXRlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRv
cih0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4KSwgJHtuYW1lc3BhY2VNYXliZX1E
b250RGVsZXRlKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBkZXNjcmlwdG9yLnNl
dERlc2NyaXB0b3IoZ2V0QnlJbmRleChleGVjLCBpbmRleCksICR7bmFtZXNwYWNlTWF5YmV9RG9u
dERlbGV0ZSB8ICR7bmFtZXNwYWNlTWF5YmV9UmVhZE9ubHkpO1xuIik7CisgICAgICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRv
ci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmdldEJ5SW5kZXgoZXhlYywgaW5kZXgpLCAke25h
bWVzcGFjZU1heWJlfURvbnREZWxldGUgfCAke25hbWVzcGFjZU1heWJlfVJlYWRPbmx5KTtcbiIp
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgJHtuYW1lc3BhY2VNYXliZX1Qcm9w
ZXJ0eVNsb3Qgc2xvdDtcbiIpOwotICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ySW1wbCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBpbmRleCwgaW5k
ZXhHZXR0ZXIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCBp
bmRleEdldHRlcik7XG4iKTsKICAgICAgICAgICAgICMgQXNzdW1lIHRoYXQgaWYgdGhlcmUncyBh
IHNldHRlciwgdGhlIGluZGV4IHdpbGwgYmUgd3JpdGFibGUKICAgICAgICAgICAgIGlmICgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleFNldHRlciJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4U2V0dGVyIn0pIHsKICAgICAg
ICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBk
ZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUp
LCAke25hbWVzcGFjZU1heWJlfURvbnREZWxldGUpO1xuIik7CkBAIC01NzMsOSArNTczLDkgQEAg
c3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQogICAgIH0KICAgICAKICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTmFtZUdldHRlciJ9IHx8
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVy
In0pIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBp
ZiAoY2FuR2V0SXRlbXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4o
aW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckltcGwsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0
aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSksIHByb3BlcnR5TmFt
ZSkpIHtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAi
ICAgICAgICAke25hbWVzcGFjZU1heWJlfVByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXMsIG5hbWVHZXR0ZXIpO1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
RGVzY3JpcHRvckltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIG5hbWVH
ZXR0ZXIpO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGws
ICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMsIHBy
b3BlcnR5TmFtZSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTtcbiIpOwogICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICByZXR1cm4g
dHJ1ZTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAi
ICAgIH1cbiIpOwpAQCAtNTkxLDE5ICs1OTEsMTkgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yQm9keQogICAgIH0KICAgICAKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ0dldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgaWYgKGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckRlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpXG4i
KTsKKyAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBpZiAo
dGhpc09iamVjdC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKSlcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JJbXBsLCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0KICAgICAKICAg
ICBpZiAoJGhhc0F0dHJpYnV0ZXMpIHsKICAgICAgICAgaWYgKCRpbmxpbmVkKSB7CiAgICAgICAg
ICAgICBkaWUgIkNhbm5vdCBpbmxpbmUgaWYgTm9TdGF0aWNUYWJsZXMgaXMgc2V0LiIgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0pOwotICAgICAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICByZXR1cm4gJHtu
YW1lc3BhY2VNYXliZX1nZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JGNsYXNzTmFtZSwgQmFzZT4o
ZXhlYywgc19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRv
ckltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVEZXNjcmlw
dG9yPCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAg
IHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjwkY2xhc3NO
YW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxl
QWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMi
fSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
O1xuIik7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOworICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTtcbiIpOwogICAgIH0KICAgICAKICAgICByZXR1cm4gQGdldE93blByb3BlcnR5RGVzY3Jp
cHRvckltcGw7CkBAIC03NzQsNyArNzc0LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBH
ZXR0ZXJzCiAgICAgaWYgKCRoYXNHZXR0ZXIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYp
O1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIikgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSkgJiYgISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc092ZXJyaWRpbmdOYW1lR2V0dGVyIn07
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3REZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
ZWxlZ2F0aW5nR2V0T3duUHJvcGVydHlTbG90In07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nR2V0T3du
UHJvcGVydHlTbG90In07CkBAIC05NzEsOSArOTcxLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRkYXRhTm9kZSwgJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7Ci0gICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJBTFdBWVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIp
OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElORSBib29sICR7Y2xh
c3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqIG9iamVjdCwg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZz
X2luZm8pO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yQm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NO
YW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KQEAgLTEwMzUsNyArMTAzNiw3IEBA
IHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwogICAgIGlmICgkbnVtRnVuY3Rpb25z
ID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlR2V0T3duUHJvcGVydHlTbG90In0pIHsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlTbG90Jik7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpOwor
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90
Jik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJv
dG90eXBlR2V0T3duUHJvcGVydHlTbG90In07CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4i
KSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBl
R2V0T3duUHJvcGVydHlTbG90In07CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVy
cmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CkBAIC0xNDUyLDIyICsxNDUzLDIzIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwogCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2Ns
YXNzTmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNz
TmFtZX1Qcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7Ci0gICAgICAgIAorICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2Ns
YXNzTmFtZX1Qcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDwke2NsYXNzTmFtZX1Q
cm90b3R5cGUqPihvYmplY3QpO1xuIik7CisKICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifSkg
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGdldE93blByb3BlcnR5
RGVzY3JpcHRvckRlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHRydWU7XG4iKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKCRudW1Db25zdGFu
dHMgZXEgMCAmJiAkbnVtRnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOyAgICAgICAgCisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsgICAgICAg
IAogICAgICAgICB9IGVsc2lmICgkbnVtQ29uc3RhbnRzIGVxIDApIHsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8
SlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIs
IHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNP
YmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRo
aXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKICAgICAgICAgfSBlbHNp
ZiAoJG51bUZ1bmN0aW9ucyBlcSAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPCR7Y2xhc3NOYW1lfVByb3RvdHlw
ZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAu
ICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JHtj
bGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJs
ZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVz
In0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5RGVzY3JpcHRvcjwke2NsYXNzTmFtZX1Qcm90
b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFt
ZSkgLiAiLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlEZXNjcmlw
dG9yPCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVI
YXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRp
Y1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CiAgICAgfQpAQCAtMTU3Myw5ICsxNTc1LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRkYXRhTm9kZSwg
JGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRl
cyA+IDAsIDApKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5m
byk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1l
fSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkoJGRhdGFOb2RlLCAk
aW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVz
ID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAg
ICAgICB9CkBAIC0zMTkzLDcgKzMxOTYsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xh
cmF0aW9uCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cblxuIik7CiAKICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CisgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBK
U0M6OlByb3BlcnR5RGVzY3JpcHRvciYpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87XG4iKTsKIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKVxuIik7CkBAIC0zMjQ4LDkgKzMyNTEs
OSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDwke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwg
c3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihjZWxsKSwgcHJvcGVydHlOYW1l
LCBzbG90KTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKLSAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcilcbiIpOworICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxu
Iik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JHtjb25zdHJ1Y3RvckNs
YXNzTmFtZX0sIEpTRE9NV3JhcHBlcj4oZXhlYywgJiR7Y29uc3RydWN0b3JDbGFzc05hbWV9VGFi
bGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjwke2NvbnN0cnVj
dG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX1UYWJsZSwgc3RhdGljX2Nhc3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihvYmplY3QpLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
fVxuXG4iKTsKIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYW5C
ZUNvbnN0cnVjdGVkIn0pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggYzNlYTUxNDI0MGYx
OTE2Y2U1ZjkwMGZkZWQwMjYzYzIyMWYwNjQ4ZS4uMWI2Njk4ZDM2MjliZWQyMjczNzlmYjNjNjY3
NDRlMzFjYjI0ZWZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTk0LDkgKzk0LDkgQEAg
Ym9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGUKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVz
Y3JpcHRvcikKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewot
ICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFi
bGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRp
Y1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVy
PihleGVjLCAmSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1Rlc3RJbnRlcmZhY2UoRXhlY1N0YXRlKiBleGVjKQpAQCAt
MTgwLDEwICsxODAsMTEgQEAgYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWQKICAgICByZXR1cm4gZ2V0
U3RhdGljVmFsdWVTbG90PEpTVGVzdEludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdEludGVy
ZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpT
VGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCitib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVEZXNjcmlwdG9yPEpTVGVzdEludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdEludGVyZmFj
ZVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIEpTVGVzdEludGVy
ZmFjZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVzdEludGVyZmFjZSo+KG9iamVjdCk7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVGVzdEludGVyZmFjZSwgQmFzZT4o
ZXhlYywgJkpTVGVzdEludGVyZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKaW5kZXggMTYxMDBmNmQ1YWNjM2IxOTY2OWVkMTRhZGIxNjhjNmU3YjZkYzQ5Ny4u
OTQwOTAzYzgxOTM1ZGU0MjA1OWNjNGFkNjJlNjA4YjY2YzdkZWM5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
OwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKQEAg
LTExOSw3ICsxMTksNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25z
dCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKaW5kZXggZjkyZmRkYmJl
YmQxNGJkNmZkZDQ1NTQ2MjlkMDA5OTlmYjQxNmMyMS4uNjg2OGVhNzFhNzg3YTdiYzkyNmRjZDBi
OTc2NmE5MmY4OGJlMzg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcApAQCAtOTIsOSArOTIsOSBAQCBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRQogICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lckNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wg
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVEZXNjcmlwdG9yPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvciwg
SlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVj
dG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJD
b25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAv
KiBIYXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KQEAgLTEzMCw5ICsxMzAsMTAgQEAgYm9vbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGUKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2Jq
ZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZVRhYmxlLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9y
PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZVRh
YmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKj4ob2JqZWN0KTsKKyAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0PihleGVjLCAmSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcjo6c19pbmZvID0geyAiVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIiLCAmSlNET01XcmFw
cGVyOjpzX2luZm8sICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGFibGUsIDAgLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpIH07CkBAIC0xNjEs
MTAgKzE2MiwxMSBAQCBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZQogICAgIHJldHVybiBnZXRTdGF0
aWNWYWx1ZVNsb3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciwgQmFzZT4oZXhlYywgJkpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAotYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlw
dG9yPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIsIEJhc2U+KGV4ZWMsICZKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihvYmplY3QpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLCBCYXNlPihl
eGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxlLCB0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiBKU1ZhbHVlIGpzVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNv
bnN0IElkZW50aWZpZXImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKaW5kZXggNmRlN2VjZjk5YTM1Y2EyOTgyM2QwMmJiZGY5YTE3ZjRiZWY5Y2UwZi4uN2ZhY2Rk
MjgyM2ViMGI4YjZlMDBiMDQ2NGI5ODQ2Y2EzNjgzNmZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKICAg
ICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQpAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
Y29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90
Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAg
ICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggYTNiNzBiMTFiNDczZWM4MmUy
ZTVlZjNlODMwZThkMGFjMjE0NTVmYi4uNDY3YTFiNGY5YWIwNDQ3MjI4MThlNjg0MDM2ZWE3YmNi
MGI0NWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE5Nyw5ICsxOTcsOSBAQCBib29sIEpTVGVzdE9iakNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbgogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2JqQ29uc3RydWN0
b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUsIHN0YXRp
Y19jYXN0PEpTVGVzdE9iakNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKLWJvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RPYmpD
b25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJs
ZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVEZXNjcmlwdG9yPEpTVGVzdE9iakNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8qIEhhc2gg
dGFibGUgZm9yIHByb3RvdHlwZSAqLwpAQCAtMjkxLDkgKzI5MSwxMCBAQCBib29sIEpTVGVzdE9i
alByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdAogICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0T2JqUHJv
dG90eXBlLCBKU09iamVjdD4oZXhlYywgJkpTVGVzdE9ialByb3RvdHlwZVRhYmxlLCB0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdE9ialByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEpT
VGVzdE9ialByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1Byb3Bl
cnR5RGVzY3JpcHRvcjxKU1Rlc3RPYmpQcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAmSlNUZXN0
T2JqUHJvdG90eXBlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAg
SlNUZXN0T2JqUHJvdG90eXBlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqUHJv
dG90eXBlKj4ob2JqZWN0KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlEZXNjcmlwdG9y
PEpTVGVzdE9ialByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5cGVU
YWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdE9iajo6c19pbmZvID0geyAiVGVzdE9iaiIsICZKU0RPTVdyYXBwZXI6
OnNfaW5mbywgJkpTVGVzdE9ialRhYmxlLCAwICwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RP
YmopIH07CkBAIC0zMjIsMTAgKzMyMywxMSBAQCBib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaQogICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0
T2JqVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNU
ZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
K2Jvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8
SlNUZXN0T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgSlNUZXN0T2JqKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SlNUZXN0T2JqKj4ob2JqZWN0KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNU
ZXN0T2JqLCBCYXNlPihleGVjLCAmSlNUZXN0T2JqVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlJbnRBdHRy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmgKaW5kZXggNmQzMThmNGZiNDVlM2E4MmZkMjUyYzI0MjI1NDlmY2Q3OTJlNjllMy4uNWE5NmE1
YTFmZDc2NzdkNDY5NWUzZTY1MjYxNjk0MWRlYjFmNTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtNDEsNyArNDEs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRv
ciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpK
U0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIApAQCAtODksNyArODksNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0
aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwpAQCAtMTE2LDcgKzExNiw3IEBA
IHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYjFkNTY3MzI2
NzRjMjUyMDYyYjI3YWE0MjE5ODhkZGY5MjcxOTQ4Yi4uYTAzNzkwMDIzMmFjMjJmZjNjMmY0YTUz
MWUyOGI4Zjk2ZTgyN2UzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTkzLDkgKzkzLDkgQEAgYm9vbCBKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCoKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBzdGF0
aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcio+
KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNW
YWx1ZURlc2NyaXB0b3I8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7
CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nh
c3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvKiBIYXNoIHRhYmxlIGZvciBw
cm90b3R5cGUgKi8KQEAgLTE1MCwxMCArMTUwLDExIEBAIGJvb2wgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpcywgJnNfaW5mbyk7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTsKKyAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqPihvYmplY3QpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
JnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKIH0KIAogSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZp
ZXImKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oCmluZGV4IGQ2NjU5NTJjYmU2NWM2Y2E3YjgwNWU3ZTgyY2I1MTM4NjNhYTRiMmIuLmQw
YjY2ZWQyNWFhMzI4YjM3OWFlNDY4N2RkZTQ3YWViNGEwZTlkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTQzLDcgKzQz
LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlw
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0xMDMsNyArMTAzLDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlND
OjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8g
c19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCA3NGQxOWU4MzgwNmQxYzllMDNjODIyNDY1M2JhN2Yx
OGNhOWQ5YjcxLi5lNzIwZWY2MDY3NjRiZDhiYmRjZjJjMWFmM2RhNTY0NTE3MmFkZmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMTI0LDcgKzEyNCw3
IEBAIHByaXZhdGU6CiAgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
LCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAg
ICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIENh
bGxUeXBlIGdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJik7CiAgICAgc3RhdGljIGJvb2wg
ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpp
bmRleCAwYzM5NzliYzlhODk5ZjQ0Mjg1ZDU4MzA5NzlmMmVkOGU1OWZlYTFlLi5mZGJmZTZhYWJh
MDg0NTU5YzU4YzY1MzkwZWU4ZmFmMTljZGMzMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0yMTIsNyArMjEyLDcgQEAgYm9vbCBPYmpjRmFsbGJh
Y2tPYmplY3RJbXA6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJ
bXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAg
Ly8ga2VlcCB0aGUgcHJvdG90eXBlIGZyb20gZ2V0dGluZyBjYWxsZWQgaW5zdGVhZCBvZiBqdXN0
IHJldHVybmluZyBmYWxzZQogICAgIGRlc2NyaXB0b3Iuc2V0VW5kZWZpbmVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggMThjMjRjMjdjYTI2NTg0Zjg2MmRl
ZWM1NmNkYjNiYWJkMmE3NjIyZC4uOGMyNmZjMmVmMGUzNDhkMDAzZDgxY2M0NGNkZWU2N2Y5M2I2
MTZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtMTUxMSwz
MCArMTUxMSwzMSBAQCBib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29ucwogICAgIHJldHVybiBRdFJ1bnRp
bWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCi1ib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKKyAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8UXRSdW50aW1lTWV0YU1ldGhvZCo+KG9iamVjdCk7CiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSAiY29ubmVjdCIpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGNvbm5lY3RHZXR0ZXIpOworICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzT2JqZWN0LCBjb25uZWN0R2V0dGVyKTsKICAgICAgICAgZGVzY3JpcHRvci5z
ZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ICAgICBpZiAocHJvcGVydHlOYW1lID09ICJkaXNjb25uZWN0IikgewogICAgICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZGlzY29ubmVjdEdldHRl
cik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGRpc2Nvbm5lY3RHZXR0ZXIp
OwogICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBw
cm9wZXJ0eU5hbWUpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpcywgbGVuZ3RoR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpc09iamVjdCwgbGVuZ3RoR2V0dGVyKTsKICAgICAgICAgZGVzY3JpcHRvci5zZXRE
ZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICByZXR1cm4gUXRSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywg
cHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gUXRSdW50aW1lTWV0aG9kOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTsKIH0KIAogdm9pZCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQpAQCAtMTc0NywxNiArMTc0
OCwxNyBAQCBib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYwogICAgIHJldHVybiBRdFJ1bnRpbWVNZXRo
b2Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCi1ib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVz
Y3JpcHRvciYgZGVzY3JpcHRvcikKIHsKKyAgICBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kKiB0
aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZCo+KG9iamVj
dCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
KSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzLCBsZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBs
ZW5ndGhHZXR0ZXIpOwogICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRW
YWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51
bSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBRdFJ1bnRpbWVN
ZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpOworICAgIHJldHVybiBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB2
b2lkIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuaAppbmRleCA5ZjNiMzEyZTU3MTQ2Mjg5NGRiZmUwNDRmYWE1NDAwNTNhYjc1ZTYzLi42OGUz
NzMwY2Y1MmRhZTYyOTM4MTU3YTRjMzFiZmFjMmIyMTk0Yjg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogICAgIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAKICAgICBz
dGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CkBAIC0yMDUs
NyArMjA1LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJy
YXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGUwY2M4NjFi
NDdjMDk2ZDYyMGRiMjJlYmNjNWQ3OWY4ZGQ2OWU5YTkuLjUxZTYzZjAxMjkyMjliZDRiYmQ4ODQ2
YzU0MTAxMmI2MTlkM2ZmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKQEAgLTk5LDExICs5OSwxMiBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudAogICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgUnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgUnVudGltZUFycmF5OjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKIHsKKyAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1l
QXJyYXkqPihvYmplY3QpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlO
YW1lcygpLmxlbmd0aCkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpcywgbGVuZ3RoR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgbGVuZ3RoR2V0dGVyKTsKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlw
dG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgUmVhZE9ubHkgfCBEb250RGVs
ZXRlIHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xMTEsMTUg
KzExMiwxNSBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcAogICAgIGJvb2wgb2s7CiAgICAgdW5z
aWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9BcnJheUluZGV4KG9rKTsKICAgICBpZiAob2sp
IHsKLSAgICAgICAgaWYgKGluZGV4IDwgZ2V0TGVuZ3RoKCkpIHsKKyAgICAgICAgaWYgKGluZGV4
IDwgdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBz
bG90OwotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBpbmRleCwgaW5kZXhH
ZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpbmRl
eCwgaW5kZXhHZXR0ZXIpOwogICAgICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNs
b3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAog
Ym9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBlM2M4OTVjMGU3OGNjNzU3ODI5
MDE4Yjk0ODIyOTFlYzE1YmY5NjE0Li43ODYwZDMxNzJhYTQ4YTM5ZDNlOTQ0MTBlNmM5MzQ0NDMx
OTgwM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkLCBQcm9wZXJ0
eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIHZvaWQg
cHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChK
U0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggN2Y4MTI3Zjdl
MGIwNzliNTA5YjA5ZjgxN2Y4MDY1NGY5Mjc2MDIwYi4uNjkwNTUxNDlkNjU2OWY5ZGE1Y2Q4YWRl
MDI3YzY2NTU2MTNiNGYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwCkBAIC01MCw2ICs1MCwxMCBAQCBSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0aG9kKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLAogewogfQogCitS
dW50aW1lTWV0aG9kOjp+UnVudGltZU1ldGhvZCgpCit7Cit9CisKIHZvaWQgUnVudGltZU1ldGhv
ZDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudCkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpZGVu
dCk7CkBAIC04MCwxNiArODQsMTcgQEAgYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW4KICAgICByZXR1
cm4gSW50ZXJuYWxGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3IgJmRlc2NyaXB0b3IpCitib29sIFJ1bnRpbWVNZXRo
b2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
ICZkZXNjcmlwdG9yKQogeworICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxSdW50aW1lTWV0aG9kKj4ob2JqZWN0KTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7
Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGxlbmd0aEdldHRlcik7CisgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGxlbmd0aEdldHRlcik7CiAgICAgICAgIGRlc2NyaXB0
b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIFJlYWRP
bmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIAotICAgIHJldHVybiBJbnRlcm5hbEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gSW50ZXJu
YWxGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKaW5kZXggOWQ4ZGUyMzRiNzFiZGQ0NDVkYjdlMzkxMjNk
Mzg5NjllZGJmOTFiYS4uMDIwN2JiOTQ1NTdhMmMyOTc5NjE4ODg4ZmEwMjFhMDUwMzJiNGIwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTM3LDYgKzM3LDggQEAg
Y2xhc3MgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAorICAgIH5SdW50aW1lTWV0aG9k
KCk7CisKICAgICBzdGF0aWMgUnVudGltZU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBtZXRob2RMaXN0KQogICAg
IHsKICAgICAgICAgUnVudGltZU1ldGhvZCogbWV0aG9kID0gbmV3IChhbGxvY2F0ZUNlbGw8UnVu
dGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFJ1bnRpbWVNZXRob2QoZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUsIG1ldGhvZExpc3QpOwpAQCAtNjUsMTAgKzY3LDEwIEBAIHByb3RlY3RlZDoKICAg
ICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKIAogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiBwcml2YXRlOgogICAgIHN0YXRpYyBKU1ZhbHVlIGxl
bmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7Ci0gICAg
dmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICBPd25QdHI8QmluZGluZ3M6
Ok1ldGhvZExpc3Q+IF9tZXRob2RMaXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwCmluZGV4IDdiNmFkMmRmNGJmMWJjM2FlZDA1NWE2YWVhYjNhMGQwMGMzOTY4
OGIuLjk4MzQwMmFiMzA1ODZiZDM4ZDE4MWY4OWE0NzMxYjkxMmIzNTljNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMTYyLDE0ICsxNjIsMTUgQEAgYm9v
bCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUgKmV4ZWMsIGNvbnN0IElkZW4KICAgICByZXR1cm4gaW5zdGFuY2UtPmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIFJ1
bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQorYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICBpZiAoIW1faW5zdGFu
Y2UpIHsKKyAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGlt
ZU9iamVjdCo+KG9iamVjdCk7CisgICAgaWYgKCF0aGlzT2JqZWN0LT5tX2luc3RhbmNlKSB7CiAg
ICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogICAgIAotICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSBtX2luc3Rh
bmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqZWN0LT5tX2luc3Rh
bmNlOwogICAgIGluc3RhbmNlLT5iZWdpbigpOwogICAgIAogICAgIENsYXNzICphQ2xhc3MgPSBp
bnN0YW5jZS0+Z2V0Q2xhc3MoKTsKQEAgLTE3OSw3ICsxODAsNyBAQCBib29sIFJ1bnRpbWVPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXImCiAgICAgICAgIEZpZWxkICphRmllbGQgPSBhQ2xhc3MtPmZpZWxkTmFtZWQocHJvcGVy
dHlOYW1lLCBpbnN0YW5jZS5nZXQoKSk7CiAgICAgICAgIGlmIChhRmllbGQpIHsKICAgICAgICAg
ICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywg
ZmllbGRHZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZmll
bGRHZXR0ZXIpOwogICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgZGVz
Y3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwg
RG9udERlbGV0ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE4OSw3ICsxOTAsNyBA
QCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUg
KmV4ZWMsIGNvbnN0IElkZW50aWZpZXImCiAgICAgICAgICAgICBNZXRob2RMaXN0IG1ldGhvZExp
c3QgPSBhQ2xhc3MtPm1ldGhvZHNOYW1lZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgpKTsK
ICAgICAgICAgICAgIGlmIChtZXRob2RMaXN0LnNpemUoKSA+IDApIHsKICAgICAgICAgICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlz
LCBtZXRob2RHZXR0ZXIpOworICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmpl
Y3QsIG1ldGhvZEdldHRlcik7CiAgICAgICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAg
ICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMs
IHByb3BlcnR5TmFtZSksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xOTksNyArMjAwLDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJgog
ICAgICAgICAvLyBUcnkgYSBmYWxsYmFjayBvYmplY3QuCiAgICAgICAgIGlmICghYUNsYXNzLT5m
YWxsYmFja09iamVjdChleGVjLCBpbnN0YW5jZS5nZXQoKSwgcHJvcGVydHlOYW1lKS5pc1VuZGVm
aW5lZCgpKSB7CiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXMsIGZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKKyAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKICAgICAgICAg
ICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRv
cihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMjA4LDcgKzIwOSw3
IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICAKICAgICBpbnN0YW5jZS0+ZW5kKCk7CiAg
ICAgCi0gICAgcmV0dXJuIGluc3RhbmNlLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gaW5zdGFuY2UtPmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiB2b2lkIFJ1bnRpbWVPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCmluZGV4IGY2NmM0OWFmNThkZjczZGUxNTJlNWUxMWI4YWMwZmMxYTk3OWJiYjYuLjA1
MDQzMzZlYjhhZjUzNWQyZWJkYzE2NDllZGQwYTNiNTY1NzM4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5SdW50aW1lT2JqZWN0KCk7CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNj
cmlwdG9yJik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2Jq
ZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU1ZhbHVlIGRlZmF1
bHRWYWx1ZShjb25zdCBKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByZWZlcnJlZFByaW1pdGl2ZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDAxYWE4OWQwMmRhNTM4ZDZjZWE1YzJjNjFhZTU4
NDhhMzU2N2QwYWIuLjUxMzU0ZmFkZmRhNDE1YzdiODEwZTgyMWUwNDEyYjQyZmUzYjA1MGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKQEAgLTI3MywxMCArMjczLDExIEBAIGJvb2wgSlNOUE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEpTTlBPYmplY3Q6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU05QT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2lu
Zm8pOwotICAgIGlmICghbV9ucE9iamVjdCkgeworICAgIEpTTlBPYmplY3QqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU05QT2JqZWN0Kj4ob2JqZWN0KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworICAgIGlmICghdGhpc09iamVjdC0+bV9u
cE9iamVjdCkgewogICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihleGVjKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTI4NCwxNyArMjg1LDE3IEBAIGJvb2wgSlNOUE9i
amVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvCiAgICAgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllciA9IG5wSWRlbnRpZmll
ckZyb21JZGVudGlmaWVyKHByb3BlcnR5TmFtZSk7CiAKICAgICAvLyBGaXJzdCwgY2hlY2sgaWYg
dGhlIE5QT2JqZWN0IGhhcyBhIHByb3BlcnR5IHdpdGggdGhpcyBuYW1lLgotICAgIGlmIChtX25w
T2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5ICYmIG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJv
cGVydHkobV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgeworICAgIGlmICh0aGlzT2JqZWN0LT5t
X25wT2JqZWN0LT5fY2xhc3MtPmhhc1Byb3BlcnR5ICYmIHRoaXNPYmplY3QtPm1fbnBPYmplY3Qt
Pl9jbGFzcy0+aGFzUHJvcGVydHkodGhpc09iamVjdC0+bV9ucE9iamVjdCwgbnBJZGVudGlmaWVy
KSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpcywgcHJvcGVydHlHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCBwcm9wZXJ0eUdldHRlcik7CiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90
LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIERvbnREZWxldGUpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBTZWNvbmQsIGNoZWNrIGlmIHRoZSBOUE9iamVjdCBo
YXMgYSBtZXRob2Qgd2l0aCB0aGlzIG5hbWUuCi0gICAgaWYgKG1fbnBPYmplY3QtPl9jbGFzcy0+
aGFzTWV0aG9kICYmIG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzTWV0aG9kKG1fbnBPYmplY3QsIG5w
SWRlbnRpZmllcikpIHsKKyAgICBpZiAodGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5o
YXNNZXRob2QgJiYgdGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5oYXNNZXRob2QodGhp
c09iamVjdC0+bV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgewogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbWV0aG9kR2V0dGVyKTsKKyAg
ICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbWV0aG9kR2V0dGVyKTsKICAgICAgICAg
ZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1l
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKaW5kZXggZmVkMTdiM2RiZjhlZjUxMTkwNDQyOWZkYTk3YjAyZGM0MmUyZTFl
ZS4uNGI5YWQ3Y2FkMTkzNDllMjhmN2VkNzEyOTczYWQ1Nzg4MzNmNDU1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEpTQzo6Q29uc3RydWN0
VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDb25zdHJ1Y3REYXRhJik7
CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3Rh
dGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xv
dCYpOwogCiAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDOjpKU0NlbGwqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113716</attachid>
            <date>2011-11-04 14:37:51 -0700</date>
            <delta_ts>2011-11-08 16:18:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71523-20111104143750.patch</filename>
            <type>text/plain</type>
            <size>155399</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzMTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ZjdmM2QyODkyZWYwZDg3N2I1YzNlMTdhM2I4OGIwNjhkMTUxZGIuLjU2NmQxYzdkMWEwM2QzNjk2
MzA3ZWIzNzk1M2I3NmUyZmM3MjlmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDExOSBAQAogMjAxMS0xMS0wNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCisgICAgICAgIERlLXZpcnR1YWxpemUgSlNPYmplYzo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MTUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGdldE93blByb3BlcnR5RGVzY3JpcHRvciB0byB0aGUgTWV0aG9kVGFibGUsIGNoYW5n
ZWQgYWxsIG9mIHRoZSAKKyAgICAgICAgdmlydHVhbCB2ZXJzaW9ucyBvZiBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IgdG8gc3RhdGljIG9uZXMsIGFuZCAKKyAgICAgICAgY2hhbmdlZCBhbGwgb2Yg
dGhlIGNhbGwgc2l0ZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbG9va3VwIGluIHRoZSBNZXRob2RU
YWJsZS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgICogQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVm
OgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChK
U0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAg
ICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0Fy
Z3VtZW50cy5jcHA6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAqIHJ1bnRp
bWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkFycmF5Q29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9BcnJheUNvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHA6CisgICAgICAg
IChKU0M6OkFycmF5UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Q
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oOgor
ICAgICAgICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6CisgICAgICAgICogcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpEYXRlUHJv
dG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0
ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAg
ICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9KU0Fy
cmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQnl0
ZUFycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDZWxsLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDZWxsOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkpTTm90QW5PYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAg
ICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pT
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnByb3BlcnR5SXNFbnVtZXJhYmxl
KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6Cisg
ICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRQcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDogUmVtb3ZlZCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IsIHNpbmNlIHRoaXMgc2VlbXMgdG8gYmUgYSByZWxpYyBmcm9tIGEg
CisgICAgICAgIGJ5Z29uZSBlcmEgd2hlbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Igd2FzIHJv
b3RlZCBpbiBKU0NlbGwgcmF0aGVyIHRoYW4gSlNPYmplY3QuICBUaGVyZSB3ZXJlIAorICAgICAg
ICBubyBjYWxsIHNpdGVzIGZvciB0aGlzIHZlcnNpb24gb2YgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yIGluIHRoZSBlbnRpcmUgcHJvamVjdC4KKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6
CisgICAgICAgICogcnVudGltZS9Mb29rdXAuaDoKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljUHJv
cGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljRnVuY3Rpb25EZXNjcmlw
dG9yKToKKyAgICAgICAgKEpTQzo6Z2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yKToKKyAgICAgICAg
KiBydW50aW1lL01hdGhPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpNYXRoT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTWF0aE9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpO
dW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL051bWJlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90
b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6T2JqZWN0
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5
cGUuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OlJlZ0V4cE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmg6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
aW5nQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OlN0cmluZ09iamVjdDo6flN0cmluZ09iamVjdCk6CisgICAgICAgIChKU0M6
OlN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmg6CisKKzIwMTEtMTEtMDQg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKwogICAgICAgICBEZS12
aXJ0dWFsaXplIEpTT2JqZWN0OjpoYXNJbnN0YW5jZQogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0MzAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2OWJiMmUzOTU2
ZmZjMjc5MDgyZDk0YzMxZWU3OGQxNTA0ZWVlOTUuLmMxMTI1MTIyM2ZjOWUyMWQ1NjFmNDExYTY1
ZjUxNTg1ZjE4MWQyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBAQAorMjAxMS0xMS0wNCAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIERlLXZp
cnR1YWxpemUgSlNPYmplYzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTUyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAg
ICBBZGRlZCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgdG8gdGhlIE1ldGhvZFRhYmxlLCBjaGFu
Z2VkIGFsbCBvZiB0aGUgCisgICAgICAgIHZpcnR1YWwgdmVyc2lvbnMgb2YgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yIHRvIHN0YXRpYyBvbmVzLCBhbmQgCisgICAgICAgIGNoYW5nZWQgYWxsIG9m
IHRoZSBjYWxsIHNpdGVzIHRvIHRoZSBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9k
VGFibGUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnRleHQ6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvckRlbGVnYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbToKKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keSk6Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbik6CisgICAgICAgIChH
ZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lTWV0YU1ldGhvZDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVudGltZUNvbm5lY3Rp
b25NZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICogYnJpZGdlL3F0
L3F0X3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAg
ICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6On5SdW50aW1lTWV0aG9kKTog
QWRkZWQgYW4gZW1wdHkgb3V0LW9mLWxpbmUgdmlydHVhbCBkZXN0cnVjdG9yIHRvIHByZXZlbnQK
KyAgICAgICAgYSB3ZWFrIHZ0YWJsZS4KKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2Qu
aDogQ2hhbmdlZCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgZnJvbSBwcml2YXRlIHRvIHByb3Rl
Y3RlZCB0byBhbGxvdyAKKyAgICAgICAgc3ViY2xhc3NlcyB0byB1c2UgaXQgaW4gdGhlaXIgTWV0
aG9kVGFibGVzLgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ip
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTExLTA0ICBOb2Vs
IEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIElt
cGxlbWVudCBjYW52YXMudG9EYXRhVVJMKCJpbWFnZS93ZWJwIikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiZDk3
ZDFlZjI5N2RkMDEyYmUxYzhjNThjNGU3MTIzNzE1ZGZlMzY3Li5kZGM4ZDRlOTBiMTMyZDgxZTll
MzAwNzcyNTJiNjhhYzliOGI0YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEt
MTEtMDQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAg
ICBEZS12aXJ0dWFsaXplIEpTT2JqZWM6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1MjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IgdG8gdGhlIE1ldGhvZFRhYmxlLCBjaGFuZ2VkIGFsbCBvZiB0aGUgCisg
ICAgICAgIHZpcnR1YWwgdmVyc2lvbnMgb2YgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIHRvIHN0
YXRpYyBvbmVzLCBhbmQgCisgICAgICAgIGNoYW5nZWQgYWxsIG9mIHRoZSBjYWxsIHNpdGVzIHRv
IHRoZSBjb3JyZXNwb25kaW5nIGxvb2t1cCBpbiB0aGUgTWV0aG9kVGFibGUuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaDoKKwogMjAxMS0xMS0wMyAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBOZXRz
Y2FwZVBsdWdpbjo6Y29udmVydEZyb21Sb290VmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCA0NjkyNGEwYzM2ZjQ5YjM2ZWU0MDljYTEwN2Ri
ZjljNmY2Zjg1MjUxLi40ODJhNjExMzRmZGE5Mzc2ZWI1NDBkY2ZhOWUxZThkZDE3NjhkNmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTc4
LDcgKzE3OCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIFVTdHJpbmcgY2xhc3NOYW1lKGNvbnN0
IEpTT2JqZWN0Kik7CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tP
YmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oCmluZGV4IGRkNWViZDg2OTk3MzdhOTRiNGE0YTFlNDQ0MjdlMTY3ZjMw
MTJlMDQuLmY4YjIxYTIwNTk4Yzg4MTdhZDUwZGYxMDUxNTNlYTc3ZGFlZGFlM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9u
cy5oCkBAIC0xODQsMTAgKzE4NCwxMSBAQCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLAogfQogCiB0
ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotYm9vbCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIEpTQ2FsbGJhY2tPYmplY3Qq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0Kj4ob2JqZWN0KTsKICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICBpZiAobWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXMsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICBpZiAodGhpc09i
amVjdC0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgLy8gSWRlYWxseSB3ZSBzaG91bGQgcmV0
dXJuIGFuIGFjY2VzcyBkZXNjcmlwdG9yLCBidXQgcmV0dXJuaW5nIGEgdmFsdWUgZGVzY3JpcHRv
ciBpcyBiZXR0ZXIgdGhhbiBub3RoaW5nLgogICAgICAgICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5n
ZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICBpZiAoIWV4ZWMtPmhhZEV4Y2Vw
dGlvbigpKQpAQCAtMTk5LDcgKzIwMCw3IEBAIGJvb2wgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBQYXJlbnQ6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVy
biBQYXJlbnQ6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggZTgwMWQ4ZWRmNWQ2Y2Vl
Mjg1OTBkN2ZhYzI0NjM0YWYxMTNjZTYwNi4uZTZhY2U1YmVmNzVkNmQwZjc3OTI5NGMwNGU4NjY5
OWIwMGVlOWM1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBA
IC0xMjEsNiArMTIxLDcgQEAgX19aTjNKU0MxMUpTQnl0ZUFycmF5MTBwdXRCeUluZGV4RVBOU182
SlNDZWxsRVBOU185RXhlY1N0YXRlRWpOU183SlNWYWx1ZUUKIF9fWk4zSlNDMTFKU0J5dGVBcnJh
eTE1Y3JlYXRlU3RydWN0dXJlRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVj
dEVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0luZm9FCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxOGdl
dE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkxOWdldE93blBy
b3BlcnR5TmFtZXNFUE5TXzhKU09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5h
bWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKK19fWk4zSlNDMTFKU0J5dGVBcnJheTI0Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU184SlNPYmplY3RFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0MxMUpTQnl0ZUFy
cmF5MjVnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRl
RWpSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzExSlNCeXRlQXJyYXkzcHV0RVBOU182SlND
ZWxsRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRVJOU18xNVB1
dFByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTFKU0J5dGVBcnJheTZzX2luZm9FCkBAIC0xNTYsNyAr
MTU3LDYgQEAgX19aTjNKU0MxMlNhbXBsaW5nVG9vbDVzZXR1cEV2CiBfX1pOM0pTQzEyU21hbGxT
dHJpbmdzMTdjcmVhdGVFbXB0eVN0cmluZ0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzEy
U21hbGxTdHJpbmdzMjdjcmVhdGVTaW5nbGVDaGFyYWN0ZXJTdHJpbmdFUE5TXzEySlNHbG9iYWxE
YXRhRWgKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTU3RyaW5nRQotX19aTjNKU0MxMlN0cmluZ09iamVjdDI0Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFBy
b3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMTJTdHJpbmdPYmplY3Q2c19pbmZvRQogX19aTjNK
U0MxMlN0cmluZ09iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9f
Wk4zSlNDMTNKU0ZpbmFsT2JqZWN0NnNfaW5mb0UKQEAgLTE3Miw3ICsxNzIsNyBAQCBfX1pOM0pT
QzE0SlNHbG9iYWxPYmplY3QxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZp
c2l0b3JFCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxNmFkZFN0YXRpY0dsb2JhbHNFUE5TMF8x
OEdsb2JhbFByb3BlcnR5SW5mb0VpCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3QxN3B1dFdpdGhB
dHRyaWJ1dGVzRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoK
IF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxs
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKLV9f
Wk4zSlNDMTRKU0dsb2JhbE9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhl
Y1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4z
SlNDMTRKU0dsb2JhbE9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU184SlNPYmpl
Y3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlw
dG9yRQogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNT
dGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RF
CiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0Mx
NEpTR2xvYmFsT2JqZWN0NnNfaW5mb0UKQEAgLTMyNiw3ICszMjYsNyBAQCBfX1pOM0pTQzhKU09i
amVjdDIxZGVsZXRlUHJvcGVydHlCeUluZGV4RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRWoK
IF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVF
UktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNP
YmplY3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBOU18xNldy
aXRlQmFycmllckJhc2VJTlNfN1Vua25vd25FRUUKIF9fWk4zSlNDOEpTT2JqZWN0MjNhbGxvY2F0
ZVByb3BlcnR5U3RvcmFnZUVSTlNfMTJKU0dsb2JhbERhdGFFbW0KLV9fWk4zSlNDOEpTT2JqZWN0
MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZp
ZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQorX19aTjNKU0M4SlNPYmplY3QyNGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5T
XzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNKU0M4SlNPYmplY3QyNWdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xv
dEUKIF9fWk4zSlNDOEpTT2JqZWN0M3B1dEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05T
XzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pT
QzhKU09iamVjdDZzX2luZm9FCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGM2OGVjMWQ2NDE2Y2U1ZDljMGQ1MGNjMjA2ZWMwYjcx
ZTU4YzQ0MTIuLmM5MmZhOTUzZGZmOTI1Mzc5ZWNlNzUxMTY4YTA4ZDJiZTMxYzYxZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBA
IC0xOTAsMTAgKzE5MCw5IEBAIEVYUE9SVFMKICAgICA/Z2V0Q2FsbERhdGFASlNDZWxsQEpTQ0BA
U0E/QVc0Q2FsbFR5cGVAMkBQQVYxMkBBQVRDYWxsRGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVj
dERhdGFASlNDZWxsQEpTQ0BAU0E/QVc0Q29uc3RydWN0VHlwZUAyQFBBVjEyQEFBVENvbnN0cnVj
dERhdGFAMkBAWgogICAgID9nZXRPYmplY3RASlNDZWxsQEpTQ0BAUUFFUEFWSlNPYmplY3RAMkBY
WgotICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNHbG9iYWxPYmplY3RASlNDQEBVQUVf
TlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBA
WgotICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4
ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgotICAg
ID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNTdHJpbmdASlNDQEBFQUVfTlBBVkV4ZWNTdGF0
ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgotICAgID9nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JAU3RyaW5nT2JqZWN0QEpTQ0BAVUFFX05QQVZFeGVjU3RhdGVA
MkBBQlZJZGVudGlmaWVyQDJAQUFWUHJvcGVydHlEZXNjcmlwdG9yQDJAQFoKKyAgICA/Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yQEpTQnl0ZUFycmF5QEpTQ0BAU0FfTlBBVkpTT2JqZWN0QDJAUEFW
RXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCisg
ICAgP2dldE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NAQFNBX05QQVZK
U09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9wZXJ0eURlc2Ny
aXB0b3JAMkBAWgorICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNPYmplY3RASlNDQEBT
QV9OUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3Jp
cHRvckAyQEBaCiAgICAgP2dldE93blByb3BlcnR5TmFtZXNASlNCeXRlQXJyYXlASlNDQEBTQVhQ
QVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVt
ZXJhdGlvbk1vZGVAMkBAWgogICAgID9nZXRPd25Qcm9wZXJ0eU5hbWVzQEpTT2JqZWN0QEpTQ0BA
U0FYUEFWMTJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlAMkBXNEVudW1lcmF0
aW9uTW9kZUAyQEBaCiAgICAgP2dldE93blByb3BlcnR5TmFtZXNASlNWYXJpYWJsZU9iamVjdEBK
U0NAQFNBWFBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlA
MkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGY2YzI0MmJhOGRjZGI3NTcw
ZDRjMGVhMjM1YTdhNTM3OTA5Y2I4OTMuLjNjZTlhYTJmMWNjNzE3M2FhODMxYmZjYmVkY2IwYzAy
ZjcxYjM1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC05MCw5ICs5MCwxMCBAQCB2b2lkIERlYnVnZ2VyQWN0
aXZhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsCiAgICAgdGhpc09iamVjdC0+bV9hY3RpdmF0aW9uLT5tZXRob2RUYWJsZSgpLT5nZXRQ
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QtPm1fYWN0aXZhdGlvbi5nZXQoKSwgZXhlYywgcHJvcGVy
dHlOYW1lcywgbW9kZSk7CiB9CiAKLWJvb2wgRGVidWdnZXJBY3RpdmF0aW9uOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgRGVidWdnZXJBY3Rp
dmF0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gbV9hY3RpdmF0aW9uLT5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBEZWJ1
Z2dlckFjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRp
b24qPihvYmplY3QpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5tX2FjdGl2YXRpb24tPm1ldGhv
ZFRhYmxlKCktPmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5tX2FjdGl2YXRp
b24uZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgRGVi
dWdnZXJBY3RpdmF0aW9uOjpkZWZpbmVHZXR0ZXIoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAwYmNiMTMzYTNkZDI3NTFl
NTU4MjQyMGE5M2I0Njk2YTQ5NzljYTI2Li45NmFmNWVmNTFiMmE4YjAyMmU0Yjk2NDFkZmRlNjI1
NzQxM2UzZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKICAg
ICAgICAgc3RhdGljIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgc3RhdGljIHZvaWQgZ2V0T3du
UHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jiwg
RW51bWVyYXRpb25Nb2RlKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
ICAgICAgICAgc3RhdGljIHZvaWQgZGVmaW5lR2V0dGVyKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24s
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwogICAgICAgICBzdGF0aWMgdm9pZCBkZWZpbmVTZXR0ZXIo
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
T2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IGVkZTZhOTBhYmNkZmI0
M2QyMjEzNDI4NDhmZWRiNGRlZGFlMjhlOTcuLmUyMDA4NDliZDk3NmRlODZhN2YzOWMwODE4ZjBj
NDE3YWQxM2I5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmNwcApAQCAtMjE1LDM1ICsyMTUsMzYgQEAgYm9vbCBBcmd1bWVudHM6OmdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmkKICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEFyZ3VtZW50czo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEFyZ3VtZW50czo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CiB7CisgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRzKj4o
b2JqZWN0KTsKICAgICBib29sIGlzQXJyYXlJbmRleDsKICAgICB1bnNpZ25lZCBpID0gcHJvcGVy
dHlOYW1lLnRvQXJyYXlJbmRleChpc0FycmF5SW5kZXgpOwotICAgIGlmIChpc0FycmF5SW5kZXgg
JiYgaSA8IGQtPm51bUFyZ3VtZW50cyAmJiAoIWQtPmRlbGV0ZWRBcmd1bWVudHMgfHwgIWQtPmRl
bGV0ZWRBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgIGlmIChpIDwgZC0+bnVtUGFyYW1ldGVycykg
ewotICAgICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGQtPnJlZ2lzdGVyc1tkLT5m
aXJzdFBhcmFtZXRlckluZGV4ICsgaV0uZ2V0KCksIE5vbmUpOworICAgIGlmIChpc0FycmF5SW5k
ZXggJiYgaSA8IHRoaXNPYmplY3QtPmQtPm51bUFyZ3VtZW50cyAmJiAoIXRoaXNPYmplY3QtPmQt
PmRlbGV0ZWRBcmd1bWVudHMgfHwgIXRoaXNPYmplY3QtPmQtPmRlbGV0ZWRBcmd1bWVudHNbaV0p
KSB7CisgICAgICAgIGlmIChpIDwgdGhpc09iamVjdC0+ZC0+bnVtUGFyYW1ldGVycykgeworICAg
ICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmQtPnJlZ2lzdGVy
c1t0aGlzT2JqZWN0LT5kLT5maXJzdFBhcmFtZXRlckluZGV4ICsgaV0uZ2V0KCksIE5vbmUpOwog
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihkLT5l
eHRyYUFyZ3VtZW50c1tpIC0gZC0+bnVtUGFyYW1ldGVyc10uZ2V0KCksIE5vbmUpOworICAgICAg
ICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmQtPmV4dHJhQXJndW1l
bnRzW2kgLSB0aGlzT2JqZWN0LT5kLT5udW1QYXJhbWV0ZXJzXS5nZXQoKSwgTm9uZSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKLSAgICBpZiAocHJvcGVydHlOYW1lID09IGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCFkLT5vdmVycm9kZUxlbmd0aCkp
IHsKLSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGpzTnVtYmVyKGQtPm51bUFyZ3Vt
ZW50cyksIERvbnRFbnVtKTsKKyAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGggJiYgTElLRUxZKCF0aGlzT2JqZWN0LT5kLT5vdmVycm9kZUxlbmd0aCkp
IHsKKyAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGpzTnVtYmVyKHRoaXNPYmplY3Qt
PmQtPm51bUFyZ3VtZW50cyksIERvbnRFbnVtKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIAotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmNh
bGxlZSAmJiBMSUtFTFkoIWQtPm92ZXJyb2RlQ2FsbGVlKSkgewotICAgICAgICBpZiAoIWQtPmlz
U3RyaWN0TW9kZSkgewotICAgICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGQtPmNh
bGxlZS5nZXQoKSwgRG9udEVudW0pOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJv
cGVydHlOYW1lcygpLmNhbGxlZSAmJiBMSUtFTFkoIXRoaXNPYmplY3QtPmQtPm92ZXJyb2RlQ2Fs
bGVlKSkgeworICAgICAgICBpZiAoIXRoaXNPYmplY3QtPmQtPmlzU3RyaWN0TW9kZSkgeworICAg
ICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmQtPmNhbGxlZS5n
ZXQoKSwgRG9udEVudW0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KLSAg
ICAgICAgY3JlYXRlU3RyaWN0TW9kZUNhbGxlZUlmTmVjZXNzYXJ5KGV4ZWMpOworICAgICAgICB0
aGlzT2JqZWN0LT5jcmVhdGVTdHJpY3RNb2RlQ2FsbGVlSWZOZWNlc3NhcnkoZXhlYyk7CiAgICAg
fQogCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuY2FsbGVy
ICYmIGQtPmlzU3RyaWN0TW9kZSkKLSAgICAgICAgY3JlYXRlU3RyaWN0TW9kZUNhbGxlcklmTmVj
ZXNzYXJ5KGV4ZWMpOworICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1l
cygpLmNhbGxlciAmJiB0aGlzT2JqZWN0LT5kLT5pc1N0cmljdE1vZGUpCisgICAgICAgIHRoaXNP
YmplY3QtPmNyZWF0ZVN0cmljdE1vZGVDYWxsZXJJZk5lY2Vzc2FyeShleGVjKTsKICAgICAKLSAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKIHZvaWQgQXJndW1lbnRzOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAppbmRleCBiZmI0ZDgwNmJiMDlkMTAzZmNlZGVjNTRmMjhmNTZhZDViZjIzNDI0Li4xNWMwZDhh
NjhjNTNhYjM4Yzg3ZDQ2MGU0ODYyNTk1ZTUxNGFjNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtMTM3LDcgKzEzNyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwgSlNGdW5jdGlvbiom
LCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYgYXJndiwgaW50JiBh
cmdjKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDZWxsKiwgRXhl
Y1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNmFlNDQ0
MzdkZWFhZDEzZmRiYmNkMWQ3MTZhZTBhMTY1ZGQ0ODI5MC4uZGJlYTE3Nzc4NWI5NWNkOWI0ZjU1
Y2IyZGZjODZlMTc2OTM5MDQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTY4LDkgKzY4LDkgQEAgYm9vbCBBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IEkKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEludGVybmFsRnVu
Y3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6YXJyYXlDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0
aWNfY2FzdDxBcnJheUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLWJvb2wgQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewot
ICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SW50ZXJuYWxGdW5jdGlvbj4o
ZXhlYywgRXhlY1N0YXRlOjphcnJheUNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3Jp
cHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OmFycmF5Q29uc3RydWN0b3JU
YWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8QXJyYXlDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggYmRjZTg0NmU2
ZDFmOTUyMmE5M2YxYTEzMWQxNTY4ZjA0NWNkNWI0OC4uZWMxZmY3ODIzNTYxYWEzMzgwZDFmMmNj
MjlkZWFhZTI0MTMxYTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgQXJyYXlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0NlbGwqLCBDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHN0YXRpYyBDYWxs
VHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGI4ZTJjNTJlNWRlMTdh
Y2JiY2U3OGM5MmQxMzgzNzY2ZDAyYTYxZmIuLjllN2I5NDEzODBjNGIxNjNhNjIxOGEzYTgzOTFj
YmQyNWNlZWMwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAKQEAgLTEzMCw5ICsxMzAsOSBAQCBib29sIEFycmF5UHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZQogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNBcnJheT4oZXhlYywgRXhlY1N0
YXRlOjphcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheVByb3RvdHlw
ZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEFycmF5UHJvdG90eXBl
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wg
QXJyYXlQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlv
bkRlc2NyaXB0b3I8SlNBcnJheT4oZXhlYywgRXhlY1N0YXRlOjphcnJheVByb3RvdHlwZVRhYmxl
KGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBnZXRT
dGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNBcnJheT4oZXhlYywgRXhlY1N0YXRlOjphcnJheVBy
b3RvdHlwZVRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxBcnJheVByb3RvdHlwZSo+KG9iamVjdCks
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBBcnJheSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXgg
MTc3NmFiM2IzMTQxNmZmNjkyM2IxYTQ1MGU5MjcwOWQ3NWEzNmJlMC4uM2ZlMWFlYjVhZTc3MGM0
OWIxNGYxYjhmYzg1MWMyMzFhZDNlYjM0YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xv
dCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0
YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmluZGV4IDlmMWZhNDFlOWNkODIxYjIy
NGVlMWI2MmE4MWU4MWE4NmNlMjYxODAuLmU1M2MwZjZlNTM2ODZkNTNlZjE0ZmRlZmE5N2JlNGMy
Njk4NmI1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuY3BwCkBAIC02Nyw5ICs2Nyw5IEBAIGJvb2wgQm9vbGVhblByb3RvdHlwZTo6
Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxCb29sZWFuT2JqZWN0PihleGVjLCBF
eGVjU3RhdGU6OmJvb2xlYW5Qcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8Qm9vbGVh
blByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEJvb2xl
YW5Qcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQorYm9vbCBCb29sZWFuUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEJvb2xlYW5PYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6
Ym9vbGVhblByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpOworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8Qm9vbGVhbk9iamVj
dD4oZXhlYywgRXhlY1N0YXRlOjpib29sZWFuUHJvdG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19j
YXN0PEJvb2xlYW5Qcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhblByb3RvdHlwZS5oCmluZGV4IDFiY2Y4YjUyMTBlNGE1ZGFiYWFlY2NiOTY1NjRm
YjA4YzI0YzNjMTcuLmI3OWNlZGM5MTA5Zjc3MjYzMjIyNzkxZjBmZTFhN2ZmNmUzMGY1ODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgK
QEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEJvb2xlYW5Qcm90b3R5
cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7Cisg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NsYXNzSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xh
c3NJbmZvLmgKaW5kZXggZTRlMjAyZDg5M2EzMzEzOTM5NDJiYWI5ODcxYjZmNTdmYmFlNzJhOC4u
MWU3YzQxMDkyMDY2Zjk5ZjU1OTQwODE1MjFkNDNkZDViNTVlZGNmYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmgKQEAgLTgzLDYgKzgzLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdHlwZWRlZiBib29sICgqSGFzSW5zdGFuY2VGdW5jdGlvblB0ciko
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBKU1ZhbHVlLCBKU1ZhbHVlKTsKICAgICAgICAgSGFzSW5z
dGFuY2VGdW5jdGlvblB0ciBoYXNJbnN0YW5jZTsKKworICAgICAgICB0eXBlZGVmIGJvb2wgKCpH
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JGdW5jdGlvblB0cikoSlNPYmplY3QqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIEdldE93
blByb3BlcnR5RGVzY3JpcHRvckZ1bmN0aW9uUHRyIGdldE93blByb3BlcnR5RGVzY3JpcHRvcjsK
ICAgICB9OwogCiAjZGVmaW5lIENSRUFURV9NRU1CRVJfQ0hFQ0tFUihtZW1iZXIpIFwKQEAgLTEy
Miw2ICsxMjUsNyBAQCBzdHJ1Y3QgTWVtYmVyQ2hlY2sjI21lbWJlciB7IFwKICAgICAgICAgJkNs
YXNzTmFtZTo6Z2V0UHJvcGVydHlOYW1lcywgXAogICAgICAgICAmQ2xhc3NOYW1lOjpjbGFzc05h
bWUsIFwKICAgICAgICAgJkNsYXNzTmFtZTo6aGFzSW5zdGFuY2UsIFwKKyAgICAgICAgJkNsYXNz
TmFtZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBcCiAgICAgfSwgXAogICAgIHNpemVvZihD
bGFzc05hbWUpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCmluZGV4IGE5ZTgxODhlNzU2NzQxODc1YmQ3ZDYwOTgxNjk5YWFkZmMzMjhh
NzYuLjk4MDVlMTczNjY1OTFkMDRlY2E4NTMwMmI4NzBjZWFkODg1MDZhZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtOTAs
OSArOTAsOSBAQCBib29sIERhdGVDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZAogICAgIHJldHVybiBnZXRTdGF0aWNG
dW5jdGlvblNsb3Q8SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpkYXRlQ29uc3Ry
dWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8RGF0ZUNvbnN0cnVjdG9yKj4oY2VsbCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgRGF0ZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgRGF0ZUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9y
PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZGF0ZUNvbnN0cnVjdG9yVGFibGUo
ZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0
YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6
OmRhdGVDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxEYXRlQ29uc3RydWN0b3Iq
PihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyBFQ01BIDE1Ljku
MwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApp
bmRleCAyMmMwNDM3NmY2NTMyNTM4YjkxNDNlM2IzYzViYmY4Y2E1NzlkMzJkLi5hZTIzNzZhMGEz
ZDNhOTM0NjZlM2Q2ZThiYjgyMTliNzZiNGM1YmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgfTsKIAogICAgIEpTT2JqZWN0
KiBjb25zdHJ1Y3REYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgQXJnTGlz
dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNw
cAppbmRleCA2NDY0YzQwMmM0YzJiMDgyZGMyZDFjZTI2YTRhOTU1NmM2ZWE1OGY3Li4wNDc4NGQz
M2I1NDdkMGVhYTBjYWQ4Y2MxYzNlZGM5ZGM2ODhjMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtNDQ4LDkgKzQ0OCw5IEBAIGJv
b2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVuCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxK
U09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpkYXRlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PERh
dGVQcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBEYXRl
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKK2Jvb2wgRGF0ZVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpkYXRlVGFibGUo
ZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0
YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpkYXRlVGFi
bGUoZXhlYyksIHN0YXRpY19jYXN0PERhdGVQcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyBGdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAppbmRleCAxZTZmZmRmZGRkN2M0MzAxNDIzNWNm
ZjhiNmQ2NjY1MDUyODI0NTQ0Li41MGEwMGVjMGE1YThlZjRmNDdhNTk5NzY2MWM1ZTY4NDVkOWJm
MzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5o
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCmlu
ZGV4IDExOWVhYTg1OWM5NDQ1M2RjZGU3NWQ2MGVhYzVlMTg2OTkyY2ZlNTUuLjhhZDgwMzE5MGYy
ZWM1MTVmM2EyOGU5MGUwYjgzM2NiMmY0NmY2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTY3LDkgKzY3LDkgQEAgYm9vbCBF
cnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGUKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEVycm9y
SW5zdGFuY2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgc3Rh
dGljX2Nhc3Q8RXJyb3JQcm90b3R5cGUqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAotYm9vbCBFcnJvclByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpCitib29sIEVycm9yUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICBy
ZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEVycm9ySW5zdGFuY2U+KGV4ZWMsIEV4
ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEVycm9y
SW5zdGFuY2U+KGV4ZWMsIEV4ZWNTdGF0ZTo6ZXJyb3JQcm90b3R5cGVUYWJsZShleGVjKSwgc3Rh
dGljX2Nhc3Q8RXJyb3JQcm90b3R5cGUqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggNjdjNTQ0NjMzZmY1NDliZTU1NjY1MTNmZjM3MDQx
ODlhZjAwYzA0NS4uNjY3YmU0MjdlZTJlZTU3YzNiNmJiNGQ1NzMwZTYxZDdiNGVhMWY4NSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCkBAIC01
Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggYzIzZjFjNTBmNGM0MDczNDgzZGEwZmYzODBl
ZDBjYjA3NzkyNGE2OC4uNTNhMjk2NzQ4OWVkNWFlNzQyNjMzMzk3NzRkYTUzMmQ5OTRmMzY3YyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTI5MSwyMSAr
MjkxLDIyIEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyCiAgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAotYm9vbCBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKK2Jvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CisgICAgSlNBcnJheSogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihvYmplY3QpOwogICAgIGlmIChwcm9wZXJ0
eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewotICAgICAgICBkZXNjcmlw
dG9yLnNldERlc2NyaXB0b3IoanNOdW1iZXIobGVuZ3RoKCkpLCBEb250RGVsZXRlIHwgRG9udEVu
dW0pOworICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IoanNOdW1iZXIodGhpc09iamVj
dC0+bGVuZ3RoKCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICBBcnJheVN0b3JhZ2UqIHN0b3JhZ2UgPSBtX3N0b3JhZ2U7CisgICAg
QXJyYXlTdG9yYWdlKiBzdG9yYWdlID0gdGhpc09iamVjdC0+bV9zdG9yYWdlOwogICAgIAogICAg
IGJvb2wgaXNBcnJheUluZGV4OwogICAgIHVuc2lnbmVkIGkgPSBwcm9wZXJ0eU5hbWUudG9BcnJh
eUluZGV4KGlzQXJyYXlJbmRleCk7CiAgICAgaWYgKGlzQXJyYXlJbmRleCkgewogICAgICAgICBp
ZiAoaSA+PSBzdG9yYWdlLT5tX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgaWYgKGkgPCBtX3ZlY3Rvckxlbmd0aCkgeworICAgICAgICBpZiAoaSA8IHRoaXNPYmpl
Y3QtPm1fdmVjdG9yTGVuZ3RoKSB7CiAgICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4m
IHZhbHVlID0gc3RvcmFnZS0+bV92ZWN0b3JbaV07CiAgICAgICAgICAgICBpZiAodmFsdWUpIHsK
ICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodmFsdWUuZ2V0KCksIDAp
OwpAQCAtMzIxLDcgKzMyMiw3IEBAIGJvb2wgSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVyCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyBFQ01BIDE1LjQuNS4xCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggYjJmODU5ZjgxMjQwN2MzNWEwZDRiNWQx
ZGI0YzEyNDQ4MmE3MzJkZC4uOWQzOTY0OGNmNGUyYWQ4MmEwMTdlY2ZiYzgxM2YzYjViMzFiZWEz
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTYsNyArOTYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAg
ICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qnl0ZUFycmF5LmNwcAppbmRleCBjYmVlNmIyYTA1ZDgyNjlkMDM3NTQ3NmU0ZjBiMThjNDE5MGE4
ZTlhLi40ZDgyY2ZmOWZhNWYzMmZiZmU5OTY1OWE2MThmNTcwNzViN2FmM2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC02NiwxNSArNjYs
MTYgQEAgYm9vbCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGkKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
Ci1ib29sIEpTQnl0ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKK2Jvb2wgSlNCeXRlQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIEpTQnl0ZUFy
cmF5KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNCeXRlQXJyYXkqPihvYmplY3QpOwogICAg
IGJvb2wgb2s7CiAgICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIob2sp
OwotICAgIGlmIChvayAmJiBjYW5BY2Nlc3NJbmRleChpbmRleCkpIHsKLSAgICAgICAgZGVzY3Jp
cHRvci5zZXREZXNjcmlwdG9yKGdldEluZGV4KGV4ZWMsIGluZGV4KSwgRG9udERlbGV0ZSk7Cisg
ICAgaWYgKG9rICYmIHRoaXNPYmplY3QtPmNhbkFjY2Vzc0luZGV4KGluZGV4KSkgeworICAgICAg
ICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0SW5kZXgoZXhlYywgaW5k
ZXgpLCBEb250RGVsZXRlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogYm9v
bCBKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAppbmRleCA2OGZj
YjhhYzRlYmFlZjFlZGNhOTQyYjBkMjcwODc4OTMyOWYyZDBlLi4wMDQxZDE0YzQ0MDAxNThiM2Vh
ZTFiM2FlZjJkNGFlZDlmZTFmZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmgKQEAgLTkwLDcgKzkwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0
UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKaW5kZXggOTMxZTNk
YTY4MWQzMGY3MzJkOWYzMTY4MjAwNjFlYjFlNGEzYjZiYS4uZjVlOWJlZmE4YWQ2YTAxM2Q3OTdm
NTgxMmI0ZjE0ZjhlMThkZGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuY3BwCkBAIC0xOTYsNCArMTk2LDEwIEBAIGJvb2wgSlNDZWxsOjpoYXNJbnN0YW5jZShKU09i
amVjdCosIEV4ZWNTdGF0ZSosIEpTVmFsdWUsIEpTVmFsdWUpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCitib29sIEpTQ2VsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpCit7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Vs
bC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggOTc0YWQ1
OTljY2Q1ZmFiMDBlNzJiODM2YTRmYjdiMDdhMzNkN2MyNC4uZDJjNmY5M2ZiOWIwYmQ4OTUxNzM4
NzYwNGRjOTM1N2VkMGFmOWQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxs
LmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBKU0dsb2Jh
bE9iamVjdDsKICAgICBjbGFzcyBTdHJ1Y3R1cmU7CisgICAgY2xhc3MgUHJvcGVydHlEZXNjcmlw
dG9yOwogICAgIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5OwogCiAgICAgZW51bSBFbnVtZXJhdGlv
bk1vZGUgewpAQCAtMTQ3LDYgKzE0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUpOwogICAg
ICAgICBzdGF0aWMgVVN0cmluZyBjbGFzc05hbWUoY29uc3QgSlNPYmplY3QqKTsKICAgICAgICAg
c3RhdGljIGJvb2wgaGFzSW5zdGFuY2UoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBKU1ZhbHVlLCBK
U1ZhbHVlIHByb3RvdHlwZVByb3BlcnR5KTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgV3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gbV9zdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDI4ZmVlMDk3YzMxNjM1ZGMxZTg3OWM0ZDQxZGVkZTA0
ZDljOThmZjMuLmVlYWY3ZDU0MTIwYmFhMjgyNGZlOThkMzY5NmFkYThkNGNmMDAyNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0yNTEsNTEg
KzI1MSw1MiBAQCBib29sIEpTRnVuY3Rpb246OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZgogICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAotYm9vbCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKK2Jvb2wgSlNGdW5jdGlvbjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgaWYgKGlzSG9z
dEZ1bmN0aW9uKCkpCi0gICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KG9iamVjdCk7CisgICAgaWYgKHRoaXNP
YmplY3QtPmlzSG9zdEZ1bmN0aW9uKCkpCisgICAgICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKICAgICAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgIG1ldGhvZFRh
YmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotICAgICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgICAgIHRoaXNPYmplY3QtPm1ldGhvZFRhYmxl
KCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiAgICAgfQogICAgIAogICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmFyZ3VtZW50cykgewot
ICAgICAgICBpZiAoanNFeGVjdXRhYmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7Ci0gICAgICAgICAg
ICBib29sIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9w
ZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgICAgICBpZiAodGhpc09iamVjdC0+anNFeGVjdXRh
YmxlKCktPmlzU3RyaWN0TW9kZSgpKSB7CisgICAgICAgICAgICBib29sIHJlc3VsdCA9IEJhc2U6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUs
IGRlc2NyaXB0b3IpOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICBpbml0aWFsaXplR2V0dGVyU2V0dGVyUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCBnbG9i
YWxPYmplY3QoKS0+dGhyb3dUeXBlRXJyb3JHZXR0ZXJTZXR0ZXIoZXhlYyksIERvbnREZWxldGUg
fCBEb250RW51bSB8IEdldHRlciB8IFNldHRlcik7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0g
QmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7CisgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+aW5pdGlhbGl6ZUdldHRlclNldHRl
clByb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkt
PnRocm93VHlwZUVycm9yR2V0dGVyU2V0dGVyKGV4ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0g
fCBHZXR0ZXIgfCBTZXR0ZXIpOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJhc2U6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpOwogICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBkZXNjcmlwdG9y
LnNldERlc2NyaXB0b3IoZXhlYy0+aW50ZXJwcmV0ZXIoKS0+cmV0cmlldmVBcmd1bWVudHMoZXhl
YywgdGhpcyksIFJlYWRPbmx5IHwgRG9udEVudW0gfCBEb250RGVsZXRlKTsKKyAgICAgICAgZGVz
Y3JpcHRvci5zZXREZXNjcmlwdG9yKGV4ZWMtPmludGVycHJldGVyKCktPnJldHJpZXZlQXJndW1l
bnRzKGV4ZWMsIHRoaXNPYmplY3QpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKICAgICBpZiAocHJvcGVydHlOYW1l
ID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKLSAgICAgICAgZGVzY3JpcHRvci5z
ZXREZXNjcmlwdG9yKGpzTnVtYmVyKGpzRXhlY3V0YWJsZSgpLT5wYXJhbWV0ZXJDb3VudCgpKSwg
UmVhZE9ubHkgfCBEb250RW51bSB8IERvbnREZWxldGUpOworICAgICAgICBkZXNjcmlwdG9yLnNl
dERlc2NyaXB0b3IoanNOdW1iZXIodGhpc09iamVjdC0+anNFeGVjdXRhYmxlKCktPnBhcmFtZXRl
ckNvdW50KCkpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9udERlbGV0ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICAKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5jYWxsZXIpIHsKLSAgICAgICAgaWYgKGpzRXhlY3V0YWJsZSgpLT5pc1N0
cmljdE1vZGUoKSkgewotICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICAgICAg
aWYgKHRoaXNPYmplY3QtPmpzRXhlY3V0YWJsZSgpLT5pc1N0cmljdE1vZGUoKSkgeworICAgICAg
ICAgICAgYm9vbCByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICAgICAgICAgIGlmICgh
cmVzdWx0KSB7Ci0gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZUdldHRlclNldHRlclByb3BlcnR5
KGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2xvYmFsT2JqZWN0KCktPnRocm93VHlwZUVycm9yR2V0dGVy
U2V0dGVyKGV4ZWMpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBHZXR0ZXIgfCBTZXR0ZXIpOwot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPmluaXRpYWxpemVHZXR0ZXJTZXR0ZXJQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUsIHRo
aXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLT50aHJvd1R5cGVFcnJvckdldHRlclNldHRlcihleGVj
KSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgR2V0dGVyIHwgU2V0dGVyKTsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICAgICAgICAgICAgICBBU1NFUlQo
cmVzdWx0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
ICAgIH0KLSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGV4ZWMtPmludGVycHJldGVy
KCktPnJldHJpZXZlQ2FsbGVyKGV4ZWMsIHRoaXMpLCBSZWFkT25seSB8IERvbnRFbnVtIHwgRG9u
dERlbGV0ZSk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihleGVjLT5pbnRlcnBy
ZXRlcigpLT5yZXRyaWV2ZUNhbGxlcihleGVjLCB0aGlzT2JqZWN0KSwgUmVhZE9ubHkgfCBEb250
RW51bSB8IERvbnREZWxldGUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0g
ICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogdm9p
ZCBKU0Z1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmlu
ZGV4IGQzMTI2YjA4Yzg5NjczZGUxNWI2NzE4ODllYWNhM2ZlNjUyZmY5OWYuLjgzYmFhYWU1ZWZl
NWYzNmYyZDI0NmY2ZWJhMTQ2MDAwNjlhNzI0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqLCBTY29wZUNoYWluTm9kZSopOwogCiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlT
bG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9w
ZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRp
ZXMpOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDI2MDM0ZDIwNTBhNWU4NzNmZmRhMzU2ODc2NWNiNDcwYTFkZTc1ZDcuLjRmNDFiZTA3NWJj
NWEwOTkzNDM5YTliZmFiNDQ4NzE0MmQ4NGNhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTQzOSwxMSArNDM5LDEyIEBAIGJv
b2wgSlNHbG9iYWxPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QtPnN5bWJvbFRhYmxl
R2V0KHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNHbG9iYWxPYmplY3Q6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU0dsb2Jh
bE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgaWYgKGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRv
cjxKU1ZhcmlhYmxlT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Omdsb2JhbE9iamVjdFRhYmxlKGV4
ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQorICAgIEpTR2xvYmFsT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihvYmplY3QpOworICAg
IGlmIChnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNWYXJpYWJsZU9iamVjdD4oZXhlYywg
RXhlY1N0YXRlOjpnbG9iYWxPYmplY3RUYWJsZShleGVjKSwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN5bWJv
bFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIHRoaXNPYmpl
Y3QtPnN5bWJvbFRhYmxlR2V0KHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OmNsZWFyUmFyZURhdGEoSlNDZWxsKiBjZWxsKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZjdmYzUxMjNkNTU0
NmNhZWM1ZTA4NGRkNmQxZWE5ODE0OTBjOTZiYS4uYjNkOGUwNTJmYWU3NzI0ZmFkMjUzNDA2ZjAz
MjE4NmI2ODU0MzcxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0xODMsNyArMTgzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duUHJvcGVydHlGb3JX
cml0ZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0
UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTm90QW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAKaW5kZXggYjdmMWI5NDJlNzM1MjA3NWE1NWIwM2ZmYjYzNTI1Mzg1MTFh
ZDc2ZS4uOTFmOTBkNjI0MDE5ODlkODg3ZGIwNmZlMDI5ZTVmNzVhMmYzNDIyNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAKQEAgLTU4LDcg
KzU4LDcgQEAgYm9vbCBKU05vdEFuT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
Q2VsbCosIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgSlNOb3RBbk9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpCitib29sIEpTTm90
QW5PYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpCiB7CiAgICAgQVNT
RVJUX1VOVVNFRChleGVjLCBleGVjLT5oYWRFeGNlcHRpb24oKSk7CiAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4
IGY1NTRlNGRjZmJjMjdiMGY1OWY0NTM1N2IwNWY1Y2I5NTI2YzBjYjUuLjc3ZjAyZWVlNjdmOGNj
NmY1M2Y5ODI2MzMwNDAxM2U2NTI3ZjNkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTcwLDcgKzcwLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIC8vIEpTT2JqZWN0IG1ldGhvZHMKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IAogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgcHV0QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAppbmRleCBmNjMwZDNlMTAzZDBhYWViMTZhODliYzAwNjYxNTQ0N2Q4ZmMz
NDgyLi5hOWE0MjJmMDkxNzk5YjZjOTg2YTM0ZWQ2N2E0YWZlNTVjYzk5OGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNjAzLDkgKzYwMyw5
IEBAIGJvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9u
U2xvdDxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpqc29uVGFibGUoZXhlYyksIHN0YXRpY19j
YXN0PEpTT05PYmplY3QqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBK
U09OT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKK2Jvb2wgSlNPTk9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpqc29uVGFibGUoZXhl
YyksIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpqc29uVGFibGUo
ZXhlYyksIHN0YXRpY19jYXN0PEpTT05PYmplY3QqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiBjbGFzcyBXYWxrZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IGNmYTJhMTMwMGYzYTU1M2ZjNGE0ZTQ3ZWU0MGQ1N2M2
NTJlZjIyYzcuLjViN2I1MWFmYzBmNjM4ODM4YTJkMDQ1OWQwZjYxYWRjMjNlZWQxZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTU3LDcgKzU3LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgSlNPTk9iamVjdChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDZlMDIw
YjBlYmI5MjMxZDYwYWNkNjQ3NzAzMzhlMjM2MmUyMzgzZTMuLmQ1NWE1ZjQ2N2EzMjdhNGQxMzc2
YWNiMzQzYjg3MDkyODIyMTcyYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBib29sIEpTT2JqZWN0OjpoYXNJbnN0YW5j
ZShKU09iamVjdCosIEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcgog
Ym9vbCBKU09iamVjdDo6cHJvcGVydHlJc0VudW1lcmFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0CiB7CiAgICAgUHJvcGVydHlEZXNjcmlw
dG9yIGRlc2NyaXB0b3I7Ci0gICAgaWYgKCFjb25zdF9jYXN0PEpTT2JqZWN0Kj4odGhpcyktPmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQor
ICAgIGlmICghY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLT5tZXRob2RUYWJsZSgpLT5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uc3RfY2FzdDxKU09iamVjdCo+KHRoaXMpLCBleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0
dXJuIGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpOwogfQpAQCAtNjY4LDE0ICs2NjgsMTQgQEAgdm9p
ZCBKU09iamVjdDo6YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBzaXplX3Qgb2xkU2l6ZSwKICAgICBtX3Byb3BlcnR5U3RvcmFnZS5zZXQoZ2xvYmFsRGF0
YSwgdGhpcywgbmV3UHJvcGVydHlTdG9yYWdlKTsKIH0KIAotYm9vbCBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKIHsKICAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzID0gMDsKICAgICBKU0NlbGwq
IGNlbGwgPSAwOwotICAgIHNpemVfdCBvZmZzZXQgPSBzdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBjZWxsKTsKKyAgICBzaXplX3Qg
b2Zmc2V0ID0gb2JqZWN0LT5zdHJ1Y3R1cmUoKS0+Z2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJv
cGVydHlOYW1lLCBhdHRyaWJ1dGVzLCBjZWxsKTsKICAgICBpZiAob2Zmc2V0ID09IFdURjo6bm90
Rm91bmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0
b3IoZ2V0RGlyZWN0T2Zmc2V0KG9mZnNldCksIGF0dHJpYnV0ZXMpOworICAgIGRlc2NyaXB0b3Iu
c2V0RGVzY3JpcHRvcihvYmplY3QtPmdldERpcmVjdE9mZnNldChvZmZzZXQpLCBhdHRyaWJ1dGVz
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNjgzLDcgKzY4Myw3IEBAIGJvb2wgSlNPYmpl
Y3Q6OmdldFByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5CiB7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IHRoaXM7CiAgICAgd2hpbGUg
KHRydWUpIHsKLSAgICAgICAgaWYgKG9iamVjdC0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4
ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpCisgICAgICAgIGlmIChvYmplY3QtPm1ldGhv
ZFRhYmxlKCktPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZSwgZGVzY3JpcHRvcikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgSlNW
YWx1ZSBwcm90b3R5cGUgPSBvYmplY3QtPnByb3RvdHlwZSgpOwogICAgICAgICBpZiAoIXByb3Rv
dHlwZS5pc09iamVjdCgpKQpAQCAtNzMwLDcgKzczMCw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmlu
ZU93blByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lCiB7CiAgICAgLy8gSWYgd2UgaGF2ZSBhIG5ldyBwcm9wZXJ0eSB3ZSBjYW4ganVzdCBwdXQg
aXQgb24gbm9ybWFsbHkKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgY3VycmVudDsKLSAgICBpZiAo
IWdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGN1cnJlbnQpKSB7
CisgICAgaWYgKCFtZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBjdXJyZW50KSkgewogICAgICAgICAvLyB1bmxlc3MgZXh0ZW5z
aW9ucyBhcmUgcHJldmVudGVkIQogICAgICAgICBpZiAoIWlzRXh0ZW5zaWJsZSgpKSB7CiAgICAg
ICAgICAgICBpZiAodGhyb3dFeGNlcHRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAppbmRleCBlOGU1MDhmZTdiM2YzNjBlOTQ4ZmU2MTlkNmIwOTY2OWU5YmQ5Yzcz
Li4zNTI1YWU4Y2EwMTRiNGZhY2IwNmIxMmNiNjZjYzdkMmMwNzY1NThjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0Nl
bGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgICAgIHN0YXRpYyB2
b2lkIHB1dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXRC
eUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKaW5kZXggYTk4
MmYxOWI2NjliMDRiOWE2YjUzNGI1NjUwZGJjMDE2NzJjMmM2OC4uZTlmYzI3MWMyMjRkYTgyZmFh
ZDNmZDQ3OTRmY2VlOGJiYjUyNjNjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTU3RyaW5nLmNwcApAQCAtMjQwLDE2ICsyNDAsNiBAQCBib29sIEpTU3RyaW5nOjpnZXRTdHJp
bmdQcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cgogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBKU1N0cmluZzo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCi17Ci0gICAgaWYgKGdldFN0cmluZ1By
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAocHJvcGVydHlOYW1lICE9IGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS51bmRlcnNjb3JlUHJvdG8pCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZXNjcmlw
dG9yLnNldERlc2NyaXB0b3IoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5zdHJpbmdQcm90
b3R5cGUoKSwgRG9udEVudW0pOwotICAgIHJldHVybiB0cnVlOwotfQotCiBib29sIEpTU3RyaW5n
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVj
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU1N0
cmluZyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oY2VsbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAppbmRleCAwOTdiNDkxMTE2Mjk1NDA4NTVj
ZjlhOWU3YmIzNzA1Nzk2MDlmNjQxLi44ZWYyMzg0NTkwZjMxNDEzNjJjM2IzZTBiZTQyZmFkODI3
YmI5OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmlu
Zy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKQEAgLTI1
Miw3ICsyNTIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgLy8gQWN0dWFsbHkgZ2V0UHJv
cGVydHlTbG90LCBub3QgZ2V0T3duUHJvcGVydHlTbG90IChzZWUgSlNDZWxsKS4KICAgICAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
UHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNf
bWF4SW50ZXJuYWxSb3BlTGVuZ3RoID0gMzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9M
b29rdXAuaAppbmRleCA4NGM3MTNjOWQ4NDYyMDg0NzhjNDNkYTgzYzAyZTQ2YjAxZGY2NWQwLi4x
Y2IyN2RhMGNkYTE2ZThiM2VhNWFmZDI0OTU2ZTExODU0ZGMwNDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Mb29rdXAuaApAQCAtMjg1LDcgKzI4NSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBjb25zdCBIYXNoRW50cnkqIGVudHJ5ID0gdGFibGUtPmVudHJ5KGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIAogICAgICAgICBpZiAoIWVudHJ5KSAvLyBub3QgZm91bmQs
IGZvcndhcmQgdG8gcGFyZW50Ci0gICAgICAgICAgICByZXR1cm4gdGhpc09iai0+UGFyZW50SW1w
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKKyAgICAgICAgICAgIHJldHVybiBQYXJlbnRJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih0aGlzT2JqLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogIAogICAgICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdDsKICAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5j
dGlvbikgewpAQCAtMzI2LDcgKzMyNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHRlbXBsYXRl
IDxjbGFzcyBQYXJlbnRJbXA+CiAgICAgaW5saW5lIGJvb2wgZ2V0U3RhdGljRnVuY3Rpb25EZXNj
cmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSwgSlNPYmplY3Qq
IHRoaXNPYmosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKQogICAgIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0PFBhcmVudElt
cCo+KHRoaXNPYmopLT5QYXJlbnRJbXA6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKQorICAgICAgICBpZiAoUGFyZW50SW1wOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Ioc3RhdGljX2Nhc3Q8UGFyZW50SW1wKj4odGhpc09iaiksIGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgCiAgICAgICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSB0YWJsZS0+ZW50cnkoZXhl
YywgcHJvcGVydHlOYW1lKTsKQEAgLTM2OCw3ICszNjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IHRhYmxlLT5lbnRyeShleGVjLCBwcm9wZXJ0
eU5hbWUpOwogICAgICAgICAKICAgICAgICAgaWYgKCFlbnRyeSkgLy8gbm90IGZvdW5kLCBmb3J3
YXJkIHRvIHBhcmVudAotICAgICAgICAgICAgcmV0dXJuIHRoaXNPYmotPlBhcmVudEltcDo6Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Cisg
ICAgICAgICAgICByZXR1cm4gUGFyZW50SW1wOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhp
c09iaiwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKICAgICAgICAgCiAgICAgICAg
IEFTU0VSVCghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbikpOwogICAgICAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5jcHAKaW5kZXggODE4YWEwMmYyMWRkZjM4Y2Q3N2ZiZWI0NTNlN2UxODg0NzRkNTY0ZS4uNTZi
NmIwMzBiMmQ2MTI2NWRjNDZkZjg0N2Q4NDY4OTY5OWYxNGFmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTEwOSw5ICsxMDksOSBAQCBib29s
IE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZgogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNP
YmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxNYXRo
T2JqZWN0Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgTWF0aE9iamVj
dDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29s
IE1hdGhPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRl
c2NyaXB0b3I8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlKGV4ZWMpLCB0aGlz
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlv
bkRlc2NyaXB0b3I8SlNPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlKGV4ZWMpLCBz
dGF0aWNfY2FzdDxNYXRoT2JqZWN0Kj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWF0aE9iamVjdC5oCmluZGV4IGRkZjZmMTJlZTI2Y2RkNTBiMzA0MGJkYTkyMzA3ZWM1ZmUz
YWE1MTMuLmE0MTI5NTMyZWUxZmEyZWI5YmQxMzRkNzY5YjY2MWVjNDI3MTYwZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgICAgICB9CiAg
ICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmNwcAppbmRleCAzMmY1NGJlNDA3MjIyNjBhMGZkMmUyZWVlMmJmYTY4YzYwNmM1NTZk
Li43ODE3N2M0ZGZkNzlkZDA5ZWM0NzgwZWRjNGQ4N2UzZWExYzAzMzdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBAIC03
Niw5ICs3Niw5IEBAIGJvb2wgTnVtYmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QKICAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PE51bWJlckNvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0aW9uPihleGVjLCBFeGVj
U3RhdGU6Om51bWJlckNvbnN0cnVjdG9yVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE51bWJlckNv
bnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgTnVtYmVy
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQorYm9vbCBOdW1iZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxOdW1iZXJDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlv
bj4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCB0aGlzLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2Ny
aXB0b3I8TnVtYmVyQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0
ZTo6bnVtYmVyQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8TnVtYmVyQ29uc3Ry
dWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiBzdGF0aWMg
SlNWYWx1ZSBudW1iZXJDb25zdHJ1Y3Rvck5hTlZhbHVlKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTnVtYmVyQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggNmU2NjNkMDBjNDI2ZmQ0ZGNkOGJlODM1Y2FkYjgyOTlk
OTZmMzJiZi4uMGI5YzIwNzYwNDc0NTQzYzdkYTY1NTUxYWQyOGMxM2M0YzEzMmE5OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCkBA
IC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElk
ZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICAgICAgSlNWYWx1ZSBnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGlu
dCB0b2tlbikgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cAppbmRleCBmZmYwYzE0OWQzYWE0MzM2ODhhYjY0ODBkYmVlNzBhZGU4ZjcyNjg3Li40NzY3NzVk
YThmMjA4OTUzNzkzZTY4NzRjMjVhMGVlZDMyZWFiMjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTg4LDkgKzg4LDkgQEAg
Ym9vbCBOdW1iZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWQKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90
PE51bWJlck9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZShleGVj
KSwgc3RhdGljX2Nhc3Q8TnVtYmVyUHJvdG90eXBlKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CiAKLWJvb2wgTnVtYmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgTnVtYmVyUHJvdG90eXBlOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
IHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPE51bWJlck9iamVjdD4o
ZXhlYywgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZShleGVjKSwgdGhpcywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlw
dG9yPE51bWJlck9iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpudW1iZXJQcm90b3R5cGVUYWJsZShl
eGVjKSwgc3RhdGljX2Nhc3Q8TnVtYmVyUHJvdG90eXBlKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1
bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKaW5kZXggYzRkN2E1MDM2NTA0MDVlMmM2
Y2FmZWNiOWM0NzViYjEyMTExOGFiOC4uMDViYmUyN2Q0MTJiZTlmMThhZmU2NjAzZTdjZTg1YWQ2
N2E3ZTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJpdmF0ZToK
ICAgICAgICAgTnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDRh
NzAzYjUwMWVjM2VjZWZkMTcyNjM0N2M0OTkzMDRiNWY4NDcwY2QuLjgyNDlkNTczYzNmNzEzZWEz
OGJlNzdmNmViNzM4MzU5OTIzOGNkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgYm9vbCBP
YmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBleGVjLCBjb25zdAogICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmpl
Y3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0Q29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGlj
X2Nhc3Q8T2JqZWN0Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAotYm9vbCBPYmplY3RDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCitib29sIE9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsK
LSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0PihleGVjLCBF
eGVjU3RhdGU6Om9iamVjdENvbnN0cnVjdG9yVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxK
U09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpvYmplY3RDb25zdHJ1Y3RvclRhYmxlKGV4ZWMpLCBz
dGF0aWNfY2FzdDxPYmplY3RDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVz
Y3JpcHRvcik7CiB9CiAKIC8vIEVDTUEgMTUuMi4yCkBAIC0xNTIsNyArMTUyLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSk7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKTsK
ICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKLSAgICBpZiAoIW9iamVjdC0+Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIElkZW50aWZpZXIoZXhlYywgcHJvcGVydHlOYW1l
KSwgZGVzY3JpcHRvcikpCisgICAgaWYgKCFvYmplY3QtPm1ldGhvZFRhYmxlKCktPmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIGV4ZWMsIElkZW50aWZpZXIoZXhlYywgcHJvcGVydHlO
YW1lKSwgZGVzY3JpcHRvcikpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggMzEzMTM2NDU5NjVlYTBlZjQ3
ZWExYTM4YWQ0MmEzMjcxM2QzYjIzNy4uNGUwYWZhOWNhMGUyODY4MGU5MjA1NTcxNWMxMjEzNDVh
ZDdmZDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5oCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZv
IHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFBy
b3RvdHlwZS5jcHAKaW5kZXggNWU2M2E3Y2UyYWYzOTk3MmQwZGFkMDI5ZDRlMzI5ZGE2NWY1OTZi
OC4uMWZiNzc3Y2JkN2M0NTllM2JiNmFlZmY1OTM2ZmY4ZTcwNGI5OGU0OCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0xMDAs
OSArMTAwLDkgQEAgYm9vbCBPYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWQKICAgICByZXR1cm4gZ2V0U3RhdGlj
RnVuY3Rpb25TbG90PEpTTm9uRmluYWxPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6b2JqZWN0UHJv
dG90eXBlVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PE9iamVjdFByb3RvdHlwZSo+KGNlbGwpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIE9iamVjdFByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIE9iamVjdFByb3Rv
dHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRv
cjxKU05vbkZpbmFsT2JqZWN0PihleGVjLCBFeGVjU3RhdGU6Om9iamVjdFByb3RvdHlwZVRhYmxl
KGV4ZWMpLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiBnZXRT
dGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNOb25GaW5hbE9iamVjdD4oZXhlYywgRXhlY1N0YXRl
OjpvYmplY3RQcm90b3R5cGVUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8T2JqZWN0UHJvdG90eXBl
Kj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5
cGUuaAppbmRleCBjYzRiN2EzZjIxYTc5YzgxMDlkZjg3NjY4MTMxZDQ0MjcyZjFhNzk1Li5iNjA1
YTQ3NzgwZmRkYjQ3ZTdiZjA5NjJlNmQ2NGQwOWYxOGUyZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTQsNyArNTQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCosIEV4
ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgYm9vbCBtX2hhc05vUHJv
cGVydGllc1dpdGhVSW50MzJOYW1lczsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IDQxMDBkY2M0MjZmNjJi
OWE5MzcyMGFiOGVkOGY0YjM3MDRkNTgxMDguLjY4MDYzNDM2OGIyNGM0NTAzYmExNzgzYmY3Yjcw
MWU5NjhiODAwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5jcHAKQEAgLTIwOSw5ICsyMDksOSBAQCBib29sIFJlZ0V4cENvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25zdHJ1Y3Rvciwg
SW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBDb25zdHJ1Y3RvclRhYmxl
KGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCi1ib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgUmVnRXhwQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8UmVnRXhw
Q29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwQ29u
c3RydWN0b3JUYWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAg
ICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPFJlZ0V4cENvbnN0cnVjdG9yLCBJbnRl
cm5hbEZ1bmN0aW9uPihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cENvbnN0cnVjdG9yVGFibGUoZXhl
YyksIHN0YXRpY19jYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKIH0KIAogSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4
IGZiYWU1YjE4MzgyZTUzZjEwNWEzYzk4NDlmMTA3OWU1ZjgwNjBiYTkuLjVmOTMwZWI4OTU3ZDE1
YWZjNWIwM2IzODMxNjBkZGI1MDlhNGNiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNzQsNyArNzQsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7
CiAKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggNjlmY2ExMjkwOWVmZTVmYzFlNzNkN2E3
Y2I2MGUwMzlhNmZkYTgwNi4uYTQ5MzZmM2I1ZmY5ZjU0NDIxMjNiNDM5MTZmN2I1MThiNDczNDI0
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hl
c0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hl
c0FycmF5LmgKQEAgLTY2LDExICs2NiwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IHJldHVybiBKU0FycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCisgICAg
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoc3Vi
Y2xhc3NEYXRhKCkpCi0gICAgICAgICAgICAgICAgZmlsbEFycmF5SW5zdGFuY2UoZXhlYyk7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNBcnJheTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgICAgICAgICBSZWdFeHBNYXRjaGVzQXJy
YXkqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBNYXRjaGVzQXJyYXkqPihvYmplY3Qp
OworICAgICAgICAgICAgaWYgKHRoaXNPYmplY3QtPnN1YmNsYXNzRGF0YSgpKQorICAgICAgICAg
ICAgICAgIHRoaXNPYmplY3QtPmZpbGxBcnJheUluc3RhbmNlKGV4ZWMpOworICAgICAgICAgICAg
cmV0dXJuIEpTQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdiwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggYzI0N2U5
MGVhNDdiZDI2NmM0MmMyNmYwYmVhMmViM2MwNDYwZGEzMi4uNjE3ZDhlOTMwMTllNzZmMmI1MWRk
MmZiZTQ3MjIwMGMzYjYzNmYzMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCkBAIC05Niw5ICs5Niw5IEBAIGJvb2wgUmVnRXhwT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBPYmplY3QsIEpTT2JqZWN0
PihleGVjLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlKGV4ZWMpLCBzdGF0aWNfY2FzdDxSZWdFeHBP
YmplY3QqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBSZWdFeHBPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9v
bCBSZWdFeHBPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURl
c2NyaXB0b3I8UmVnRXhwT2JqZWN0LCBKU09iamVjdD4oZXhlYywgRXhlY1N0YXRlOjpyZWdFeHBU
YWJsZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPFJlZ0V4cE9iamVjdCwgSlNPYmplY3Q+KGV4ZWMsIEV4
ZWNTdGF0ZTo6cmVnRXhwVGFibGUoZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cE9iamVjdCo+KG9i
amVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEpTVmFsdWUgcmVnRXhwT2Jq
ZWN0R2xvYmFsKEV4ZWNTdGF0ZSosIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXIm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA4
MzZiMjU0ZTNmOTc1YTdmOTFkNTNiZGMzNDU4NGNmNTY0ZjY5MjMzLi5hMTE3ZjM2MmMzZTMzYTg3
OTEzMmE2Y2EyMmIxYmVmODVkYWM3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBPYmplY3QuaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSlNWYWx1ZSBleGVjKEV4ZWNTdGF0ZSopOwogCiAgICAgICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKKyAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
KTsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZv
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5j
cHAKaW5kZXggNmRkOGI1ODUyOGQ0NGYwZjY0ODVmYjhjYjUzYTg5MjMwYTJhYmQ1Yy4uZWQ5Mzg2
ZmZmYWVkMWZhOTBmNzQ3MDJkYTFiZTRmMzIxZDNjMDE3YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC03Miw5ICs3Miw5IEBA
IGJvb2wgUmVnRXhwUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xv
dDxSZWdFeHBPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwUHJvdG90eXBlVGFibGUoZXhl
YyksIHN0YXRpY19jYXN0PFJlZ0V4cFByb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCi1ib29sIFJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIFJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxSZWdFeHBPYmplY3Q+
KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwUHJvdG90eXBlVGFibGUoZXhlYyksIHRoaXMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3Jp
cHRvcjxSZWdFeHBPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6cmVnRXhwUHJvdG90eXBlVGFibGUo
ZXhlYyksIHN0YXRpY19jYXN0PFJlZ0V4cFByb3RvdHlwZSo+KG9iamVjdCksIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBG
dW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IDhjYWI5MGE4YjNmZDRkMjI2
ZjVkNDY4NDdkYzRhNDczYjY4ZWJiMzguLjI1NTVlNTJjMWY2NmEyMGMxOWQwOTA3YWVhMTVhMzk4
YmU1ZDk3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cAppbmRleCBjNjhhMjg4NGI5OWRlZDRlNzNhMDlkZmE1YTAzNGMxNjgzMTVkNGVkLi4xZTgwNGE5
MWFlNzg2N2ZkY2RmOTk3YmVkY2ZmYTNjOTUzYWU0YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC02NCw5ICs2NCw5
IEBAIGJvb2wgU3RyaW5nQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25T
bG90PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nQ29uc3RydWN0b3JU
YWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8U3RyaW5nQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBTdHJpbmdDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIFN0cmluZ0NvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9y
PEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nQ29uc3RydWN0b3JUYWJs
ZShleGVjKSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0
U3RhdGljRnVuY3Rpb25EZXNjcmlwdG9yPEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIEV4ZWNTdGF0
ZTo6c3RyaW5nQ29uc3RydWN0b3JUYWJsZShleGVjKSwgc3RhdGljX2Nhc3Q8U3RyaW5nQ29uc3Ry
dWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
Q29uc3RydWN0b3IuaAppbmRleCBmOWFkYjViNmVmMjQ4NTNmYjgzOGVlOWI4Y2I4N2M3ZGNjNDNh
YjFmLi45ZmIyOWIxNTliY2NhM2VlODgyMzY1Y2JlZDVjZjUxNGMxNTRkYTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTU1
LDcgKzU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRD
YWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwogCiAgICAgICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwor
ICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAg
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmNwcAppbmRleCBmMDIwODdjZDM0ZWJiODhjYWMxYTU5ZDRlMjJkZjM5
ZWVhMTRmOGI0Li4xMjg4OWUwZjliZjI3MWJiNzIwYmNjYzVjMDg5NjIyNWJhZjcyYjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTM0
LDYgKzM0LDEwIEBAIFN0cmluZ09iamVjdDo6U3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiB7CiB9CiAKK1N0cmluZ09iamVjdDo6flN0
cmluZ09iamVjdCgpCit7Cit9CisKIHZvaWQgU3RyaW5nT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTU3RyaW5nKiBzdHJpbmcpCiB7CiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CkBAIC01NywxMSArNjEsMTIgQEAgYm9vbCBTdHJp
bmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIHVuc2kKICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBleGVjLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIHByb3BlcnR5TmFtZSksIHNs
b3QpOwogfQogCi1ib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIFN0cmluZ09iamVjdDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0g
ICAgaWYgKGludGVybmFsVmFsdWUoKS0+Z2V0U3RyaW5nUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpCisgICAgU3RyaW5nT2JqZWN0KiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8U3RyaW5nT2JqZWN0Kj4ob2JqZWN0KTsKKyAgICBpZiAodGhpc09iamVj
dC0+aW50ZXJuYWxWYWx1ZSgpLT5nZXRTdHJpbmdQcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKSkKICAgICAgICAgcmV0dXJuIHRydWU7ICAgIAotICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAog
dm9pZCBTdHJpbmdPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
bmdPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5o
CmluZGV4IGIxN2I3NDY4MjdmZTU1MGNlZjA2Yjg5M2NmMzk5YzNhYTlkMWY3MzQuLmFjZmU2MWY2
MWJjMTE0MmI1MDZlMGYxMjRkMTY4YmNjZjU0ZmI0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zMCw2ICszMCw4IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU1dyYXBwZXJPYmplY3QgQmFzZTsK
IAorICAgICAgICB2aXJ0dWFsIH5TdHJpbmdPYmplY3QoKTsKKwogICAgICAgICBzdGF0aWMgU3Ry
aW5nT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICAgICAgewogICAgICAgICAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGpzRW1wdHlTdHJpbmco
ZXhlYyk7CkBAIC00Nyw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVk
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAKICAgICAgICAgc3RhdGljIHZvaWQgcHV0KEpTQ2VsbCosIEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlT
bG90Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlu
Z1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90
b3R5cGUuY3BwCmluZGV4IDQ0ZjA0MGM0NTkzYzU5ZTkxMTk0NzgzYjkxZDQ2ZjViYjE5MzAyYWEu
LjVkNTAxYTFiY2ZiYTlkNmNlZGUyNmZlMThhZmZiZDU0MmRjZGZjYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMTUwLDkg
KzE1MCw5IEBAIGJvb2wgU3RyaW5nUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkCiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uU2xvdDxTdHJpbmdPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nVGFibGUoZXhl
YyksIHN0YXRpY19jYXN0PFN0cmluZ1Byb3RvdHlwZSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCi1ib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIFN0cmluZ1Byb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
CiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxTdHJpbmdPYmplY3Q+
KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nVGFibGUoZXhlYyksIHRoaXMsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxTdHJp
bmdPYmplY3Q+KGV4ZWMsIEV4ZWNTdGF0ZTo6c3RyaW5nVGFibGUoZXhlYyksIHN0YXRpY19jYXN0
PFN0cmluZ1Byb3RvdHlwZSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmgKaW5kZXggZDFjYzAwMWM5YWI4YTI1MDdmNjU3YjYzNDM2MDQxN2Y3NDRm
N2YyYy4uMTQxMjJmY2M0ZjYyM2FhMGE0YWIwMjNiZjZiY2FmMmQ2YmE2ZGQzMCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTQzLDcg
KzQzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CisgICAgICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA0
OTk1MWYwNGY1ZjFjYTlmOTVkNzY4M2Q5MGQ5N2M2ZDYxZDI3MzBhLi40NzMyZmE1ZjFhZDczYTEz
NTYwN2UyNmI3ZjE3NjNiYWE1NzMwMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTcwMCw5
ICsxNzAwLDEwIEBAIF9fWk43V2ViQ29yZTVGcmFtZTI2c2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZl
bnRFaQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJO
U184Q2FsbERhdGFFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDE0ZmluaXNoQ3JlYXRpb25FUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0MxM1J1bnRpbWVNZXRo
b2QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCi1fX1pOM0pTQzEzUnVudGltZU1ldGhvZDI0
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19fWk4zSlNDMTNSdW50aW1lTWV0aG9kMjRnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzhKU09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEw
SWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEzUnVudGltZU1l
dGhvZDZzX2luZm9FCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFsT2Jq
ZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RFTG0w
RUVFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZEQyRXYKIF9fWk4zSlNDOEJpbmRpbmdzMTBSb290
T2JqZWN0RDFFdgogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxMWdldENhbGxEYXRh
RVBOU182SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDEyZGVmYXVsdFZhbHVlRVBLTlNfOEpTT2JqZWN0RVBOU185RXhlY1N0YXRlRU5TXzIyUHJl
ZmVycmVkUHJpbWl0aXZlVHlwZUUKQEAgLTE3MTEsNyArMTcxMiw3IEBAIF9fWk4zSlNDOEJpbmRp
bmdzMTNSdW50aW1lT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVQTlNfMTRKU0dsb2JhbE9iamVjdEUK
IF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTZnZXRDb25zdHJ1Y3REYXRhRVBOU182
SlNDZWxsRVJOU18xM0NvbnN0cnVjdERhdGFFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9i
amVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRlRVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEJpbmRpbmdzMTNSdW50
aW1lT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU184SlNPYmplY3RFUE5TXzlFeGVjU3Rh
dGVFUk5TXzE3UHJvcGVydHlOYW1lQXJyYXlFTlNfMTVFbnVtZXJhdGlvbk1vZGVFCi1fX1pOM0pT
QzhCaW5kaW5nczEzUnVudGltZU9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKK19f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MjRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JF
UE5TXzhKU09iamVjdEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzhCaW5kaW5nczEzUnVudGltZU9iamVjdDNwdXRFUE5T
XzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5T
XzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3Q2c19p
bmZvRQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3RDMkVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUVOM1dURjEwUGFzc1JlZlB0cklOUzBf
OEluc3RhbmNlRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKaW5kZXggN2M0YTY1OGY3MWY5ZjI4MzQxOTgyNDM0ZTk5ZTFmZDgyOTA3NDc5
MC4uYWFmNTdiYjlmYTUzM2FiMmViYTBkNzM2YjMwNDYzMmQ0OTc2YTYwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMjY3LDE2
ICsyNjcsMTcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGkKICAgICByZXR1cm4gQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLWJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQorYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CisgICAgSlNET01X
aW5kb3cqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KG9iamVjdCk7CiAg
ICAgLy8gTmV2ZXIgYWxsb3cgY3Jvc3MtZG9tYWluIGdldE93blByb3BlcnR5RGVzY3JpcHRvcgot
ICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICBpZiAoIXRoaXNPYmplY3QtPmFs
bG93c0FjY2Vzc0Zyb20oZXhlYykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0
IEhhc2hFbnRyeSogZW50cnk7CiAgICAgCiAgICAgLy8gV2UgZG9uJ3Qgd2FudCBhbnkgcHJvcGVy
dGllcyBvdGhlciB0aGFuICJjbG9zZSIgYW5kICJjbG9zZWQiIG9uIGEgY2xvc2VkIHdpbmRvdy4K
LSAgICBpZiAoIWltcGwoKS0+ZnJhbWUoKSkgeworICAgIGlmICghdGhpc09iamVjdC0+aW1wbCgp
LT5mcmFtZSgpKSB7CiAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY29kZSBpcyBzYWZlIGZvciBj
cm9zcy1kb21haW4gYW5kIHNhbWUgZG9tYWluIHVzZS4KICAgICAgICAgLy8gSXQgaWdub3JlcyBh
bnkgY3VzdG9tIHByb3BlcnRpZXMgdGhhdCBtaWdodCBiZSBzZXQgb24gdGhlIERPTVdpbmRvdyAo
aW5jbHVkaW5nIGEgY3VzdG9tIHByb3RvdHlwZSkuCiAgICAgICAgIGVudHJ5ID0gc19pbmZvLnBy
b3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CkBAIC0yODcsNyAr
Mjg4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHIKICAgICAgICAgZW50cnkgPSBKU0RPTVdp
bmRvd1Byb3RvdHlwZTo6c19pbmZvLnByb3BIYXNoVGFibGUoZXhlYyktPmVudHJ5KGV4ZWMsIHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgIGlmIChlbnRyeSAmJiAoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IEZ1bmN0aW9uKSAmJiBlbnRyeS0+ZnVuY3Rpb24oKSA9PSBqc0RPTVdpbmRvd1Byb3RvdHlwZUZ1
bmN0aW9uQ2xvc2UpIHsKICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpcywgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpz
RE9NV2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSwgMD4pOworICAgICAgICAgICAgc2xvdC5z
ZXRDdXN0b20odGhpc09iamVjdCwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9N
V2luZG93UHJvdG90eXBlRnVuY3Rpb25DbG9zZSwgMD4pOwogICAgICAgICAgICAgZGVzY3JpcHRv
ci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgUmVhZE9u
bHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KQEAgLTI5OCw3ICsyOTksNyBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcgogICAg
IGVudHJ5ID0gSlNET01XaW5kb3c6OnNfaW5mby5wcm9wSGFzaFRhYmxlKGV4ZWMpLT5lbnRyeShl
eGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgIGlmIChlbnRyeSkgewogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZW50cnktPnByb3BlcnR5R2V0
dGVyKCkpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBlbnRyeS0+cHJvcGVy
dHlHZXR0ZXIoKSk7CiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZh
bHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIGVudHJ5LT5hdHRyaWJ1dGVzKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zMDgsMzUgKzMwOSwzNSBAQCBib29sIEpTRE9NV2luZG93
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcgogICAgIC8vIG5hbWluZyBmcmFtZXMgdGhpbmdzIHRoYXQgY29uZmxpY3Qgd2l0aCB3
aW5kb3cgcHJvcGVydGllcyB0aGF0CiAgICAgLy8gYXJlIGluIE1veiBidXQgbm90IElFLiBTaW5j
ZSB3ZSBoYXZlIHNvbWUgb2YgdGhlc2UsIHdlIGhhdmUgdG8gZG8KICAgICAvLyBpdCB0aGUgTW96
IHdheS4KLSAgICBpZiAoaW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkKGlkZW50aWZpZXJU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKSkgeworICAgIGlmICh0aGlzT2JqZWN0LT5pbXBs
KCktPmZyYW1lKCktPnRyZWUoKS0+Y2hpbGQoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBjaGlsZEZyYW1lR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgY2hpbGRGcmFtZUdldHRlcik7CiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVz
Y3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIFJlYWRPbmx5IHwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIAog
ICAgIGJvb2wgb2s7CiAgICAgdW5zaWduZWQgaSA9IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgo
b2spOwotICAgIGlmIChvayAmJiBpIDwgaW1wbCgpLT5mcmFtZSgpLT50cmVlKCktPmNoaWxkQ291
bnQoKSkgeworICAgIGlmIChvayAmJiBpIDwgdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpLT50
cmVlKCktPmNoaWxkQ291bnQoKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAg
ICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzLCBpLCBpbmRleEdldHRlcik7CisgICAgICAgIHNs
b3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgaSwgaW5kZXhHZXR0ZXIpOwogICAgICAgICBk
ZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUp
LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAogICAgIC8vIEFsbG93IHNob3J0Y3V0cyBsaWtlICdJbWFnZTEnIGluc3RlYWQg
b2YgZG9jdW1lbnQuaW1hZ2VzLkltYWdlMQotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGltcGwo
KS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzT2Jq
ZWN0LT5pbXBsKCktPmZyYW1lKCktPmRvY3VtZW50KCk7CiAgICAgaWYgKGRvY3VtZW50LT5pc0hU
TUxEb2N1bWVudCgpKSB7CiAgICAgICAgIEF0b21pY1N0cmluZ0ltcGwqIGF0b21pY1Byb3BlcnR5
TmFtZSA9IGZpbmRBdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKTsKICAgICAgICAgaWYgKGF0b21p
Y1Byb3BlcnR5TmFtZSAmJiAoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jdW1lbnQpLT5o
YXNOYW1lZEl0ZW0oYXRvbWljUHJvcGVydHlOYW1lKSB8fCBkb2N1bWVudC0+aGFzRWxlbWVudFdp
dGhJZChhdG9taWNQcm9wZXJ0eU5hbWUpKSkgewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNs
b3Q7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBuYW1lZEl0ZW1HZXR0ZXIpOwor
ICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbmFtZWRJdGVtR2V0dGVyKTsK
ICAgICAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMs
IHByb3BlcnR5TmFtZSksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHJldHVybiBC
YXNlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTsKKyAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgSlNET01XaW5k
b3c6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDFl
OWZiNWY2OWQzYzdlMTYzYTA4MDk3MDIwMTY0ZTdkY2RlMGY0OTIuLmUyZDAwYmVmYjY5NDM2NWEy
NjdiNjU0YzAxNjQzYWU1NTI0YmRlMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC05Niw5ICs5NiwxMCBAQCBib29sIEpTRE9NV2lu
ZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSQogICAgIHJldHVybiB0aGlzT2JqZWN0LT53aW5kb3coKS0+bWV0aG9kVGFibGUo
KS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QtPndpbmRvdygpLCBleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU0RPTVdpbmRvd1NoZWxs
OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gd2luZG93KCktPmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIEpTRE9NV2luZG93U2hl
bGwqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4ob2JqZWN0KTsK
KyAgICByZXR1cm4gdGhpc09iamVjdC0+d2luZG93KCktPm1ldGhvZFRhYmxlKCktPmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LT53aW5kb3coKSwgZXhlYywgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDc4MmUxMjNjZjA3Nzc3YzA5MWY5YTQx
N2EzZTYyZTAyZDAxZDc2ZDIuLjdmODdiODE3YWNhZWEzYTA5OGIyZWM2Yjk1MDAzY2EyZTQyNTdj
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgK
QEAgLTgwLDcgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBK
U0M6OlVTdHJpbmcgY2xhc3NOYW1lKGNvbnN0IEpTQzo6SlNPYmplY3QqKTsKICAgICAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvciYpOworICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcyk7CiAgICAgICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb250ZXh0Q3VzdG9tLmNwcAppbmRleCBmZWM0MTlmYjc0MDQ2ZmMyYzA3Y2Y4NTAwYTE1YzBk
NTViYzdiNzU2Li44ZDllYWJlMTliNWMxYzgyNzc0YzQ0OWNkOGMzN2IzNTQ0YjdlMTZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3Rv
bS5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9vbCBKU1dvcmtlckNvbnRleHQ6OmdldE93blByb3Bl
cnR5U2xvdERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmkKIGJvb2wgSlNX
b3JrZXJDb250ZXh0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JEZWxlZ2F0ZShFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQogewogICAgIC8vIExvb2sgZm9yIG92ZXJyaWRlcyBiZWZvcmUgbG9va2lu
ZyBhdCBhbnkgb2Ygb3VyIG93biBwcm9wZXJ0aWVzLgotICAgIGlmIChKU0dsb2JhbE9iamVjdDo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikp
CisgICAgaWYgKEpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcywg
ZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA0MDM3YTMyODU5MmQ4NTk3ZThkOWJlZmViZDkw
MTdhZjg0ZjNkNjc2Li5mMGRiM2Y3YWZmMzI1M2I1ZGFkZjNlMGI2YjViZWI3MWFiMTMxZjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtNTE3LDE1ICs1MTcsMTUgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yQm9keQogICAgIG15IEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsID0gKCk7CiAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrRG9tYWluU2VjdXJp
dHkifSkgewogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghc3RhdGljX2Nhc3Q8JGNsYXNz
TmFtZSo+KHRoaXNPYmplY3QpLT5hbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKVxuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXRoaXNPYmplY3QtPmFsbG93c0FjY2Vz
c0Zyb20oZXhlYykpXG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbUZyYW1lKGV4ZWMsIHN0YXRpY19j
YXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgpLT5mcmFtZSgpKSlcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJh
bWUoZXhlYywgdGhpc09iamVjdC0+aW1wbCgpLT5mcmFtZSgpKSlcbiIpOwogICAgICAgICB9CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iKTsKICAg
ICB9CiAgICAgCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOYW1lZE5vZGVNYXAiIG9yICRp
bnRlcmZhY2VOYW1lIGVxICJIVE1MQ29sbGVjdGlvbiIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkhU
TUxBbGxDb2xsZWN0aW9uIikgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JJbXBsLCAiICAgICR7bmFtZXNwYWNlTWF5YmV9SlNWYWx1ZSBwcm90byA9IHByb3RvdHlwZSgp
O1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAg
JHtuYW1lc3BhY2VNYXliZX1KU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+cHJvdG90eXBlKCk7
XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBp
ZiAocHJvdG8uaXNPYmplY3QoKSAmJiBzdGF0aWNfY2FzdDwke25hbWVzcGFjZU1heWJlfUpTT2Jq
ZWN0Kj4oYXNPYmplY3QocHJvdG8pKS0+aGFzUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lKSlc
biIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAg
ICByZXR1cm4gZmFsc2U7XG5cbiIpOwogICAgIH0KQEAgLTUzNiw3ICs1MzYsNyBAQCBzdWIgR2Vu
ZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5CiAgICAgICAgICAgICBwdXNoKEBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGNvbnN0ICR7bmFtZXNwYWNlTWF5YmV9SGFz
aEVudHJ5KiBlbnRyeSA9ICR7Y2xhc3NOYW1lfVRhYmxlLmVudHJ5KGV4ZWMsIHByb3BlcnR5TmFt
ZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGws
ICIgICAgaWYgKGVudHJ5KSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
RGVzY3JpcHRvckltcGwsICIgICAgICAgIFByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzLCBlbnRyeS0+cHJvcGVydHlHZXR0ZXIoKSk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIHNsb3Quc2V0Q3Vz
dG9tKHRoaXNPYmplY3QsIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigpKTtcbiIpOwogICAgICAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRv
ci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgZW50cnkt
PmF0dHJpYnV0ZXMoKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVz
Y3JpcHRvckltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIH1cbiIpOwpAQCAtNTUwLDE3ICs1
NTAsMTcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQogICAgIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdldHRlciJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4R2V0dGVyIn0gfHwg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0luZGV4R2V0dGVyIn0p
IHsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBib29s
IG9rO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIg
ICAgdW5zaWduZWQgaW5kZXggPSBwcm9wZXJ0eU5hbWUudG9VSW50MzIob2spO1xuIik7Ci0gICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgaWYgKG9rICYmIGlu
ZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLT5sZW5ndGgoKSkge1xu
Iik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgaWYg
KG9rICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5p
bXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CiAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAgICAj
IEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIsIHRoZSBpbmRleCB3aWxsIGJlIHdyaXRh
YmxlCiAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
SW5kZXhTZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0
b21JbmRleFNldHRlciJ9KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKGdldEJ5SW5k
ZXgoZXhlYywgaW5kZXgpLCAke25hbWVzcGFjZU1heWJlfURvbnREZWxldGUpO1xuIik7CisgICAg
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAg
ZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHRoaXNPYmplY3QtPmdldEJ5SW5kZXgoZXhlYywgaW5k
ZXgpLCAke25hbWVzcGFjZU1heWJlfURvbnREZWxldGUpO1xuIik7CiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGws
ICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihnZXRCeUluZGV4KGV4ZWMsIGluZGV4
KSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVsZXRlIHwgJHtuYW1lc3BhY2VNYXliZX1SZWFkT25s
eSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJ
bXBsLCAiICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0QnlJ
bmRleChleGVjLCBpbmRleCksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSB8ICR7bmFtZXNw
YWNlTWF5YmV9UmVhZE9ubHkpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAg
ICAke25hbWVzcGFjZU1heWJlfVByb3BlcnR5U2xvdCBzbG90O1xuIik7Ci0gICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgICAgICBzbG90LnNldEN1c3Rv
bUluZGV4KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5k
ZXgodGhpc09iamVjdCwgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOwogICAgICAgICAgICAgIyBB
c3N1bWUgdGhhdCBpZiB0aGVyZSdzIGEgc2V0dGVyLCB0aGUgaW5kZXggd2lsbCBiZSB3cml0YWJs
ZQogICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0lu
ZGV4U2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzQ3VzdG9t
SW5kZXhTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVz
Y3JpcHRvckltcGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZh
bHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSk7XG4i
KTsKQEAgLTU3Myw5ICs1NzMsOSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JCb2R5CiAgICAgfQogICAgIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJIYXNOYW1lR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SGFzT3ZlcnJpZGluZ05hbWVHZXR0ZXIifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGlj
X2Nhc3Q8JGltcGxDbGFzc05hbWUqPihpbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBpZiAoY2FuR2V0
SXRlbXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iamVj
dC0+aW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgICR7bmFtZXNwYWNlTWF5YmV9UHJvcGVydHlT
bG90IHNsb3Q7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1w
bCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbmFtZUdldHRlcik7XG4iKTsKKyAgICAg
ICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpc09iamVjdCwgbmFtZUdldHRlcik7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9y
KHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgUmVhZE9ubHkgfCBEb250RGVsZXRl
IHwgRG9udEVudW0pO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRv
ckltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgfVxuIik7CkBAIC01OTEsMTkgKzU5MSwxOSBAQCBz
dWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5CiAgICAgfQogICAgIAogICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nR2V0T3duUHJv
cGVydHlTbG90In0pIHsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1w
bCwgIiAgICBpZiAoZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKSlcbiIpOworICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JJbXBsLCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JEZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKVxuIik7CiAgICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIHJldHVybiB0cnVl
O1xuIik7CiAgICAgfQogICAgIAogICAgIGlmICgkaGFzQXR0cmlidXRlcykgewogICAgICAgICBp
ZiAoJGlubGluZWQpIHsKICAgICAgICAgICAgIGRpZSAiQ2Fubm90IGlubGluZSBpZiBOb1N0YXRp
Y1RhYmxlcyBpcyBzZXQuIiBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTm9T
dGF0aWNUYWJsZXMifSk7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlRGVzY3Jp
cHRvcjwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCBzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICByZXR1cm4gJHtuYW1lc3BhY2VNYXli
ZX1nZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JGNsYXNzTmFtZSwgQmFzZT4oZXhlYywgc19pbmZv
LnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGlj
VmFsdWVEZXNjcmlwdG9yPCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nl
c3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAk
Y2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJu
ICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPCRjbGFzc05hbWUsIEJh
c2U+KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpO1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIg
ICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CiAgICAgfQogICAgIAogICAgIHJldHVy
biBAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbDsKQEAgLTc3NCw3ICs3NzQsNyBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICAjIEdldHRlcnMKICAgICBpZiAoJGhhc0dldHRlcikgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKLSAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlND
ZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5k
ZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21J
bmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVy
aWNJbmRleEdldHRlciJ9KSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFz
T3ZlcnJpZGluZ05hbWVHZXR0ZXIifTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRlbGVnYXRpbmdHZXRPd25Qcm9wZXJ0eVNsb3QifTsKQEAgLTk3MSw5ICs5NzEsMTAg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHko
JGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRu
dW1BdHRyaWJ1dGVzID4gMCwgMSkpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxu
XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9vbCAk
e2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJB
TFdBWVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
SlNDOjpKU09iamVjdCogb2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMs
ICZzX2luZm8pO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFz
c05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtc
biIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5KCRkYXRhTm9kZSwg
JGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRl
cyA+IDAsIDEpKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAg
fQpAQCAtMTAzNSw3ICsxMDM2LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvO1xuIik7
CiAgICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwIHx8ICRudW1Db25zdGFudHMgPiAwIHx8ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9w
ZXJ0eVNsb3QifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwotICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3Bl
cnR5RGVzY3JpcHRvciYpO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93
blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
ckRlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQ
cm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkRlbGVnYXRpbmdQcm90b3R5cGVHZXRPd25Qcm9wZXJ0eVNsb3QifTsKICAgICAgICAgJHN0
cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsKQEAg
LTE0NTIsMjIgKzE0NTMsMjMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
fQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAKLSAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgCisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KG9iamVjdCk7XG4iKTsKKwogICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRGVsZWdhdGluZ1Byb3RvdHlw
ZUdldE93blByb3BlcnR5U2xvdCJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoZXhlYywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRlKGV4ZWMs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICBpZiAoJG51bUNvbnN0YW50cyBlcSAwICYmICRudW1GdW5jdGlvbnMgZXEgMCkgewot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7ICAg
ICAgICAKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBk
ZXNjcmlwdG9yKTtcbiIpOyAgICAgICAgCiAgICAgICAgIH0gZWxzaWYgKCRudW1Db25zdGFudHMg
ZXEgMCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0
YXRpY0Z1bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hU
YWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFi
bGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRp
Y0Z1bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJs
ZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVz
In0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOwogICAgICAgICB9IGVsc2lmICgkbnVtRnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0
b3I8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhh
c2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGlj
VGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVj
LCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTm9TdGF0aWNUYWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlEZXNj
cmlwdG9yPCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5
cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOb1N0
YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBn
ZXRTdGF0aWNQcm9wZXJ0eURlc2NyaXB0b3I8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVj
dD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik5vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOwogICAgICAgICB9CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CkBAIC0xNTczLDkgKzE1NzUsMTAg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3Bl
cnR5U2xvdEJvZHkoJGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxD
bGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29s
ICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNz
TmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFz
c05hbWV9Kj4ob2JqZWN0KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yQm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1wbENs
YXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0KQEAgLTMxOTMsNyArMzE5Niw3IEBAIHN1YiBH
ZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgfVxuXG4iKTsKIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKLSAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbztcbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBKU0M6OlN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
XG4iKTsKQEAgLTMyNDgsOSArMzI1MSw5IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5p
dGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVT
bG90PCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICYke2NvbnN0
cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAifVxuXG4iKTsKIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjb25zdHJ1
Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4i
KTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVz
Y3JpcHRvcjwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAmJHtj
b25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVEZXNjcmlwdG9yPCR7Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCBzdGF0aWNfY2FzdDwke2NvbnN0cnVjdG9y
Q2xhc3NOYW1lfSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJlQ29uc3RydWN0ZWQifSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAppbmRleCBjM2VhNTE0MjQwZjE5MTZjZTVmOTAwZmRlZDAyNjNjMjIxZjA2NDhlLi4xYjY2
OThkMzYyOWJlZDIyNzM3OWZiM2M2Njc0NGUzMWNiMjRlZmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcApAQCAtOTQsOSArOTQsOSBAQCBib29sIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IsIEpTRE9NV3Jh
cHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0
PEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRv
cjxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
clRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcio+KG9iamVjdCks
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVGVzdEludGVyZmFj
ZShFeGVjU3RhdGUqIGV4ZWMpCkBAIC0xODAsMTAgKzE4MCwxMSBAQCBib29sIEpTVGVzdEludGVy
ZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZAogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0SW50ZXJmYWNlLCBC
YXNlPihleGVjLCAmSlNUZXN0SW50ZXJmYWNlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNUZXN0SW50ZXJmYWNlOjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKIHsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwot
ICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0SW50ZXJmYWNlLCBCYXNl
PihleGVjLCAmSlNUZXN0SW50ZXJmYWNlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcik7CisgICAgSlNUZXN0SW50ZXJmYWNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNU
ZXN0SW50ZXJmYWNlKj4ob2JqZWN0KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsICZzX2luZm8pOworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8
SlNUZXN0SW50ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0SW50ZXJmYWNlVGFibGUsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25z
dCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCAxNjEwMGY2ZDVhY2MzYjE5NjY5
ZWQxNGFkYjE2OGM2ZTdiNmRjNDk3Li45NDA5MDNjODE5MzVkZTQyMDU5Y2M0YWQ2MmU2MDhiNjZj
N2RlYzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAK
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMTE5LDcgKzExOSw3IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0
aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUg
cHJvdG90eXBlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAppbmRleCBmOTJmZGRiYmViZDE0YmQ2ZmRkNDU1NDYyOWQwMDk5OWZiNDE2YzIxLi42
ODY4ZWE3MWE3ODdhN2JjOTI2ZGNkMGI5NzY2YTkyZjg4YmUzODQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC05Miw5ICs5Miw5IEBAIGJvb2wg
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDZWxsKiBjZWxsLCBFCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAotYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQor
Ym9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQog
ewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CiB9CiAKIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwpAQCAt
MTMwLDkgKzEzMCwxMCBAQCBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5
cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZQogICAgIHJldHVybiBnZXRT
dGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZTo6Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEpTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBnZXRT
dGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyUHJvdG90eXBlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRv
cik7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqPihv
YmplY3QpOworICAgIHJldHVybiBnZXRTdGF0aWNGdW5jdGlvbkRlc2NyaXB0b3I8SlNPYmplY3Q+
KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlVGFibGUsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpzX2luZm8gPSB7ICJUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciIsICZKU0RPTVdyYXBwZXI6OnNfaW5mbywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJUYWJsZSwgMCAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcikgfTsKQEAgLTE2MSwxMCArMTYyLDExIEBAIGJvb2wgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBlCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLCBCYXNlPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRhYmxlLCB0
aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNj
cmlwdG9yKQorYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsK
LSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXMsICZzX2luZm8pOwotICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciwg
QmFzZT4oZXhlYywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUYWJsZSwgdGhpcywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+
KG9iamVjdCk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19p
bmZvKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIsIEJhc2U+KGV4ZWMsICZKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
VGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIEpTVmFs
dWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAppbmRleCA2ZGU3ZWNmOTlhMzVjYTI5ODIzZDAyYmJk
ZjlhMTdmNGJlZjljZTBmLi43ZmFjZGQyODIzZWIwYjhiNmUwMGIwNDY0Yjk4NDZjYTM2ODM2ZmUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTQxLDcg
KzQxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwot
ICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6
Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC03Niw3ICs3Niw3IEBA
IHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYp
OwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewogICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBl
SW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CkBAIC0xMDMs
NyArMTAzLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlND
OjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApp
bmRleCBhM2I3MGIxMWI0NzNlYzgyZTJlNWVmM2U4MzBlOGQwYWMyMTQ1NWZiLi40NjdhMWI0Zjlh
YjA0NDcyMjgxOGU2ODQwMzZlYTdiY2IwYjQ1YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTk3LDkgKzE5
Nyw5IEBAIGJvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0Nl
bGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxKU1Rlc3RPYmpDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0T2Jq
Q29uc3RydWN0b3JUYWJsZSwgc3RhdGljX2Nhc3Q8SlNUZXN0T2JqQ29uc3RydWN0b3IqPihjZWxs
KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIEpT
VGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVEZXNjcmlwdG9yPEpTVGVzdE9iakNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OworICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0T2JqQ29uc3RydWN0
b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE9iakNvbnN0cnVjdG9yVGFibGUsIHN0YXRp
Y19jYXN0PEpTVGVzdE9iakNvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKIH0KIAogLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCkBAIC0yOTEsOSAr
MjkxLDEwIEBAIGJvb2wgSlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0CiAgICAgcmV0dXJuIGdldFN0YXRpY1By
b3BlcnR5U2xvdDxKU1Rlc3RPYmpQcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAmSlNUZXN0T2Jq
UHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJv
b2wgSlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKK2Jvb2wgSlNUZXN0T2JqUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKLSAg
ICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlEZXNjcmlwdG9yPEpTVGVzdE9ialByb3RvdHlwZSwg
SlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgdGhpcywgcHJvcGVydHlO
YW1lLCBkZXNjcmlwdG9yKTsKKyAgICBKU1Rlc3RPYmpQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihvYmplY3QpOworICAgIHJldHVybiBnZXRT
dGF0aWNQcm9wZXJ0eURlc2NyaXB0b3I8SlNUZXN0T2JqUHJvdG90eXBlLCBKU09iamVjdD4oZXhl
YywgJkpTVGVzdE9ialByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IpOwogfQogCiBjb25zdCBDbGFzc0luZm8gSlNUZXN0T2JqOjpzX2luZm8gPSB7ICJU
ZXN0T2JqIiwgJkpTRE9NV3JhcHBlcjo6c19pbmZvLCAmSlNUZXN0T2JqVGFibGUsIDAgLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTVGVzdE9iaikgfTsKQEAgLTMyMiwxMCArMzIzLDExIEBAIGJvb2wg
SlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RP
YmosIEJhc2U+KGV4ZWMsICZKU1Rlc3RPYmpUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAotYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlE
ZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0gICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RPYmosIEJhc2U+KGV4ZWMsICZKU1Rlc3RPYmpU
YWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICBKU1Rlc3RPYmoqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihvYmplY3QpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7CisgICAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RPYmosIEJhc2U+KGV4ZWMsICZKU1Rlc3RPYmpUYWJs
ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogSlNWYWx1ZSBq
c1Rlc3RPYmpSZWFkT25seUludEF0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNl
LCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA2ZDMxOGY0ZmI0NWUzYTgyZmQyNTJjMjQy
MjU0OWZjZDc5MmU2OWUzLi41YTk2YTVhMWZkNzY3N2Q0Njk1ZTNlNjUyNjE2OTQxZGViMWY1Njgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0M6OkpT
T2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAg
IHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCkBAIC04
OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYp
OworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewogICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7CkBAIC0xMTYsNyArMTE2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0
aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcAppbmRleCBiMWQ1NjczMjY3NGMyNTIwNjJiMjdhYTQyMTk4OGRkZjkyNzE5NDhiLi5h
MDM3OTAwMjMyYWMyMmZmM2MyZjRhNTMxZTI4YjhmOTZlODI3ZTM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtOTMs
OSArOTMsOSBAQCBib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKgogICAgIHJldHVybiBnZXRTdGF0aWNW
YWx1ZVNsb3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Is
IEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yVGFibGUsIHN0YXRpY19jYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
LWJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9vbCBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7
Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgdGhpcywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlw
dG9yPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RP
TVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvclRhYmxlLCBzdGF0aWNfY2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKIC8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlwZSAqLwpAQCAtMTUwLDEwICsxNTAsMTEgQEAg
Ym9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldE93blByb3BlcnR5
U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWMKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwgQmFzZT4oZXhlYywgJkpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29s
IEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzLCAmc19pbmZvKTsKLSAgICByZXR1cm4gZ2V0
U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSwgQmFzZT4oZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxl
LCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KG9iamVjdCk7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVEZXNjcmlwdG9yPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSwgQmFzZT4o
ZXhlYywgJkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRhYmxlLCB0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiBKU1ZhbHVlIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBz
bG90QmFzZSwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggZDY2NTk1MmNiZTY1YzZjYTdiODA1
ZTdlODJjYjUxMzg2M2FhNGIyYi4uZDBiNjZlZDI1YWEzMjhiMzc5YWU0Njg3ZGRlNDdhZWI0YTBl
OWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCos
IEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCiAgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50
aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRp
YyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IDc0ZDE5ZTgz
ODA2ZDFjOWUwM2M4MjI0NjUzYmE3ZjE4Y2E5ZDliNzEuLmU3MjBlZjYwNjc2NGJkOGJiZGNmMmMx
YWYzZGE1NjQ1MTcyYWRmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiwg
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKTsKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDBjMzk3OWJjOWE4OTlmNDQyODVkNTgzMDk3OWYy
ZWQ4ZTU5ZmVhMWUuLmZkYmZlNmFhYmEwODQ1NTljNThjNjUzOTBlZThmYWYxOWNkYzMxNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIxMiw3ICsy
MTIsNyBAQCBib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aQogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
Citib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYgZGVzY3JpcHRvcikKIHsKICAgICAvLyBrZWVwIHRoZSBwcm90b3R5cGUgZnJvbSBnZXR0aW5n
IGNhbGxlZCBpbnN0ZWFkIG9mIGp1c3QgcmV0dXJuaW5nIGZhbHNlCiAgICAgZGVzY3JpcHRvci5z
ZXRVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9y
dW50aW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRl
eCAxOGMyNGMyN2NhMjY1ODRmODYyZGVlYzU2Y2RiM2JhYmQyYTc2MjJkLi44YzI2ZmMyZWYwZTM0
OGQwMDNkODFjYzQ0Y2RlZTY3ZjkzYjYxNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCkBAIC0xNTExLDMwICsxNTExLDMxIEBAIGJvb2wgUXRSdW50aW1lTWV0YU1l
dGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zCiAgICAgcmV0dXJuIFF0UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgUXRSdW50aW1lTWV0
YU1ldGhvZDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
Citib29sIFF0UnVudGltZU1ldGFNZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIFF0UnVudGltZU1l
dGFNZXRob2QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxRdFJ1bnRpbWVNZXRhTWV0aG9kKj4o
b2JqZWN0KTsKICAgICBpZiAocHJvcGVydHlOYW1lID09ICJjb25uZWN0IikgewogICAgICAgICBQ
cm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgY29ubmVjdEdl
dHRlcik7CisgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIGNvbm5lY3RHZXR0ZXIp
OwogICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBw
cm9wZXJ0eU5hbWUpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gImRpc2Nvbm5l
Y3QiKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBzbG90LnNldEN1c3Rv
bSh0aGlzLCBkaXNjb25uZWN0R2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09i
amVjdCwgZGlzY29ubmVjdEdldHRlcik7CiAgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRv
cihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIFBy
b3BlcnR5U2xvdCBzbG90OwotICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBsZW5ndGhHZXR0
ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBsZW5ndGhHZXR0ZXIpOwog
ICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9w
ZXJ0eU5hbWUpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJl
dHVybiBRdFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0
LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB2b2lkIFF0UnVudGltZU1l
dGFNZXRob2Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2Rl
IG1vZGUpCkBAIC0xNzQ3LDE2ICsxNzQ4LDE3IEBAIGJvb2wgUXRSdW50aW1lQ29ubmVjdGlvbk1l
dGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjCiAg
ICAgcmV0dXJuIFF0UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKLWJvb2wgUXRSdW50aW1lQ29ubmVjdGlv
bk1ldGhvZDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3Ip
Citib29sIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIFF0UnVu
dGltZUNvbm5lY3Rpb25NZXRob2QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxRdFJ1bnRpbWVD
b25uZWN0aW9uTWV0aG9kKj4ob2JqZWN0KTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0g
ICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIGxlbmd0aEdldHRlcik7CisgICAgICAgIHNsb3Qu
c2V0Q3VzdG9tKHRoaXNPYmplY3QsIGxlbmd0aEdldHRlcik7CiAgICAgICAgIGRlc2NyaXB0b3Iu
c2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSksIERvbnREZWxl
dGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
Ci0gICAgcmV0dXJuIFF0UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4
ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CisgICAgcmV0dXJuIFF0UnVudGltZU1ldGhv
ZDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCmluZGV4IDlmM2IzMTJlNTcxNDYyODk0ZGJmZTA0
NGZhYTU0MDA1M2FiNzVlNjMuLjY4ZTM3MzBjZjUyZGFlNjI5MzgxNTdhNGMzMWJmYWMyYjIxOTRi
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMTY1LDcgKzE2NSw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsK
LSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51
bWVyYXRpb25Nb2RlKTsKIAogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCosIEV4ZWNTdGF0ZSAqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
T2JqZWN0KiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogICAgIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqLCBFeGVj
U3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSk7CiAgCiAgICAgc3Rh
dGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5jcHAKaW5kZXggZTBjYzg2MWI0N2MwOTZkNjIwZGIyMmViY2M1ZDc5ZjhkZDY5ZTlhOS4u
NTFlNjNmMDEyOTIyOWJkNGJiZDg4NDZjNTQxMDEyYjYxOWQzZmZiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtOTksMTEgKzk5LDEyIEBAIGJvb2wgUnVudGlt
ZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
c09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBSdW50aW1lQXJy
YXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQorYm9v
bCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogeworICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+KG9iamVjdCk7CiAgICAgaWYgKHByb3BlcnR5
TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKSB7CiAgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90OwotICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBsZW5ndGhHZXR0ZXIpOwor
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBsZW5ndGhHZXR0ZXIpOwogICAgICAg
ICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5h
bWUpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KQEAgLTExMSwxNSArMTEyLDE1IEBAIGJvb2wgUnVudGltZUFycmF5OjpnZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
CiAgICAgYm9vbCBvazsKICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS50b0FycmF5
SW5kZXgob2spOwogICAgIGlmIChvaykgewotICAgICAgICBpZiAoaW5kZXggPCBnZXRMZW5ndGgo
KSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewogICAg
ICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbUlu
ZGV4KHRoaXMsIGluZGV4LCBpbmRleEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bUluZGV4KHRoaXNPYmplY3QsIGluZGV4LCBpbmRleEdldHRlcik7CiAgICAgICAgICAgICBkZXNj
cmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpLCBE
b250RGVsZXRlIHwgRG9udEVudW0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpOwogfQogCiBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmlu
ZGV4IGUzYzg5NWMwZTc4Y2M3NTc4MjkwMThiOTQ4MjI5MWVjMTViZjk2MTQuLjc4NjBkMzE3MmFh
NDhhMzlkM2U5NDQxMGU2YzkzNDQ0MzE5ODAzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCosIEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5
JiwgRW51bWVyYXRpb25Nb2RlKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiwgRXhlY1N0
YXRlKiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
RGVzY3JpcHRvciYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihK
U09iamVjdCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmNwcAppbmRleCA3ZjgxMjdmN2UwYjA3OWI1MDliMDlmODE3ZjgwNjU0ZjkyNzYwMjBiLi42
OTA1NTE0OWQ2NTY5ZjlkYTVjZDhhZGUwMjdjNjY1NTYxM2I0ZjJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTUwLDYgKzUwLDEwIEBAIFJ1bnRpbWVNZXRo
b2Q6OlJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsCiB7CiB9CiAKK1J1bnRpbWVNZXRob2Q6On5SdW50aW1lTWV0aG9kKCkKK3sK
K30KKwogdm9pZCBSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQogewogICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIGlkZW50KTsKQEAgLTgwLDE2ICs4NCwxNyBAQCBib29sIFJ1bnRp
bWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbgogICAgIHJldHVybiBJbnRlcm5hbEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAotYm9vbCBS
dW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciAmZGVzY3Jp
cHRvcikKK2Jvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eURlc2NyaXB0b3IgJmRlc2NyaXB0b3IpCiB7CisgICAgUnVudGltZU1ldGhv
ZCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVNZXRob2QqPihvYmplY3QpOwogICAg
IGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkgewogICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgbGVu
Z3RoR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbGVuZ3RoR2V0
dGVyKTsKICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhl
YywgcHJvcGVydHlOYW1lKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEludGVybmFsRnVuY3Rp
b246OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0
b3IpOworICAgIHJldHVybiBJbnRlcm5hbEZ1bmN0aW9uOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoRXhlY1N0
YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCA5ZDhk
ZTIzNGI3MWJkZDQ0NWRiN2UzOTEyM2QzODk2OWVkYmY5MWJhLi4wMjA3YmI5NDU1N2EyYzI5Nzk2
MTg4ODhmYTAyMWEwNTAzMmI0YjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRo
b2QuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFzcyBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5jdGlvbiBCYXNl
OwogCisgICAgflJ1bnRpbWVNZXRob2QoKTsKKwogICAgIHN0YXRpYyBSdW50aW1lTWV0aG9kKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhv
ZExpc3QmIG1ldGhvZExpc3QpCiAgICAgewogICAgICAgICBSdW50aW1lTWV0aG9kKiBtZXRob2Qg
PSBuZXcgKGFsbG9jYXRlQ2VsbDxSdW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUnVudGlt
ZU1ldGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbWV0aG9kTGlzdCk7CkBAIC02NSwxMCAr
NjcsMTAgQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0Nl
bGwqLCBDYWxsRGF0YSYpOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKIHByaXZhdGU6
CiAgICAgc3RhdGljIEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
IAogICAgIE93blB0cjxCaW5kaW5nczo6TWV0aG9kTGlzdD4gX21ldGhvZExpc3Q7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggN2I2YWQyZGY0YmYxYmMz
YWVkMDU1YTZhZWFiM2EwZDAwYzM5Njg4Yi4uOTgzNDAyYWIzMDU4NmJkMzhkMTgxZjg5YTQ3MzFi
OTEyYjM1OWM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBA
IC0xNjIsMTQgKzE2MiwxNSBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbgogICAgIHJldHVybiBp
bnN0YW5jZS0+Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKLWJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCitib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQogewotICAgIGlmICghbV9pbnN0YW5jZSkgeworICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4ob2JqZWN0KTsKKyAgICBpZiAoIXRoaXNP
YmplY3QtPm1faW5zdGFuY2UpIHsKICAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoZXhl
Yyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCi0gICAgUmVmUHRyPEluc3Rh
bmNlPiBpbnN0YW5jZSA9IG1faW5zdGFuY2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5j
ZSA9IHRoaXNPYmplY3QtPm1faW5zdGFuY2U7CiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAgICAg
CiAgICAgQ2xhc3MgKmFDbGFzcyA9IGluc3RhbmNlLT5nZXRDbGFzcygpOwpAQCAtMTc5LDcgKzE4
MCw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNT
dGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICAgICAgRmllbGQgKmFGaWVsZCA9IGFD
bGFzcy0+ZmllbGROYW1lZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgpKTsKICAgICAgICAg
aWYgKGFGaWVsZCkgewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7Ci0gICAgICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzLCBmaWVsZEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzT2JqZWN0LCBmaWVsZEdldHRlcik7CiAgICAgICAgICAgICBpbnN0YW5jZS0+
ZW5kKCk7CiAgICAgICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRWYWx1
ZShleGVjLCBwcm9wZXJ0eU5hbWUpLCBEb250RGVsZXRlKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMTg5LDcgKzE5MCw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYKICAgICAgICAg
ICAgIE1ldGhvZExpc3QgbWV0aG9kTGlzdCA9IGFDbGFzcy0+bWV0aG9kc05hbWVkKHByb3BlcnR5
TmFtZSwgaW5zdGFuY2UuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKG1ldGhvZExpc3Quc2l6ZSgp
ID4gMCkgewogICAgICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICAgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXMsIG1ldGhvZEdldHRlcik7CisgICAgICAgICAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbWV0aG9kR2V0dGVyKTsKICAgICAgICAgICAgICAg
ICBpbnN0YW5jZS0+ZW5kKCk7CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlw
dG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE5OSw3ICsyMDAsNyBAQCBi
b29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUgKmV4
ZWMsIGNvbnN0IElkZW50aWZpZXImCiAgICAgICAgIC8vIFRyeSBhIGZhbGxiYWNrIG9iamVjdC4K
ICAgICAgICAgaWYgKCFhQ2xhc3MtPmZhbGxiYWNrT2JqZWN0KGV4ZWMsIGluc3RhbmNlLmdldCgp
LCBwcm9wZXJ0eU5hbWUpLmlzVW5kZWZpbmVkKCkpIHsKICAgICAgICAgICAgIFByb3BlcnR5U2xv
dCBzbG90OwotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpcywgZmFsbGJhY2tPYmplY3RH
ZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgZmFsbGJhY2tP
YmplY3RHZXR0ZXIpOwogICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAg
ZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1l
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CkBAIC0yMDgsNyArMjA5LDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJgogICAgIAog
ICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAKLSAgICByZXR1cm4gaW5zdGFuY2UtPmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih0aGlzLCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwor
ICAgIHJldHVybiBpbnN0YW5jZS0+Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKIHZvaWQgUnVudGltZU9iamVj
dDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggZjY2YzQ5YWY1OGRmNzNkZTE1MmU1
ZTExYjhhYzBmYzFhOTc5YmJiNi4uMDUwNDMzNmViOGFmNTM1ZDJlYmRjMTY0OWVkZDBhM2I1NjU3
Mzg5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTQ2LDcgKzQ2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJ1bnRpbWVPYmplY3QoKTsKIAogICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwotICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyB2b2lkIHB1
dChKU0NlbGwqLCBFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgc3RhdGljIEpTVmFsdWUgZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiwgRXhlY1N0YXRl
KiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggMDFhYTg5
ZDAyZGE1MzhkNmNlYTVjMmM2MWFlNTg0OGEzNTY3ZDBhYi4uNTEzNTRmYWRmZGE0MTVjN2I4MTBl
ODIxZTA0MTJiNDJmZTNiMDUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMjczLDEwICsyNzMs
MTEgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWYKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2Ny
aXB0b3IpCitib29sIEpTTlBPYmplY3Q6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7Ci0gICAgaWYgKCFtX25wT2JqZWN0KSB7CisgICAg
SlNOUE9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTTlBPYmplY3QqPihvYmplY3Qp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7Cisg
ICAgaWYgKCF0aGlzT2JqZWN0LT5tX25wT2JqZWN0KSB7CiAgICAgICAgIHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjg0LDE3
ICsyODUsMTcgQEAgYm9vbCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICBOUElkZW50aWZpZXIgbnBJ
ZGVudGlmaWVyID0gbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIocHJvcGVydHlOYW1lKTsKIAog
ICAgIC8vIEZpcnN0LCBjaGVjayBpZiB0aGUgTlBPYmplY3QgaGFzIGEgcHJvcGVydHkgd2l0aCB0
aGlzIG5hbWUuCi0gICAgaWYgKG1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVydHkgJiYgbV9u
cE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eShtX25wT2JqZWN0LCBucElkZW50aWZpZXIpKSB7
CisgICAgaWYgKHRoaXNPYmplY3QtPm1fbnBPYmplY3QtPl9jbGFzcy0+aGFzUHJvcGVydHkgJiYg
dGhpc09iamVjdC0+bV9ucE9iamVjdC0+X2NsYXNzLT5oYXNQcm9wZXJ0eSh0aGlzT2JqZWN0LT5t
X25wT2JqZWN0LCBucElkZW50aWZpZXIpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90Owot
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzLCBwcm9wZXJ0eUdldHRlcik7CisgICAgICAgIHNs
b3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHByb3BlcnR5R2V0dGVyKTsKICAgICAgICAgZGVzY3Jp
cHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwgRG9u
dERlbGV0ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFNlY29uZCwg
Y2hlY2sgaWYgdGhlIE5QT2JqZWN0IGhhcyBhIG1ldGhvZCB3aXRoIHRoaXMgbmFtZS4KLSAgICBp
ZiAobV9ucE9iamVjdC0+X2NsYXNzLT5oYXNNZXRob2QgJiYgbV9ucE9iamVjdC0+X2NsYXNzLT5o
YXNNZXRob2QobV9ucE9iamVjdCwgbnBJZGVudGlmaWVyKSkgeworICAgIGlmICh0aGlzT2JqZWN0
LT5tX25wT2JqZWN0LT5fY2xhc3MtPmhhc01ldGhvZCAmJiB0aGlzT2JqZWN0LT5tX25wT2JqZWN0
LT5fY2xhc3MtPmhhc01ldGhvZCh0aGlzT2JqZWN0LT5tX25wT2JqZWN0LCBucElkZW50aWZpZXIp
KSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90OwotICAgICAgICBzbG90LnNldEN1c3RvbSh0
aGlzLCBtZXRob2RHZXR0ZXIpOworICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBt
ZXRob2RHZXR0ZXIpOwogICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3Ioc2xvdC5nZXRW
YWx1ZShleGVjLCBwcm9wZXJ0eU5hbWUpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCBmZWQxN2IzZGJmOGVmNTEx
OTA0NDI5ZmRhOTdiMDJkYzQyZTJlMWVlLi40YjlhZDdjYWQxOTM0OWUyOGY3ZWQ3MTI5NzNhZDU3
ODgzM2Y0NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAg
ICBzdGF0aWMgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwq
LCBKU0M6OkNvbnN0cnVjdERhdGEmKTsKIAogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOworICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAKICAgICBzdGF0aWMgYm9vbCBkZWxldGVQcm9w
ZXJ0eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUpOwo=
</data>
<flag name="review"
          id="112489"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>