<?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>107927</bug_id>
          
          <creation_ts>2013-01-25 00:50:53 -0800</creation_ts>
          <short_desc>[V8] Pass an Isolate to GetRawTemplate()</short_desc>
          <delta_ts>2013-01-25 16:58:46 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816349</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-25 00:50:53 -0800</bug_when>
    <thetext>This is one of steps to kill an optional Isolate parameter of GetRawTemplate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816351</commentid>
    <comment_count>1</comment_count>
      <attachid>184691</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-25 00:53:10 -0800</bug_when>
    <thetext>Created attachment 184691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817055</commentid>
    <comment_count>2</comment_count>
      <attachid>184691</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 16:58:42 -0800</bug_when>
    <thetext>Comment on attachment 184691
Patch

Clearing flags on attachment: 184691

Committed r140883: &lt;http://trac.webkit.org/changeset/140883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817056</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 16:58:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184691</attachid>
            <date>2013-01-25 00:53:10 -0800</date>
            <delta_ts>2013-01-25 16:58:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107927-20130125175001.patch</filename>
            <type>text/plain</type>
            <size>43575</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhjNzg3NmM5OTk5MmQ3
YjQ1N2UxZjMyNTkyYjg0OTQ4ZGIwNDUyZS4uZGJjNmQ1NTIwNjhiOGRjNjMxZDgyZjg1NTY1NTYx
MGY1MGIyMjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEzLTAxLTI1ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgYW4g
SXNvbGF0ZSB0byBHZXRSYXdUZW1wbGF0ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIG9uZSBvZiBzdGVwcyB0byBraWxsIGFuIG9wdGlv
bmFsIElzb2xhdGUgcGFyYW1ldGVyIG9mIEdldFJhd1RlbXBsYXRlKCkuCisKKyAgICAgICAgTm8g
dGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAg
ICAoR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgIChDcmVhdGVDdXN0b21TaWduYXR1cmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb25maWd1cmVWOEZsb2F0NjRBcnJheVRlbXBsYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlY4RmxvYXQ2NEFycmF5OjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0VjhJbnRlcm5hbDo6cG9zdE1lc3NhZ2VBdHRyR2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdEFjdGl2ZURPTU9iamVjdFRlbXBs
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEFjdGl2ZURPTU9iamVjdDo6R2V0VGVtcGxh
dGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RDdXN0b21OYW1l
ZEdldHRlclRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhU
ZXN0RXZlbnRDb25zdHJ1Y3RvclRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdEV2
ZW50Q29uc3RydWN0b3I6OkdldFRlbXBsYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmln
dXJlVjhUZXN0RXZlbnRUYXJnZXRUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RF
dmVudFRhcmdldDo6R2V0VGVtcGxhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29uZmlndXJlVjhU
ZXN0RXhjZXB0aW9uVGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0RXhjZXB0aW9u
OjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RJbnRlcmZh
Y2VUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RJbnRlcmZhY2U6OkdldFRlbXBs
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25maWd1cmVWOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyVGVtcGxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcjo6R2V0VGVtcGxhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbmZpZ3VyZVY4VGVzdE5hbWVkQ29uc3RydWN0b3JUZW1wbGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29uZmlndXJlVjhUZXN0Tm9kZVRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVz
dE5vZGU6OkdldFRlbXBsYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBs
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE9iajo6R2V0VGVtcGxhdGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbmZpZ3VyZVY4VGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNUZW1wbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzOjpHZXRUZW1wbGF0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb25maWd1cmVWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VUZW1wbGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkdldFRlbXBsYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6OmNyZWF0ZUNvbnRleHQp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlbG9hZEFjY2Vzc29yR2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TG9jYXRpb246OnJlcGxhY2VBY2Nlc3NvckdldHRlcik6CisgICAgICAg
IChXZWJDb3JlOjpWOExvY2F0aW9uOjphc3NpZ25BY2Nlc3NvckdldHRlcik6CisKIDIwMTMtMDEt
MjQgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBkMjEyZmFjMDE0ODllNmM0ZGE1OWVjMDc3M2I3NTAz
Y2U0NThjYjMzLi4wYTEyYWQzNDE2YTdkYzBmZGJkZTU2YzIxYjk0ODMwYjkyMDNkNDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQpAQCAtMzc5LDcgKzM3OSw3IEBAIEVORAogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKLSAgICBz
dGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBHZXRTaGFkb3dPYmplY3RU
ZW1wbGF0ZSgpOworICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+
IEdldFNoYWRvd09iamVjdFRlbXBsYXRlKHY4OjpJc29sYXRlKik7CiBFTkQKICAgICB9CiAKQEAg
LTc4MCw3ICs3ODAsNyBAQCBzdWIgR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0ZXIKICAg
ICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4IiAuICRpbnRlcmZhY2VOYW1lOwogICAgIG15ICRm
dW5jTmFtZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogCi0gICAgbXkgJHNpZ25hdHVy
ZSA9ICJ2ODo6U2lnbmF0dXJlOjpOZXcoIiAuICR2OEludGVyZmFjZU5hbWUgLiAiOjpHZXRSYXdU
ZW1wbGF0ZSgpKSI7CisgICAgbXkgJHNpZ25hdHVyZSA9ICJ2ODo6U2lnbmF0dXJlOjpOZXcoIiAu
ICR2OEludGVyZmFjZU5hbWUgLiAiOjpHZXRSYXdUZW1wbGF0ZShpbmZvLkdldElzb2xhdGUoKSkp
IjsKICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OERvTm90Q2hlY2tTaWduYXR1cmUifSkgewogICAgICAgICAkc2lnbmF0dXJlID0gInY4OjpMb2Nh
bDx2ODo6U2lnbmF0dXJlPigpIjsKICAgICB9CkBAIC0yODk3LDcgKzI4OTcsNyBAQCBFTkQKICAg
ICAjIGNvbmZpZ3VyYXRpb24gbWV0aG9kLgogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
V2luZG93IikgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotc3RhdGljIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gQ29uZmlndXJlU2hhZG93T2JqZWN0VGVt
cGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiB0ZW1wbCkKK3N0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+IENvbmZpZ3VyZVNoYWRvd09iamVjdFRl
bXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gdGVtcGwsIHY4OjpJc29s
YXRlKiBpc29sYXRlKQogewogICAgIFY4RE9NQ29uZmlndXJhdGlvbjo6YmF0Y2hDb25maWd1cmVB
dHRyaWJ1dGVzKHRlbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4oKSwgc2hhZG93
QXR0cnMsIFdURl9BUlJBWV9MRU5HVEgoc2hhZG93QXR0cnMpKTsKIApAQCAtMjkxNSw3ICsyOTE1
LDcgQEAgRU5ECiAKICAgICAjIEdlbmVyYXRlIHRoZSB0ZW1wbGF0ZSBjb25maWd1cmF0aW9uIG1l
dGhvZAogICAgIHB1c2goQGltcGxDb250ZW50LCAgPDxFTkQpOwotc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmUke3Y4SW50ZXJmYWNlTmFtZX1UZW1w
bGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKK3N0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlJHt2OEludGVyZmFj
ZU5hbWV9VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Ms
IHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7
CiAKQEAgLTMwOTQsNyArMzA5NCw3IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiAke3Y4SW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRlKHY4OjpJc29sYXRlCiAKICAgICB2
ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IHRlbXBsID0KLSAgICAgICAgQ29uZmlndXJlJHt2OEludGVyZmFjZU5hbWV9
VGVtcGxhdGUoR2V0UmF3VGVtcGxhdGUoKSk7CisgICAgICAgIENvbmZpZ3VyZSR7djhJbnRlcmZh
Y2VOYW1lfVRlbXBsYXRlKEdldFJhd1RlbXBsYXRlKGlzb2xhdGUpLCBpc29sYXRlKTsKICAgICBk
YXRhLT50ZW1wbGF0ZU1hcCgpLmFkZCgmaW5mbywgdGVtcGwpOwogICAgIHJldHVybiB0ZW1wbDsK
IH0KQEAgLTMxOTQsMTIgKzMxOTQsMTIgQEAgRU5ECiAKICAgICBpZiAoJGludGVyZmFjZU5hbWUg
ZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLXY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01XaW5kb3c6OkdldFNoYWRvd09i
amVjdFRlbXBsYXRlKCkKK3Y4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01X
aW5kb3c6OkdldFNoYWRvd09iamVjdFRlbXBsYXRlKHY4OjpJc29sYXRlKiBpc29sYXRlKQogewog
ICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+IFY4RE9NV2luZG93
U2hhZG93T2JqZWN0Q2FjaGU7CiAgICAgaWYgKFY4RE9NV2luZG93U2hhZG93T2JqZWN0Q2FjaGUu
SXNFbXB0eSgpKSB7CiAgICAgICAgIFY4RE9NV2luZG93U2hhZG93T2JqZWN0Q2FjaGUgPSB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0VGVtcGxhdGU+OjpOZXcodjg6Ok9iamVjdFRlbXBsYXRlOjpO
ZXcoKSk7Ci0gICAgICAgIENvbmZpZ3VyZVNoYWRvd09iamVjdFRlbXBsYXRlKFY4RE9NV2luZG93
U2hhZG93T2JqZWN0Q2FjaGUpOworICAgICAgICBDb25maWd1cmVTaGFkb3dPYmplY3RUZW1wbGF0
ZShWOERPTVdpbmRvd1NoYWRvd09iamVjdENhY2hlLCBpc29sYXRlKTsKICAgICB9CiAgICAgcmV0
dXJuIFY4RE9NV2luZG93U2hhZG93T2JqZWN0Q2FjaGU7CiB9CkBAIC0zOTAxLDcgKzM5MDEsNyBA
QCBzdWIgQ3JlYXRlQ3VzdG9tU2lnbmF0dXJlCiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoR2V0VjhIZWFkZXJOYW1lKCR0eXBl
KSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gIlY4JHt0
eXBlfTo6R2V0UmF3VGVtcGxhdGUoKSI7CisgICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAiVjgk
e3R5cGV9OjpHZXRSYXdUZW1wbGF0ZShpc29sYXRlKSI7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAkcmVzdWx0IC49ICJ2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPigpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCmluZGV4IGRkMzM4NzY3OGU0NDkyZjkw
NWY0OTMxMmJjZmUxMzMyMjY3MTdhOTguLjE2NWJiOGU4OTg0NjYxNWRmODY1OTE2YWYyMTZiOTU2
YTc4MWY4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcApAQCAtODIsNyArODIsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhGbG9hdDY0QXJyYXk6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYQogICAgIHJldHVybiBjb25zdHJ1Y3RXZWJHTEFycmF5PEZsb2F0NjRB
cnJheSwgVjhGbG9hdDY0QXJyYXksIGRvdWJsZT4oYXJncywgJmluZm8sIHY4OjprRXh0ZXJuYWxE
b3VibGVBcnJheSk7CiB9CiAKLXN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKK3N0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0ZSh2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAg
ICAgZGVzYy0+UmVhZE9ubHlQcm90b3R5cGUoKTsKIApAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRp
YyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhGbG9hdDY0
QXJyYXlUZW1wbGF0ZSh2ODo6CiAKICAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdmb28nCiAgICAg
Y29uc3QgaW50IGZvb0FyZ2MgPSAxOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IGZvb0FyZ3ZbZm9vQXJnY10gPSB7IFY4RmxvYXQzMkFycmF5OjpHZXRSYXdUZW1wbGF0ZSgp
IH07CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZm9vQXJndltmb29Bcmdj
XSA9IHsgVjhGbG9hdDMyQXJyYXk6OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAgICAgdjg6
OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBmb29TaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXco
ZGVzYywgZm9vQXJnYywgZm9vQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdT
eW1ib2woImZvbyIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KEZsb2F0NjRBcnJheVY4SW50
ZXJuYWw6OmZvb0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBmb29TaWduYXR1cmUpKTsKIApAQCAt
MTM1LDcgKzEzNSw3IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOEZs
b2F0NjRBcnJheTo6R2V0VGVtcGxhdGUodjg6Oklzb2xhdGUqIGlzCiAKICAgICB2ODo6SGFuZGxl
U2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IHRlbXBsID0KLSAgICAgICAgQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0ZShHZXRS
YXdUZW1wbGF0ZSgpKTsKKyAgICAgICAgQ29uZmlndXJlVjhGbG9hdDY0QXJyYXlUZW1wbGF0ZShH
ZXRSYXdUZW1wbGF0ZShpc29sYXRlKSwgaXNvbGF0ZSk7CiAgICAgZGF0YS0+dGVtcGxhdGVNYXAo
KS5hZGQoJmluZm8sIHRlbXBsKTsKICAgICByZXR1cm4gdGVtcGw7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RB
Y3RpdmVET01PYmplY3QuY3BwCmluZGV4IDdlNzZkYjNkMjY2YmRhNjk2MGQ2N2UyZTMyZTBkNWNh
ZjRlODVhYWMuLmVmZWYzMzA1YzI4Mjg3MmRmZmM0ZDA1NTY4MTViMDAxOTI2YjkwYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3Rp
dmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHBvc3RNZXNzYWdlQXR0
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKIHsKLSAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IHByaXZhdGVUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
Pjo6TmV3KHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdEFjdGl2ZURPTU9iamVjdFY4SW50
ZXJuYWw6OnBvc3RNZXNzYWdlQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHY4OjpTaWduYXR1cmU6
Ok5ldyhWOFRlc3RBY3RpdmVET01PYmplY3Q6OkdldFJhd1RlbXBsYXRlKCkpKSk7CisgICAgc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwcml2YXRlVGVtcGxhdGUg
PSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25U
ZW1wbGF0ZTo6TmV3KFRlc3RBY3RpdmVET01PYmplY3RWOEludGVybmFsOjpwb3N0TWVzc2FnZUNh
bGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6U2lnbmF0dXJlOjpOZXcoVjhUZXN0QWN0aXZlRE9N
T2JqZWN0OjpHZXRSYXdUZW1wbGF0ZShpbmZvLkdldElzb2xhdGUoKSkpKSk7CiAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLlRoaXMoKS0+RmluZEluc3RhbmNlSW5Qcm90
b3R5cGVDaGFpbihWOFRlc3RBY3RpdmVET01PYmplY3Q6OkdldFRlbXBsYXRlKCkpOwogICAgIGlm
IChob2xkZXIuSXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIGNhbiBvbmx5IHJlYWNoIGhlcmUgYnkg
J29iamVjdC5fX3Byb3RvX18uZnVuYycsIGFuZCBpdCBzaG91bGQgcGFzc2VkCkBAIC03OCw3ICs3
OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcG9zdE1lc3NhZ2VBdHRyR2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjCiAgICAgfQogICAgIFRlc3RBY3RpdmVET01P
YmplY3QqIGltcCA9IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6dG9OYXRpdmUoaG9sZGVyKTsKICAg
ICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKEJpbmRpbmdT
dGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBEb05vdFJlcG9ydFNlY3VyaXR5RXJyb3Ip
KSB7Ci0gICAgICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4g
c2hhcmVkVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5l
dyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RBY3RpdmVET01PYmplY3RWOEludGVybmFs
Ojpwb3N0TWVzc2FnZUNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6U2lnbmF0dXJlOjpOZXco
VjhUZXN0QWN0aXZlRE9NT2JqZWN0OjpHZXRSYXdUZW1wbGF0ZSgpKSkpOworICAgICAgICBzdGF0
aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHNoYXJlZFRlbXBsYXRlID0g
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXcodjg6OkZ1bmN0aW9uVGVt
cGxhdGU6Ok5ldyhUZXN0QWN0aXZlRE9NT2JqZWN0VjhJbnRlcm5hbDo6cG9zdE1lc3NhZ2VDYWxs
YmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4VGVzdEFjdGl2ZURPTU9i
amVjdDo6R2V0UmF3VGVtcGxhdGUoaW5mby5HZXRJc29sYXRlKCkpKSkpOwogICAgICAgICByZXR1
cm4gc2hhcmVkVGVtcGxhdGUtPkdldEZ1bmN0aW9uKCk7CiAgICAgfQogCkBAIC0xMDgsNyArMTA4
LDcgQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBW
OFRlc3RBY3RpdmVET01PYmplY3RBdHRyc1tdID0KICAgICB7ImV4Y2l0aW5nQXR0ciIsIFRlc3RB
Y3RpdmVET01PYmplY3RWOEludGVybmFsOjpleGNpdGluZ0F0dHJBdHRyR2V0dGVyLCAwLCAwIC8q
IG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCks
IHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGlu
c3RhbmNlICovfSwKIH07CiAKLXN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gQ29uZmlndXJlVjhUZXN0QWN0aXZlRE9NT2JqZWN0VGVtcGxhdGUodjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEFjdGl2ZURPTU9iamVjdFRlbXBsYXRl
KHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjLCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSkKIHsKICAgICBkZXNjLT5SZWFkT25seVByb3RvdHlwZSgpOwogCkBAIC0xMjUsNyAr
MTI1LDcgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25m
aWd1cmVWOFRlc3RBY3RpdmVET01PYmplY3RUZW1wbGEKIAogICAgIC8vIEN1c3RvbSBTaWduYXR1
cmUgJ2V4Y2l0aW5nRnVuY3Rpb24nCiAgICAgY29uc3QgaW50IGV4Y2l0aW5nRnVuY3Rpb25Bcmdj
ID0gMTsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBleGNpdGluZ0Z1bmN0
aW9uQXJndltleGNpdGluZ0Z1bmN0aW9uQXJnY10gPSB7IFY4Tm9kZTo6R2V0UmF3VGVtcGxhdGUo
KSB9OworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGV4Y2l0aW5nRnVuY3Rp
b25Bcmd2W2V4Y2l0aW5nRnVuY3Rpb25BcmdjXSA9IHsgVjhOb2RlOjpHZXRSYXdUZW1wbGF0ZShp
c29sYXRlKSB9OwogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gZXhjaXRpbmdGdW5jdGlv
blNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBleGNpdGluZ0Z1bmN0aW9uQXJn
YywgZXhjaXRpbmdGdW5jdGlvbkFyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3
U3ltYm9sKCJleGNpdGluZ0Z1bmN0aW9uIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVz
dEFjdGl2ZURPTU9iamVjdFY4SW50ZXJuYWw6OmV4Y2l0aW5nRnVuY3Rpb25DYWxsYmFjaywgdjhV
bmRlZmluZWQoKSwgZXhjaXRpbmdGdW5jdGlvblNpZ25hdHVyZSkpOwogCkBAIC0xNjMsNyArMTYz
LDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEFjdGl2ZURP
TU9iamVjdDo6R2V0VGVtcGxhdGUodjg6Oklzb2wKIAogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5k
bGVTY29wZTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVtcGwg
PQotICAgICAgICBDb25maWd1cmVWOFRlc3RBY3RpdmVET01PYmplY3RUZW1wbGF0ZShHZXRSYXdU
ZW1wbGF0ZSgpKTsKKyAgICAgICAgQ29uZmlndXJlVjhUZXN0QWN0aXZlRE9NT2JqZWN0VGVtcGxh
dGUoR2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSksIGlzb2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRl
TWFwKCkuYWRkKCZpbmZvLCB0ZW1wbCk7CiAgICAgcmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggMjJiYTExYzAyODkyNTczNjBmMWM0YTZh
OTQyYjRhNDdkN2QwMGVhYy4uMTA2NGViMTQ2MjI4YTkxMGM4ODk1Yjc5Yzk0NmM3NDI0NTM1MzQz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRDYWxsYmFjayBWOFRl
c3RDdXN0b21OYW1lZEdldHRlckNhbGxiYWNrCiAgICAgeyJhbm90aGVyRnVuY3Rpb24iLCBUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJWOEludGVybmFsOjphbm90aGVyRnVuY3Rpb25DYWxsYmFja30sCiB9
OwogCi1zdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3Vy
ZVY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IGRlc2MpCitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IENvbmZpZ3VyZVY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyVGVtcGxhdGUodjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBpc29sYXRlKQog
ewogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI6OkdldFRlbXBsYXRlKHY4OjpJcwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3Bl
OwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiB0ZW1wbCA9Ci0gICAg
ICAgIENvbmZpZ3VyZVY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyVGVtcGxhdGUoR2V0UmF3VGVtcGxh
dGUoKSk7CisgICAgICAgIENvbmZpZ3VyZVY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyVGVtcGxhdGUo
R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSksIGlzb2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFw
KCkuYWRkKCZpbmZvLCB0ZW1wbCk7CiAgICAgcmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDYyMDcyNWVhMjA1NzkyOGRjZjc2MTY0NTJhM2E3
ZmQyYTdmNjEwM2UuLmFiZjE4NDlkYzk1NjJhZGU4MDNlOTZiYjgzOTllZGY1NzI3MDUxNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RF
dmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgYm9v
bCBmaWxsVGVzdEV2ZW50Q29uc3RydWN0b3JJbml0KFRlc3RFdmVudENvbnN0cnVjdG9ySW5pdCYg
ZXZlbnRJbml0LCBjb25zdCBEaWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RFdmVudENvbnN0
cnVjdG9yVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Mp
CitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4
VGVzdEV2ZW50Q29uc3RydWN0b3JUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgZGVzYy0+UmVhZE9u
bHlQcm90b3R5cGUoKTsKIApAQCAtMTMzLDcgKzEzMyw3IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpHZXRUZW1wbGF0ZSh2ODo6
SXNvCiAKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHRlbXBsID0KLSAgICAgICAgQ29uZmlndXJlVjhUZXN0
RXZlbnRDb25zdHJ1Y3RvclRlbXBsYXRlKEdldFJhd1RlbXBsYXRlKCkpOworICAgICAgICBDb25m
aWd1cmVWOFRlc3RFdmVudENvbnN0cnVjdG9yVGVtcGxhdGUoR2V0UmF3VGVtcGxhdGUoaXNvbGF0
ZSksIGlzb2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFwKCkuYWRkKCZpbmZvLCB0ZW1wbCk7
CiAgICAgcmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggZTc3
NGEzM2FkNmVmZTNjNGRkZGU3ODEyNmE4Y2I4Y2E0MWZiZjhhMy4uN2IzZTQ2YzhkZGQwYjYyZmE4
NGFiNDNhNDU4MjIwMTBlYTNlYWE0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENh
bGxiYWNrIFY4VGVzdEV2ZW50VGFyZ2V0Q2FsbGJhY2tzW10gPQogICAgIHsicmVtb3ZlRXZlbnRM
aXN0ZW5lciIsIFRlc3RFdmVudFRhcmdldFY4SW50ZXJuYWw6OnJlbW92ZUV2ZW50TGlzdGVuZXJD
YWxsYmFja30sCiB9OwogCi1zdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IENvbmZpZ3VyZVY4VGVzdEV2ZW50VGFyZ2V0VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdEV2ZW50VGFyZ2V0VGVtcGxhdGUodjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBpc29sYXRlKQog
ewogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBz
dGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVz
dEV2ZW50VGFyZ2V0VGVtcGxhdGUodgogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnZGlzcGF0
Y2hFdmVudCcKICAgICBjb25zdCBpbnQgZGlzcGF0Y2hFdmVudEFyZ2MgPSAxOwotICAgIHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRpc3BhdGNoRXZlbnRBcmd2W2Rpc3BhdGNoRXZl
bnRBcmdjXSA9IHsgVjhFdmVudDo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAgIHY4OjpIYW5kbGU8
djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRpc3BhdGNoRXZlbnRBcmd2W2Rpc3BhdGNoRXZlbnRBcmdj
XSA9IHsgVjhFdmVudDo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSkgfTsKICAgICB2ODo6SGFuZGxl
PHY4OjpTaWduYXR1cmU+IGRpc3BhdGNoRXZlbnRTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpO
ZXcoZGVzYywgZGlzcGF0Y2hFdmVudEFyZ2MsIGRpc3BhdGNoRXZlbnRBcmd2KTsKICAgICBwcm90
by0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiZGlzcGF0Y2hFdmVudCIpLCB2ODo6RnVuY3Rp
b25UZW1wbGF0ZTo6TmV3KFRlc3RFdmVudFRhcmdldFY4SW50ZXJuYWw6OmRpc3BhdGNoRXZlbnRD
YWxsYmFjaywgdjhVbmRlZmluZWQoKSwgZGlzcGF0Y2hFdmVudFNpZ25hdHVyZSkpOwogCkBAIC0x
NjIsNyArMTYyLDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVz
dEV2ZW50VGFyZ2V0OjpHZXRUZW1wbGF0ZSh2ODo6SXNvbGF0ZSoKIAogICAgIHY4OjpIYW5kbGVT
Y29wZSBoYW5kbGVTY29wZTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0
ZT4gdGVtcGwgPQotICAgICAgICBDb25maWd1cmVWOFRlc3RFdmVudFRhcmdldFRlbXBsYXRlKEdl
dFJhd1RlbXBsYXRlKCkpOworICAgICAgICBDb25maWd1cmVWOFRlc3RFdmVudFRhcmdldFRlbXBs
YXRlKEdldFJhd1RlbXBsYXRlKGlzb2xhdGUpLCBpc29sYXRlKTsKICAgICBkYXRhLT50ZW1wbGF0
ZU1hcCgpLmFkZCgmaW5mbywgdGVtcGwpOwogICAgIHJldHVybiB0ZW1wbDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4
Y2VwdGlvbi5jcHAKaW5kZXggYzNmNDliMmMyOTUwOGRiNTZkMGY1NzQ3YWJjMzMzYjU4NzFkMDAy
Zi4uODZkNTU3NDRmYWFjY2YzYjZmMmFiODhjMGRkY2RhZjRmMzA0YWQ0NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4
Y2VwdGlvbi5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJh
dGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RFeGNlcHRpb25BdHRyc1tdID0gewogICAgIHsi
bmFtZSIsIFRlc3RFeGNlcHRpb25WOEludGVybmFsOjpuYW1lQXR0ckdldHRlciwgMCwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCiB9OwogCi1zdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IENvbmZpZ3VyZVY4VGVzdEV4Y2VwdGlvblRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBkZXNjKQorc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RFeGNlcHRpb25UZW1wbGF0ZSh2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAg
ICAgZGVzYy0+UmVhZE9ubHlQcm90b3R5cGUoKTsKIApAQCAtOTIsNyArOTIsNyBAQCB2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0RXhjZXB0aW9uOjpHZXRUZW1wbGF0
ZSh2ODo6SXNvbGF0ZSogaQogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiB0ZW1wbCA9Ci0gICAgICAgIENv
bmZpZ3VyZVY4VGVzdEV4Y2VwdGlvblRlbXBsYXRlKEdldFJhd1RlbXBsYXRlKCkpOworICAgICAg
ICBDb25maWd1cmVWOFRlc3RFeGNlcHRpb25UZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZShpc29sYXRl
KSwgaXNvbGF0ZSk7CiAgICAgZGF0YS0+dGVtcGxhdGVNYXAoKS5hZGQoJmluZm8sIHRlbXBsKTsK
ICAgICByZXR1cm4gdGVtcGw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGRlMzdmYjYz
MmEyMDRkZDNkYWViYzNiMGRhZTBlNDIzMTI3ZTBlZTIuLmNmMTVlNzQ1ZDJjNWIyOTlhYWQ4MmQy
Y2JiMjRkMmIzYzMyOWRjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0yNTYsNyArMjU2
LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JD
YWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIHJldHVybiBzZXRET01FeGNlcHRpb24o
ZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RJbnRlcmZhY2VUZW1wbGF0ZSh2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gZGVzYykKK3N0YXRpYyB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0SW50ZXJmYWNlVGVtcGxhdGUo
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBp
c29sYXRlKQogewogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKQEAgLTI3Niw3ICsy
NzYsNyBAQCBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZp
Z3VyZVY4VGVzdEludGVyZmFjZVRlbXBsYXRlKHY4OgogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVy
ZSAnc3VwcGxlbWVudGFsTWV0aG9kMicKICAgICBjb25zdCBpbnQgc3VwcGxlbWVudGFsTWV0aG9k
MkFyZ2MgPSAyOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHN1cHBsZW1l
bnRhbE1ldGhvZDJBcmd2W3N1cHBsZW1lbnRhbE1ldGhvZDJBcmdjXSA9IHsgdjg6OkhhbmRsZTx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07Cisg
ICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gc3VwcGxlbWVudGFsTWV0aG9kMkFy
Z3Zbc3VwcGxlbWVudGFsTWV0aG9kMkFyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAgICAgdjg6
OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBzdXBwbGVtZW50YWxNZXRob2QyU2lnbmF0dXJlID0gdjg6
OlNpZ25hdHVyZTo6TmV3KGRlc2MsIHN1cHBsZW1lbnRhbE1ldGhvZDJBcmdjLCBzdXBwbGVtZW50
YWxNZXRob2QyQXJndik7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woInN1cHBsZW1lbnRh
bE1ldGhvZDIiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0SW50ZXJmYWNlVjhJbnRl
cm5hbDo6c3VwcGxlbWVudGFsTWV0aG9kMkNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBzdXBwbGVt
ZW50YWxNZXRob2QyU2lnbmF0dXJlKSk7CkBAIC0zMTcsNyArMzE3LDcgQEAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdEludGVyZmFjZTo6R2V0VGVtcGxhdGUodjg6
Oklzb2xhdGUqIGkKIAogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKICAgICB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVtcGwgPQotICAgICAgICBDb25maWd1
cmVWOFRlc3RJbnRlcmZhY2VUZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZSgpKTsKKyAgICAgICAgQ29u
ZmlndXJlVjhUZXN0SW50ZXJmYWNlVGVtcGxhdGUoR2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSksIGlz
b2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFwKCkuYWRkKCZpbmZvLCB0ZW1wbCk7CiAgICAg
cmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuY3BwCmluZGV4IDJmZmRjMmIyMTA2YzBiYzlmNjhlMTdmZDc5ZmMzYjVkZmJiNTY1YjkuLjgw
NTdkMWMyYjM2OGY2NDczMDQ2OGJjY2NlZmZiNWY2Y2FhYWJlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGlj
IGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENhbGxiYWNrIFY4VGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXJDYWwKICAgICB7Im1ldGhvZCIsIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyVjhJbnRlcm5hbDo6bWV0aG9kQ2FsbGJhY2t9LAogfTsKIAotc3RhdGljIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2Mp
CitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVu
Y3Rpb25UZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgZGVzYy0+
UmVhZE9ubHlQcm90b3R5cGUoKTsKIApAQCAtMTAxLDcgKzEwMSw3IEBAIHY4OjpQZXJzaXN0ZW50
PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpHZXRU
ZW1wbGF0ZSh2CiAKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHRlbXBsID0KLSAgICAgICAgQ29uZmlndXJl
VjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclRlbXBsYXRlKEdldFJhd1RlbXBsYXRlKCkpOwor
ICAgICAgICBDb25maWd1cmVWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyVGVtcGxhdGUoR2V0
UmF3VGVtcGxhdGUoaXNvbGF0ZSksIGlzb2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFwKCku
YWRkKCZpbmZvLCB0ZW1wbCk7CiAgICAgcmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGY0ZWJlNWU2NjRkYmJiNzA1OWE0MDE0OThlOTg5N2Ex
NGUzZjk3ZTcuLjkzYmM3YzFmMzRlZTRmM2FkZGJlMTJmYzlmN2ZlNWM1MzYwNzg0MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1l
ZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdE5hbWVkQ29uc3RydWN0b3JDb25z
dHJ1Y3Rvcjo6R2V0VGVtcGwKICAgICByZXR1cm4gY2FjaGVkVGVtcGxhdGU7CiB9CiAKLXN0YXRp
YyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0TmFt
ZWRDb25zdHJ1Y3RvclRlbXBsYXRlKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiBkZXNjKQorc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25m
aWd1cmVWOFRlc3ROYW1lZENvbnN0cnVjdG9yVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1
bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIGRlc2Mt
PlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6R2V0VGVtcGxh
dGUodjg6OklzbwogCiAgICAgdjg6OkhhbmRsZVNjb3BlIGhhbmRsZVNjb3BlOwogICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiB0ZW1wbCA9Ci0gICAgICAgIENvbmZpZ3Vy
ZVY4VGVzdE5hbWVkQ29uc3RydWN0b3JUZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZSgpKTsKKyAgICAg
ICAgQ29uZmlndXJlVjhUZXN0TmFtZWRDb25zdHJ1Y3RvclRlbXBsYXRlKEdldFJhd1RlbXBsYXRl
KGlzb2xhdGUpLCBpc29sYXRlKTsKICAgICBkYXRhLT50ZW1wbGF0ZU1hcCgpLmFkZCgmaW5mbywg
dGVtcGwpOwogICAgIHJldHVybiB0ZW1wbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAppbmRleCA0MThhN2FjMGRj
MTlkNmJjZTkxNTE3Y2Q1MzVjY2Q1ZGQ4Yjg2NWE0Li4xZmFjY2RjNjNkNWExMjI1MzVmZWI0Mzk2
NzYxOWFjZTZkMmUzY2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFRlc3ROb2RlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKLXN0YXRpYyB2ODo6UGVy
c2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0Tm9kZVRlbXBsYXRl
KHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjKQorc3RhdGljIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3ROb2RlVGVtcGxh
dGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MsIHY4OjpJc29sYXRl
KiBpc29sYXRlKQogewogICAgIGRlc2MtPlJlYWRPbmx5UHJvdG90eXBlKCk7CiAKQEAgLTk5LDcg
Kzk5LDcgQEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdE5vZGU6
OkdldFRlbXBsYXRlKHY4OjpJc29sYXRlKiBpc29sYXQKIAogICAgIHY4OjpIYW5kbGVTY29wZSBo
YW5kbGVTY29wZTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVt
cGwgPQotICAgICAgICBDb25maWd1cmVWOFRlc3ROb2RlVGVtcGxhdGUoR2V0UmF3VGVtcGxhdGUo
KSk7CisgICAgICAgIENvbmZpZ3VyZVY4VGVzdE5vZGVUZW1wbGF0ZShHZXRSYXdUZW1wbGF0ZShp
c29sYXRlKSwgaXNvbGF0ZSk7CiAgICAgZGF0YS0+dGVtcGxhdGVNYXAoKS5hZGQoJmluZm8sIHRl
bXBsKTsKICAgICByZXR1cm4gdGVtcGw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDVmZTM1YzE1ZWRkMGJm
MDJiNDI0ZDE0MjRlMWI2NjU1Y2UzYTIyMDYuLjExZDNmZjNmOTRmN2E0NTViYzMzOWYxNDY1YjU1
Zjc4ZTQxZTRmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0yMDUyLDcgKzIwNTIsNyBAQCB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhUZXN0T2JqOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKLXN0YXRpYyB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6
OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCitzdGF0aWMgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjLCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKIHsKICAgICBkZXNjLT5SZWFkT25seVByb3RvdHlwZSgpOwogCkBAIC0yMDgyLDMxICsy
MDgyLDMxIEBAIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29u
ZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUodjg6OlBlcnNpCiAKICAgICAvLyBDdXN0b20gU2lnbmF0
dXJlICd2b2lkTWV0aG9kV2l0aEFyZ3MnCiAgICAgY29uc3QgaW50IHZvaWRNZXRob2RXaXRoQXJn
c0FyZ2MgPSAzOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHZvaWRNZXRo
b2RXaXRoQXJnc0FyZ3Zbdm9pZE1ldGhvZFdpdGhBcmdzQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCks
IFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IHZvaWRNZXRob2RXaXRoQXJnc0FyZ3Zbdm9pZE1ldGhvZFdpdGhBcmdzQXJn
Y10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIHY4OjpIYW5kbGU8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVzdE9iajo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSkg
fTsKICAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IHZvaWRNZXRob2RXaXRoQXJnc1NpZ25h
dHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCB2b2lkTWV0aG9kV2l0aEFyZ3NBcmdjLCB2
b2lkTWV0aG9kV2l0aEFyZ3NBcmd2KTsKICAgICBwcm90by0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbCgidm9pZE1ldGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVz
dE9ialY4SW50ZXJuYWw6OnZvaWRNZXRob2RXaXRoQXJnc0NhbGxiYWNrLCB2OFVuZGVmaW5lZCgp
LCB2b2lkTWV0aG9kV2l0aEFyZ3NTaWduYXR1cmUpKTsKIAogICAgIC8vIEN1c3RvbSBTaWduYXR1
cmUgJ2xvbmdNZXRob2RXaXRoQXJncycKICAgICBjb25zdCBpbnQgbG9uZ01ldGhvZFdpdGhBcmdz
QXJnYyA9IDM7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gbG9uZ01ldGhv
ZFdpdGhBcmdzQXJndltsb25nTWV0aG9kV2l0aEFyZ3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwg
VjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gbG9uZ01ldGhvZFdpdGhBcmdzQXJndltsb25nTWV0aG9kV2l0aEFyZ3NBcmdj
XSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgdjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0T2JqOjpHZXRSYXdUZW1wbGF0ZShpc29sYXRlKSB9
OwogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbG9uZ01ldGhvZFdpdGhBcmdzU2lnbmF0
dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIGxvbmdNZXRob2RXaXRoQXJnc0FyZ2MsIGxv
bmdNZXRob2RXaXRoQXJnc0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJsb25nTWV0aG9kV2l0aEFyZ3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0
T2JqVjhJbnRlcm5hbDo6bG9uZ01ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCks
IGxvbmdNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSkpOwogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVy
ZSAnb2JqTWV0aG9kV2l0aEFyZ3MnCiAgICAgY29uc3QgaW50IG9iak1ldGhvZFdpdGhBcmdzQXJn
YyA9IDM7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gb2JqTWV0aG9kV2l0
aEFyZ3NBcmd2W29iak1ldGhvZFdpdGhBcmdzQXJnY10gPSB7IHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+KCksIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+KCksIFY4VGVz
dE9iajo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+IG9iak1ldGhvZFdpdGhBcmdzQXJndltvYmpNZXRob2RXaXRoQXJnc0FyZ2NdID0geyB2
ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPigpLCB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAgICAg
djg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBvYmpNZXRob2RXaXRoQXJnc1NpZ25hdHVyZSA9IHY4
OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBvYmpNZXRob2RXaXRoQXJnc0FyZ2MsIG9iak1ldGhvZFdp
dGhBcmdzQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woIm9iak1l
dGhvZFdpdGhBcmdzIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJu
YWw6Om9iak1ldGhvZFdpdGhBcmdzQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIG9iak1ldGhvZFdp
dGhBcmdzU2lnbmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdtZXRob2RXaXRo
U2VxdWVuY2VBcmcnCiAgICAgY29uc3QgaW50IG1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0FyZ2MgPSAx
OwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZFdpdGhTZXF1ZW5j
ZUFyZ0FyZ3ZbbWV0aG9kV2l0aFNlcXVlbmNlQXJnQXJnY10gPSB7IFY4c2VxdWVuY2U8U2NyaXB0
UHJvZmlsZT46OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBtZXRob2RXaXRoU2VxdWVuY2VBcmdBcmd2W21ldGhvZFdpdGhTZXF1ZW5jZUFy
Z0FyZ2NdID0geyBWOHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+OjpHZXRSYXdUZW1wbGF0ZShpc29s
YXRlKSB9OwogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gbWV0aG9kV2l0aFNlcXVlbmNl
QXJnU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIG1ldGhvZFdpdGhTZXF1ZW5j
ZUFyZ0FyZ2MsIG1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0FyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6
OlN0cmluZzo6TmV3U3ltYm9sKCJtZXRob2RXaXRoU2VxdWVuY2VBcmciKSwgdjg6OkZ1bmN0aW9u
VGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5hbDo6bWV0aG9kV2l0aFNlcXVlbmNlQXJnQ2Fs
bGJhY2ssIHY4VW5kZWZpbmVkKCksIG1ldGhvZFdpdGhTZXF1ZW5jZUFyZ1NpZ25hdHVyZSkpOwog
CiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRo
cm93cycKICAgICBjb25zdCBpbnQgbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0Fy
Z2MgPSAyOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1ldGhvZFRoYXRS
ZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3NBcmd2W21ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3NBcmdjXSA9IHsgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4oKSwgVjhUZXN0
T2JqOjpHZXRSYXdUZW1wbGF0ZSgpIH07CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT4gbWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ3ZbbWV0aG9kVGhhdFJl
cXVpcmVzQWxsQXJnc0FuZFRocm93c0FyZ2NdID0geyB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRl
bXBsYXRlPigpLCBWOFRlc3RPYmo6OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAgICAgdjg6
OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIG1ldGhvZFRoYXRSZXF1aXJlc0Fs
bEFyZ3NBbmRUaHJvd3NBcmdjLCBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQXJn
dik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1ib2woIm1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2Jq
VjhJbnRlcm5hbDo6bWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0NhbGxiYWNrLCB2
OFVuZGVmaW5lZCgpLCBtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzU2lnbmF0dXJl
KSk7CiAgICAgZGVzYy0+U2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY2xhc3NNZXRob2QiKSwg
djg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRlcm5hbDo6Y2xhc3NNZXRob2RD
YWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OkxvY2FsPHY4OjpTaWduYXR1cmU+KCkpKTsKQEAg
LTIxMjIsNDMgKzIxMjIsNDMgQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZSh2ODo6UGVyc2kKIAogICAgIC8vIEN1
c3RvbSBTaWduYXR1cmUgJ3N0cmluZ0FycmF5RnVuY3Rpb24nCiAgICAgY29uc3QgaW50IHN0cmlu
Z0FycmF5RnVuY3Rpb25BcmdjID0gMTsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBzdHJpbmdBcnJheUZ1bmN0aW9uQXJndltzdHJpbmdBcnJheUZ1bmN0aW9uQXJnY10gPSB7
IFY4RE9NU3RyaW5nW106OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBzdHJpbmdBcnJheUZ1bmN0aW9uQXJndltzdHJpbmdBcnJheUZ1bmN0
aW9uQXJnY10gPSB7IFY4RE9NU3RyaW5nW106OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAg
ICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBzdHJpbmdBcnJheUZ1bmN0aW9uU2lnbmF0dXJl
ID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2MsIHN0cmluZ0FycmF5RnVuY3Rpb25BcmdjLCBzdHJp
bmdBcnJheUZ1bmN0aW9uQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXdTeW1i
b2woInN0cmluZ0FycmF5RnVuY3Rpb24iKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0
T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXJyYXlGdW5jdGlvbkNhbGxiYWNrLCB2OFVuZGVmaW5lZCgp
LCBzdHJpbmdBcnJheUZ1bmN0aW9uU2lnbmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2lnbmF0
dXJlICdkb21TdHJpbmdMaXN0RnVuY3Rpb24nCiAgICAgY29uc3QgaW50IGRvbVN0cmluZ0xpc3RG
dW5jdGlvbkFyZ2MgPSAxOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRv
bVN0cmluZ0xpc3RGdW5jdGlvbkFyZ3ZbZG9tU3RyaW5nTGlzdEZ1bmN0aW9uQXJnY10gPSB7IFY4
RE9NU3RyaW5nTGlzdDo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAgIHY4OjpIYW5kbGU8djg6OkZ1
bmN0aW9uVGVtcGxhdGU+IGRvbVN0cmluZ0xpc3RGdW5jdGlvbkFyZ3ZbZG9tU3RyaW5nTGlzdEZ1
bmN0aW9uQXJnY10gPSB7IFY4RE9NU3RyaW5nTGlzdDo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSkg
fTsKICAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IGRvbVN0cmluZ0xpc3RGdW5jdGlvblNp
Z25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCBkb21TdHJpbmdMaXN0RnVuY3Rpb25B
cmdjLCBkb21TdHJpbmdMaXN0RnVuY3Rpb25Bcmd2KTsKICAgICBwcm90by0+U2V0KHY4OjpTdHJp
bmc6Ok5ld1N5bWJvbCgiZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIiksIHY4OjpGdW5jdGlvblRlbXBs
YXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OmRvbVN0cmluZ0xpc3RGdW5jdGlvbkNhbGxiYWNr
LCB2OFVuZGVmaW5lZCgpLCBkb21TdHJpbmdMaXN0RnVuY3Rpb25TaWduYXR1cmUpKTsKIAogICAg
IC8vIEN1c3RvbSBTaWduYXR1cmUgJ2NvbnZlcnQxJwogICAgIGNvbnN0IGludCBjb252ZXJ0MUFy
Z2MgPSAxOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGNvbnZlcnQxQXJn
dltjb252ZXJ0MUFyZ2NdID0geyBWOGE6OkdldFJhd1RlbXBsYXRlKCkgfTsKKyAgICB2ODo6SGFu
ZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBjb252ZXJ0MUFyZ3ZbY29udmVydDFBcmdjXSA9IHsg
VjhhOjpHZXRSYXdUZW1wbGF0ZShpc29sYXRlKSB9OwogICAgIHY4OjpIYW5kbGU8djg6OlNpZ25h
dHVyZT4gY29udmVydDFTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoZGVzYywgY29udmVy
dDFBcmdjLCBjb252ZXJ0MUFyZ3YpOwogICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3lt
Ym9sKCJjb252ZXJ0MSIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpWOEludGVy
bmFsOjpjb252ZXJ0MUNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCBjb252ZXJ0MVNpZ25hdHVyZSkp
OwogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAnY29udmVydDInCiAgICAgY29uc3QgaW50IGNv
bnZlcnQyQXJnYyA9IDE7Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gY29u
dmVydDJBcmd2W2NvbnZlcnQyQXJnY10gPSB7IFY4Yjo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAg
IHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGNvbnZlcnQyQXJndltjb252ZXJ0MkFy
Z2NdID0geyBWOGI6OkdldFJhd1RlbXBsYXRlKGlzb2xhdGUpIH07CiAgICAgdjg6OkhhbmRsZTx2
ODo6U2lnbmF0dXJlPiBjb252ZXJ0MlNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNj
LCBjb252ZXJ0MkFyZ2MsIGNvbnZlcnQyQXJndik7CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5n
OjpOZXdTeW1ib2woImNvbnZlcnQyIiksIHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVGVzdE9i
alY4SW50ZXJuYWw6OmNvbnZlcnQyQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIGNvbnZlcnQyU2ln
bmF0dXJlKSk7CiAKICAgICAvLyBDdXN0b20gU2lnbmF0dXJlICdjb252ZXJ0NCcKICAgICBjb25z
dCBpbnQgY29udmVydDRBcmdjID0gMTsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBjb252ZXJ0NEFyZ3ZbY29udmVydDRBcmdjXSA9IHsgVjhkOjpHZXRSYXdUZW1wbGF0ZSgp
IH07CisgICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gY29udmVydDRBcmd2W2Nv
bnZlcnQ0QXJnY10gPSB7IFY4ZDo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSkgfTsKICAgICB2ODo6
SGFuZGxlPHY4OjpTaWduYXR1cmU+IGNvbnZlcnQ0U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6
TmV3KGRlc2MsIGNvbnZlcnQ0QXJnYywgY29udmVydDRBcmd2KTsKICAgICBwcm90by0+U2V0KHY4
OjpTdHJpbmc6Ok5ld1N5bWJvbCgiY29udmVydDQiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5l
dyhUZXN0T2JqVjhJbnRlcm5hbDo6Y29udmVydDRDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgY29u
dmVydDRTaWduYXR1cmUpKTsKIAogICAgIC8vIEN1c3RvbSBTaWduYXR1cmUgJ2NvbnZlcnQ1Jwog
ICAgIGNvbnN0IGludCBjb252ZXJ0NUFyZ2MgPSAxOwotICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IGNvbnZlcnQ1QXJndltjb252ZXJ0NUFyZ2NdID0geyBWOGU6OkdldFJhd1Rl
bXBsYXRlKCkgfTsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBjb252ZXJ0
NUFyZ3ZbY29udmVydDVBcmdjXSA9IHsgVjhlOjpHZXRSYXdUZW1wbGF0ZShpc29sYXRlKSB9Owog
ICAgIHY4OjpIYW5kbGU8djg6OlNpZ25hdHVyZT4gY29udmVydDVTaWduYXR1cmUgPSB2ODo6U2ln
bmF0dXJlOjpOZXcoZGVzYywgY29udmVydDVBcmdjLCBjb252ZXJ0NUFyZ3YpOwogICAgIHByb3Rv
LT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJjb252ZXJ0NSIpLCB2ODo6RnVuY3Rpb25UZW1w
bGF0ZTo6TmV3KFRlc3RPYmpWOEludGVybmFsOjpjb252ZXJ0NUNhbGxiYWNrLCB2OFVuZGVmaW5l
ZCgpLCBjb252ZXJ0NVNpZ25hdHVyZSkpOwogCiAgICAgLy8gQ3VzdG9tIFNpZ25hdHVyZSAndmFy
aWFkaWNOb2RlTWV0aG9kJwogICAgIGNvbnN0IGludCB2YXJpYWRpY05vZGVNZXRob2RBcmdjID0g
MjsKLSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiB2YXJpYWRpY05vZGVNZXRo
b2RBcmd2W3ZhcmlhZGljTm9kZU1ldGhvZEFyZ2NdID0geyBWOE5vZGU6OkdldFJhd1RlbXBsYXRl
KCksIFY4Tm9kZTo6R2V0UmF3VGVtcGxhdGUoKSB9OworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IHZhcmlhZGljTm9kZU1ldGhvZEFyZ3ZbdmFyaWFkaWNOb2RlTWV0aG9kQXJn
Y10gPSB7IFY4Tm9kZTo6R2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSksIFY4Tm9kZTo6R2V0UmF3VGVt
cGxhdGUoaXNvbGF0ZSkgfTsKICAgICB2ODo6SGFuZGxlPHY4OjpTaWduYXR1cmU+IHZhcmlhZGlj
Tm9kZU1ldGhvZFNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhkZXNjLCB2YXJpYWRpY05v
ZGVNZXRob2RBcmdjLCB2YXJpYWRpY05vZGVNZXRob2RBcmd2KTsKICAgICBwcm90by0+U2V0KHY4
OjpTdHJpbmc6Ok5ld1N5bWJvbCgidmFyaWFkaWNOb2RlTWV0aG9kIiksIHY4OjpGdW5jdGlvblRl
bXBsYXRlOjpOZXcoVGVzdE9ialY4SW50ZXJuYWw6OnZhcmlhZGljTm9kZU1ldGhvZENhbGxiYWNr
LCB2OFVuZGVmaW5lZCgpLCB2YXJpYWRpY05vZGVNZXRob2RTaWduYXR1cmUpKTsKICAgICBWOERP
TUNvbmZpZ3VyYXRpb246OmJhdGNoQ29uZmlndXJlQ29uc3RhbnRzKGRlc2MsIHByb3RvLCBWOFRl
c3RPYmpDb25zdHMsIFdURl9BUlJBWV9MRU5HVEgoVjhUZXN0T2JqQ29uc3RzKSk7CkBAIC0yMTk0
LDcgKzIxOTQsNyBAQCB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gVjhUZXN0
T2JqOjpHZXRUZW1wbGF0ZSh2ODo6SXNvbGF0ZSogaXNvbGF0ZQogCiAgICAgdjg6OkhhbmRsZVNj
b3BlIGhhbmRsZVNjb3BlOwogICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiB0ZW1wbCA9Ci0gICAgICAgIENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKEdldFJhd1RlbXBs
YXRlKCkpOworICAgICAgICBDb25maWd1cmVWOFRlc3RPYmpUZW1wbGF0ZShHZXRSYXdUZW1wbGF0
ZShpc29sYXRlKSwgaXNvbGF0ZSk7CiAgICAgZGF0YS0+dGVtcGxhdGVNYXAoKS5hZGQoJmluZm8s
IHRlbXBsKTsKICAgICByZXR1cm4gdGVtcGw7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggMDEyOGViZjlkMGJhOTM1ZGVjMWNjYTczOTUxYmNk
Y2JkYTM5ZmM1Ny4uMTdkNzhhNjI2NTM3OTE4NWJmYTFmODI1YzU2ZTZjZjZhNzU5ZjE0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMTEzLDcg
KzExMyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4CiAgICAgcmV0dXJuIHRocm93VHlwZUVy
cm9yKDAsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIH0KIAotc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4
OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
VGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IGRlc2MpCitzdGF0
aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNUZW1wbGF0ZSh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4gZGVzYywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgZGVzYy0+UmVhZE9u
bHlQcm90b3R5cGUoKTsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpHZXRUZW1wbGF0
ZSh2CiAKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OlBlcnNpc3Rl
bnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IHRlbXBsID0KLSAgICAgICAgQ29uZmlndXJlVjhUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1RlbXBsYXRlKEdldFJhd1RlbXBsYXRlKCkpOworICAgICAg
ICBDb25maWd1cmVWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzVGVtcGxhdGUoR2V0UmF3VGVt
cGxhdGUoaXNvbGF0ZSksIGlzb2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFwKCkuYWRkKCZp
bmZvLCB0ZW1wbCk7CiAgICAgcmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCBlOTM1YmRhMWQ2
MWZlZmY5MWZmN2YxM2Q3Y2RkZDdlMmFlYTcxN2ZkLi4xZTcwMWJmNjM2MzBlM2NjNDkyZjhmMTkz
ZGZmOGYwNGY3YjNmZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmNvbnN0cnVj
dG9yQ2FsbGJhY2soCiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKLXN0YXRpYyB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gQ29uZmlndXJlVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVGVtcGxhdGUodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IGRlc2MpCitzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENv
bmZpZ3VyZVY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVRlbXBsYXRlKHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBkZXNjLCB2ODo6SXNvbGF0ZSogaXNvbGF0
ZSkKIHsKICAgICBkZXNjLT5SZWFkT25seVByb3RvdHlwZSgpOwogCkBAIC0yNzQsNyArMjc0LDcg
QEAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IFY4VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZTo6R2V0VGUKIAogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gdGVtcGwgPQot
ICAgICAgICBDb25maWd1cmVWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VUZW1w
bGF0ZShHZXRSYXdUZW1wbGF0ZSgpKTsKKyAgICAgICAgQ29uZmlndXJlVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlVGVtcGxhdGUoR2V0UmF3VGVtcGxhdGUoaXNvbGF0ZSksIGlz
b2xhdGUpOwogICAgIGRhdGEtPnRlbXBsYXRlTWFwKCkuYWRkKCZpbmZvLCB0ZW1wbCk7CiAgICAg
cmV0dXJuIHRlbXBsOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcAppbmRleCA5YjFlZTNkN2RmMDE0ODQ4ZjRiYWY4NjU3Y2MzNzk1N2MyOWE1
OTcwLi5hOTI2NTQ2NzQ4YWMxZWE5NTJhYzkzOGQ4NDc0NWM4N2E4Y2JlYmMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcApAQCAtMjc2LDcg
KzI3Niw3IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6Y3JlYXRlQ29udGV4dCgpCiAKICAgICAv
LyBDcmVhdGUgYSBuZXcgZW52aXJvbm1lbnQgdXNpbmcgYW4gZW1wdHkgdGVtcGxhdGUgZm9yIHRo
ZSBzaGFkb3cKICAgICAvLyBvYmplY3QuIFJldXNlIHRoZSBnbG9iYWwgb2JqZWN0IGlmIG9uZSBo
YXMgYmVlbiBjcmVhdGVkIGVhcmxpZXIuCi0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRl
bXBsYXRlPiBnbG9iYWxUZW1wbGF0ZSA9IFY4RE9NV2luZG93OjpHZXRTaGFkb3dPYmplY3RUZW1w
bGF0ZSgpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gZ2xvYmFsVGVt
cGxhdGUgPSBWOERPTVdpbmRvdzo6R2V0U2hhZG93T2JqZWN0VGVtcGxhdGUobV9pc29sYXRlKTsK
ICAgICBpZiAoZ2xvYmFsVGVtcGxhdGUuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExvY2F0aW9uQ3Vz
dG9tLmNwcAppbmRleCA3YjQ2MzVjNDJlMGVkMTM0YWQwYTI4ZmNlMGIzM2MyZGUyM2JlODcwLi42
NmYwN2QzNGQyMzNlNzAyNDViYzRhY2RlMjkxMGU5MmZjZDk2MjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwCkBA
IC0xMzgsNyArMTM4LDcgQEAgdm9pZCBWOExvY2F0aW9uOjpzZWFyY2hBY2Nlc3NvclNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjoKIAogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4TG9jYXRpb246OnJlbG9hZEFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewotICAgIHN0YXRp
YyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gcHJpdmF0ZVRlbXBsYXRlID0g
djg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXcodjg6OkZ1bmN0aW9uVGVt
cGxhdGU6Ok5ldyhWOExvY2F0aW9uOjpyZWxvYWRDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6
OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246OkdldFJhd1RlbXBsYXRlKCkpKSk7CisgICAgc3Rh
dGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwcml2YXRlVGVtcGxhdGUg
PSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25U
ZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OnJlbG9hZENhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2
ODo6U2lnbmF0dXJlOjpOZXcoVjhMb2NhdGlvbjo6R2V0UmF3VGVtcGxhdGUoaW5mby5HZXRJc29s
YXRlKCkpKSkpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gaW5mby5UaGlz
KCktPkZpbmRJbnN0YW5jZUluUHJvdG90eXBlQ2hhaW4oVjhMb2NhdGlvbjo6R2V0VGVtcGxhdGUo
aW5mby5HZXRJc29sYXRlKCkpKTsKICAgICBpZiAoaG9sZGVyLklzRW1wdHkoKSkgewogICAgICAg
ICAvLyBjYW4gb25seSByZWFjaCBoZXJlIGJ5ICdvYmplY3QuX19wcm90b19fLmZ1bmMnLCBhbmQg
aXQgc2hvdWxkIHBhc3NlZApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOExvY2F0aW9uOjpyZWxvYWRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtCiAgICAgfQogICAgIExvY2F0aW9uKiBpbXAgPSBWOExvY2F0aW9uOjp0b05hdGl2ZShob2xk
ZXIpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUo
QmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCksIERvTm90UmVwb3J0U2VjdXJp
dHlFcnJvcikpIHsKLSAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBzaGFyZWRUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPjo6TmV3KHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVjhMb2NhdGlvbjo6cmVsb2FkQ2Fs
bGJhY2ssIHY4VW5kZWZpbmVkKCksIHY4OjpTaWduYXR1cmU6Ok5ldyhWOExvY2F0aW9uOjpHZXRS
YXdUZW1wbGF0ZSgpKSkpOworICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0
aW9uVGVtcGxhdGU+IHNoYXJlZFRlbXBsYXRlID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9u
VGVtcGxhdGU+OjpOZXcodjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhWOExvY2F0aW9uOjpyZWxv
YWRDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246
OkdldFJhd1RlbXBsYXRlKGluZm8uR2V0SXNvbGF0ZSgpKSkpKTsKICAgICAgICAgcmV0dXJuIHNo
YXJlZFRlbXBsYXRlLT5HZXRGdW5jdGlvbigpOwogICAgIH0KICAgICByZXR1cm4gcHJpdmF0ZVRl
bXBsYXRlLT5HZXRGdW5jdGlvbigpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOExvY2F0aW9uOjpyZWxvYWRBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtCiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOExvY2F0aW9uOjpyZXBsYWNlQWNj
ZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7Ci0gICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiBwcml2YXRlVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1w
bGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OnJlcGxhY2VD
YWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246Okdl
dFJhd1RlbXBsYXRlKCkpKSk7CisgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlv
blRlbXBsYXRlPiBwcml2YXRlVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OnJlcGxh
Y2VDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246
OkdldFJhd1RlbXBsYXRlKGluZm8uR2V0SXNvbGF0ZSgpKSkpKTsKICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGhvbGRlciA9IGluZm8uVGhpcygpLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNo
YWluKFY4TG9jYXRpb246OkdldFRlbXBsYXRlKGluZm8uR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYg
KGhvbGRlci5Jc0VtcHR5KCkpIHsKICAgICAgICAgLy8gY2FuIG9ubHkgcmVhY2ggaGVyZSBieSAn
b2JqZWN0Ll9fcHJvdG9fXy5mdW5jJywgYW5kIGl0IHNob3VsZCBwYXNzZWQKQEAgLTE2NCw3ICsx
NjQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhMb2NhdGlvbjo6cmVwbGFjZUFjY2Vzc29y
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYQogICAgIH0KICAgICBMb2NhdGlvbiogaW1w
ID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUoaG9sZGVyKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0
eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1w
LT5mcmFtZSgpLCBEb05vdFJlcG9ydFNlY3VyaXR5RXJyb3IpKSB7Ci0gICAgICAgIHN0YXRpYyB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gc2hhcmVkVGVtcGxhdGUgPSB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0
ZTo6TmV3KFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwgdjg6OlNp
Z25hdHVyZTo6TmV3KFY4TG9jYXRpb246OkdldFJhd1RlbXBsYXRlKCkpKSk7CisgICAgICAgIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gc2hhcmVkVGVtcGxhdGUg
PSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25U
ZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OnJlcGxhY2VDYWxsYmFjaywgdjhVbmRlZmluZWQoKSwg
djg6OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246OkdldFJhd1RlbXBsYXRlKGluZm8uR2V0SXNv
bGF0ZSgpKSkpKTsKICAgICAgICAgcmV0dXJuIHNoYXJlZFRlbXBsYXRlLT5HZXRGdW5jdGlvbigp
OwogICAgIH0KICAgICByZXR1cm4gcHJpdmF0ZVRlbXBsYXRlLT5HZXRGdW5jdGlvbigpOwpAQCAt
MTczLDcgKzE3Myw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOExvY2F0aW9uOjpyZXBsYWNl
QWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hCiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhMb2NhdGlvbjo6YXNzaWduQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgc3RhdGljIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBwcml2YXRlVGVtcGxhdGUgPQotICAg
ICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rp
b25UZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OmFzc2lnbkNhbGxiYWNrLCB2OFVuZGVmaW5lZCgp
LCB2ODo6U2lnbmF0dXJlOjpOZXcoVjhMb2NhdGlvbjo6R2V0UmF3VGVtcGxhdGUoKSkpKTsKKyAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXcodjg6OkZ1bmN0
aW9uVGVtcGxhdGU6Ok5ldyhWOExvY2F0aW9uOjphc3NpZ25DYWxsYmFjaywgdjhVbmRlZmluZWQo
KSwgdjg6OlNpZ25hdHVyZTo6TmV3KFY4TG9jYXRpb246OkdldFJhd1RlbXBsYXRlKGluZm8uR2V0
SXNvbGF0ZSgpKSkpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhvbGRlciA9IGluZm8u
VGhpcygpLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKFY4TG9jYXRpb246OkdldFRlbXBs
YXRlKGluZm8uR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYgKGhvbGRlci5Jc0VtcHR5KCkpIHsKICAg
ICAgICAgLy8gY2FuIG9ubHkgcmVhY2ggaGVyZSBieSAnb2JqZWN0Ll9fcHJvdG9fXy5mdW5jJywg
YW5kIGl0IHNob3VsZCBwYXNzZWQKQEAgLTE4Miw3ICsxODIsNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhMb2NhdGlvbjo6YXNzaWduQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbQogICAgIH0KICAgICBMb2NhdGlvbiogaW1wID0gVjhMb2NhdGlvbjo6dG9OYXRpdmUo
aG9sZGVyKTsKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0Zy
YW1lKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBEb05vdFJlcG9ydFNl
Y3VyaXR5RXJyb3IpKSB7Ci0gICAgICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gc2hhcmVkVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFY4TG9jYXRpb246OmFzc2ln
bkNhbGxiYWNrLCB2OFVuZGVmaW5lZCgpLCB2ODo6U2lnbmF0dXJlOjpOZXcoVjhMb2NhdGlvbjo6
R2V0UmF3VGVtcGxhdGUoKSkpKTsKKyAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpG
dW5jdGlvblRlbXBsYXRlPiBzaGFyZWRUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPjo6TmV3KHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVjhMb2NhdGlvbjo6
YXNzaWduQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIHY4OjpTaWduYXR1cmU6Ok5ldyhWOExvY2F0
aW9uOjpHZXRSYXdUZW1wbGF0ZShpbmZvLkdldElzb2xhdGUoKSkpKSk7CiAgICAgICAgIHJldHVy
biBzaGFyZWRUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsKICAgICB9CiAgICAgcmV0dXJuIHByaXZh
dGVUZW1wbGF0ZS0+R2V0RnVuY3Rpb24oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>