<?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>237784</bug_id>
          
          <creation_ts>2022-03-11 09:34:04 -0800</creation_ts>
          <short_desc>Finish implementing modify-headers actions for WKContentRuleList SPI</short_desc>
          <delta_ts>2022-03-11 16:33:32 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1850534</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-11 09:34:04 -0800</bug_when>
    <thetext>Finish implementing modify-headers actions for WKContentRuleList SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850537</commentid>
    <comment_count>1</comment_count>
      <attachid>454490</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-11 09:35:17 -0800</bug_when>
    <thetext>Created attachment 454490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850538</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-11 09:35:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/72433048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850614</commentid>
    <comment_count>3</comment_count>
      <attachid>454513</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-11 14:42:54 -0800</bug_when>
    <thetext>Created attachment 454513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850622</commentid>
    <comment_count>4</comment_count>
      <attachid>454513</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2022-03-11 15:14:56 -0800</bug_when>
    <thetext>Comment on attachment 454513
Patch

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

&gt; Source/WebCore/contentextensions/ContentExtensionActions.cpp:452
&gt; +        return JSObjectGetPropertyForKey(context, toObject(value), JSValueMakeNumber(context, index), nullptr);

Can you use JSObjectGetPropertyAtIndex instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850624</commentid>
    <comment_count>5</comment_count>
      <attachid>454515</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-11 15:21:49 -0800</bug_when>
    <thetext>Created attachment 454515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850647</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-11 16:33:28 -0800</bug_when>
    <thetext>Committed r291200 (248355@main): &lt;https://commits.webkit.org/248355@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454515.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454490</attachid>
            <date>2022-03-11 09:35:17 -0800</date>
            <delta_ts>2022-03-11 14:42:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237784-20220311093517.patch</filename>
            <type>text/plain</type>
            <size>16780</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwYmIwNjZiNDdhYmFj
ZjUwZWUzYWU4YmNhZDk0NDVhMTk1ZjcxNi4uZWE3Y2Q0YmU2NzA3ZGUxZmI4ODg2YjJiZmZmMGQ0
YmU4MWUwNjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTExICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRmluaXNo
IGltcGxlbWVudGluZyBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlz
dCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzc4NAorICAgICAgICA8cmRhcjovLzcyNDMzMDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgaGFkbid0IGltcGxlbWVudGVkIHJlZ2V4IHN1YnN0
aXR1dGlvbiB5ZXQuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpSZWRpcmVjdEFjdGlvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjphcHBseVRvUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246
OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlv
bkFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6Om1ha2VKU1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjphcHBseVRvVVJMIGNvbnN0
KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5o
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmFkZCk6CisgICAgICAgICog
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZFJ1bGUpOgorCiAyMDIyLTAzLTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNrZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQWN0aW9ucy5jcHAKaW5kZXggMWIyZjJmZTBjZjMxMDdmYmNjOTlhNDBhMDc3MjJm
OTA3YjA0OGJiNi4uMTkwMThiNjFmN2Y1MmFhMTQyYTNhNzFiNWRlNTY5ZTEzMWRmYzQ1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bkFjdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25BY3Rpb25zLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5jbHVkZSAiQ29u
dGVudEV4dGVuc2lvbkVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Lmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+CiAj
aW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KQEAgLTI4NSw3
ICsyODcsNyBAQCBzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5mbzo6
c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4XwogICAgIHJldHVybiBkZXNlcmlhbGl6
ZUxlbmd0aChzcGFuLCAwKTsKIH0KIAotRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJy
b3JfY29kZT4gUmVkaXJlY3RBY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgcmVkaXJl
Y3RPYmplY3QpCitFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBSZWRp
cmVjdEFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVjdCwgY29u
c3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7CiAgICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2Jq
ZWN0LmdldE9iamVjdCgicmVkaXJlY3QiKTsKICAgICBpZiAoIXJlZGlyZWN0KQpAQCAtMjk4LDcg
KzMwMCw3IEBAIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGly
ZWN0QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplCiAgICAgfQogCiAgICAgaWYgKGF1dG8g
cmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRp
b24iKTsgISFyZWdleFN1YnN0aXR1dGlvbikKLSAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9u
IHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSB9
IH07CisgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbiksIHVybEZpbHRlciB9IH07CiAKICAgICBp
ZiAoYXV0byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgewog
ICAgICAgICBhdXRvIHBhcnNlZFRyYW5zZm9ybSA9IFVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2Uo
KnRyYW5zZm9ybSk7CkBAIC0zNDMsNyArMzQ1LDcgQEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6c2Vy
aWFsaXplKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9yKSBjb25zdAogICAgIHN0ZDo6dmlzaXQoV1RG
OjptYWtlVmlzaXRvcihbJl0oY29uc3QgRXh0ZW5zaW9uUGF0aEFjdGlvbiYgYWN0aW9uKSB7CiAg
ICAgICAgIGFwcGVuZCh2ZWN0b3IsIGFjdGlvbi5leHRlbnNpb25QYXRoLnV0ZjgoKSk7CiAgICAg
fSwgWyZdKGNvbnN0IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uJiBhY3Rpb24pIHsKLSAgICAgICAg
YXBwZW5kKHZlY3RvciwgYWN0aW9uLnJlZ2V4U3Vic3RpdHV0aW9uLnV0ZjgoKSk7CisgICAgICAg
IGFjdGlvbi5zZXJpYWxpemUodmVjdG9yKTsKICAgICB9LCBbJl0oY29uc3QgVVJMVHJhbnNmb3Jt
QWN0aW9uJiBhY3Rpb24pIHsKICAgICAgICAgYWN0aW9uLnNlcmlhbGl6ZSh2ZWN0b3IpOwogICAg
IH0sIFsmXShjb25zdCBVUkxBY3Rpb24mIGFjdGlvbikgewpAQCAtMzYyLDcgKzM2NCw3IEBAIFJl
ZGlyZWN0QWN0aW9uIFJlZGlyZWN0QWN0aW9uOjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4
X3Q+IHNwYW4pCiAgICAgICAgIGNhc2UgV1RGOjphbHRlcm5hdGl2ZUluZGV4VjxFeHRlbnNpb25Q
YXRoQWN0aW9uLCBBY3Rpb25WYXJpYW50PjoKICAgICAgICAgICAgIHJldHVybiBFeHRlbnNpb25Q
YXRoQWN0aW9uIHsgZGVzZXJpYWxpemVVVEY4U3RyaW5nKHNwYW4sIGhlYWRlclNpemUsIHN0cmlu
Z0xlbmd0aCkgfTsKICAgICAgICAgY2FzZSBXVEY6OmFsdGVybmF0aXZlSW5kZXhWPFJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uLCBBY3Rpb25WYXJpYW50PjoKLSAgICAgICAgICAgIHJldHVybiBSZWdl
eFN1YnN0aXR1dGlvbkFjdGlvbiB7IGRlc2VyaWFsaXplVVRGOFN0cmluZyhzcGFuLCBoZWFkZXJT
aXplLCBzdHJpbmdMZW5ndGgpIH07CisgICAgICAgICAgICByZXR1cm4gUmVnZXhTdWJzdGl0dXRp
b25BY3Rpb246OmRlc2VyaWFsaXplKHNwYW4uc3Vic3BhbihoZWFkZXJTaXplKSk7CiAgICAgICAg
IGNhc2UgV1RGOjphbHRlcm5hdGl2ZUluZGV4VjxVUkxUcmFuc2Zvcm1BY3Rpb24sIEFjdGlvblZh
cmlhbnQ+OgogICAgICAgICAgICAgcmV0dXJuIFVSTFRyYW5zZm9ybUFjdGlvbjo6ZGVzZXJpYWxp
emUoc3Bhbi5zdWJzcGFuKGhlYWRlclNpemUpKTsKICAgICAgICAgY2FzZSBXVEY6OmFsdGVybmF0
aXZlSW5kZXhWPFVSTEFjdGlvbiwgQWN0aW9uVmFyaWFudD46CkBAIC0zODMsOCArMzg1LDEwIEBA
IHZvaWQgUmVkaXJlY3RBY3Rpb246OmFwcGx5VG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgVVJMJiBleHRlbnNpCiAgICAgICAgIGF1dG8gdXJsID0gZXh0ZW5zaW9uQmFz
ZVVSTDsKICAgICAgICAgdXJsLnNldFBhdGgoYWN0aW9uLmV4dGVuc2lvblBhdGgpOwogICAgICAg
ICByZXF1ZXN0LnNldFVSTChXVEZNb3ZlKHVybCkpOwotICAgIH0sIFsmXSAoY29uc3QgUmVnZXhT
dWJzdGl0dXRpb25BY3Rpb24mKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQsIGlkZWFs
bHkgaW4gYSB3YXkgdGhhdCBkb2Vzbid0IHJlcXVpcmUgbWFraW5nIGEgbmV3IFZNIGFuZCBnbG9i
YWwgb2JqZWN0IGZvciBlYWNoIHJlZGlyZWN0IG9wZXJhdGlvbi4KKyAgICB9LCBbJl0gKGNvbnN0
IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uJiBhY3Rpb24pIHsKKyAgICAgICAgYXV0byB1cmwgPSBy
ZXF1ZXN0LnVybCgpOworICAgICAgICBhY3Rpb24uYXBwbHlUb1VSTCh1cmwpOworICAgICAgICBy
ZXF1ZXN0LnNldFVSTChXVEZNb3ZlKHVybCkpOwogICAgIH0sIFsmXSAoY29uc3QgVVJMVHJhbnNm
b3JtQWN0aW9uJiBhY3Rpb24pIHsKICAgICAgICAgYXV0byB1cmwgPSByZXF1ZXN0LnVybCgpOwog
ICAgICAgICBhY3Rpb24uYXBwbHlUb1VSTCh1cmwpOwpAQCAtMzk0LDYgKzM5OCw4OCBAQCB2b2lk
IFJlZGlyZWN0QWN0aW9uOjphcHBseVRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFVSTCYgZXh0ZW5zaQogICAgIH0pLCBhY3Rpb24pOwogfQogCit2b2lkIFJlZGlyZWN0
QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFjdGlvbjo6c2VyaWFsaXplKFZlY3Rvcjx1aW50OF90
PiYgdmVjdG9yKSBjb25zdAoreworICAgIGF1dG8gcmVnZXhTdWJzdGl0dXRpb25VVEY4ID0gcmVn
ZXhTdWJzdGl0dXRpb24udXRmOCgpOworICAgIGF1dG8gcmVnZXhGaWx0ZXJVVEY4ID0gcmVnZXhG
aWx0ZXIudXRmOCgpOworICAgIHZlY3Rvci5yZXNlcnZlQ2FwYWNpdHkodmVjdG9yLnNpemUoKQor
ICAgICAgICArIHNpemVvZih1aW50MzJfdCkKKyAgICAgICAgKyBzaXplb2YodWludDMyX3QpCisg
ICAgICAgICsgcmVnZXhTdWJzdGl0dXRpb25VVEY4Lmxlbmd0aCgpCisgICAgICAgICsgcmVnZXhG
aWx0ZXJVVEY4Lmxlbmd0aCgpKTsKKyAgICB1bmNoZWNrZWRBcHBlbmQodmVjdG9yLCByZWdleFN1
YnN0aXR1dGlvblVURjgubGVuZ3RoKCkpOworICAgIHVuY2hlY2tlZEFwcGVuZCh2ZWN0b3IsIHJl
Z2V4RmlsdGVyVVRGOC5sZW5ndGgoKSk7CisgICAgdW5jaGVja2VkQXBwZW5kKHZlY3RvciwgcmVn
ZXhTdWJzdGl0dXRpb25VVEY4KTsKKyAgICB1bmNoZWNrZWRBcHBlbmQodmVjdG9yLCByZWdleEZp
bHRlclVURjgpOworfQorCithdXRvIFJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFj
dGlvbjo6ZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90PiBzcGFuKSAtPiBSZWdleFN1YnN0
aXR1dGlvbkFjdGlvbgoreworICAgIGF1dG8gcmVnZXhTdWJzdGl0dXRpb25MZW5ndGggPSBkZXNl
cmlhbGl6ZUxlbmd0aChzcGFuLCAwKTsKKyAgICBhdXRvIHJlZ2V4RmlsdGVyTGVuZ3RoID0gZGVz
ZXJpYWxpemVMZW5ndGgoc3Bhbiwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgY29uc3RleHByIGF1
dG8gaGVhZGVyU2l6ZSA9IHNpemVvZih1aW50MzJfdCkgKyBzaXplb2YodWludDMyX3QpOworICAg
IGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSBkZXNlcmlhbGl6ZVVURjhTdHJpbmcoc3BhbiwgaGVh
ZGVyU2l6ZSwgcmVnZXhTdWJzdGl0dXRpb25MZW5ndGgpOworICAgIGF1dG8gcmVnZXhGaWx0ZXIg
PSBkZXNlcmlhbGl6ZVVURjhTdHJpbmcoc3BhbiwgaGVhZGVyU2l6ZSArIHJlZ2V4U3Vic3RpdHV0
aW9uTGVuZ3RoLCByZWdleEZpbHRlckxlbmd0aCk7CisgICAgcmV0dXJuIHsgV1RGTW92ZShyZWdl
eFN1YnN0aXR1dGlvbiksIFdURk1vdmUocmVnZXhGaWx0ZXIpIH07Cit9CisKK3N0YXRpYyBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gbWFrZUpTU3RyaW5nKGNvbnN0IGNoYXIqIHV0ZjgpCit7Cisg
ICAgcmV0dXJuIGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHV0ZjgpKTsKK30K
Kworc3RhdGljIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBtYWtlSlNTdHJpbmcoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIG1ha2VKU1N0cmluZyhzdHJpbmcudXRmOCgpLmRh
dGEoKSk7Cit9CisKK3ZvaWQgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9u
OjphcHBseVRvVVJMKFVSTCYgdXJsKSBjb25zdAoreworICAgIHN0YXRpYyBKU0NvbnRleHRHcm91
cFJlZiBjb250ZXh0R3JvdXAgPSBudWxscHRyOworICAgIHN0YXRpYyBKU0dsb2JhbENvbnRleHRS
ZWYgY29udGV4dCA9IG51bGxwdHI7CisgICAgaWYgKCFjb250ZXh0R3JvdXAgfHwgIWNvbnRleHQp
IHsKKyAgICAgICAgY29udGV4dEdyb3VwID0gSlNDb250ZXh0R3JvdXBDcmVhdGUoKTsKKyAgICAg
ICAgY29udGV4dCA9IEpTR2xvYmFsQ29udGV4dENyZWF0ZUluR3JvdXAoY29udGV4dEdyb3VwLCBu
dWxscHRyKTsKKyAgICB9CisKKyAgICBhdXRvIHRvT2JqZWN0ID0gWyZdIChKU1ZhbHVlUmVmIHZh
bHVlKSB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgdmFsdWUsIG51
bGxwdHIpOworICAgIH07CisgICAgYXV0byBnZXRQcm9wZXJ0eSA9IFsmXSAoSlNWYWx1ZVJlZiB2
YWx1ZSwgY29uc3QgY2hhciogbmFtZSkgeworICAgICAgICByZXR1cm4gSlNPYmplY3RHZXRQcm9w
ZXJ0eShjb250ZXh0LCB0b09iamVjdCh2YWx1ZSksIG1ha2VKU1N0cmluZyhuYW1lKS5nZXQoKSwg
bnVsbHB0cik7CisgICAgfTsKKyAgICBhdXRvIGdldEFycmF5VmFsdWUgPSBbJl0gKEpTVmFsdWVS
ZWYgdmFsdWUsIHNpemVfdCBpbmRleCkgeworICAgICAgICByZXR1cm4gSlNPYmplY3RHZXRQcm9w
ZXJ0eUZvcktleShjb250ZXh0LCB0b09iamVjdCh2YWx1ZSksIEpTVmFsdWVNYWtlTnVtYmVyKGNv
bnRleHQsIGluZGV4KSwgbnVsbHB0cik7CisgICAgfTsKKyAgICBhdXRvIHZhbHVlVG9XVEZTdHJp
bmcgPSBbJl0gKEpTVmFsdWVSZWYgdmFsdWUpIHsKKyAgICAgICAgYXV0byBzdHJpbmcgPSBhZG9w
dChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBudWxscHRyKSk7CisgICAgICAg
IHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKHN0
cmluZy5nZXQoKSk7CisgICAgICAgIFZlY3RvcjxjaGFyPiBidWZmZXIoYnVmZmVyU2l6ZSk7Cisg
ICAgICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoc3RyaW5nLmdldCgpLCBidWZmZXIuZGF0YSgp
LCBidWZmZXIuc2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoYnVmZmVy
LmRhdGEoKSk7CisgICAgfTsKKworICAgIC8vIEVmZmVjdGl2ZWx5IGV4ZWN1dGUgdGhpcyBKYXZh
U2NyaXB0OgorICAgIC8vIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAocmVnZXhGaWx0ZXIpOwor
ICAgIC8vIGNvbnN0IHJlc3VsdCA9IHVybC5tYXRjaChyZWdleHApOworICAgIEpTVmFsdWVSZWYg
cmVnZXhGaWx0ZXJWYWx1ZSA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIG1ha2VKU1N0cmlu
ZyhyZWdleEZpbHRlcikuZ2V0KCkpOworICAgIEpTT2JqZWN0UmVmIHJlZ2V4cCA9IEpTT2JqZWN0
TWFrZVJlZ0V4cChjb250ZXh0LCAxLCAmcmVnZXhGaWx0ZXJWYWx1ZSwgbnVsbHB0cik7CisgICAg
SlNWYWx1ZVJlZiB1cmxWYWx1ZSA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIG1ha2VKU1N0
cmluZyh1cmwuc3RyaW5nKCkpLmdldCgpKTsKKyAgICBKU09iamVjdFJlZiBtYXRjaEZ1bmN0aW9u
ID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIGdldFByb3BlcnR5KHVybFZhbHVlLCAibWF0Y2gi
KSwgbnVsbHB0cik7CisgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0
aW9uKGNvbnRleHQsIG1hdGNoRnVuY3Rpb24sIHRvT2JqZWN0KHVybFZhbHVlKSwgMSwgJnJlZ2V4
cCwgbnVsbHB0cik7CisgICAgaWYgKCFKU1ZhbHVlSXNBcnJheShjb250ZXh0LCByZXN1bHQpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgc3Vic3RpdHV0aW9uID0gcmVnZXhTdWJzdGl0
dXRpb247CisgICAgc2l6ZV90IHJlc3VsdExlbmd0aCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBnZXRQcm9wZXJ0eShyZXN1bHQsICJsZW5ndGgiKSwgbnVsbHB0cik7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzdGQ6Om1pbjxzaXplX3Q+KDEwLCByZXN1bHRMZW5ndGgpOyBpKyspCisg
ICAgICAgIHN1YnN0aXR1dGlvbi5yZXBsYWNlKG1ha2VTdHJpbmcoJ1xcJywgaSksIHZhbHVlVG9X
VEZTdHJpbmcoZ2V0QXJyYXlWYWx1ZShyZXN1bHQsIGkpKSk7CisKKyAgICBVUkwgcmVwbGFjZW1l
bnRVUkwoc3Vic3RpdHV0aW9uKTsKKyAgICBpZiAocmVwbGFjZW1lbnRVUkwuaXNWYWxpZCgpKQor
ICAgICAgICB1cmwgPSBXVEZNb3ZlKHJlcGxhY2VtZW50VVJMKTsKK30KKwogYXV0byBSZWRpcmVj
dEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRy
YW5zZm9ybSkgLT4gRXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+
CiB7CiAgICAgVVJMVHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCmlu
ZGV4IGIwY2MwZWQxZjVjODE0MzFjYTZiNGU5ZjgxNzY1MzZmMDJkNzgyNDEuLmRiYmU5ZDMyMmQy
ZTBhNDk4OGU5ZmMzNDY2ZGIxNzBiMDVlZmQ3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaApAQCAt
MTM5LDEwICsxMzksMTQgQEAgc3RydWN0IFdFQkNPUkVfRVhQT1JUIFJlZGlyZWN0QWN0aW9uIHsK
ICAgICB9OwogICAgIHN0cnVjdCBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7CiAgICAgICAgIFN0
cmluZyByZWdleFN1YnN0aXR1dGlvbjsKKyAgICAgICAgU3RyaW5nIHJlZ2V4RmlsdGVyOwogCi0g
ICAgICAgIFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0ICYgeyBy
ZXR1cm4geyByZWdleFN1YnN0aXR1dGlvbi5pc29sYXRlZENvcHkoKSB9OyB9Ci0gICAgICAgIFJl
Z2V4U3Vic3RpdHV0aW9uQWN0aW9uIGlzb2xhdGVkQ29weSgpICYmIHsgcmV0dXJuIHsgV1RGTW92
ZShyZWdleFN1YnN0aXR1dGlvbikuaXNvbGF0ZWRDb3B5KCkgfTsgfQotICAgICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24mIG90aGVyKSBjb25zdCB7IHJl
dHVybiBvdGhlci5yZWdleFN1YnN0aXR1dGlvbiA9PSB0aGlzLT5yZWdleFN1YnN0aXR1dGlvbjsg
fQorICAgICAgICBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCAm
IHsgcmV0dXJuIHsgcmVnZXhTdWJzdGl0dXRpb24uaXNvbGF0ZWRDb3B5KCksIHJlZ2V4RmlsdGVy
Lmlzb2xhdGVkQ29weSgpIH07IH0KKyAgICAgICAgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gaXNv
bGF0ZWRDb3B5KCkgJiYgeyByZXR1cm4geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKS5pc29s
YXRlZENvcHkoKSwgV1RGTW92ZShyZWdleEZpbHRlcikuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAg
ICAgICB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8dWludDhfdD4mKSBjb25zdDsKKyAgICAgICAgc3Rh
dGljIFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIGRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhf
dD4pOworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rp
b24mIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5yZWdleFN1YnN0aXR1dGlvbiA9PSB0aGlz
LT5yZWdleFN1YnN0aXR1dGlvbiAmJiBvdGhlci5yZWdleEZpbHRlciA9PSB0aGlzLT5yZWdleEZp
bHRlcjsgfQorICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGx5VG9VUkwoVVJMJikgY29u
c3Q7CiAgICAgfTsKICAgICBzdHJ1Y3QgVVJMVHJhbnNmb3JtQWN0aW9uIHsKICAgICAgICAgc3Ry
dWN0IFF1ZXJ5VHJhbnNmb3JtIHsKQEAgLTIxNCw3ICsyMTgsNyBAQCBzdHJ1Y3QgV0VCQ09SRV9F
WFBPUlQgUmVkaXJlY3RBY3Rpb24gewogICAgIFJlZGlyZWN0QWN0aW9uKERlbGV0ZWRWYWx1ZVRh
ZykgOiBoYXNoVGFibGVUeXBlKEhhc2hUYWJsZVR5cGU6OkRlbGV0ZWQpIHsgfQogICAgIGJvb2wg
aXNEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBoYXNoVGFibGVUeXBlID09IEhhc2hUYWJs
ZVR5cGU6OkRlbGV0ZWQ7IH0KIAotICAgIHN0YXRpYyBFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwg
c3RkOjplcnJvcl9jb2RlPiBwYXJzZShjb25zdCBKU09OOjpPYmplY3QmKTsKKyAgICBzdGF0aWMg
RXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gcGFyc2UoY29uc3QgSlNP
Tjo6T2JqZWN0JiwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIpOwogICAgIFJlZGlyZWN0QWN0aW9u
IGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CiAgICAgUmVkaXJlY3RBY3Rpb24gaXNvbGF0ZWRDb3B5
KCkgJiY7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFJlZGlyZWN0QWN0aW9uJikgY29uc3Q7
CkBAIC0yNjIsNyArMjY2LDcgQEAgaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25z
dCBSZWRpcmVjdEFjdGlvbjo6RXh0ZW5zaW9uUGF0aEFjdGlvbiYgYWN0aW8KIAogaW5saW5lIHZv
aWQgYWRkKEhhc2hlciYgaGFzaGVyLCBjb25zdCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0
dXRpb25BY3Rpb24mIGFjdGlvbikKIHsKLSAgICBhZGQoaGFzaGVyLCBhY3Rpb24ucmVnZXhTdWJz
dGl0dXRpb24pOworICAgIGFkZChoYXNoZXIsIGFjdGlvbi5yZWdleFN1YnN0aXR1dGlvbiwgYWN0
aW9uLnJlZ2V4RmlsdGVyKTsKIH0KIAogaW5saW5lIHZvaWQgYWRkKEhhc2hlciYgaGFzaGVyLCBj
b25zdCBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6
UXVlcnlLZXlWYWx1ZSYgcXVlcnlLZXlWYWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXgg
ODgyNDAyYzdiODUzYzFlNWJjNTdmZTZhZTdkNTM3YjA5NmNmZjViYi4uNTEzZmQ5MzllNjZkYjVj
YTI1MTI5ZjU3NmI5ODJiNGY4Yzk4MjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTIx
MCw3ICsyMTAsNyBAQCBib29sIGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVj
dG9yKQogICAgIHJldHVybiAhIXBhcnNlci5wYXJzZVNlbGVjdG9yKHNlbGVjdG9yKTsKIH0KIAot
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBs
b2FkQWN0aW9uKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCkKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25z
dCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QsIGNvbnN0IFN0cmluZyYgdXJsRmlsdGVyKQogewog
ICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoImFjdGlvbiIpOwog
ICAgIGlmICghYWN0aW9uT2JqZWN0KQpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25z
dCBKU09OOjpPCiAgICAgICAgIHJldHVybiBBY3Rpb24geyBOb3RpZnlBY3Rpb24geyB7IFdURk1v
dmUobm90aWZpY2F0aW9uKSB9IH0gfTsKICAgICB9CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gInJl
ZGlyZWN0IikgewotICAgICAgICBhdXRvIGFjdGlvbiA9IFJlZGlyZWN0QWN0aW9uOjpwYXJzZSgq
YWN0aW9uT2JqZWN0KTsKKyAgICAgICAgYXV0byBhY3Rpb24gPSBSZWRpcmVjdEFjdGlvbjo6cGFy
c2UoKmFjdGlvbk9iamVjdCwgdXJsRmlsdGVyKTsKICAgICAgICAgaWYgKCFhY3Rpb24pCiAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoYWN0aW9uLmVycm9yKCkpOwogICAgICAgICBy
ZXR1cm4gQWN0aW9uIHsgUmVkaXJlY3RBY3Rpb24geyBXVEZNb3ZlKCphY3Rpb24pIH0gfTsKQEAg
LTI2MSw3ICsyNjEsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxDb250ZW50RXh0
ZW5zaW9uUnVsZSwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZFJ1bGUoYwogICAgIGlmICghdHJpZ2dl
ci5oYXNfdmFsdWUoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHRyaWdnZXIuZXJy
b3IoKSk7CiAKLSAgICBhdXRvIGFjdGlvbiA9IGxvYWRBY3Rpb24ocnVsZU9iamVjdCk7CisgICAg
YXV0byBhY3Rpb24gPSBsb2FkQWN0aW9uKHJ1bGVPYmplY3QsIHRyaWdnZXItPnVybEZpbHRlcik7
CiAgICAgaWYgKCFhY3Rpb24pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYg
KCFhY3Rpb24tPmhhc192YWx1ZSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGE5Njc1YTgwNDQ1MWYxZjhmZmQ1YWFiMTAyYzExZTk1MDc2YzFm
ODIuLmU3ZjM0YjYxNzQ3NDFjZDMzMWEzMzYzZGRiOGEzYmU3ODc2OGYwZmYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMi0wMy0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIEZpbmlzaCBpbXBsZW1lbnRpbmcgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3Ig
V0tDb250ZW50UnVsZUxpc3QgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzc3ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIyLTAzLTA5
ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdl
YmtpdF0gRXh0cmFjdCByZXZpc2lvbiBmcm9tIGBnaXQgc3ZuIGRjb21taXRgIChGb2xsb3ctdXAg
Zml4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250
ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggOTI5YzI5ZTI0YTE2NjhlY2VmMmI1MmZjYWE0ZWQ5Mjkw
ZGQ3NDYyYy4uY2U0MGZhZmNhYWZlMzg0ODI3MjRjZDM4OWMzN2IyZTY1Yjc4OTBjNiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25z
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVu
c2lvbnMuY3BwCkBAIC0zMDM5LDcgKzMwMzksNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRl
c3QsIFNlcmlhbGl6YXRpb24pCiAgICAgICAgIEVYUEVDVF9FUShkZXNlcmlhbGl6ZWQsIGFjdGlv
bik7CiAgICAgfTsKICAgICBjaGVja1JlZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsgUmVk
aXJlY3RBY3Rpb246OkV4dGVuc2lvblBhdGhBY3Rpb24geyAiZXh0ZW5zaW9uUGF0aCIgfSB9IH0s
IDE4KTsKLSAgICBjaGVja1JlZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsgUmVkaXJlY3RB
Y3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsgInJlZ2V4U3Vic3RpdHV0aW9uIiB9IH0g
fSwgMjIpOworICAgIGNoZWNrUmVkaXJlY3RBY3Rpb25TZXJpYWxpemF0aW9uKHsgeyBSZWRpcmVj
dEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rpb24geyAicmVnZXhTdWJzdGl0dXRpb24iLCAi
cmVnZXhGaWx0ZXIiIH0gfSB9LCA0MSk7CiAgICAgY2hlY2tSZWRpcmVjdEFjdGlvblNlcmlhbGl6
YXRpb24oeyB7IFJlZGlyZWN0QWN0aW9uOjpVUkxBY3Rpb24geyAidXJsIiB9IH0gfSwgOCk7CiAg
ICAgY2hlY2tSZWRpcmVjdEFjdGlvblNlcmlhbGl6YXRpb24oeyB7IFJlZGlyZWN0QWN0aW9uOjpV
UkxUcmFuc2Zvcm1BY3Rpb24gewogICAgICAgICAiZnLDpGdtZW50IiwKQEAgLTMwOTcsNiArMzA5
NywyMiBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIElmRnJhbWVVUkwpCiAgICAgdGVz
dFJlcXVlc3QobWF0Y2hpbmdFdmVyeXRoaW5nLCByZXF1ZXN0SW5Ub3BBbmRGcmFtZVVSTHMoImh0
dHA6Ly9leGFtcGxlLmNvbS8iLCAiaHR0cHM6Ly93ZWJraXQub3JnLyIsICJodHRwczovL3dlYmtp
dC5vcmcvIiksIHsgfSk7CiB9CiAKK1RFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUmVnZXhT
dWJzdGl0dXRpb24pCit7CisgICAgYXV0byB0cmFuc2Zvcm1VUkwgPSBbXSAoU3RyaW5nJiYgcmVn
ZXhTdWJzdGl0dXRpb24sIFN0cmluZyYmIHJlZ2V4RmlsdGVyLCBTdHJpbmcmJiBvcmlnaW5hbFVS
TCwgY29uc3QgY2hhciogZXhwZWN0ZWRUcmFuc2Zvcm1lZFVSTCkgeworICAgICAgICBXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uIGFjdGlvbiB7IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24pLCBXVEZNb3ZlKHJlZ2V4Rmls
dGVyKSB9OworICAgICAgICBVUkwgdXJsKFdURk1vdmUob3JpZ2luYWxVUkwpKTsKKyAgICAgICAg
YWN0aW9uLmFwcGx5VG9VUkwodXJsKTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKHVybC5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBleHBlY3RlZFRyYW5zZm9ybWVkVVJMKTsKKyAgICB9OworICAgIHRy
YW5zZm9ybVVSTCgiaHR0cHM6Ly9cXDEueHl6LmNvbS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8p
XFwueHl6XFwuY29tLyIsICJodHRwczovL3d3dy5hYmMueHl6LmNvbSIsICJodHRwczovL2FiYy54
eXouY29tLyIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly9cXDEuXFwxLnh5ei5jb20vIiwg
Il5odHRwczovL3d3d1xcLihhYmM/KVxcLnh5elxcLmNvbS8iLCAiaHR0cHM6Ly93d3cuYWIueHl6
LmNvbSIsICJodHRwczovL2FiLmFiLnh5ei5jb20vIik7CisgICAgdHJhbnNmb3JtVVJMKCJodHRw
czovL1xcMS5cXDEueHl6LmNvbS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8pXFwueHl6XFwuY29t
LyIsICJodHRwczovL2FiLnh5ei5jb20iLCAiaHR0cHM6Ly9hYi54eXouY29tLyIpOworICAgIHRy
YW5zZm9ybVVSTCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9cXDBcXDEiLCAiXmh0dHBzOi8vd3d3XFwu
KGFiYz8pXFwueHl6XFwuY29tLyIsICJodHRwczovL3d3dy5hYi54eXouY29tIiwgImh0dHBzOi8v
ZXhhbXBsZS5jb20vaHR0cHM6Ly93d3cuYWIueHl6LmNvbS9hYiIpOworICAgIHRyYW5zZm9ybVVS
TCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9cXDFcXDJcXDNcXDRcXDVcXDZcXDdcXDhcXDlcXDEwXFwx
MVxcMTJcXDEzXFwxNCIsICJeaHR0cHM6Ly8oZSkoeCkoYSkobSkocCkobCkoZSkodykoZSkoYiko
cykoaSkodCkoZSkvIiwgImh0dHBzOi8vZXhhbXBsZXdlYnNpdGUvIiwgImh0dHBzOi8vZXhhbXBs
ZS5jb20vZXhhbXBsZXdlZTBlMWUyZTNlNCIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly8h
QCMkJV4mKmludmFsaWRVUkxcXDEvIiwgIl5odHRwczovL3d3d1xcLihhYmM/KVxcLnh5elxcLmNv
bS8iLCAiaHR0cHM6Ly93d3cuYWJjLnh5ei5jb20iLCAiaHR0cHM6Ly93d3cuYWJjLnh5ei5jb20v
Iik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454513</attachid>
            <date>2022-03-11 14:42:54 -0800</date>
            <delta_ts>2022-03-11 15:21:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237784-20220311144253.patch</filename>
            <type>text/plain</type>
            <size>20211</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwYmIwNjZiNDdhYmFj
ZjUwZWUzYWU4YmNhZDk0NDVhMTk1ZjcxNi4uZWE3Y2Q0YmU2NzA3ZGUxZmI4ODg2YjJiZmZmMGQ0
YmU4MWUwNjczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTExICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRmluaXNo
IGltcGxlbWVudGluZyBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlz
dCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzc4NAorICAgICAgICA8cmRhcjovLzcyNDMzMDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEkgaGFkbid0IGltcGxlbWVudGVkIHJlZ2V4IHN1YnN0
aXR1dGlvbiB5ZXQuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpSZWRpcmVjdEFjdGlvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjphcHBseVRvUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246
OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlv
bkFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6Om1ha2VKU1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjphcHBseVRvVVJMIGNvbnN0
KToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5o
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmFkZCk6CisgICAgICAgICog
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZFJ1bGUpOgorCiAyMDIyLTAzLTA5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUmVtb3RlTGF5ZXJC
YWNraW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNrZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0NTc1NDM2M2Y0NGMyNzYxNWFlZmZhZGI0YmVjZTZjMGEyMGM2YjEuLjNjODdi
ZTc2M2JhODJjMDRlZDIwMjlmZWJhYzlmYjNiNTgzYTE0ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjItMDMtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0
Lm9yZz4KKworICAgICAgICBGaW5pc2ggaW1wbGVtZW50aW5nIG1vZGlmeS1oZWFkZXJzIGFjdGlv
bnMgZm9yIFdLQ29udGVudFJ1bGVMaXN0IFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3Nzg0CisgICAgICAgIDxyZGFyOi8vNzI0MzMwNDg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmg6CisKIDIwMjItMDMtMDkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZTo6QnVmZmVyLmlzVm9sYXRpbGUgaW50byBJbWFnZUJ1ZmZlckJhY2tlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25BY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25BY3Rpb25zLmNwcAppbmRleCAxYjJmMmZlMGNmMzEwN2ZiY2M5OWE0MGEwNzcy
MmY5MDdiMDQ4YmI2Li4xOTAxOGI2MWY3ZjUyYWExNDJhM2E3MWI1ZGU1NjllMTMxZGZjNDUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uQWN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJD
b250ZW50RXh0ZW5zaW9uRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgpAQCAtMjg1
LDcgKzI4Nyw3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZv
OjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfCiAgICAgcmV0dXJuIGRlc2VyaWFs
aXplTGVuZ3RoKHNwYW4sIDApOwogfQogCi1FeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiByZWRp
cmVjdE9iamVjdCkKK0V4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJl
ZGlyZWN0QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBj
b25zdCBTdHJpbmcmIHVybEZpbHRlcikKIHsKICAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RP
YmplY3QuZ2V0T2JqZWN0KCJyZWRpcmVjdCIpOwogICAgIGlmICghcmVkaXJlY3QpCkBAIC0yOTgs
NyArMzAwLDcgQEAgRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gUmVk
aXJlY3RBY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamUKICAgICB9CiAKICAgICBpZiAoYXV0
byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1
dGlvbiIpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQotICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rp
b24geyBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24p
IH0gfTsKKyAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25B
Y3Rpb24geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSwgdXJsRmlsdGVyIH0gfTsKIAogICAg
IGlmIChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSIpKSB7
CiAgICAgICAgIGF1dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJz
ZSgqdHJhbnNmb3JtKTsKQEAgLTM0Myw3ICszNDUsNyBAQCB2b2lkIFJlZGlyZWN0QWN0aW9uOjpz
ZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0CiAgICAgc3RkOjp2aXNpdChX
VEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBFeHRlbnNpb25QYXRoQWN0aW9uJiBhY3Rpb24pIHsK
ICAgICAgICAgYXBwZW5kKHZlY3RvciwgYWN0aW9uLmV4dGVuc2lvblBhdGgudXRmOCgpKTsKICAg
ICB9LCBbJl0oY29uc3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24mIGFjdGlvbikgewotICAgICAg
ICBhcHBlbmQodmVjdG9yLCBhY3Rpb24ucmVnZXhTdWJzdGl0dXRpb24udXRmOCgpKTsKKyAgICAg
ICAgYWN0aW9uLnNlcmlhbGl6ZSh2ZWN0b3IpOwogICAgIH0sIFsmXShjb25zdCBVUkxUcmFuc2Zv
cm1BY3Rpb24mIGFjdGlvbikgewogICAgICAgICBhY3Rpb24uc2VyaWFsaXplKHZlY3Rvcik7CiAg
ICAgfSwgWyZdKGNvbnN0IFVSTEFjdGlvbiYgYWN0aW9uKSB7CkBAIC0zNjIsNyArMzY0LDcgQEAg
UmVkaXJlY3RBY3Rpb24gUmVkaXJlY3RBY3Rpb246OmRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWlu
dDhfdD4gc3BhbikKICAgICAgICAgY2FzZSBXVEY6OmFsdGVybmF0aXZlSW5kZXhWPEV4dGVuc2lv
blBhdGhBY3Rpb24sIEFjdGlvblZhcmlhbnQ+OgogICAgICAgICAgICAgcmV0dXJuIEV4dGVuc2lv
blBhdGhBY3Rpb24geyBkZXNlcmlhbGl6ZVVURjhTdHJpbmcoc3BhbiwgaGVhZGVyU2l6ZSwgc3Ry
aW5nTGVuZ3RoKSB9OwogICAgICAgICBjYXNlIFdURjo6YWx0ZXJuYXRpdmVJbmRleFY8UmVnZXhT
dWJzdGl0dXRpb25BY3Rpb24sIEFjdGlvblZhcmlhbnQ+OgotICAgICAgICAgICAgcmV0dXJuIFJl
Z2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsgZGVzZXJpYWxpemVVVEY4U3RyaW5nKHNwYW4sIGhlYWRl
clNpemUsIHN0cmluZ0xlbmd0aCkgfTsKKyAgICAgICAgICAgIHJldHVybiBSZWdleFN1YnN0aXR1
dGlvbkFjdGlvbjo6ZGVzZXJpYWxpemUoc3Bhbi5zdWJzcGFuKGhlYWRlclNpemUpKTsKICAgICAg
ICAgY2FzZSBXVEY6OmFsdGVybmF0aXZlSW5kZXhWPFVSTFRyYW5zZm9ybUFjdGlvbiwgQWN0aW9u
VmFyaWFudD46CiAgICAgICAgICAgICByZXR1cm4gVVJMVHJhbnNmb3JtQWN0aW9uOjpkZXNlcmlh
bGl6ZShzcGFuLnN1YnNwYW4oaGVhZGVyU2l6ZSkpOwogICAgICAgICBjYXNlIFdURjo6YWx0ZXJu
YXRpdmVJbmRleFY8VVJMQWN0aW9uLCBBY3Rpb25WYXJpYW50PjoKQEAgLTM4Myw4ICszODUsMTAg
QEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6YXBwbHlUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBVUkwmIGV4dGVuc2kKICAgICAgICAgYXV0byB1cmwgPSBleHRlbnNpb25C
YXNlVVJMOwogICAgICAgICB1cmwuc2V0UGF0aChhY3Rpb24uZXh0ZW5zaW9uUGF0aCk7CiAgICAg
ICAgIHJlcXVlc3Quc2V0VVJMKFdURk1vdmUodXJsKSk7Ci0gICAgfSwgWyZdIChjb25zdCBSZWdl
eFN1YnN0aXR1dGlvbkFjdGlvbiYpIHsKLSAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCwgaWRl
YWxseSBpbiBhIHdheSB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBtYWtpbmcgYSBuZXcgVk0gYW5kIGds
b2JhbCBvYmplY3QgZm9yIGVhY2ggcmVkaXJlY3Qgb3BlcmF0aW9uLgorICAgIH0sIFsmXSAoY29u
c3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24mIGFjdGlvbikgeworICAgICAgICBhdXRvIHVybCA9
IHJlcXVlc3QudXJsKCk7CisgICAgICAgIGFjdGlvbi5hcHBseVRvVVJMKHVybCk7CisgICAgICAg
IHJlcXVlc3Quc2V0VVJMKFdURk1vdmUodXJsKSk7CiAgICAgfSwgWyZdIChjb25zdCBVUkxUcmFu
c2Zvcm1BY3Rpb24mIGFjdGlvbikgewogICAgICAgICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7
CiAgICAgICAgIGFjdGlvbi5hcHBseVRvVVJMKHVybCk7CkBAIC0zOTQsNiArMzk4LDg4IEBAIHZv
aWQgUmVkaXJlY3RBY3Rpb246OmFwcGx5VG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgVVJMJiBleHRlbnNpCiAgICAgfSksIGFjdGlvbik7CiB9CiAKK3ZvaWQgUmVkaXJl
Y3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpzZXJpYWxpemUoVmVjdG9yPHVpbnQ4
X3Q+JiB2ZWN0b3IpIGNvbnN0Cit7CisgICAgYXV0byByZWdleFN1YnN0aXR1dGlvblVURjggPSBy
ZWdleFN1YnN0aXR1dGlvbi51dGY4KCk7CisgICAgYXV0byByZWdleEZpbHRlclVURjggPSByZWdl
eEZpbHRlci51dGY4KCk7CisgICAgdmVjdG9yLnJlc2VydmVDYXBhY2l0eSh2ZWN0b3Iuc2l6ZSgp
CisgICAgICAgICsgc2l6ZW9mKHVpbnQzMl90KQorICAgICAgICArIHNpemVvZih1aW50MzJfdCkK
KyAgICAgICAgKyByZWdleFN1YnN0aXR1dGlvblVURjgubGVuZ3RoKCkKKyAgICAgICAgKyByZWdl
eEZpbHRlclVURjgubGVuZ3RoKCkpOworICAgIHVuY2hlY2tlZEFwcGVuZCh2ZWN0b3IsIHJlZ2V4
U3Vic3RpdHV0aW9uVVRGOC5sZW5ndGgoKSk7CisgICAgdW5jaGVja2VkQXBwZW5kKHZlY3Rvciwg
cmVnZXhGaWx0ZXJVVEY4Lmxlbmd0aCgpKTsKKyAgICB1bmNoZWNrZWRBcHBlbmQodmVjdG9yLCBy
ZWdleFN1YnN0aXR1dGlvblVURjgpOworICAgIHVuY2hlY2tlZEFwcGVuZCh2ZWN0b3IsIHJlZ2V4
RmlsdGVyVVRGOCk7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9u
QWN0aW9uOjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNwYW4pIC0+IFJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uCit7CisgICAgYXV0byByZWdleFN1YnN0aXR1dGlvbkxlbmd0aCA9IGRl
c2VyaWFsaXplTGVuZ3RoKHNwYW4sIDApOworICAgIGF1dG8gcmVnZXhGaWx0ZXJMZW5ndGggPSBk
ZXNlcmlhbGl6ZUxlbmd0aChzcGFuLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBjb25zdGV4cHIg
YXV0byBoZWFkZXJTaXplID0gc2l6ZW9mKHVpbnQzMl90KSArIHNpemVvZih1aW50MzJfdCk7Cisg
ICAgYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IGRlc2VyaWFsaXplVVRGOFN0cmluZyhzcGFuLCBo
ZWFkZXJTaXplLCByZWdleFN1YnN0aXR1dGlvbkxlbmd0aCk7CisgICAgYXV0byByZWdleEZpbHRl
ciA9IGRlc2VyaWFsaXplVVRGOFN0cmluZyhzcGFuLCBoZWFkZXJTaXplICsgcmVnZXhTdWJzdGl0
dXRpb25MZW5ndGgsIHJlZ2V4RmlsdGVyTGVuZ3RoKTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKHJl
Z2V4U3Vic3RpdHV0aW9uKSwgV1RGTW92ZShyZWdleEZpbHRlcikgfTsKK30KKworc3RhdGljIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBtYWtlSlNTdHJpbmcoY29uc3QgY2hhciogdXRmOCkKK3sK
KyAgICByZXR1cm4gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodXRmOCkpOwor
fQorCitzdGF0aWMgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG1ha2VKU1N0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1cm4gbWFrZUpTU3RyaW5nKHN0cmluZy51dGY4KCku
ZGF0YSgpKTsKK30KKwordm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rp
b246OmFwcGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgc3RhdGljIEpTQ29udGV4dEdy
b3VwUmVmIGNvbnRleHRHcm91cCA9IG51bGxwdHI7CisgICAgc3RhdGljIEpTR2xvYmFsQ29udGV4
dFJlZiBjb250ZXh0ID0gbnVsbHB0cjsKKyAgICBpZiAoIWNvbnRleHRHcm91cCB8fCAhY29udGV4
dCkgeworICAgICAgICBjb250ZXh0R3JvdXAgPSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOworICAg
ICAgICBjb250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChjb250ZXh0R3JvdXAs
IG51bGxwdHIpOworICAgIH0KKworICAgIGF1dG8gdG9PYmplY3QgPSBbJl0gKEpTVmFsdWVSZWYg
dmFsdWUpIHsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChjb250ZXh0LCB2YWx1ZSwg
bnVsbHB0cik7CisgICAgfTsKKyAgICBhdXRvIGdldFByb3BlcnR5ID0gWyZdIChKU1ZhbHVlUmVm
IHZhbHVlLCBjb25zdCBjaGFyKiBuYW1lKSB7CisgICAgICAgIHJldHVybiBKU09iamVjdEdldFBy
b3BlcnR5KGNvbnRleHQsIHRvT2JqZWN0KHZhbHVlKSwgbWFrZUpTU3RyaW5nKG5hbWUpLmdldCgp
LCBudWxscHRyKTsKKyAgICB9OworICAgIGF1dG8gZ2V0QXJyYXlWYWx1ZSA9IFsmXSAoSlNWYWx1
ZVJlZiB2YWx1ZSwgc2l6ZV90IGluZGV4KSB7CisgICAgICAgIHJldHVybiBKU09iamVjdEdldFBy
b3BlcnR5Rm9yS2V5KGNvbnRleHQsIHRvT2JqZWN0KHZhbHVlKSwgSlNWYWx1ZU1ha2VOdW1iZXIo
Y29udGV4dCwgaW5kZXgpLCBudWxscHRyKTsKKyAgICB9OworICAgIGF1dG8gdmFsdWVUb1dURlN0
cmluZyA9IFsmXSAoSlNWYWx1ZVJlZiB2YWx1ZSkgeworICAgICAgICBhdXRvIHN0cmluZyA9IGFk
b3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgdmFsdWUsIG51bGxwdHIpKTsKKyAgICAg
ICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUo
c3RyaW5nLmdldCgpKTsKKyAgICAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsK
KyAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhzdHJpbmcuZ2V0KCksIGJ1ZmZlci5kYXRh
KCksIGJ1ZmZlci5zaXplKCkpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChidWZm
ZXIuZGF0YSgpKTsKKyAgICB9OworCisgICAgLy8gRWZmZWN0aXZlbHkgZXhlY3V0ZSB0aGlzIEph
dmFTY3JpcHQ6CisgICAgLy8gY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cChyZWdleEZpbHRlcik7
CisgICAgLy8gY29uc3QgcmVzdWx0ID0gdXJsLm1hdGNoKHJlZ2V4cCk7CisgICAgSlNWYWx1ZVJl
ZiByZWdleEZpbHRlclZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgbWFrZUpTU3Ry
aW5nKHJlZ2V4RmlsdGVyKS5nZXQoKSk7CisgICAgSlNPYmplY3RSZWYgcmVnZXhwID0gSlNPYmpl
Y3RNYWtlUmVnRXhwKGNvbnRleHQsIDEsICZyZWdleEZpbHRlclZhbHVlLCBudWxscHRyKTsKKyAg
ICBKU1ZhbHVlUmVmIHVybFZhbHVlID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgbWFrZUpT
U3RyaW5nKHVybC5zdHJpbmcoKSkuZ2V0KCkpOworICAgIEpTT2JqZWN0UmVmIG1hdGNoRnVuY3Rp
b24gPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgZ2V0UHJvcGVydHkodXJsVmFsdWUsICJtYXRj
aCIpLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVu
Y3Rpb24oY29udGV4dCwgbWF0Y2hGdW5jdGlvbiwgdG9PYmplY3QodXJsVmFsdWUpLCAxLCAmcmVn
ZXhwLCBudWxscHRyKTsKKyAgICBpZiAoIUpTVmFsdWVJc0FycmF5KGNvbnRleHQsIHJlc3VsdCkp
CisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdWJzdGl0dXRpb24gPSByZWdleFN1YnN0
aXR1dGlvbjsKKyAgICBzaXplX3QgcmVzdWx0TGVuZ3RoID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRl
eHQsIGdldFByb3BlcnR5KHJlc3VsdCwgImxlbmd0aCIpLCBudWxscHRyKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHN0ZDo6bWluPHNpemVfdD4oMTAsIHJlc3VsdExlbmd0aCk7IGkrKykK
KyAgICAgICAgc3Vic3RpdHV0aW9uLnJlcGxhY2UobWFrZVN0cmluZygnXFwnLCBpKSwgdmFsdWVU
b1dURlN0cmluZyhnZXRBcnJheVZhbHVlKHJlc3VsdCwgaSkpKTsKKworICAgIFVSTCByZXBsYWNl
bWVudFVSTChzdWJzdGl0dXRpb24pOworICAgIGlmIChyZXBsYWNlbWVudFVSTC5pc1ZhbGlkKCkp
CisgICAgICAgIHVybCA9IFdURk1vdmUocmVwbGFjZW1lbnRVUkwpOworfQorCiBhdXRvIFJlZGly
ZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYg
dHJhbnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29k
ZT4KIHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgK
aW5kZXggYjBjYzBlZDFmNWM4MTQzMWNhNmI0ZTlmODE3NjUzNmYwMmQ3ODI0MS4uZGJiZTlkMzIy
ZDJlMGE0OTg4ZTlmYzM0NjZkYjE3MGIwNWVmZDc2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCkBA
IC0xMzksMTAgKzEzOSwxNCBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUmVkaXJlY3RBY3Rpb24g
ewogICAgIH07CiAgICAgc3RydWN0IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsKICAgICAgICAg
U3RyaW5nIHJlZ2V4U3Vic3RpdHV0aW9uOworICAgICAgICBTdHJpbmcgcmVnZXhGaWx0ZXI7CiAK
LSAgICAgICAgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgJiB7
IHJldHVybiB7IHJlZ2V4U3Vic3RpdHV0aW9uLmlzb2xhdGVkQ29weSgpIH07IH0KLSAgICAgICAg
UmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gaXNvbGF0ZWRDb3B5KCkgJiYgeyByZXR1cm4geyBXVEZN
b3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKS5pc29sYXRlZENvcHkoKSB9OyB9Ci0gICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG90aGVyLnJlZ2V4U3Vic3RpdHV0aW9uID09IHRoaXMtPnJlZ2V4U3Vic3RpdHV0aW9u
OyB9CisgICAgICAgIFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0
ICYgeyByZXR1cm4geyByZWdleFN1YnN0aXR1dGlvbi5pc29sYXRlZENvcHkoKSwgcmVnZXhGaWx0
ZXIuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiBp
c29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24pLmlz
b2xhdGVkQ29weSgpLCBXVEZNb3ZlKHJlZ2V4RmlsdGVyKS5pc29sYXRlZENvcHkoKSB9OyB9Cisg
ICAgICAgIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50OF90PiYpIGNvbnN0OworICAgICAgICBz
dGF0aWMgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gZGVzZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50
OF90Pik7CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWdleFN1YnN0aXR1dGlvbkFj
dGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLnJlZ2V4U3Vic3RpdHV0aW9uID09IHRo
aXMtPnJlZ2V4U3Vic3RpdHV0aW9uICYmIG90aGVyLnJlZ2V4RmlsdGVyID09IHRoaXMtPnJlZ2V4
RmlsdGVyOyB9CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwbHlUb1VSTChVUkwmKSBj
b25zdDsKICAgICB9OwogICAgIHN0cnVjdCBVUkxUcmFuc2Zvcm1BY3Rpb24gewogICAgICAgICBz
dHJ1Y3QgUXVlcnlUcmFuc2Zvcm0gewpAQCAtMjE0LDcgKzIxOCw3IEBAIHN0cnVjdCBXRUJDT1JF
X0VYUE9SVCBSZWRpcmVjdEFjdGlvbiB7CiAgICAgUmVkaXJlY3RBY3Rpb24oRGVsZXRlZFZhbHVl
VGFnKSA6IGhhc2hUYWJsZVR5cGUoSGFzaFRhYmxlVHlwZTo6RGVsZXRlZCkgeyB9CiAgICAgYm9v
bCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGhhc2hUYWJsZVR5cGUgPT0gSGFzaFRh
YmxlVHlwZTo6RGVsZXRlZDsgfQogCi0gICAgc3RhdGljIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9u
LCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYpOworICAgIHN0YXRp
YyBFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBwYXJzZShjb25zdCBK
U09OOjpPYmplY3QmLCBjb25zdCBTdHJpbmcmIHVybEZpbHRlcik7CiAgICAgUmVkaXJlY3RBY3Rp
b24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsKICAgICBSZWRpcmVjdEFjdGlvbiBpc29sYXRlZENv
cHkoKSAmJjsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUmVkaXJlY3RBY3Rpb24mKSBjb25z
dDsKQEAgLTI2Miw3ICsyNjYsNyBAQCBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNv
bnN0IFJlZGlyZWN0QWN0aW9uOjpFeHRlbnNpb25QYXRoQWN0aW9uJiBhY3RpbwogCiBpbmxpbmUg
dm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0
aXR1dGlvbkFjdGlvbiYgYWN0aW9uKQogewotICAgIGFkZChoYXNoZXIsIGFjdGlvbi5yZWdleFN1
YnN0aXR1dGlvbik7CisgICAgYWRkKGhhc2hlciwgYWN0aW9uLnJlZ2V4U3Vic3RpdHV0aW9uLCBh
Y3Rpb24ucmVnZXhGaWx0ZXIpOwogfQogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIs
IGNvbnN0IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3Jt
OjpRdWVyeUtleVZhbHVlJiBxdWVyeUtleVZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRl
eCA4ODI0MDJjN2I4NTNjMWU1YmM1N2ZlNmFlN2Q1MzdiMDk2Y2ZmNWJiLi41MTNmZDkzOWU2NmRi
NWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAt
MjEwLDcgKzIxMCw3IEBAIGJvb2wgaXNWYWxpZENTU1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2Vs
ZWN0b3IpCiAgICAgcmV0dXJuICEhcGFyc2VyLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3IpOwogfQog
Ci1zdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+
IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNv
bnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7
CiAgICAgYXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIik7
CiAgICAgaWYgKCFhY3Rpb25PYmplY3QpCkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNv
bnN0IEpTT046Ok8KICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE5vdGlmeUFjdGlvbiB7IHsgV1RG
TW92ZShub3RpZmljYXRpb24pIH0gfSB9OwogICAgIH0KICAgICBpZiAoYWN0aW9uVHlwZSA9PSAi
cmVkaXJlY3QiKSB7Ci0gICAgICAgIGF1dG8gYWN0aW9uID0gUmVkaXJlY3RBY3Rpb246OnBhcnNl
KCphY3Rpb25PYmplY3QpOworICAgICAgICBhdXRvIGFjdGlvbiA9IFJlZGlyZWN0QWN0aW9uOjpw
YXJzZSgqYWN0aW9uT2JqZWN0LCB1cmxGaWx0ZXIpOwogICAgICAgICBpZiAoIWFjdGlvbikKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChhY3Rpb24uZXJyb3IoKSk7CiAgICAgICAg
IHJldHVybiBBY3Rpb24geyBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUoKmFjdGlvbikgfSB9OwpA
QCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPENvbnRlbnRF
eHRlbnNpb25SdWxlLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkUnVsZShjCiAgICAgaWYgKCF0cmln
Z2VyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQodHJpZ2dlci5l
cnJvcigpKTsKIAotICAgIGF1dG8gYWN0aW9uID0gbG9hZEFjdGlvbihydWxlT2JqZWN0KTsKKyAg
ICBhdXRvIGFjdGlvbiA9IGxvYWRBY3Rpb24ocnVsZU9iamVjdCwgdHJpZ2dlci0+dXJsRmlsdGVy
KTsKICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBp
ZiAoIWFjdGlvbi0+aGFzX3ZhbHVlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCmluZGV4IGNlNWRjNDAyY2E4Njc4OTc4
ZDU3MzA0YmQwN2RiNGVkZjEyZmU5ZmEuLjg4NjBiNGE3NjIwNmU2YWI2MzFjYWM5OWEyOTNkZTNl
MWVmMjVhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50UnVsZUxpc3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIC8vIFRoaXMgc2hvdWxkIGJlIGluY3JlbWVudGVk
IGV2ZXJ5IHRpbWUgYSBmdW5jdGlvbmFsIGNoYW5nZSBpcyBtYWRlIHRvIHRoZSBieXRlY29kZSwg
ZmlsZSBmb3JtYXQsIGV0Yy4KICAgICAvLyB0byBwcmV2ZW50IGNyYXNoaW5nIHdoaWxlIGxvYWRp
bmcgb2xkIGRhdGEuCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVu
dFJ1bGVMaXN0RmlsZVZlcnNpb24gPSAxNDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90
IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDE1OwogCiAgICAgc3RhdGljIENv
bnRlbnRSdWxlTGlzdFN0b3JlJiBkZWZhdWx0U3RvcmUoKTsKICAgICBzdGF0aWMgUmVmPENvbnRl
bnRSdWxlTGlzdFN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBh
dGgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGE5Njc1YTgwNDQ1MWYxZjhmZmQ1YWFiMTAyYzExZTk1MDc2YzFmODIuLmU3ZjM0YjYxNzQ3NDFj
ZDMzMWEzMzYzZGRiOGEzYmU3ODc2OGYwZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMy0xMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEZpbmlzaCBp
bXBsZW1lbnRpbmcgbW9kaWZ5LWhlYWRlcnMgYWN0aW9ucyBmb3IgV0tDb250ZW50UnVsZUxpc3Qg
U1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc3
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIyLTAzLTA5ICBKb25hdGhhbiBCZWRhcmQg
IDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gRXh0cmFjdCByZXZp
c2lvbiBmcm9tIGBnaXQgc3ZuIGRjb21taXRgIChGb2xsb3ctdXAgZml4KQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAK
aW5kZXggOTI5YzI5ZTI0YTE2NjhlY2VmMmI1MmZjYWE0ZWQ5MjkwZGQ3NDYyYy4uY2U0MGZhZmNh
YWZlMzg0ODI3MjRjZDM4OWMzN2IyZTY1Yjc4OTBjNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCkBAIC0zMDM5
LDcgKzMwMzksNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIFNlcmlhbGl6YXRpb24p
CiAgICAgICAgIEVYUEVDVF9FUShkZXNlcmlhbGl6ZWQsIGFjdGlvbik7CiAgICAgfTsKICAgICBj
aGVja1JlZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsgUmVkaXJlY3RBY3Rpb246OkV4dGVu
c2lvblBhdGhBY3Rpb24geyAiZXh0ZW5zaW9uUGF0aCIgfSB9IH0sIDE4KTsKLSAgICBjaGVja1Jl
ZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3Rp
dHV0aW9uQWN0aW9uIHsgInJlZ2V4U3Vic3RpdHV0aW9uIiB9IH0gfSwgMjIpOworICAgIGNoZWNr
UmVkaXJlY3RBY3Rpb25TZXJpYWxpemF0aW9uKHsgeyBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJz
dGl0dXRpb25BY3Rpb24geyAicmVnZXhTdWJzdGl0dXRpb24iLCAicmVnZXhGaWx0ZXIiIH0gfSB9
LCA0MSk7CiAgICAgY2hlY2tSZWRpcmVjdEFjdGlvblNlcmlhbGl6YXRpb24oeyB7IFJlZGlyZWN0
QWN0aW9uOjpVUkxBY3Rpb24geyAidXJsIiB9IH0gfSwgOCk7CiAgICAgY2hlY2tSZWRpcmVjdEFj
dGlvblNlcmlhbGl6YXRpb24oeyB7IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb24g
ewogICAgICAgICAiZnLDpGdtZW50IiwKQEAgLTMwOTcsNiArMzA5NywyMiBAQCBURVNUX0YoQ29u
dGVudEV4dGVuc2lvblRlc3QsIElmRnJhbWVVUkwpCiAgICAgdGVzdFJlcXVlc3QobWF0Y2hpbmdF
dmVyeXRoaW5nLCByZXF1ZXN0SW5Ub3BBbmRGcmFtZVVSTHMoImh0dHA6Ly9leGFtcGxlLmNvbS8i
LCAiaHR0cHM6Ly93ZWJraXQub3JnLyIsICJodHRwczovL3dlYmtpdC5vcmcvIiksIHsgfSk7CiB9
CiAKK1RFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUmVnZXhTdWJzdGl0dXRpb24pCit7Cisg
ICAgYXV0byB0cmFuc2Zvcm1VUkwgPSBbXSAoU3RyaW5nJiYgcmVnZXhTdWJzdGl0dXRpb24sIFN0
cmluZyYmIHJlZ2V4RmlsdGVyLCBTdHJpbmcmJiBvcmlnaW5hbFVSTCwgY29uc3QgY2hhciogZXhw
ZWN0ZWRUcmFuc2Zvcm1lZFVSTCkgeworICAgICAgICBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIGFjdGlvbiB7IFdURk1v
dmUocmVnZXhTdWJzdGl0dXRpb24pLCBXVEZNb3ZlKHJlZ2V4RmlsdGVyKSB9OworICAgICAgICBV
UkwgdXJsKFdURk1vdmUob3JpZ2luYWxVUkwpKTsKKyAgICAgICAgYWN0aW9uLmFwcGx5VG9VUkwo
dXJsKTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBl
eHBlY3RlZFRyYW5zZm9ybWVkVVJMKTsKKyAgICB9OworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6
Ly9cXDEueHl6LmNvbS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8pXFwueHl6XFwuY29tLyIsICJo
dHRwczovL3d3dy5hYmMueHl6LmNvbSIsICJodHRwczovL2FiYy54eXouY29tLyIpOworICAgIHRy
YW5zZm9ybVVSTCgiaHR0cHM6Ly9cXDEuXFwxLnh5ei5jb20vIiwgIl5odHRwczovL3d3d1xcLihh
YmM/KVxcLnh5elxcLmNvbS8iLCAiaHR0cHM6Ly93d3cuYWIueHl6LmNvbSIsICJodHRwczovL2Fi
LmFiLnh5ei5jb20vIik7CisgICAgdHJhbnNmb3JtVVJMKCJodHRwczovL1xcMS5cXDEueHl6LmNv
bS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8pXFwueHl6XFwuY29tLyIsICJodHRwczovL2FiLnh5
ei5jb20iLCAiaHR0cHM6Ly9hYi54eXouY29tLyIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6
Ly9leGFtcGxlLmNvbS9cXDBcXDEiLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8pXFwueHl6XFwuY29t
LyIsICJodHRwczovL3d3dy5hYi54eXouY29tIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vaHR0cHM6
Ly93d3cuYWIueHl6LmNvbS9hYiIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly9leGFtcGxl
LmNvbS9cXDFcXDJcXDNcXDRcXDVcXDZcXDdcXDhcXDlcXDEwXFwxMVxcMTJcXDEzXFwxNCIsICJe
aHR0cHM6Ly8oZSkoeCkoYSkobSkocCkobCkoZSkodykoZSkoYikocykoaSkodCkoZSkvIiwgImh0
dHBzOi8vZXhhbXBsZXdlYnNpdGUvIiwgImh0dHBzOi8vZXhhbXBsZS5jb20vZXhhbXBsZXdlZTBl
MWUyZTNlNCIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly8hQCMkJV4mKmludmFsaWRVUkxc
XDEvIiwgIl5odHRwczovL3d3d1xcLihhYmM/KVxcLnh5elxcLmNvbS8iLCAiaHR0cHM6Ly93d3cu
YWJjLnh5ei5jb20iLCAiaHR0cHM6Ly93d3cuYWJjLnh5ei5jb20vIik7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lP
TlMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
Q29udGVudEV4dGVuc2lvblN0b3JlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQppbmRleCBkZGQ5NTU0NThiMGMwZGE0
NTk1MGZmYWRhZTA1YjI1NzRiYTE1MDM3Li5jZTliZTQzNmE4OWJjNzNjMTExNmEyMDA1MzRlNDQ4
YjJhNjRlMGViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KQEAgLTY1MCw2ICs2
NTAsOSBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFJlZGlyZWN0KQogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gfSB9LAogICAgICAgICAgICAgInRyaWdnZXIi
OiB7ICJ1cmwtZmlsdGVyIjogIjgudHh0IiB9CisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICJh
Y3Rpb24iOiB7ICJ0eXBlIjogInJlZGlyZWN0IiwgInJlZGlyZWN0IjogeyAicmVnZXgtc3Vic3Rp
dHV0aW9uIjogInRlc3RzY2hlbWU6Ly9yZXBsYWNlZC1ieS1yZWdleC9cXDEudHh0IiB9IH0sCisg
ICAgICAgICAgICAidHJpZ2dlciI6IHsgInVybC1maWx0ZXIiOiAiKDkpLnR4dCIgfQogICAgICAg
ICB9IF0KICAgICApSlNPTiIpOwogCkBAIC02NzQsMTIgKzY3NywxMyBAQCBURVNUX0YoV0tDb250
ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFJlZGlyZWN0KQogICAgICAgICAgICAgICAgICAgICAgICAg
dHJ5IHsgYXdhaXQgZmV0Y2goJzYudHh0I2ZyYWdtZW50LXNob3VsZC1iZS1yZW1vdmVkJykgfSBj
YXRjaChlKSB7IH07CiAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeyBhd2FpdCBmZXRjaCgn
Ny50eHQnKSB9IGNhdGNoKGUpIHsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7IGF3
YWl0IGZldGNoKCc4LnR4dD9rZXktdG8tcmVwbGFjZS1vbmx5PXByZS1yZXBsYWNlbWVudC12YWx1
ZScpIH0gY2F0Y2goZSkgeyB9OworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsgYXdhaXQg
ZmV0Y2goJzkudHh0JykgfSBjYXRjaChlKSB7IH07CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgZmV0Y2hTdWJyZXNvdXJjZXMoKTsKICAgICAgICAgICAgICAgICA8
L3NjcmlwdD4KICAgICAgICAgICAgIClIVE1MIik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKFtw
YXRoIGlzRXF1YWxUb1N0cmluZzpAIi84LnR4dCJdKQorICAgICAgICBpZiAoW3BhdGggaXNFcXVh
bFRvU3RyaW5nOkAiLzkudHh0Il0pCiAgICAgICAgICAgICByZWNlaXZlZEFsbFJlcXVlc3RzID0g
dHJ1ZTsKICAgICAgICAgcmVzcG9uZCh0YXNrLCAiIik7CiAgICAgfTsKQEAgLTcxMyw2ICs3MTcs
NyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFJlZGlyZWN0KQogICAgICAg
ICAidGVzdHNjaGVtZTovLzp0ZXN0cGFzc3dvcmRAdGVzdGhvc3QvNi50eHQiLAogICAgICAgICAi
dGVzdHNjaGVtZTovL3Rlc3Rob3N0LzcudHh0PyMiLAogICAgICAgICAidGVzdHNjaGVtZTovL3Rl
c3Rob3N0LzgudHh0P2tleS10by1yZXBsYWNlLW9ubHk9dmFsdWUtdG8tcmVwbGFjZS1vbmx5Jmtl
eS10by1hZGQ9dmFsdWUtdG8tYWRkIiwKKyAgICAgICAgInRlc3RzY2hlbWU6Ly9yZXBsYWNlZC1i
eS1yZWdleC85LnR4dCIsCiAgICAgfTsKICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRSZXF1ZXN0ZWRV
UkxzLnNpemUoKSwgW3VybHMgY291bnRdKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4
cGVjdGVkUmVxdWVzdGVkVVJMcy5zaXplKCk7IGkrKykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454515</attachid>
            <date>2022-03-11 15:21:49 -0800</date>
            <delta_ts>2022-03-11 16:33:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237784-20220311152149.patch</filename>
            <type>text/plain</type>
            <size>20175</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwYmIwNjZiNDdhYmFj
ZjUwZWUzYWU4YmNhZDk0NDVhMTk1ZjcxNi4uZmJmMWY0ZDRhMmU0NGE0ZWNiZGE3NjI2ZTY1MTRk
ZjhhMTRhYWY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAzLTExICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRmluaXNo
IGltcGxlbWVudGluZyBtb2RpZnktaGVhZGVycyBhY3Rpb25zIGZvciBXS0NvbnRlbnRSdWxlTGlz
dCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Nzc4NAorICAgICAgICA8cmRhcjovLzcyNDMzMDQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIYXRjaGVyLgorCisgICAgICAgIEkgaGFkbid0IGltcGxlbWVudGVkIHJlZ2V4IHN1YnN0aXR1
dGlvbiB5ZXQuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
QWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJl
Y3RBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpS
ZWRpcmVjdEFjdGlvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjphcHBseVRvUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlJl
Z2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFj
dGlvbjo6ZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
Om1ha2VKU1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVk
aXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjphcHBseVRvVVJMIGNvbnN0KToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmFkZCk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6bG9hZFJ1bGUpOgorCiAyMDIyLTAzLTA5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OkJ1ZmZlci5pc1ZvbGF0aWxlIGludG8gSW1hZ2VCdWZmZXJCYWNrZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IGM0NTc1NDM2M2Y0NGMyNzYxNWFlZmZhZGI0YmVjZTZjMGEyMGM2YjEuLjJkODA2MGYw
YTI3Y2MwNmMxODM2MWQ0MWU2MjI1MGE2YzgxMzA2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjItMDMtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBGaW5pc2ggaW1wbGVtZW50aW5nIG1vZGlmeS1oZWFkZXJzIGFjdGlvbnMg
Zm9yIFdLQ29udGVudFJ1bGVMaXN0IFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3Nzg0CisgICAgICAgIDxyZGFyOi8vNzI0MzMwNDg+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmg6CisKIDIwMjItMDMtMDkgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6QnVmZmVyLmlzVm9sYXRpbGUgaW50byBJbWFnZUJ1ZmZlckJhY2tlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25B
Y3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRl
bnNpb25BY3Rpb25zLmNwcAppbmRleCAxYjJmMmZlMGNmMzEwN2ZiY2M5OWE0MGEwNzcyMmY5MDdi
MDQ4YmI2Li4wY2E2MWMxMDE0ZDI0MzVlODRhYTBkYWZlMzAyMGZmYjA3OGU4Mzc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0
aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvbkFjdGlvbnMuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJDb250ZW50
RXh0ZW5zaW9uRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KICNpbmNs
dWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1VSTFBhcnNlci5oPgpAQCAtMjg1LDcgKzI4
Nyw3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJp
YWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfCiAgICAgcmV0dXJuIGRlc2VyaWFsaXplTGVu
Z3RoKHNwYW4sIDApOwogfQogCi1FeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9j
b2RlPiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9i
amVjdCkKK0V4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0
QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBT
dHJpbmcmIHVybEZpbHRlcikKIHsKICAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3Qu
Z2V0T2JqZWN0KCJyZWRpcmVjdCIpOwogICAgIGlmICghcmVkaXJlY3QpCkBAIC0yOTgsNyArMzAw
LDcgQEAgRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gUmVkaXJlY3RB
Y3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamUKICAgICB9CiAKICAgICBpZiAoYXV0byByZWdl
eFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiIp
OyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQotICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBS
ZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24pIH0gfTsK
KyAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24g
eyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSwgdXJsRmlsdGVyIH0gfTsKIAogICAgIGlmIChh
dXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSIpKSB7CiAgICAg
ICAgIGF1dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZSgqdHJh
bnNmb3JtKTsKQEAgLTM0Myw3ICszNDUsNyBAQCB2b2lkIFJlZGlyZWN0QWN0aW9uOjpzZXJpYWxp
emUoVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0CiAgICAgc3RkOjp2aXNpdChXVEY6Om1h
a2VWaXNpdG9yKFsmXShjb25zdCBFeHRlbnNpb25QYXRoQWN0aW9uJiBhY3Rpb24pIHsKICAgICAg
ICAgYXBwZW5kKHZlY3RvciwgYWN0aW9uLmV4dGVuc2lvblBhdGgudXRmOCgpKTsKICAgICB9LCBb
Jl0oY29uc3QgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24mIGFjdGlvbikgewotICAgICAgICBhcHBl
bmQodmVjdG9yLCBhY3Rpb24ucmVnZXhTdWJzdGl0dXRpb24udXRmOCgpKTsKKyAgICAgICAgYWN0
aW9uLnNlcmlhbGl6ZSh2ZWN0b3IpOwogICAgIH0sIFsmXShjb25zdCBVUkxUcmFuc2Zvcm1BY3Rp
b24mIGFjdGlvbikgewogICAgICAgICBhY3Rpb24uc2VyaWFsaXplKHZlY3Rvcik7CiAgICAgfSwg
WyZdKGNvbnN0IFVSTEFjdGlvbiYgYWN0aW9uKSB7CkBAIC0zNjIsNyArMzY0LDcgQEAgUmVkaXJl
Y3RBY3Rpb24gUmVkaXJlY3RBY3Rpb246OmRlc2VyaWFsaXplKFNwYW48Y29uc3QgdWludDhfdD4g
c3BhbikKICAgICAgICAgY2FzZSBXVEY6OmFsdGVybmF0aXZlSW5kZXhWPEV4dGVuc2lvblBhdGhB
Y3Rpb24sIEFjdGlvblZhcmlhbnQ+OgogICAgICAgICAgICAgcmV0dXJuIEV4dGVuc2lvblBhdGhB
Y3Rpb24geyBkZXNlcmlhbGl6ZVVURjhTdHJpbmcoc3BhbiwgaGVhZGVyU2l6ZSwgc3RyaW5nTGVu
Z3RoKSB9OwogICAgICAgICBjYXNlIFdURjo6YWx0ZXJuYXRpdmVJbmRleFY8UmVnZXhTdWJzdGl0
dXRpb25BY3Rpb24sIEFjdGlvblZhcmlhbnQ+OgotICAgICAgICAgICAgcmV0dXJuIFJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uIHsgZGVzZXJpYWxpemVVVEY4U3RyaW5nKHNwYW4sIGhlYWRlclNpemUs
IHN0cmluZ0xlbmd0aCkgfTsKKyAgICAgICAgICAgIHJldHVybiBSZWdleFN1YnN0aXR1dGlvbkFj
dGlvbjo6ZGVzZXJpYWxpemUoc3Bhbi5zdWJzcGFuKGhlYWRlclNpemUpKTsKICAgICAgICAgY2Fz
ZSBXVEY6OmFsdGVybmF0aXZlSW5kZXhWPFVSTFRyYW5zZm9ybUFjdGlvbiwgQWN0aW9uVmFyaWFu
dD46CiAgICAgICAgICAgICByZXR1cm4gVVJMVHJhbnNmb3JtQWN0aW9uOjpkZXNlcmlhbGl6ZShz
cGFuLnN1YnNwYW4oaGVhZGVyU2l6ZSkpOwogICAgICAgICBjYXNlIFdURjo6YWx0ZXJuYXRpdmVJ
bmRleFY8VVJMQWN0aW9uLCBBY3Rpb25WYXJpYW50PjoKQEAgLTM4Myw4ICszODUsMTAgQEAgdm9p
ZCBSZWRpcmVjdEFjdGlvbjo6YXBwbHlUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBVUkwmIGV4dGVuc2kKICAgICAgICAgYXV0byB1cmwgPSBleHRlbnNpb25CYXNlVVJM
OwogICAgICAgICB1cmwuc2V0UGF0aChhY3Rpb24uZXh0ZW5zaW9uUGF0aCk7CiAgICAgICAgIHJl
cXVlc3Quc2V0VVJMKFdURk1vdmUodXJsKSk7Ci0gICAgfSwgWyZdIChjb25zdCBSZWdleFN1YnN0
aXR1dGlvbkFjdGlvbiYpIHsKLSAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCwgaWRlYWxseSBp
biBhIHdheSB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBtYWtpbmcgYSBuZXcgVk0gYW5kIGdsb2JhbCBv
YmplY3QgZm9yIGVhY2ggcmVkaXJlY3Qgb3BlcmF0aW9uLgorICAgIH0sIFsmXSAoY29uc3QgUmVn
ZXhTdWJzdGl0dXRpb25BY3Rpb24mIGFjdGlvbikgeworICAgICAgICBhdXRvIHVybCA9IHJlcXVl
c3QudXJsKCk7CisgICAgICAgIGFjdGlvbi5hcHBseVRvVVJMKHVybCk7CisgICAgICAgIHJlcXVl
c3Quc2V0VVJMKFdURk1vdmUodXJsKSk7CiAgICAgfSwgWyZdIChjb25zdCBVUkxUcmFuc2Zvcm1B
Y3Rpb24mIGFjdGlvbikgewogICAgICAgICBhdXRvIHVybCA9IHJlcXVlc3QudXJsKCk7CiAgICAg
ICAgIGFjdGlvbi5hcHBseVRvVVJMKHVybCk7CkBAIC0zOTQsNiArMzk4LDg4IEBAIHZvaWQgUmVk
aXJlY3RBY3Rpb246OmFwcGx5VG9SZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgVVJMJiBleHRlbnNpCiAgICAgfSksIGFjdGlvbik7CiB9CiAKK3ZvaWQgUmVkaXJlY3RBY3Rp
b246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uOjpzZXJpYWxpemUoVmVjdG9yPHVpbnQ4X3Q+JiB2
ZWN0b3IpIGNvbnN0Cit7CisgICAgYXV0byByZWdleFN1YnN0aXR1dGlvblVURjggPSByZWdleFN1
YnN0aXR1dGlvbi51dGY4KCk7CisgICAgYXV0byByZWdleEZpbHRlclVURjggPSByZWdleEZpbHRl
ci51dGY4KCk7CisgICAgdmVjdG9yLnJlc2VydmVDYXBhY2l0eSh2ZWN0b3Iuc2l6ZSgpCisgICAg
ICAgICsgc2l6ZW9mKHVpbnQzMl90KQorICAgICAgICArIHNpemVvZih1aW50MzJfdCkKKyAgICAg
ICAgKyByZWdleFN1YnN0aXR1dGlvblVURjgubGVuZ3RoKCkKKyAgICAgICAgKyByZWdleEZpbHRl
clVURjgubGVuZ3RoKCkpOworICAgIHVuY2hlY2tlZEFwcGVuZCh2ZWN0b3IsIHJlZ2V4U3Vic3Rp
dHV0aW9uVVRGOC5sZW5ndGgoKSk7CisgICAgdW5jaGVja2VkQXBwZW5kKHZlY3RvciwgcmVnZXhG
aWx0ZXJVVEY4Lmxlbmd0aCgpKTsKKyAgICB1bmNoZWNrZWRBcHBlbmQodmVjdG9yLCByZWdleFN1
YnN0aXR1dGlvblVURjgpOworICAgIHVuY2hlY2tlZEFwcGVuZCh2ZWN0b3IsIHJlZ2V4RmlsdGVy
VVRGOCk7Cit9CisKK2F1dG8gUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9u
OjpkZXNlcmlhbGl6ZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IHNwYW4pIC0+IFJlZ2V4U3Vic3RpdHV0
aW9uQWN0aW9uCit7CisgICAgYXV0byByZWdleFN1YnN0aXR1dGlvbkxlbmd0aCA9IGRlc2VyaWFs
aXplTGVuZ3RoKHNwYW4sIDApOworICAgIGF1dG8gcmVnZXhGaWx0ZXJMZW5ndGggPSBkZXNlcmlh
bGl6ZUxlbmd0aChzcGFuLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBjb25zdGV4cHIgYXV0byBo
ZWFkZXJTaXplID0gc2l6ZW9mKHVpbnQzMl90KSArIHNpemVvZih1aW50MzJfdCk7CisgICAgYXV0
byByZWdleFN1YnN0aXR1dGlvbiA9IGRlc2VyaWFsaXplVVRGOFN0cmluZyhzcGFuLCBoZWFkZXJT
aXplLCByZWdleFN1YnN0aXR1dGlvbkxlbmd0aCk7CisgICAgYXV0byByZWdleEZpbHRlciA9IGRl
c2VyaWFsaXplVVRGOFN0cmluZyhzcGFuLCBoZWFkZXJTaXplICsgcmVnZXhTdWJzdGl0dXRpb25M
ZW5ndGgsIHJlZ2V4RmlsdGVyTGVuZ3RoKTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKHJlZ2V4U3Vi
c3RpdHV0aW9uKSwgV1RGTW92ZShyZWdleEZpbHRlcikgfTsKK30KKworc3RhdGljIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBtYWtlSlNTdHJpbmcoY29uc3QgY2hhciogdXRmOCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodXRmOCkpOworfQorCitz
dGF0aWMgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG1ha2VKU1N0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKK3sKKyAgICByZXR1cm4gbWFrZUpTU3RyaW5nKHN0cmluZy51dGY4KCkuZGF0YSgp
KTsKK30KKwordm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rpb246OmFw
cGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0Cit7CisgICAgc3RhdGljIEpTQ29udGV4dEdyb3VwUmVm
IGNvbnRleHRHcm91cCA9IG51bGxwdHI7CisgICAgc3RhdGljIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gbnVsbHB0cjsKKyAgICBpZiAoIWNvbnRleHRHcm91cCB8fCAhY29udGV4dCkgewor
ICAgICAgICBjb250ZXh0R3JvdXAgPSBKU0NvbnRleHRHcm91cENyZWF0ZSgpOworICAgICAgICBj
b250ZXh0ID0gSlNHbG9iYWxDb250ZXh0Q3JlYXRlSW5Hcm91cChjb250ZXh0R3JvdXAsIG51bGxw
dHIpOworICAgIH0KKworICAgIGF1dG8gdG9PYmplY3QgPSBbJl0gKEpTVmFsdWVSZWYgdmFsdWUp
IHsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVUb09iamVjdChjb250ZXh0LCB2YWx1ZSwgbnVsbHB0
cik7CisgICAgfTsKKyAgICBhdXRvIGdldFByb3BlcnR5ID0gWyZdIChKU1ZhbHVlUmVmIHZhbHVl
LCBjb25zdCBjaGFyKiBuYW1lKSB7CisgICAgICAgIHJldHVybiBKU09iamVjdEdldFByb3BlcnR5
KGNvbnRleHQsIHRvT2JqZWN0KHZhbHVlKSwgbWFrZUpTU3RyaW5nKG5hbWUpLmdldCgpLCBudWxs
cHRyKTsKKyAgICB9OworICAgIGF1dG8gZ2V0QXJyYXlWYWx1ZSA9IFsmXSAoSlNWYWx1ZVJlZiB2
YWx1ZSwgc2l6ZV90IGluZGV4KSB7CisgICAgICAgIHJldHVybiBKU09iamVjdEdldFByb3BlcnR5
QXRJbmRleChjb250ZXh0LCB0b09iamVjdCh2YWx1ZSksIGluZGV4LCBudWxscHRyKTsKKyAgICB9
OworICAgIGF1dG8gdmFsdWVUb1dURlN0cmluZyA9IFsmXSAoSlNWYWx1ZVJlZiB2YWx1ZSkgewor
ICAgICAgICBhdXRvIHN0cmluZyA9IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwg
dmFsdWUsIG51bGxwdHIpKTsKKyAgICAgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBKU1N0cmluZ0dl
dE1heGltdW1VVEY4Q1N0cmluZ1NpemUoc3RyaW5nLmdldCgpKTsKKyAgICAgICAgVmVjdG9yPGNo
YXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKKyAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhz
dHJpbmcuZ2V0KCksIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCkpOworICAgICAgICByZXR1
cm4gU3RyaW5nOjpmcm9tVVRGOChidWZmZXIuZGF0YSgpKTsKKyAgICB9OworCisgICAgLy8gRWZm
ZWN0aXZlbHkgZXhlY3V0ZSB0aGlzIEphdmFTY3JpcHQ6CisgICAgLy8gY29uc3QgcmVnZXhwID0g
bmV3IFJlZ0V4cChyZWdleEZpbHRlcik7CisgICAgLy8gY29uc3QgcmVzdWx0ID0gdXJsLm1hdGNo
KHJlZ2V4cCk7CisgICAgSlNWYWx1ZVJlZiByZWdleEZpbHRlclZhbHVlID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwgbWFrZUpTU3RyaW5nKHJlZ2V4RmlsdGVyKS5nZXQoKSk7CisgICAgSlNP
YmplY3RSZWYgcmVnZXhwID0gSlNPYmplY3RNYWtlUmVnRXhwKGNvbnRleHQsIDEsICZyZWdleEZp
bHRlclZhbHVlLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlUmVmIHVybFZhbHVlID0gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwgbWFrZUpTU3RyaW5nKHVybC5zdHJpbmcoKSkuZ2V0KCkpOworICAg
IEpTT2JqZWN0UmVmIG1hdGNoRnVuY3Rpb24gPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgZ2V0
UHJvcGVydHkodXJsVmFsdWUsICJtYXRjaCIpLCBudWxscHRyKTsKKyAgICBKU1ZhbHVlUmVmIHJl
c3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oY29udGV4dCwgbWF0Y2hGdW5jdGlvbiwgdG9P
YmplY3QodXJsVmFsdWUpLCAxLCAmcmVnZXhwLCBudWxscHRyKTsKKyAgICBpZiAoIUpTVmFsdWVJ
c0FycmF5KGNvbnRleHQsIHJlc3VsdCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBz
dWJzdGl0dXRpb24gPSByZWdleFN1YnN0aXR1dGlvbjsKKyAgICBzaXplX3QgcmVzdWx0TGVuZ3Ro
ID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGdldFByb3BlcnR5KHJlc3VsdCwgImxlbmd0aCIp
LCBudWxscHRyKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6bWluPHNpemVfdD4o
MTAsIHJlc3VsdExlbmd0aCk7IGkrKykKKyAgICAgICAgc3Vic3RpdHV0aW9uLnJlcGxhY2UobWFr
ZVN0cmluZygnXFwnLCBpKSwgdmFsdWVUb1dURlN0cmluZyhnZXRBcnJheVZhbHVlKHJlc3VsdCwg
aSkpKTsKKworICAgIFVSTCByZXBsYWNlbWVudFVSTChzdWJzdGl0dXRpb24pOworICAgIGlmIChy
ZXBsYWNlbWVudFVSTC5pc1ZhbGlkKCkpCisgICAgICAgIHVybCA9IFdURk1vdmUocmVwbGFjZW1l
bnRVUkwpOworfQorCiBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBh
cnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zv
cm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4KIHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0
aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkFjdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKaW5kZXggYjBjYzBlZDFmNWM4MTQzMWNhNmI0ZTlmODE3
NjUzNmYwMmQ3ODI0MS4uZGJiZTlkMzIyZDJlMGE0OTg4ZTlmYzM0NjZkYjE3MGIwNWVmZDc2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkFjdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCkBAIC0xMzksMTAgKzEzOSwxNCBAQCBzdHJ1Y3QgV0VCQ09S
RV9FWFBPUlQgUmVkaXJlY3RBY3Rpb24gewogICAgIH07CiAgICAgc3RydWN0IFJlZ2V4U3Vic3Rp
dHV0aW9uQWN0aW9uIHsKICAgICAgICAgU3RyaW5nIHJlZ2V4U3Vic3RpdHV0aW9uOworICAgICAg
ICBTdHJpbmcgcmVnZXhGaWx0ZXI7CiAKLSAgICAgICAgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24g
aXNvbGF0ZWRDb3B5KCkgY29uc3QgJiB7IHJldHVybiB7IHJlZ2V4U3Vic3RpdHV0aW9uLmlzb2xh
dGVkQ29weSgpIH07IH0KLSAgICAgICAgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gaXNvbGF0ZWRD
b3B5KCkgJiYgeyByZXR1cm4geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKS5pc29sYXRlZENv
cHkoKSB9OyB9Ci0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWdleFN1YnN0aXR1dGlv
bkFjdGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLnJlZ2V4U3Vic3RpdHV0aW9uID09
IHRoaXMtPnJlZ2V4U3Vic3RpdHV0aW9uOyB9CisgICAgICAgIFJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0ICYgeyByZXR1cm4geyByZWdleFN1YnN0aXR1dGlvbi5p
c29sYXRlZENvcHkoKSwgcmVnZXhGaWx0ZXIuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBS
ZWdleFN1YnN0aXR1dGlvbkFjdGlvbiBpc29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1v
dmUocmVnZXhTdWJzdGl0dXRpb24pLmlzb2xhdGVkQ29weSgpLCBXVEZNb3ZlKHJlZ2V4RmlsdGVy
KS5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjx1aW50
OF90PiYpIGNvbnN0OworICAgICAgICBzdGF0aWMgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24gZGVz
ZXJpYWxpemUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVy
LnJlZ2V4U3Vic3RpdHV0aW9uID09IHRoaXMtPnJlZ2V4U3Vic3RpdHV0aW9uICYmIG90aGVyLnJl
Z2V4RmlsdGVyID09IHRoaXMtPnJlZ2V4RmlsdGVyOyB9CisgICAgICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgYXBwbHlUb1VSTChVUkwmKSBjb25zdDsKICAgICB9OwogICAgIHN0cnVjdCBVUkxUcmFu
c2Zvcm1BY3Rpb24gewogICAgICAgICBzdHJ1Y3QgUXVlcnlUcmFuc2Zvcm0gewpAQCAtMjE0LDcg
KzIxOCw3IEBAIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBSZWRpcmVjdEFjdGlvbiB7CiAgICAgUmVk
aXJlY3RBY3Rpb24oRGVsZXRlZFZhbHVlVGFnKSA6IGhhc2hUYWJsZVR5cGUoSGFzaFRhYmxlVHlw
ZTo6RGVsZXRlZCkgeyB9CiAgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IGhhc2hUYWJsZVR5cGUgPT0gSGFzaFRhYmxlVHlwZTo6RGVsZXRlZDsgfQogCi0gICAgc3RhdGlj
IEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IHBhcnNlKGNvbnN0IEpT
T046Ok9iamVjdCYpOworICAgIHN0YXRpYyBFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPiBwYXJzZShjb25zdCBKU09OOjpPYmplY3QmLCBjb25zdCBTdHJpbmcmIHVybEZp
bHRlcik7CiAgICAgUmVkaXJlY3RBY3Rpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsKICAgICBS
ZWRpcmVjdEFjdGlvbiBpc29sYXRlZENvcHkoKSAmJjsKICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgUmVkaXJlY3RBY3Rpb24mKSBjb25zdDsKQEAgLTI2Miw3ICsyNjYsNyBAQCBpbmxpbmUgdm9p
ZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFJlZGlyZWN0QWN0aW9uOjpFeHRlbnNpb25QYXRo
QWN0aW9uJiBhY3RpbwogCiBpbmxpbmUgdm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFJl
ZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiYgYWN0aW9uKQogewotICAgIGFk
ZChoYXNoZXIsIGFjdGlvbi5yZWdleFN1YnN0aXR1dGlvbik7CisgICAgYWRkKGhhc2hlciwgYWN0
aW9uLnJlZ2V4U3Vic3RpdHV0aW9uLCBhY3Rpb24ucmVnZXhGaWx0ZXIpOwogfQogCiBpbmxpbmUg
dm9pZCBhZGQoSGFzaGVyJiBoYXNoZXIsIGNvbnN0IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zv
cm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlJiBxdWVyeUtleVZhbHVlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCA4ODI0MDJjN2I4NTNjMWU1YmM1N2ZlNmFlN2Q1Mzdi
MDk2Y2ZmNWJiLi41MTNmZDkzOWU2NmRiNWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIGJvb2wgaXNWYWxpZENTU1Nl
bGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAgICAgcmV0dXJuICEhcGFyc2VyLnBhcnNl
U2VsZWN0b3Ioc2VsZWN0b3IpOwogfQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxB
Y3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBy
dWxlT2JqZWN0KQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVy
cm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29u
c3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7CiAgICAgYXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2Jq
ZWN0LmdldE9iamVjdCgiYWN0aW9uIik7CiAgICAgaWYgKCFhY3Rpb25PYmplY3QpCkBAIC0yNDEs
NyArMjQxLDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVy
cm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAgICAgICAgcmV0dXJuIEFjdGlv
biB7IE5vdGlmeUFjdGlvbiB7IHsgV1RGTW92ZShub3RpZmljYXRpb24pIH0gfSB9OwogICAgIH0K
ICAgICBpZiAoYWN0aW9uVHlwZSA9PSAicmVkaXJlY3QiKSB7Ci0gICAgICAgIGF1dG8gYWN0aW9u
ID0gUmVkaXJlY3RBY3Rpb246OnBhcnNlKCphY3Rpb25PYmplY3QpOworICAgICAgICBhdXRvIGFj
dGlvbiA9IFJlZGlyZWN0QWN0aW9uOjpwYXJzZSgqYWN0aW9uT2JqZWN0LCB1cmxGaWx0ZXIpOwog
ICAgICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChh
Y3Rpb24uZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiBBY3Rpb24geyBSZWRpcmVjdEFjdGlvbiB7
IFdURk1vdmUoKmFjdGlvbikgfSB9OwpAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4cGVjdGVkPENvbnRlbnRFeHRlbnNpb25SdWxlLCBzdGQ6OmVycm9yX2NvZGU+PiBs
b2FkUnVsZShjCiAgICAgaWYgKCF0cmlnZ2VyLmhhc192YWx1ZSgpKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQodHJpZ2dlci5lcnJvcigpKTsKIAotICAgIGF1dG8gYWN0aW9uID0gbG9h
ZEFjdGlvbihydWxlT2JqZWN0KTsKKyAgICBhdXRvIGFjdGlvbiA9IGxvYWRBY3Rpb24ocnVsZU9i
amVjdCwgdHJpZ2dlci0+dXJsRmlsdGVyKTsKICAgICBpZiAoIWFjdGlvbikKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWFjdGlvbi0+aGFzX3ZhbHVlKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5o
CmluZGV4IGNlNWRjNDAyY2E4Njc4OTc4ZDU3MzA0YmQwN2RiNGVkZjEyZmU5ZmEuLjg4NjBiNGE3
NjIwNmU2YWI2MzFjYWM5OWEyOTNkZTNlMWVmMjVhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCkBAIC01NCw3ICs1
NCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIC8vIFRo
aXMgc2hvdWxkIGJlIGluY3JlbWVudGVkIGV2ZXJ5IHRpbWUgYSBmdW5jdGlvbmFsIGNoYW5nZSBp
cyBtYWRlIHRvIHRoZSBieXRlY29kZSwgZmlsZSBmb3JtYXQsIGV0Yy4KICAgICAvLyB0byBwcmV2
ZW50IGNyYXNoaW5nIHdoaWxlIGxvYWRpbmcgb2xkIGRhdGEuCi0gICAgc3RhdGljIGNvbnN0ZXhw
ciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24gPSAxNDsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVpbnQzMl90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lv
biA9IDE1OwogCiAgICAgc3RhdGljIENvbnRlbnRSdWxlTGlzdFN0b3JlJiBkZWZhdWx0U3RvcmUo
KTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRSdWxlTGlzdFN0b3JlPiBzdG9yZVdpdGhQYXRoKGNv
bnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE5Njc1YTgwNDQ1MWYxZjhmZmQ1YWFiMTAyYzExZTk1
MDc2YzFmODIuLjI3ZmIyOGVlZTAzY2FlNTk2OTU2MGNhNzEzZjUxOTBmZDQ3ZDgxNWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMi0wMy0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIEZpbmlzaCBpbXBsZW1lbnRpbmcgbW9kaWZ5LWhlYWRlcnMgYWN0aW9u
cyBmb3IgV0tDb250ZW50UnVsZUxpc3QgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzc3ODQKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0
Y2hlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0
ZW5zaW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIyLTAz
LTA5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZ2l0
LXdlYmtpdF0gRXh0cmFjdCByZXZpc2lvbiBmcm9tIGBnaXQgc3ZuIGRjb21taXRgIChGb2xsb3ct
dXAgZml4KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25zLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKaW5kZXggOTI5YzI5ZTI0YTE2NjhlY2VmMmI1MmZjYWE0ZWQ5
MjkwZGQ3NDYyYy4uY2U0MGZhZmNhYWZlMzg0ODI3MjRjZDM4OWMzN2IyZTY1Yjc4OTBjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4
dGVuc2lvbnMuY3BwCkBAIC0zMDM5LDcgKzMwMzksNyBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lv
blRlc3QsIFNlcmlhbGl6YXRpb24pCiAgICAgICAgIEVYUEVDVF9FUShkZXNlcmlhbGl6ZWQsIGFj
dGlvbik7CiAgICAgfTsKICAgICBjaGVja1JlZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsg
UmVkaXJlY3RBY3Rpb246OkV4dGVuc2lvblBhdGhBY3Rpb24geyAiZXh0ZW5zaW9uUGF0aCIgfSB9
IH0sIDE4KTsKLSAgICBjaGVja1JlZGlyZWN0QWN0aW9uU2VyaWFsaXphdGlvbih7IHsgUmVkaXJl
Y3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsgInJlZ2V4U3Vic3RpdHV0aW9uIiB9
IH0gfSwgMjIpOworICAgIGNoZWNrUmVkaXJlY3RBY3Rpb25TZXJpYWxpemF0aW9uKHsgeyBSZWRp
cmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rpb24geyAicmVnZXhTdWJzdGl0dXRpb24i
LCAicmVnZXhGaWx0ZXIiIH0gfSB9LCA0MSk7CiAgICAgY2hlY2tSZWRpcmVjdEFjdGlvblNlcmlh
bGl6YXRpb24oeyB7IFJlZGlyZWN0QWN0aW9uOjpVUkxBY3Rpb24geyAidXJsIiB9IH0gfSwgOCk7
CiAgICAgY2hlY2tSZWRpcmVjdEFjdGlvblNlcmlhbGl6YXRpb24oeyB7IFJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb24gewogICAgICAgICAiZnLDpGdtZW50IiwKQEAgLTMwOTcsNiAr
MzA5NywyMiBAQCBURVNUX0YoQ29udGVudEV4dGVuc2lvblRlc3QsIElmRnJhbWVVUkwpCiAgICAg
dGVzdFJlcXVlc3QobWF0Y2hpbmdFdmVyeXRoaW5nLCByZXF1ZXN0SW5Ub3BBbmRGcmFtZVVSTHMo
Imh0dHA6Ly9leGFtcGxlLmNvbS8iLCAiaHR0cHM6Ly93ZWJraXQub3JnLyIsICJodHRwczovL3dl
YmtpdC5vcmcvIiksIHsgfSk7CiB9CiAKK1RFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVzdCwgUmVn
ZXhTdWJzdGl0dXRpb24pCit7CisgICAgYXV0byB0cmFuc2Zvcm1VUkwgPSBbXSAoU3RyaW5nJiYg
cmVnZXhTdWJzdGl0dXRpb24sIFN0cmluZyYmIHJlZ2V4RmlsdGVyLCBTdHJpbmcmJiBvcmlnaW5h
bFVSTCwgY29uc3QgY2hhciogZXhwZWN0ZWRUcmFuc2Zvcm1lZFVSTCkgeworICAgICAgICBXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9u
QWN0aW9uIGFjdGlvbiB7IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24pLCBXVEZNb3ZlKHJlZ2V4
RmlsdGVyKSB9OworICAgICAgICBVUkwgdXJsKFdURk1vdmUob3JpZ2luYWxVUkwpKTsKKyAgICAg
ICAgYWN0aW9uLmFwcGx5VG9VUkwodXJsKTsKKyAgICAgICAgRVhQRUNUX1NUUkVRKHVybC5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBleHBlY3RlZFRyYW5zZm9ybWVkVVJMKTsKKyAgICB9OworICAg
IHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly9cXDEueHl6LmNvbS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFi
Yz8pXFwueHl6XFwuY29tLyIsICJodHRwczovL3d3dy5hYmMueHl6LmNvbSIsICJodHRwczovL2Fi
Yy54eXouY29tLyIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly9cXDEuXFwxLnh5ei5jb20v
IiwgIl5odHRwczovL3d3d1xcLihhYmM/KVxcLnh5elxcLmNvbS8iLCAiaHR0cHM6Ly93d3cuYWIu
eHl6LmNvbSIsICJodHRwczovL2FiLmFiLnh5ei5jb20vIik7CisgICAgdHJhbnNmb3JtVVJMKCJo
dHRwczovL1xcMS5cXDEueHl6LmNvbS8iLCAiXmh0dHBzOi8vd3d3XFwuKGFiYz8pXFwueHl6XFwu
Y29tLyIsICJodHRwczovL2FiLnh5ei5jb20iLCAiaHR0cHM6Ly9hYi54eXouY29tLyIpOworICAg
IHRyYW5zZm9ybVVSTCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9cXDBcXDEiLCAiXmh0dHBzOi8vd3d3
XFwuKGFiYz8pXFwueHl6XFwuY29tLyIsICJodHRwczovL3d3dy5hYi54eXouY29tIiwgImh0dHBz
Oi8vZXhhbXBsZS5jb20vaHR0cHM6Ly93d3cuYWIueHl6LmNvbS9hYiIpOworICAgIHRyYW5zZm9y
bVVSTCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9cXDFcXDJcXDNcXDRcXDVcXDZcXDdcXDhcXDlcXDEw
XFwxMVxcMTJcXDEzXFwxNCIsICJeaHR0cHM6Ly8oZSkoeCkoYSkobSkocCkobCkoZSkodykoZSko
YikocykoaSkodCkoZSkvIiwgImh0dHBzOi8vZXhhbXBsZXdlYnNpdGUvIiwgImh0dHBzOi8vZXhh
bXBsZS5jb20vZXhhbXBsZXdlZTBlMWUyZTNlNCIpOworICAgIHRyYW5zZm9ybVVSTCgiaHR0cHM6
Ly8hQCMkJV4mKmludmFsaWRVUkxcXDEvIiwgIl5odHRwczovL3d3d1xcLihhYmM/KVxcLnh5elxc
LmNvbS8iLCAiaHR0cHM6Ly93d3cuYWJjLnh5ei5jb20iLCAiaHR0cHM6Ly93d3cuYWJjLnh5ei5j
b20vIik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQpp
bmRleCBkZGQ5NTU0NThiMGMwZGE0NTk1MGZmYWRhZTA1YjI1NzRiYTE1MDM3Li5jZTliZTQzNmE4
OWJjNzNjMTExNmEyMDA1MzRlNDQ4YjJhNjRlMGViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9u
U3RvcmUubW0KQEAgLTY1MCw2ICs2NTAsOSBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9y
ZVRlc3QsIFJlZGlyZWN0KQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gfSB9LAog
ICAgICAgICAgICAgInRyaWdnZXIiOiB7ICJ1cmwtZmlsdGVyIjogIjgudHh0IiB9CisgICAgICAg
IH0sIHsKKyAgICAgICAgICAgICJhY3Rpb24iOiB7ICJ0eXBlIjogInJlZGlyZWN0IiwgInJlZGly
ZWN0IjogeyAicmVnZXgtc3Vic3RpdHV0aW9uIjogInRlc3RzY2hlbWU6Ly9yZXBsYWNlZC1ieS1y
ZWdleC9cXDEudHh0IiB9IH0sCisgICAgICAgICAgICAidHJpZ2dlciI6IHsgInVybC1maWx0ZXIi
OiAiKDkpLnR4dCIgfQogICAgICAgICB9IF0KICAgICApSlNPTiIpOwogCkBAIC02NzQsMTIgKzY3
NywxMyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFJlZGlyZWN0KQogICAg
ICAgICAgICAgICAgICAgICAgICAgdHJ5IHsgYXdhaXQgZmV0Y2goJzYudHh0I2ZyYWdtZW50LXNo
b3VsZC1iZS1yZW1vdmVkJykgfSBjYXRjaChlKSB7IH07CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0cnkgeyBhd2FpdCBmZXRjaCgnNy50eHQnKSB9IGNhdGNoKGUpIHsgfTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHRyeSB7IGF3YWl0IGZldGNoKCc4LnR4dD9rZXktdG8tcmVwbGFjZS1vbmx5
PXByZS1yZXBsYWNlbWVudC12YWx1ZScpIH0gY2F0Y2goZSkgeyB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgdHJ5IHsgYXdhaXQgZmV0Y2goJzkudHh0JykgfSBjYXRjaChlKSB7IH07CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgZmV0Y2hTdWJyZXNvdXJjZXMo
KTsKICAgICAgICAgICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgICAgIClIVE1MIik7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi84LnR4dCJdKQorICAg
ICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiLzkudHh0Il0pCiAgICAgICAgICAgICBy
ZWNlaXZlZEFsbFJlcXVlc3RzID0gdHJ1ZTsKICAgICAgICAgcmVzcG9uZCh0YXNrLCAiIik7CiAg
ICAgfTsKQEAgLTcxMyw2ICs3MTcsNyBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRl
c3QsIFJlZGlyZWN0KQogICAgICAgICAidGVzdHNjaGVtZTovLzp0ZXN0cGFzc3dvcmRAdGVzdGhv
c3QvNi50eHQiLAogICAgICAgICAidGVzdHNjaGVtZTovL3Rlc3Rob3N0LzcudHh0PyMiLAogICAg
ICAgICAidGVzdHNjaGVtZTovL3Rlc3Rob3N0LzgudHh0P2tleS10by1yZXBsYWNlLW9ubHk9dmFs
dWUtdG8tcmVwbGFjZS1vbmx5JmtleS10by1hZGQ9dmFsdWUtdG8tYWRkIiwKKyAgICAgICAgInRl
c3RzY2hlbWU6Ly9yZXBsYWNlZC1ieS1yZWdleC85LnR4dCIsCiAgICAgfTsKICAgICBFWFBFQ1Rf
RVEoZXhwZWN0ZWRSZXF1ZXN0ZWRVUkxzLnNpemUoKSwgW3VybHMgY291bnRdKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGV4cGVjdGVkUmVxdWVzdGVkVVJMcy5zaXplKCk7IGkrKykK
</data>

          </attachment>
      

    </bug>

</bugzilla>