<?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>130648</bug_id>
          
          <creation_ts>2014-03-22 16:33:49 -0700</creation_ts>
          <short_desc>CREATE_DOM_WRAPPER doesn&apos;t need the ExecState.</short_desc>
          <delta_ts>2014-03-22 17:35:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>alecflett</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>993582</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-22 16:33:49 -0700</bug_when>
    <thetext>CREATE_DOM_WRAPPER doesn&apos;t need the JSC::ExecState. The global object should have everything we need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993583</commentid>
    <comment_count>1</comment_count>
      <attachid>227578</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-22 16:36:19 -0700</bug_when>
    <thetext>Created attachment 227578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993584</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-22 16:37:57 -0700</bug_when>
    <thetext>Attachment 227578 did not pass style-queue:


ERROR: Source/WebCore/bindings/js/JSDOMBinding.h:211:  Extra space after ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993585</commentid>
    <comment_count>3</comment_count>
      <attachid>227578</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-22 16:42:34 -0700</bug_when>
    <thetext>Comment on attachment 227578
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMBinding.h:211
&gt; +template&lt;class WrapperClass, class DOMClass&gt; inline JSC::JSValue wrap( JSDOMGlobalObject* globalObject, DOMClass* domObject)

Extra space left here before JSDOMGlobalObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993591</commentid>
    <comment_count>4</comment_count>
      <attachid>227584</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-22 17:21:27 -0700</bug_when>
    <thetext>Created attachment 227584
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993595</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-22 17:35:52 -0700</bug_when>
    <thetext>Committed r166128: &lt;http://trac.webkit.org/changeset/166128&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227578</attachid>
            <date>2014-03-22 16:36:19 -0700</date>
            <delta_ts>2014-03-22 17:21:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130648.diff</filename>
            <type>text/plain</type>
            <size>48247</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDVlOTNhYmEuLmY2NWVjOTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE0LTAzLTIyICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KIAorICAgICAgICBDUkVBVEVfRE9NX1dSQVBQRVIgZG9lc24n
dCBuZWVkIHRoZSBFeGVjU3RhdGUuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzA2
NDg+CisKKyAgICAgICAgQWRkIGEgZmFzdCBwYXRoIGZyb20gSlNHbG9iYWxPYmplY3QgdG8gdGhl
IFZNIHNvIHdlIGRvbid0IGhhdmUKKyAgICAgICAgdG8gZGFuY2UgdmlhIHRoZSBIZWFwLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpKU0dsb2Jh
bE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU0dsb2JhbE9iamVjdDo6dm0pOgorCisyMDE0LTAzLTIyICBBbmRyZWFzIEtsaW5nICA8
YWtsaW5nQGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggZGVidWcgYnVpbGQuCiAKICAgICAgICAg
KiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDhlOTZkZTIuLmZjYjU1ZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTE1
OSw2ICsxNTksNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVj
dDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbAogCiBKU0dsb2JhbE9iamVjdDo6
SlNHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUqIGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQogICAgIDogQmFzZSh2
bSwgc3RydWN0dXJlLCAwKQorICAgICwgbV92bSh2bSkKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkK
ICAgICAsIG1faW5wdXRDdXJzb3IoRW1wdHlJbnB1dEN1cnNvcjo6Y3JlYXRlKCkpCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4
IGEwNTJkNmEuLmY5ZTg2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaApAQCAtMjM4LDYgKzIzOCw4IEBAIHByb3RlY3RlZDoKIAogICAgIERl
YnVnZ2VyKiBtX2RlYnVnZ2VyOwogCisgICAgVk0mIG1fdm07CisKICNpZiBFTkFCTEUoV0VCX1JF
UExBWSkKICAgICBSZWZQdHI8SW5wdXRDdXJzb3I+IG1faW5wdXRDdXJzb3I7CiAjZW5kaWYKQEAg
LTUzMyw3ICs1MzUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0UHJvdG90eXBlKFZNJiwg
SlNWYWx1ZSBwcm90b3R5cGUpOwogCi0gICAgVk0mIHZtKCkgY29uc3QgeyByZXR1cm4gKkhlYXA6
OmhlYXAodGhpcyktPnZtKCk7IH0KKyAgICBWTSYgdm0oKSBjb25zdCB7IHJldHVybiBtX3ZtOyB9
CiAgICAgSlNPYmplY3QqIGdsb2JhbFRoaXMoKSBjb25zdDsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHNldEdsb2JhbFRoaXMoVk0mLCBKU09iamVjdCogZ2xvYmFsVGhpcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjYzY2MGU3Li45MjdiMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIw
MTQtMDMtMjIgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIENS
RUFURV9ET01fV1JBUFBFUiBkb2Vzbid0IG5lZWQgdGhlIEV4ZWNTdGF0ZS4KKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEzMDY0OD4KKworICAgICAgICBSZW1vdmUgdGhlIEV4ZWNTdGF0
ZSBwYXJhbWV0ZXIgZnJvbSBDUkVBVEVfRE9NX1dSQVBQRVIgYW5kIGdldCBhbGwKKyAgICAgICAg
dGhhdCB3ZSBuZWVkIGZyb20gdGhlIGdsb2JhbCBvYmplY3QgaW5zdGVhZC4KKworICAgICAgICB0
b0pTKCkgYW5kIHRvSlNOZXdseUNyZWF0ZWQoKSBzdGlsbCB0YWtlIGFuIEV4ZWNTdGF0ZSwgdGhh
dCBuZWVkcworICAgICAgICB0byBiZSBkZWFsdCB3aXRoIHNlcGFyYXRlbHkgc2luY2Ugc29tZSBv
ZiB0aGVtIGhhdmUgc2NhcnkgbG9va2luZworICAgICAgICBjdXJyZW50V29ybGQoKSBjaGVja3Mu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1
ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAoV2ViQ29yZTo6SlNCbG9iQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQmxvYik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlND
U1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU5ld1dyYXBwZXIpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01l
ZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVXcmFwcGVySW5saW5lKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JUQ0lj
ZUNhbmRpZGF0ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1JUQ0ljZUNhbmRpZGF0
ZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1JUQ0ljZUNhbmRpZGF0ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNSVENQZWVyQ29ubmVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1JUQ1BlZXJDb25uZWN0aW9uQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUlRDUGVlckNvbm5l
Y3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ29uc3Ry
dWN0b3I6OmNvbnN0cnVjdEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RyYWNrQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL21ha2Vf
bmFtZXMucGw6CisgICAgICAgIChwcmludFdyYXBwZXJGdW5jdGlvbnMpOgorICAgICAgICAocHJp
bnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJpbnRXcmFwcGVyRmFjdG9yeUhl
YWRlckZpbGUpOgorCiAyMDE0LTAzLTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFNvbWUgI2luY2x1ZGUgaHlnaWVuZSBpbiBOb2RlL0VsZW1lbnQg
ZXRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1
c3RvbS5jcHAKaW5kZXggMDE5NjhmMC4uOTA5M2ViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtMTA2LDcgKzEwNiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNBdWRpb0NvbnRleHQoCiAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3Io
ZXhlYywgIkVycm9yIGNyZWF0aW5nIEF1ZGlvQ29udGV4dCIpKTsKIAotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpLCBBdWRpb0NvbnRleHQsIGF1ZGlvQ29udGV4dC5nZXQoKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpLCBBdWRpb0NvbnRleHQsIGF1ZGlvQ29udGV4dC5nZXQoKSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0Jsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3Vz
dG9tLmNwcAppbmRleCBiZmNkNGQxLi5kNjVkMzgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCkBAIC00OCwxNSArNDgsMTUgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBCbG9iKiBibG9iKQorSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEJs
b2IqIGJsb2IpCiB7CiAgICAgaWYgKCFibG9iKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
ICAgICBpZiAoYmxvYi0+aXNGaWxlKCkpCi0gICAgICAgIHJldHVybiB3cmFwPEpTRmlsZT4oZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxGaWxlKj4oYmxvYikpOworICAgICAgICByZXR1
cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8RmlsZSo+KGJsb2IpKTsK
IAotICAgIHJldHVybiB3cmFwPEpTQmxvYj4oZXhlYywgZ2xvYmFsT2JqZWN0LCBibG9iKTsKKyAg
ICByZXR1cm4gd3JhcDxKU0Jsb2I+KGdsb2JhbE9iamVjdCwgYmxvYik7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNCbG9iQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQmxvYihF
eGVjU3RhdGUqIGV4ZWMpCkBAIC02OCw3ICs2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNCbG9iQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQmxvYihFeGVjU3RhdGUqIGV4ZWMp
CiAKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkgewogICAgICAgICBSZWZQdHI8Qmxv
Yj4gYmxvYiA9IEJsb2I6OmNyZWF0ZSgpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KENSRUFURV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwg
QmxvYiwgYmxvYi5nZXQoKSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFU
RV9ET01fV1JBUFBFUihqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgQmxvYiwgYmxvYi5n
ZXQoKSkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIGJsb2JQYXJ0c0xlbmd0aCA9IDA7CkBAIC0x
MzUsNyArMTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0Jsb2JDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0ZSogZXhlYykKICAgICB9CiAKICAgICBSZWZQ
dHI8QmxvYj4gYmxvYiA9IGJsb2JCdWlsZGVyLmdldEJsb2IodHlwZSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIEJsb2IsIGJsb2IuZ2V0KCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKENSRUFURV9ET01fV1JBUFBFUihqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgQmxv
YiwgYmxvYi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAKaW5kZXgg
ZGU2NTVjMS4uOTcwOTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDREFUQVNlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcApAQCAtMzIsMTIgKzMyLDEyIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ0RB
VEFTZWN0aW9uKiBzZWN0aW9uKQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENEQVRBU2VjdGlvbiogc2VjdGlvbikK
IHsKICAgICBpZiAoIXNlY3Rpb24pCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKIAotICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDREFUQVNlY3Rpb24s
IHNlY3Rpb24pOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBD
REFUQVNlY3Rpb24sIHNlY3Rpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCA1YzIw
MDgyLi5kMDM5YjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVs
ZUN1c3RvbS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBKU0NTU1J1bGU6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3Qocm9vdCgmdGhpc09iamVjdC0+aW1wbCgpKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENTU1J1bGUq
IHJ1bGUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ1NTUnVsZSogcnVsZSkKIHsKICAgICBpZiAoIXJ1bGUpCiAgICAgICAgIHJldHVy
biBqc051bGwoKTsKQEAgLTc2LDQ2ICs3Niw0NiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NSdWxlKiBydWxlKQogCiAg
ICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBDU1NSdWxlOjpTVFlMRV9S
VUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIENTU1N0eWxlUnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NTU3R5bGVSdWxlLCBydWxlKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6Ok1FRElBX1JVTEU6Ci0gICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NT
TWVkaWFSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQ
RVIoZ2xvYmFsT2JqZWN0LCBDU1NNZWRpYVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6Ci0gICAgICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTRm9udEZhY2VS
dWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBDU1NGb250RmFjZVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1BhZ2VSdWxlLCBydWxlKTsK
KyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBD
U1NQYWdlUnVsZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDU1NS
dWxlOjpJTVBPUlRfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NJbXBvcnRSdWxlLCBydWxlKTsKKyAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBDU1NJbXBvcnRSdWxl
LCBydWxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6OkNIQVJT
RVRfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBDU1NDaGFyc2V0UnVsZSwgcnVsZSk7CisgICAgICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NTQ2hhcnNldFJ1bGUsIHJ1bGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX0tFWUZS
QU1FX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMs
IGdsb2JhbE9iamVjdCwgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLCBydWxlKTsKKyAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVs
ZTo6V0VCS0lUX0tFWUZSQU1FU19SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktpdENTU0tleWZyYW1lc1J1bGUsIHJ1
bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmpl
Y3QsIFdlYktpdENTU0tleWZyYW1lc1J1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAj
aWYgRU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6
U1VQUE9SVFNfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NTdXBwb3J0c1J1bGUsIHJ1bGUpOworICAgICAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1N1cHBvcnRzUnVs
ZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfREVW
SUNFX0FEQVBUQVRJT04pCiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX1ZJRVdQT1JUX1JV
TEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgV2ViS2l0Q1NTVmlld3BvcnRSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NWaWV3cG9ydFJ1
bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1JF
R0lPTlMpCiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX1JFR0lPTl9SVUxFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdl
YktpdENTU1JlZ2lvblJ1bGUsIHJ1bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFdlYktpdENTU1JlZ2lvblJ1bGUsIHJ1bGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NSdWxlLCBy
dWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2Jq
ZWN0LCBDU1NSdWxlLCBydWxlKTsKICAgICB9CiAKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKaW5kZXggMGIy
ZGFhYS4uYjU0ZGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
U1NWYWx1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NW
YWx1ZUN1c3RvbS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBKU0NTU1ZhbHVlT3duZXI6OmZp
bmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQog
ICAgIGpzQ1NTVmFsdWUtPnJlbGVhc2VJbXBsKCk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENTU1ZhbHVlKiB2YWx1
ZSkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOwpAQCAtODYsMjEgKzg2LDIxIEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENTU1ZhbHVlKiB2YWx1ZSkKICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAodmFsdWUtPmlzV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLCB2YWx1ZSk7CisgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZSwgdmFsdWUpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBlbHNlIGlmICh2
YWx1ZS0+aXNXZWJLaXRDU1NGaWx0ZXJWYWx1ZSgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Q1NTRmlsdGVyVmFsdWUsIHZh
bHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3Qs
IFdlYktpdENTU0ZpbHRlclZhbHVlLCB2YWx1ZSk7CiAjZW5kaWYKICAgICBlbHNlIGlmICh2YWx1
ZS0+aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIENTU1ZhbHVlTGlzdCwgdmFsdWUpOworICAgICAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NTVmFsdWVMaXN0LCB2YWx1ZSk7
CiAgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhaW50LCB2YWx1ZSk7Cisg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYWlu
dCwgdmFsdWUpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0NvbG9yKCkpCi0gICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdDb2xvciwg
dmFsdWUpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgU1ZHQ29sb3IsIHZhbHVlKTsKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgQ1NTUHJpbWl0aXZlVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1ByaW1pdGl2ZVZhbHVlLCB2YWx1ZSk7CiAg
ICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgQ1NTVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
V1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1ZhbHVlLCB2YWx1ZSk7CiAKICAgICByZXR1cm4gd3Jh
cHBlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDVjM2UxNDUuLmIyYTdmYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52
YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNTAsMTcgKzUwLDE3IEBAIHZvaWQgSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVSb290KHJvb3QodGhpc09iamVj
dC0+aW1wbCgpLmNhbnZhcygpKSk7CiB9CiAKLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0KiBvYmplY3QpCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIG9i
amVjdCkKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAj
aWYgRU5BQkxFKFdFQkdMKQogICAgIGlmIChvYmplY3QtPmlzM2QoKSkKLSAgICAgICAgcmV0dXJu
IHdyYXA8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4ob2JqZWN0KSk7CisgICAgICAgIHJldHVybiB3
cmFwPEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0PihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdl
YkdMUmVuZGVyaW5nQ29udGV4dCo+KG9iamVjdCkpOwogI2VuZGlmCiAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LT5pczJkKCkpOwotICAgIHJldHVybiB3cmFwPEpT
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG9iamVjdCkpOworICAgIHJldHVybiB3cmFwPEpT
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRCo+KG9iamVjdCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDY4ZmRl
OGIuLjUwNTgyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CkBAIC0xOTgsMjMgKzE5OCwyMyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgRE9NQ2xhc3MsIHR5cGVu
YW1lIFdyYXBwZXJDbGFzcz4gaW5saW5lIHZvaWQgdW5jYWNoZVdyYXBwZXIoRAogICAgIHdlYWtS
ZW1vdmUod29ybGQubV93cmFwcGVycywgKHZvaWQqKWRvbU9iamVjdCwgd3JhcHBlcik7CiB9CiAK
LSNkZWZpbmUgQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgY2xhc3NOYW1l
LCBvYmplY3QpIGNyZWF0ZVdyYXBwZXI8SlMjI2NsYXNzTmFtZT4oZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdGF0aWNfY2FzdDxjbGFzc05hbWUqPihvYmplY3QpKQotdGVtcGxhdGU8Y2xhc3MgV3JhcHBl
ckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTRE9NV3JhcHBlciogY3JlYXRlV3JhcHBl
cihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RE9NQ2xhc3MqIG5vZGUpCisjZGVmaW5lIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3Qs
IGNsYXNzTmFtZSwgb2JqZWN0KSBjcmVhdGVXcmFwcGVyPEpTIyNjbGFzc05hbWU+KGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkKK3RlbXBsYXRlPGNsYXNzIFdy
YXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0RPTVdyYXBwZXIqIGNyZWF0ZVdy
YXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5vZGUpCiB7
CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIEFTU0VSVCghZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxP
YmplY3QtPndvcmxkKCksIG5vZGUpKTsKLSAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBXcmFw
cGVyQ2xhc3M6OmNyZWF0ZShnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjLT52bSgp
LCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QsIG5vZGUpOworICAgIEFTU0VSVCghZ2V0Q2Fj
aGVkV3JhcHBlcihnbG9iYWxPYmplY3Qud29ybGQoKSwgbm9kZSkpOworICAgIFdyYXBwZXJDbGFz
cyogd3JhcHBlciA9IFdyYXBwZXJDbGFzczo6Y3JlYXRlKGdldERPTVN0cnVjdHVyZTxXcmFwcGVy
Q2xhc3M+KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0LCBu
b2RlKTsKICAgICBjYWNoZVdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBub2RlLCB3cmFw
cGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNs
YXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSB3cmFwKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01DbGFzcyogZG9t
T2JqZWN0KQordGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5s
aW5lIEpTQzo6SlNWYWx1ZSB3cmFwKCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
T01DbGFzcyogZG9tT2JqZWN0KQogewogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1
cm4gSlNDOjpqc051bGwoKTsKICAgICBpZiAoSlNDOjpKU09iamVjdCogd3JhcHBlciA9IGdldENh
Y2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBkb21PYmplY3QpKQogICAgICAgICBy
ZXR1cm4gd3JhcHBlcjsKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4
ZWMsIGdsb2JhbE9iamVjdCwgZG9tT2JqZWN0KTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxX
cmFwcGVyQ2xhc3M+KGdsb2JhbE9iamVjdCwgZG9tT2JqZWN0KTsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSBnZXRF
eGlzdGluZ1dyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3Mq
IGRvbU9iamVjdCkKQEAgLTIyMywxMSArMjIzLDExIEBAIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJD
bGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgZ2V0RXhpc3RpbmdXcmFw
CiAgICAgcmV0dXJuIGdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBkb21P
YmplY3QpOwogfQogCi10ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNz
PiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNyZWF0ZU5ld1dyYXBwZXIoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBkb21PYmplY3Qp
Cit0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUgSlND
OjpKU1ZhbHVlIGNyZWF0ZU5ld1dyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRE9NQ2xhc3MqIGRvbU9iamVjdCkKIHsKICAgICBBU1NFUlQoZG9tT2JqZWN0KTsKICAgICBB
U1NFUlQoIWdldENhY2hlZFdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53b3JsZCgpLCBkb21PYmplY3Qp
KTsKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxXcmFwcGVyQ2xhc3M+KGV4ZWMsIGdsb2JhbE9i
amVjdCwgZG9tT2JqZWN0KTsKKyAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxXcmFwcGVyQ2xhc3M+
KGdsb2JhbE9iamVjdCwgZG9tT2JqZWN0KTsKIH0KIAogaW5saW5lIEpTQzo6SlNWYWx1ZSBhcmd1
bWVudE9yTnVsbChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDU0ZTdj
NWQuLjE0YzA4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9j
dW1lbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwCkBAIC05MywxMSArOTMsMTEgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
ZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW4K
ICAgICB9CiAKICAgICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MRG9jdW1l
bnQsIGRvY3VtZW50KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9i
YWxPYmplY3QsIEhUTUxEb2N1bWVudCwgZG9jdW1lbnQpOwogICAgIGVsc2UgaWYgKGRvY3VtZW50
LT5pc1NWR0RvY3VtZW50KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdEb2N1bWVudCwgZG9jdW1lbnQpOworICAgICAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHRG9jdW1lbnQsIGRvY3Vt
ZW50KTsKICAgICBlbHNlCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhl
YywgZ2xvYmFsT2JqZWN0LCBEb2N1bWVudCwgZG9jdW1lbnQpOworICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRG9jdW1lbnQsIGRvY3VtZW50KTsKIAog
ICAgIC8vIE1ha2Ugc3VyZSB0aGUgZG9jdW1lbnQgaXMga2VwdCBhcm91bmQgYnkgdGhlIHdpbmRv
dyBvYmplY3QsIGFuZCB3b3JrcyByaWdodCB3aXRoIHRoZQogICAgIC8vIGJhY2svZm9yd2FyZCBj
YWNoZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3Bw
CmluZGV4IGNhNTI2ZjIuLjEzYzkyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFbGVtZW50Q3VzdG9tLmNwcApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUpTVmFsdWUgdG9KU05ld2x5Q3Jl
YXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVs
ZW1lbnQqIGVsZW1lbnQpCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBp
ZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTU3LDExICs1NywxMSBA
QCBKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbGVtZQogCiAgICAgSlNET01XcmFwcGVyKiB3cmFwcGVyOyAg
ICAgICAgCiAgICAgaWYgKGVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSkKLSAgICAgICAgd3JhcHBl
ciA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0hUTUxFbGVtZW50
KGVsZW1lbnQpKTsKKyAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIoZ2xvYmFs
T2JqZWN0LCB0b0hUTUxFbGVtZW50KGVsZW1lbnQpKTsKICAgICBlbHNlIGlmIChlbGVtZW50LT5p
c1NWR0VsZW1lbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpTU1ZHV3JhcHBlcihleGVj
LCBnbG9iYWxPYmplY3QsIHRvU1ZHRWxlbWVudChlbGVtZW50KSk7CisgICAgICAgIHdyYXBwZXIg
PSBjcmVhdGVKU1NWR1dyYXBwZXIoZ2xvYmFsT2JqZWN0LCB0b1NWR0VsZW1lbnQoZWxlbWVudCkp
OwogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsIEVsZW1lbnQsIGVsZW1lbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRWxlbWVudCwgZWxlbWVudCk7CiAKICAgICByZXR1
cm4gd3JhcHBlcjsgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRD
dXN0b20uY3BwCmluZGV4IGJlYTliYmYuLmU1YWZjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCkBAIC01MCwxMSArNTAsMTEgQEAgSlNWYWx1ZSBK
U0V2ZW50OjpjbGlwYm9hcmREYXRhKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIAogI2RlZmluZSBU
UllfVE9fV1JBUF9XSVRIX0lOVEVSRkFDRShpbnRlcmZhY2VOYW1lKSBcCiAgICAgY2FzZSBpbnRl
cmZhY2VOYW1lIyNJbnRlcmZhY2VUeXBlOiBcCi0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dS
QVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnRlcmZhY2VOYW1lLCBldmVudCk7CisgICAgICAg
IHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBpbnRlcmZhY2VOYW1lLCBl
dmVudCk7CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEV2ZW50KiBldmVudCkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudCogZXZlbnQpCiB7Ci0gICAgSlNM
b2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0
LT52bSgpKTsKIAogICAgIGlmICghZXZlbnQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAg
LTY3LDcgKzY3LDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnQqIGV2ZW50KQogICAgICAgICBET01fRVZFTlRfSU5U
RVJGQUNFU19GT1JfRUFDSChUUllfVE9fV1JBUF9XSVRIX0lOVEVSRkFDRSkKICAgICB9CiAKLSAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRXZlbnQsIGV2
ZW50KTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRXZlbnQs
IGV2ZW50KTsKIH0KIAogI3VuZGVmIFRSWV9UT19XUkFQX1dJVEhfSU5URVJGQUNFCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3Bw
CmluZGV4IGIzNmI1NGQuLmVmMjY4Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNTIsNyArNTIsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0hUTUxDb2xsZWN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHNsb3RCYXNlLAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9KUyhl
eGVjLCBjb2xsZWN0aW9uLT5nbG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbi0+aW1wbCgpLm5hbWVk
SXRlbShuYW1lKSkpOwogfQogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKK0pT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBI
VE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKIHsKICAgICBpZiAoIWNvbGxlY3Rpb24pCiAgICAg
ICAgIHJldHVybiBqc051bGwoKTsKQEAgLTY0LDE2ICs2NCwxNiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBIVE1MQ29sbGVj
dGlvbiogYwogCiAgICAgc3dpdGNoIChjb2xsZWN0aW9uLT50eXBlKCkpIHsKICAgICBjYXNlIEZv
cm1Db250cm9sczoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKKyAgICAg
ICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEhUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6Ci0gICAg
ICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBIVE1MT3B0
aW9uc0NvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGdsb2JhbE9iamVjdCwgSFRNTE9wdGlvbnNDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsK
ICAgICBjYXNlIERvY0FsbDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIEhUTUxBbGxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKKyAgICAgICAg
cmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEhUTUxBbGxDb2xsZWN0aW9u
LCBjb2xsZWN0aW9uKTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CiAKLSAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTENvbGxl
Y3Rpb24sIGNvbGxlY3Rpb24pOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFs
T2JqZWN0LCBIVE1MQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFRl
bXBsYXRlRWxlbWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hU
TUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IDJkN2Y1YzQuLmUxMjE5OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTFRlbXBsYXRlRWxlbWVudEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MVGVtcGxhdGVF
bGVtZW50Q3VzdG9tLmNwcApAQCAtNTMsNyArNTMsNyBAQCBKU1ZhbHVlIEpTSFRNTFRlbXBsYXRl
RWxlbWVudDo6Y29udGVudChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKHdyYXBwZXIp
CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QoKSwgRG9jdW1lbnRGcmFnbWVudCwgY29udGVudCk7Cisg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QoKSwgRG9jdW1lbnRG
cmFnbWVudCwgY29udGVudCk7CiAgICAgUHJpdmF0ZU5hbWUgcHJvcGVydHlOYW1lOwogICAgIGNv
bnN0X2Nhc3Q8SlNIVE1MVGVtcGxhdGVFbGVtZW50Kj4odGhpcyktPnB1dERpcmVjdChnbG9iYWxP
YmplY3QoKS0+dm0oKSwgcHJvcGVydHlOYW1lLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcAppbmRl
eCA1NjQ5Yzg1Li4xNDY1MzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0lEQkFueUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
REJBbnlDdXN0b20uY3BwCkBAIC04NSw3ICs4NSw3IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIElEQkFueSogaWRiQW55KQog
ICAgIGNhc2UgSURCQW55OjpJREJDdXJzb3JUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiQ3Vyc29yKCkpOwogICAgIGNhc2UgSURCQW55OjpJ
REJDdXJzb3JXaXRoVmFsdWVUeXBlOgotICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1cnNvcldp
dGhWYWx1ZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcldpdGhWYWx1ZSgp
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHdyYXA8SlNJREJDdXJzb3JXaXRoVmFsdWU+KGdsb2Jh
bE9iamVjdCwgaWRiQW55LT5pZGJDdXJzb3JXaXRoVmFsdWUoKS5nZXQoKSk7CiAgICAgY2FzZSBJ
REJBbnk6OklEQkRhdGFiYXNlVHlwZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBpZGJBbnktPmlkYkRhdGFiYXNlKCkpOwogICAgIGNhc2UgSURCQW55OjpJREJGYWN0
b3J5VHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VE
YXRhQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3Vz
dG9tLmNwcAppbmRleCBiMGQxZDYxLi5lZGM1NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwCkBAIC00Myw3ICs0Myw3IEBAIEpTVmFs
dWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEltYWdlRGF0YSogaW1hZ2VECiAgICAgaWYgKHdyYXBwZXIpCiAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogICAgIAotICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBJbWFnZURhdGEsIGltYWdlRGF0YSk7CisgICAgd3JhcHBlciA9IENSRUFURV9ET01f
V1JBUFBFUihnbG9iYWxPYmplY3QsIEltYWdlRGF0YSwgaW1hZ2VEYXRhKTsKICAgICBJZGVudGlm
aWVyIGRhdGFOYW1lKGV4ZWMsICJkYXRhIik7CiAgICAgd3JhcHBlci0+cHV0RGlyZWN0KGV4ZWMt
PnZtKCksIGRhdGFOYW1lLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1hZ2VEYXRhLT5kYXRh
KCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogICAgIGV4ZWMtPmhlYXAoKS0+cmVwb3J0RXh0
cmFNZW1vcnlDb3N0KGltYWdlRGF0YS0+ZGF0YSgpLT5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1DYXBhYmlsaXRp
ZXNDdXN0b20uY3BwCmluZGV4IDkzYTQ0ZTAuLjM2YzhjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXNDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1DYXBhYmlsaXRpZXND
dXN0b20uY3BwCkBAIC00Myw5ICs0Myw5IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZWRpYVN0CiAgICAg
ICAgIHJldHVybiBqc051bGwoKTsKIAogICAgIGlmIChvYmplY3QtPmhhc1ZpZGVvU291cmNlKCkp
Ci0gICAgICAgIHJldHVybiB3cmFwPEpTQWxsVmlkZW9DYXBhYmlsaXRpZXM+KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8QWxsVmlkZW9DYXBhYmlsaXRpZXMqPihvYmplY3QpKTsKKyAg
ICAgICAgcmV0dXJuIHdyYXA8SlNBbGxWaWRlb0NhcGFiaWxpdGllcz4oZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxBbGxWaWRlb0NhcGFiaWxpdGllcyo+KG9iamVjdCkpOwogCi0gICAgcmV0dXJu
IHdyYXA8SlNBbGxBdWRpb0NhcGFiaWxpdGllcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxBbGxBdWRpb0NhcGFiaWxpdGllcyo+KG9iamVjdCkpOworICAgIHJldHVybiB3cmFwPEpT
QWxsQXVkaW9DYXBhYmlsaXRpZXM+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QWxsQXVkaW9D
YXBhYmlsaXRpZXMqPihvYmplY3QpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggYjljNjYyOS4u
OGEwZWExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CkBAIC0yMDIsNDcgKzIwMiw0NyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGNyZWF0
ZVdyYXBwZXJJbmxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iagogICAgIHN3aXRj
aCAobm9kZS0+bm9kZVR5cGUoKSkgewogICAgICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToK
ICAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAg
d3JhcHBlciA9IGNyZWF0ZUpTSFRNTFdyYXBwZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCB0b0hUTUxF
bGVtZW50KG5vZGUpKTsKKyAgICAgICAgICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNIVE1MV3Jh
cHBlcihnbG9iYWxPYmplY3QsIHRvSFRNTEVsZW1lbnQobm9kZSkpOwogICAgICAgICAgICAgZWxz
ZSBpZiAobm9kZS0+aXNTVkdFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgd3JhcHBlciA9IGNy
ZWF0ZUpTU1ZHV3JhcHBlcihleGVjLCBnbG9iYWxPYmplY3QsIHRvU1ZHRWxlbWVudChub2RlKSk7
CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpTU1ZHV3JhcHBlcihnbG9iYWxPYmpl
Y3QsIHRvU1ZHRWxlbWVudChub2RlKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEVsZW1l
bnQsIG5vZGUpOworICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIo
Z2xvYmFsT2JqZWN0LCBFbGVtZW50LCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIE5vZGU6OkFUVFJJQlVURV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEF0dHIsIG5vZGUpOworICAgICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEF0dHIsIG5vZGUp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgotICAg
ICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3Qs
IFRleHQsIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihn
bG9iYWxPYmplY3QsIFRleHQsIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENEQVRBU2VjdGlvbiwgbm9kZSk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ0RB
VEFTZWN0aW9uLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6
OkVOVElUWV9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIEVudGl0eSwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5LCBub2RlKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9E
RToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sIG5vZGUpOworICAgICAgICAgICAgd3JhcHBl
ciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpDT01NRU5U
X05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgQ29tbWVudCwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ29tbWVudCwgbm9kZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgLy8g
d2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBwZXItZG9j
dW1lbnQgZGljdGlvbmFyeQogICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCB0b0RvY3VtZW50KG5vZGUpKTsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9UWVBF
X05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgRG9jdW1lbnRUeXBlLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBEb2N1bWVudFR5cGUsIG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6Tk9UQVRJT05fTk9ERToKLSAgICAg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBO
b3RhdGlvbiwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVS
KGdsb2JhbE9iamVjdCwgTm90YXRpb24sIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfRlJBR01FTlRfTk9ERToKLSAgICAgICAgICAgIHdyYXBw
ZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBEb2N1bWVudEZyYWdt
ZW50LCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBEb2N1bWVudEZyYWdtZW50LCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE5vZGU6OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKLSAgICAgICAgICAgIHdy
YXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFbnRpdHlSZWZl
cmVuY2UsIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihn
bG9iYWxPYmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBOb2RlLCBub2RlKTsKICAgICB9CiAK
ICAgICByZXR1cm4gd3JhcHBlcjsgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JUQ0ljZUNhbmRpZGF0ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JUQ0ljZUNhbmRpZGF0ZUN1c3RvbS5jcHAKaW5kZXggMTQ4ZmYxMS4uMTEzOWYw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSVENJY2VDYW5kaWRh
dGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDSWNlQ2Fu
ZGlkYXRlQ3VzdG9tLmNwcApAQCAtNjEsNyArNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTUlRDSWNlQ2FuZGlkYXRlQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUlRDSWNlQ2Fu
ZAogICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVj
LCAiRXJyb3IgY3JlYXRpbmcgUlRDSWNlQ2FuZGlkYXRlIikpOwogICAgIH0KIAotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3It
Pmdsb2JhbE9iamVjdCgpLCBSVENJY2VDYW5kaWRhdGUsIGljZUNhbmRpZGF0ZS5nZXQoKSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGpzQ29uc3RydWN0
b3ItPmdsb2JhbE9iamVjdCgpLCBSVENJY2VDYW5kaWRhdGUsIGljZUNhbmRpZGF0ZS5nZXQoKSkp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JUQ1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUlRDUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCmluZGV4IGFiOTMx
N2QuLjA2MjdiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRD
UGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUlRDUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCkBAIC02NSw3ICs2NSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNSVENQZWVyQ29ubmVjdGlvbkNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU1JUQ1BlZXJDCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
VHlwZUVycm9yKGV4ZWMsICJFcnJvciBjcmVhdGluZyBSVENQZWVyQ29ubmVjdGlvbiIpKTsKICAg
ICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihleGVj
LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgUlRDUGVlckNvbm5lY3Rpb24sIHBlZXJD
b25uZWN0aW9uLmdldCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShDUkVBVEVfRE9N
X1dSQVBQRVIoanNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFJUQ1BlZXJDb25uZWN0aW9u
LCBwZWVyQ29ubmVjdGlvbi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkN1c3RvbS5jcHAKaW5kZXggZGRmMDNmMy4uN2QxYTczNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uQ3VzdG9tLmNwcApAQCAtNjEsNyArNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUlRDUwog
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAi
RXJyb3IgY3JlYXRpbmcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIikpOwogICAgIH0KIAotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0
b3ItPmdsb2JhbE9iamVjdCgpLCBSVENTZXNzaW9uRGVzY3JpcHRpb24sIHNlc3Npb25EZXNjcmlw
dGlvbi5nZXQoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQ
UEVSKGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBSVENTZXNzaW9uRGVzY3JpcHRpb24s
IHNlc3Npb25EZXNjcmlwdGlvbi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNw
cAppbmRleCBkYmFlNDU3Li4xZTA3NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTU1ZHUGF0aFNlZ0N1c3RvbS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnKiBv
YmplY3QpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU1ZHUGF0aFNlZyogb2JqZWN0KQogewogICAgIGlmICghb2JqZWN0KQogICAgICAg
ICByZXR1cm4ganNOdWxsKCk7CkBAIC02OSw0NiArNjksNDYgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZyog
b2JqZWMKIAogICAgIHN3aXRjaCAob2JqZWN0LT5wYXRoU2VnVHlwZSgpKSB7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX0NMT1NFUEFUSDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01f
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDbG9zZVBhdGgsIG9iamVjdCk7
CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRo
U2VnQ2xvc2VQYXRoLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZF
VE9fQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgU1ZHUGF0aFNlZ01vdmV0b0Ficywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFU
RV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdNb3ZldG9BYnMsIG9iamVjdCk7
CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX01PVkVUT19SRUw6Ci0gICAgICAgIHJldHVy
biBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTW92ZXRv
UmVsLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9i
amVjdCwgU1ZHUGF0aFNlZ01vdmV0b1JlbCwgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6
OlBBVEhTRUdfTElORVRPX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9BYnMsIG9iamVjdCk7CisgICAgICAg
IHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRv
QWJzLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fUkVMOgot
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZH
UGF0aFNlZ0xpbmV0b1JlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9SZWwsIG9iamVjdCk7CiAgICAgY2Fz
ZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOgotICAgICAgICByZXR1cm4g
Q1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0Ficywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9i
YWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMsIG9iamVjdCk7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOgotICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1JlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxP
YmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWwsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQ
YXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzoKLSAgICAgICAgcmV0dXJuIENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljQWJzLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGds
b2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMsIG9iamVjdCk7CiAgICAg
Y2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDoKLSAgICAgICAg
cmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljUmVsLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwsIG9iamVj
dCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0FSQ19BQlM6Ci0gICAgICAgIHJldHVy
biBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQXJjQWJz
LCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgU1ZHUGF0aFNlZ0FyY0Ficywgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhT
RUdfQVJDX1JFTDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIFNWR1BhdGhTZWdBcmNSZWwsIG9iamVjdCk7CisgICAgICAgIHJldHVybiBDUkVB
VEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQXJjUmVsLCBvYmplY3QpOwog
ICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM6Ci0gICAg
ICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbEFicywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9E
T01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLCBv
YmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9S
RUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJu
IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsUmVsLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fVkVS
VElDQUxfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLCBvYmplY3QpOworICAgICAgICBy
ZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1Zl
cnRpY2FsQWJzLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9f
VkVSVElDQUxfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLCBvYmplY3QpOworICAgICAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsUmVsLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJW
RVRPX0NVQklDX1NNT09USF9BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLCBvYmpl
Y3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicywgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhT
ZWc6OlBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihn
bG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwsIG9iamVjdCk7CiAg
ICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM6
Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicywgb2JqZWN0KTsKKyAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoQWJzLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19D
VVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9v
dGhSZWwsIG9iamVjdCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFs
T2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCwgb2JqZWN0KTsKICAg
ICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfVU5LTk9XTjoKICAgICBkZWZhdWx0OgotICAgICAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNl
Zywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmpl
Y3QsIFNWR1BhdGhTZWcsIG9iamVjdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRleCA5YzBiNmIzLi4yMGEy
NjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1
c3RvbS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCBKU1N0eWxlU2hlZXQ6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9w
YXF1ZVJvb3Qocm9vdCgmdGhpc09iamVjdC0+aW1wbCgpKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlU2hl
ZXQqIHN0eWxlU2hlZXQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsKICAgICBpZiAoIXN0
eWxlU2hlZXQpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTU1LDkgKzU1LDkgQEAgSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3R5bGVTaGVldCogc3R5bGUKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAo
c3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NTdHlsZVNoZWV0LCBzdHlsZVNoZWV0
KTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENT
U1N0eWxlU2hlZXQsIHN0eWxlU2hlZXQpOwogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFN0eWxlU2hlZXQsIHN0eWxlU2hl
ZXQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwg
U3R5bGVTaGVldCwgc3R5bGVTaGVldCk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCmluZGV4IDRiNmU1MjkuLjg2
OTMzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcApA
QCAtMzIsMTIgKzMyLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dCogdGV4dCkKK0pTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXh0
KiB0ZXh0KQogewogICAgIGlmICghdGV4dCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAg
IAotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUZXh0
LCB0ZXh0KTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVGV4
dCwgdGV4dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcAppbmRleCA1Nzg1NDJi
Li5mNzVhYmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRU
cmFja0N1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0
VHJhY2tDdWVDdXN0b20uY3BwCkBAIC01OCw3ICs1OCw3IEBAIGJvb2wgSlNUZXh0VHJhY2tDdWVP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoCiAgICAgcmV0dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QodGV4dFRyYWNr
Q3VlLnRyYWNrKCkpKTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNrQ3VlKiBjdWUpCitKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNr
Q3VlKiBjdWUpCiB7CiAgICAgaWYgKCFjdWUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAg
LTcxLDEwICs3MSwxMCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXh0VHJhY2tDdWUqIGN1ZQogICAgIC8vIFRoaXMgc3dp
dGNoIHdpbGwgbWFrZSBtb3JlIHNlbnNlIG9uY2Ugd2Ugc3VwcG9ydCBEYXRhQ3VlCiAgICAgc3dp
dGNoIChjdWUtPmN1ZVR5cGUoKSkgewogICAgIGNhc2UgVGV4dFRyYWNrQ3VlOjpEYXRhOgotICAg
ICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRGF0YUN1
ZSwgY3VlKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3Qs
IERhdGFDdWUsIGN1ZSk7CiAgICAgY2FzZSBUZXh0VHJhY2tDdWU6OldlYlZUVDoKICAgICBjYXNl
IFRleHRUcmFja0N1ZTo6R2VuZXJpYzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBF
UihleGVjLCBnbG9iYWxPYmplY3QsIFZUVEN1ZSwgY3VlKTsKKyAgICAgICAgcmV0dXJuIENSRUFU
RV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFZUVEN1ZSwgY3VlKTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyYWNrQ3VzdG9tLmNwcAppbmRleCBiNjVj
MDI1Li4yODM0YjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Ry
YWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyYWNrQ3Vz
dG9tLmNwcApAQCAtNTIsNyArNTIsNyBAQCBUcmFja0Jhc2UqIHRvVHJhY2soSlNWYWx1ZSB2YWx1
ZSkKICAgICByZXR1cm4gMDsKIH0KIAotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRyYWNrQmFzZSogdHJhY2sp
CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRyYWNrQmFzZSogdHJhY2spCiB7CiAgICAgaWYgKCF0cmFjaykKICAgICAg
ICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNjgsMTMgKzY4LDEzIEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
cmFja0JhCiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIFRyYWNrQmFzZTo6QXVk
aW9UcmFjazoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxP
YmplY3QsIEF1ZGlvVHJhY2ssIHRyYWNrKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIEF1ZGlvVHJhY2ssIHRyYWNrKTsKIAogICAgIGNhc2UgVHJhY2tC
YXNlOjpWaWRlb1RyYWNrOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMs
IGdsb2JhbE9iamVjdCwgVmlkZW9UcmFjaywgdHJhY2spOworICAgICAgICByZXR1cm4gQ1JFQVRF
X0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVmlkZW9UcmFjaywgdHJhY2spOwogCiAgICAgY2Fz
ZSBUcmFja0Jhc2U6OlRleHRUcmFjazoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBF
UihleGVjLCBnbG9iYWxPYmplY3QsIFRleHRUcmFjaywgdHJhY2spOworICAgICAgICByZXR1cm4g
Q1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVGV4dFRyYWNrLCB0cmFjayk7CiAgICAg
fQogICAgIAogICAgIHJldHVybiBqc051bGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZTg2Y2UyMy4uZTI0MmRmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KQEAgLTMwMTIsNyArMzAxMiw3IEBAIGV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogJHt2
dGFibGVOYW1lR251fVtdOyB9CiAjZW5kaWYKIEVORAogCi0gICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsICRpbXBsVHlwZSogaW1wbClcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgJGltcGxUeXBlKiBpbXBsKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8
PEVORCk7CiAgICAgaWYgKCFpbXBsKQpAQCAtMzA1NywxMyArMzA1NywxMyBAQCBFTkQKICNlbmRp
ZgogRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCkgaWYgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcG9ydEV4dHJhTWVtb3J5Q29zdCJ9OwotICAgIGV4ZWMt
PmhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9yeUNvc3QoKSk7CisgICAg
Z2xvYmFsT2JqZWN0LT52bSgpLmhlYXAucmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9y
eUNvc3QoKSk7CiBFTkQKIAogICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8JGNs
YXNzTmFtZSwgJGltcGxUeXBlPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjwk
Y2xhc3NOYW1lLCAkaW1wbFR5cGU+KGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjcmVh
dGVOZXdXcmFwcGVyPCRjbGFzc05hbWU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBjcmVhdGVOZXdXcmFw
cGVyPCRjbGFzc05hbWU+KGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsKICAgICAgICAgfQogCiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMu
cGwKaW5kZXggMjk2MzdmMi4uMDAyZjI4NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKQEAg
LTExMTMsMTEgKzExMTMsMTEgQEAgc3ViIHByaW50V3JhcHBlckZ1bmN0aW9ucwogCiAgICAgICAg
IGlmICgkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e3dyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxl
fSkgewogICAgICAgICAgICAgcHJpbnQgRiA8PEVORAotc3RhdGljIEpTRE9NV3JhcHBlciogY3Jl
YXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVs
ZW1lbnQ+IGVsZW1lbnQpCitzdGF0aWMgSlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50ZXJmYWNl
TmFtZX1XcmFwcGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8
JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgaWYgKGVsZW1l
bnQtPmlzSFRNTFVua25vd25FbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dS
QVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudCwg
ZWxlbWVudC5nZXQoKSk7Ci0gICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CisgICAgICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3tuYW1lc3Bh
Y2V9RWxlbWVudCwgZWxlbWVudC5nZXQoKSk7CisgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBF
UihnbG9iYWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiB9CiAK
IEVORApAQCAtMTEyNSwyMiArMTEyNSwyMiBAQCBFTkQKICAgICAgICAgfSBlbHNpZiAoJGVuYWJs
ZWRUYWdzeyR0YWdOYW1lfXtydW50aW1lQ29uZGl0aW9uYWx9KSB7CiAgICAgICAgICAgICBteSAk
cnVudGltZUNvbmRpdGlvbmFsID0gJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtydW50aW1lQ29uZGl0
aW9uYWx9OwogICAgICAgICAgICAgcHJpbnQgRiA8PEVORAotc3RhdGljIEpTRE9NV3JhcHBlciog
Y3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNl
fUVsZW1lbnQ+IGVsZW1lbnQpCitzdGF0aWMgSlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50ZXJm
YWNlTmFtZX1XcmFwcGVyKEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQ
dHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgaWYgKCFS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLiR7cnVudGltZUNvbmRpdGlv
bmFsfUVuYWJsZWQoKSkgewogICAgICAgICBBU1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+aXMk
cGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KCkpOwotICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7ZmFsbGJhY2tK
U0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9E
T01fV1JBUFBFUihnbG9iYWxPYmplY3QsICRwYXJhbWV0ZXJze2ZhbGxiYWNrSlNJbnRlcmZhY2VO
YW1lfSwgZWxlbWVudC5nZXQoKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQo
KSk7CisgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsICR7SlNJbnRl
cmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiB9CiBFTkQKICAgICA7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBwcmludCBGIDw8RU5ECi1zdGF0aWMgSlNET01XcmFwcGVyKiBjcmVh
dGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxl
bWVudD4gZWxlbWVudCkKK3N0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VO
YW1lfVdyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwk
cGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCkKIHsKLSAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHtKU0ludGVyZmFjZU5hbWV9LCBl
bGVtZW50LmdldCgpKTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgJHtKU0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKIH0KIAogRU5ECkBAIC0xMTkx
LDcgKzExOTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSAkcGFy
YW1ldGVyc3tuYW1lc3BhY2V9TmFtZXM7CiAKLXR5cGVkZWYgSlNET01XcmFwcGVyKiAoKkNyZWF0
ZSRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50V3JhcHBlckZ1bmN0aW9uKShFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVs
ZW1lbnQ+KTsKK3R5cGVkZWYgSlNET01XcmFwcGVyKiAoKkNyZWF0ZSRwYXJhbWV0ZXJze25hbWVz
cGFjZX1FbGVtZW50V3JhcHBlckZ1bmN0aW9uKShKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQ
dHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+KTsKIAogRU5ECiA7CkBAIC0xMjM5LDE0
ICsxMjM5LDE0IEBAIEVORAogICAgICAgICBtYXAuYWRkKHRhYmxlW2ldLm5hbWUubG9jYWxOYW1l
KCkuaW1wbCgpLCB0YWJsZVtpXS5mdW5jdGlvbik7CiB9CiAKLUpTRE9NV3JhcHBlciogY3JlYXRl
SlMkcGFyYW1ldGVyc3tuYW1lc3BhY2V9V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNl
fUVsZW1lbnQ+IGVsZW1lbnQpCitKU0RPTVdyYXBwZXIqIGNyZWF0ZUpTJHBhcmFtZXRlcnN7bmFt
ZXNwYWNlfVdyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0
cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCkKIHsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlJHBhcmFtZXRl
cnN7bmFtZXNwYWNlfUVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+PiBmdW5jdGlvbnM7CiAgICAgaWYg
KGZ1bmN0aW9ucy5nZXQoKS5pc0VtcHR5KCkpCiAgICAgICAgIHBvcHVsYXRlJHBhcmFtZXRlcnN7
bmFtZXNwYWNlfVdyYXBwZXJNYXAoZnVuY3Rpb25zKTsKICAgICBpZiAoYXV0byBmdW5jdGlvbiA9
IGZ1bmN0aW9ucy5nZXQoKS5nZXQoZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKSkKLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgZWxlbWVudCk7Ci0gICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsICRwYXJhbWV0ZXJze2Zh
bGxiYWNrSlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CisgICAgICAgIHJldHVybiBm
dW5jdGlvbihnbG9iYWxPYmplY3QsIGVsZW1lbnQpOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dS
QVBQRVIoZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3tmYWxsYmFja0pTSW50ZXJmYWNlTmFtZX0s
IGVsZW1lbnQuZ2V0KCkpOwogfQogCiB9CkBAIC0xMjc1LDE3ICsxMjc1LDEzIEBAIHN1YiBwcmlu
dFdyYXBwZXJGYWN0b3J5SGVhZGVyRmlsZQogICAgIHByaW50IEYgPDxFTkQKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCi1uYW1lc3BhY2UgSlNDIHsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci19
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgSlNET01XcmFwcGVyOwogICAgIGNsYXNzIEpTRE9NR2xvYmFsT2JqZWN0Owog
ICAgIGNsYXNzICRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50OwogCi0gICAgSlNET01XcmFw
cGVyKiBjcmVhdGVKUyRwYXJhbWV0ZXJze25hbWVzcGFjZX1XcmFwcGVyKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1F
bGVtZW50Pik7CisgICAgSlNET01XcmFwcGVyKiBjcmVhdGVKUyRwYXJhbWV0ZXJze25hbWVzcGFj
ZX1XcmFwcGVyKEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1l
c3BhY2V9RWxlbWVudD4pOwogCiB9CiAgCg==
</data>
<flag name="review"
          id="251819"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227584</attachid>
            <date>2014-03-22 17:21:27 -0700</date>
            <delta_ts>2014-03-22 17:21:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-130648.diff</filename>
            <type>text/plain</type>
            <size>49364</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYzY2MGU3Li42NWE3ZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEg
QEAKKzIwMTQtMDMtMjIgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIENSRUFURV9ET01fV1JBUFBFUiBkb2Vzbid0IG5lZWQgdGhlIEV4ZWNTdGF0ZS4KKyAgICAg
ICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzMDY0OD4KKworICAgICAgICBSZW1vdmUgdGhlIEV4
ZWNTdGF0ZSBwYXJhbWV0ZXIgZnJvbSBDUkVBVEVfRE9NX1dSQVBQRVIgYW5kIGdldCBhbGwKKyAg
ICAgICAgdGhhdCB3ZSBuZWVkIGZyb20gdGhlIGdsb2JhbCBvYmplY3QgaW5zdGVhZC4KKworICAg
ICAgICB0b0pTKCkgYW5kIHRvSlNOZXdseUNyZWF0ZWQoKSBzdGlsbCB0YWtlIGFuIEV4ZWNTdGF0
ZSwgdGhhdCBuZWVkcworICAgICAgICB0byBiZSBkZWFsdCB3aXRoIHNlcGFyYXRlbHkgc2luY2Ug
c29tZSBvZiB0aGVtIGhhdmUgc2NhcnkgbG9va2luZworICAgICAgICBjdXJyZW50V29ybGQoKSBj
aGVja3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0F1ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlMpOgorICAgICAgICAoV2ViQ29yZTo6SlNCbG9iQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQmxv
Yik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNDU1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9K
Uyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV3JhcHBlcik6CisgICAgICAg
IChXZWJDb3JlOjp3cmFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU5ld1dyYXBwZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxUZW1wbGF0ZUVsZW1lbnRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250
ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U01lZGlhU3RyZWFtQ2FwYWJpbGl0aWVzQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVXcmFwcGVySW5saW5lKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Bl
cmZvcm1hbmNlRW50cnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNSVENJY2VDYW5kaWRhdGVDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SlNSVENJY2VDYW5kaWRhdGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNSVENJY2VD
YW5kaWRhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUlRDUGVlckNvbm5lY3Rpb25DdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSVENQZWVyQ29ubmVjdGlvbkNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3RKU1JUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1JU
Q1Nlc3Npb25EZXNjcmlwdGlvbkNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3R5bGVT
aGVldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1RleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3Jl
YXRlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNUb3VjaEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1RvdWNoTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RyYWNrQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6CisgICAgICAgIChwcmludFdyYXBwZXJGdW5jdGlv
bnMpOgorICAgICAgICAocHJpbnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJp
bnRXcmFwcGVyRmFjdG9yeUhlYWRlckZpbGUpOgorCiAyMDE0LTAzLTIyICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNvbWUgI2luY2x1ZGUgaHlnaWVu
ZSBpbiBOb2RlL0VsZW1lbnQgZXRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggMDE5NjhmMC4uOTA5M2ViZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNw
cApAQCAtMTA2LDcgKzEwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBdWRp
b0NvbnRleHRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNBdWRpb0NvbnRleHQoCiAgICAgaWYgKCFh
dWRpb0NvbnRleHQuZ2V0KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlUmVmZXJlbmNlRXJyb3IoZXhlYywgIkVycm9yIGNyZWF0aW5nIEF1ZGlvQ29udGV4dCIpKTsK
IAotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBBdWRpb0NvbnRleHQsIGF1ZGlvQ29udGV4dC5n
ZXQoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBBdWRpb0NvbnRleHQsIGF1ZGlvQ29udGV4dC5n
ZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAppbmRleCBiZmNkNGQxLi5kNjVkMzgwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jsb2JDdXN0b20uY3BwCkBAIC00OCwxNSArNDgs
MTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBCbG9iKiBibG9iKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEJsb2IqIGJsb2IpCiB7CiAgICAgaWYgKCFibG9iKQogICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CiAKICAgICBpZiAoYmxvYi0+aXNGaWxlKCkpCi0gICAgICAgIHJldHVy
biB3cmFwPEpTRmlsZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxGaWxlKj4oYmxv
YikpOworICAgICAgICByZXR1cm4gd3JhcDxKU0ZpbGU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8RmlsZSo+KGJsb2IpKTsKIAotICAgIHJldHVybiB3cmFwPEpTQmxvYj4oZXhlYywgZ2xvYmFs
T2JqZWN0LCBibG9iKTsKKyAgICByZXR1cm4gd3JhcDxKU0Jsb2I+KGdsb2JhbE9iamVjdCwgYmxv
Yik7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNCbG9iQ29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTQmxvYihFeGVjU3RhdGUqIGV4ZWMpCkBAIC02OCw3ICs2OCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNCbG9iQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQmxv
YihFeGVjU3RhdGUqIGV4ZWMpCiAKICAgICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkgewog
ICAgICAgICBSZWZQdHI8QmxvYj4gYmxvYiA9IEJsb2I6OmNyZWF0ZSgpOwotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSwgQmxvYiwgYmxvYi5nZXQoKSkpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmpl
Y3QoKSwgQmxvYiwgYmxvYi5nZXQoKSkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIGJsb2JQYXJ0
c0xlbmd0aCA9IDA7CkBAIC0xMzUsNyArMTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU0Jsb2JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNCbG9iKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICB9CiAKICAgICBSZWZQdHI8QmxvYj4gYmxvYiA9IGJsb2JCdWlsZGVyLmdldEJsb2IodHlw
ZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywg
anNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIEJsb2IsIGJsb2IuZ2V0KCkpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihqc0NvbnN0cnVjdG9yLT5n
bG9iYWxPYmplY3QoKSwgQmxvYiwgYmxvYi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2Vj
dGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NEQVRBU2VjdGlv
bkN1c3RvbS5jcHAKaW5kZXggZGU2NTVjMS4uOTcwOTFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcApAQCAtMzIsMTIgKzMy
LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ0RBVEFTZWN0aW9uKiBzZWN0aW9uKQorSlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENEQVRB
U2VjdGlvbiogc2VjdGlvbikKIHsKICAgICBpZiAoIXNlY3Rpb24pCiAgICAgICAgIHJldHVybiBq
c051bGwoKTsKIAotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBDREFUQVNlY3Rpb24sIHNlY3Rpb24pOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQ
RVIoZ2xvYmFsT2JqZWN0LCBDREFUQVNlY3Rpb24sIHNlY3Rpb24pOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1J1bGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3Vz
dG9tLmNwcAppbmRleCA1YzIwMDgyLi5kMDM5YjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBKU0NT
U1J1bGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
ICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9vdCgmdGhpc09iamVjdC0+aW1wbCgpKSk7CiB9
CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENTU1J1bGUqIHJ1bGUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ1NTUnVsZSogcnVsZSkKIHsKICAgICBpZiAoIXJ1
bGUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTc2LDQ2ICs3Niw0NiBAQCBKU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
U1NSdWxlKiBydWxlKQogCiAgICAgc3dpdGNoIChydWxlLT50eXBlKCkpIHsKICAgICAgICAgY2Fz
ZSBDU1NSdWxlOjpTVFlMRV9SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1N0eWxlUnVsZSwgcnVsZSk7CisgICAgICAg
ICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NTU3R5bGVS
dWxlLCBydWxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1J1bGU6Ok1F
RElBX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMs
IGdsb2JhbE9iamVjdCwgQ1NTTWVkaWFSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBDU1NNZWRpYVJ1bGUsIHJ1bGUpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6Rk9OVF9GQUNFX1JVTEU6
Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9i
amVjdCwgQ1NTRm9udEZhY2VSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVB
VEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBDU1NGb250RmFjZVJ1bGUsIHJ1bGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6UEFHRV9SVUxFOgotICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENT
U1BhZ2VSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQ
RVIoZ2xvYmFsT2JqZWN0LCBDU1NQYWdlUnVsZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBDU1NSdWxlOjpJTVBPUlRfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIg
PSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NJbXBvcnRSdWxlLCBy
dWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2Jq
ZWN0LCBDU1NJbXBvcnRSdWxlLCBydWxlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENTU1J1bGU6OkNIQVJTRVRfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NDaGFyc2V0UnVsZSwgcnVsZSk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NT
Q2hhcnNldFJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NT
UnVsZTo6V0VCS0lUX0tFWUZSQU1FX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLCBy
dWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2Jq
ZWN0LCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX0tFWUZSQU1FU19SVUxFOgotICAgICAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktpdENT
U0tleWZyYW1lc1J1bGUsIHJ1bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
V1JBUFBFUihnbG9iYWxPYmplY3QsIFdlYktpdENTU0tleWZyYW1lc1J1bGUsIHJ1bGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENTUzNfQ09ORElUSU9OQUxfUlVMRVMpCiAgICAg
ICAgIGNhc2UgQ1NTUnVsZTo6U1VQUE9SVFNfUlVMRToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NTdXBwb3J0c1J1bGUsIHJ1
bGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmpl
Y3QsIENTU1N1cHBvcnRzUnVsZSwgcnVsZSk7CiAgICAgICAgICAgICBicmVhazsKICNlbmRpZgog
I2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBUQVRJT04pCiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6
V0VCS0lUX1ZJRVdQT1JUX1JVTEU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Q1NTVmlld3BvcnRSdWxlLCBydWxlKTsK
KyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgICAgIGNhc2UgQ1NTUnVsZTo6V0VCS0lUX1JF
R0lPTl9SVUxFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIFdlYktpdENTU1JlZ2lvblJ1bGUsIHJ1bGUpOworICAgICAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFdlYktpdENTU1JlZ2lv
blJ1bGUsIHJ1bGUpOwogICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBDU1NSdWxlLCBydWxlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBDU1NSdWxlLCBydWxlKTsKICAgICB9CiAKICAgICByZXR1
cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1
c3RvbS5jcHAKaW5kZXggMGIyZGFhYS4uYjU0ZGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NWYWx1ZUN1c3RvbS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBK
U0NTU1ZhbHVlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiBjb250ZXh0KQogICAgIGpzQ1NTVmFsdWUtPnJlbGVhc2VJbXBsKCk7CiB9CiAKLUpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENTU1ZhbHVlKiB2YWx1ZSkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDU1NWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1
ZSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtODYsMjEgKzg2LDIxIEBAIEpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENT
U1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAodmFsdWUt
PmlzV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9E
T01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLCB2
YWx1ZSk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0
LCBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZSwgdmFsdWUpOwogI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKICAgICBlbHNlIGlmICh2YWx1ZS0+aXNXZWJLaXRDU1NGaWx0ZXJWYWx1ZSgpKQotICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0
Q1NTRmlsdGVyVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIFdlYktpdENTU0ZpbHRlclZhbHVlLCB2YWx1ZSk7CiAjZW5kaWYK
ICAgICBlbHNlIGlmICh2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKLSAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIENTU1ZhbHVlTGlzdCwgdmFsdWUp
OworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgQ1NT
VmFsdWVMaXN0LCB2YWx1ZSk7CiAgICAgZWxzZSBpZiAodmFsdWUtPmlzU1ZHUGFpbnQoKSkKLSAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNW
R1BhaW50LCB2YWx1ZSk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBTVkdQYWludCwgdmFsdWUpOwogICAgIGVsc2UgaWYgKHZhbHVlLT5pc1NWR0Nv
bG9yKCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBTVkdDb2xvciwgdmFsdWUpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9X
UkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHQ29sb3IsIHZhbHVlKTsKICAgICBlbHNlIGlmICh2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTUHJpbWl0aXZlVmFsdWUsIHZhbHVlKTsKKyAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1ByaW1pdGl2
ZVZhbHVlLCB2YWx1ZSk7CiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ1NTVmFsdWUsIHZhbHVlKTsKKyAgICAgICAgd3Jh
cHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1ZhbHVlLCB2YWx1ZSk7
CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCmluZGV4
IDVjM2UxNDUuLmIyYTdmYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNTAsMTcg
KzUwLDE3IEBAIHZvaWQgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgdmlzaXRvci5hZGRPcGFxdWVS
b290KHJvb3QodGhpc09iamVjdC0+aW1wbCgpLmNhbnZhcygpKSk7CiB9CiAKLUpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBvYmplY3QpCitKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQqIG9iamVjdCkKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogCiAjaWYgRU5BQkxFKFdFQkdMKQogICAgIGlmIChvYmplY3QtPmlzM2Qo
KSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQ+KGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0Kj4ob2JqZWN0KSk7
CisgICAgICAgIHJldHVybiB3cmFwPEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0PihnbG9iYWxPYmpl
Y3QsIHN0YXRpY19jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dCo+KG9iamVjdCkpOwogI2VuZGlm
CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04ob2JqZWN0LT5pczJkKCkpOwot
ICAgIHJldHVybiB3cmFwPEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihleGVjLCBnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG9iamVjdCkpOwor
ICAgIHJldHVybiB3cmFwPEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihnbG9iYWxPYmplY3Qs
IHN0YXRpY19jYXN0PENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCo+KG9iamVjdCkpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oCmluZGV4IDY4ZmRlOGIuLmE2ZmY5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZy5oCkBAIC0xOTgsMjMgKzE5OCwyMyBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRE9NQ2xhc3MsIHR5cGVuYW1lIFdyYXBwZXJDbGFzcz4gaW5saW5lIHZvaWQgdW5jYWNoZVdy
YXBwZXIoRAogICAgIHdlYWtSZW1vdmUod29ybGQubV93cmFwcGVycywgKHZvaWQqKWRvbU9iamVj
dCwgd3JhcHBlcik7CiB9CiAKLSNkZWZpbmUgQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgY2xhc3NOYW1lLCBvYmplY3QpIGNyZWF0ZVdyYXBwZXI8SlMjI2NsYXNzTmFtZT4o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxjbGFzc05hbWUqPihvYmplY3QpKQotdGVt
cGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTRE9NV3Jh
cHBlciogY3JlYXRlV3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRE9NQ2xhc3MqIG5vZGUpCisjZGVmaW5lIENSRUFURV9ET01fV1JB
UFBFUihnbG9iYWxPYmplY3QsIGNsYXNzTmFtZSwgb2JqZWN0KSBjcmVhdGVXcmFwcGVyPEpTIyNj
bGFzc05hbWU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8Y2xhc3NOYW1lKj4ob2JqZWN0KSkK
K3RlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0RP
TVdyYXBwZXIqIGNyZWF0ZVdyYXBwZXIoSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RE9NQ2xhc3MqIG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIEFTU0VSVCghZ2V0Q2Fj
aGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIG5vZGUpKTsKLSAgICBXcmFwcGVyQ2xh
c3MqIHdyYXBwZXIgPSBXcmFwcGVyQ2xhc3M6OmNyZWF0ZShnZXRET01TdHJ1Y3R1cmU8V3JhcHBl
ckNsYXNzPihleGVjLT52bSgpLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QsIG5vZGUpOwor
ICAgIEFTU0VSVCghZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3Qud29ybGQoKSwgbm9kZSkp
OworICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IFdyYXBwZXJDbGFzczo6Y3JlYXRlKGdldERP
TVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGdsb2JhbE9iamVjdC0+dm0oKSwgZ2xvYmFsT2JqZWN0
KSwgZ2xvYmFsT2JqZWN0LCBub2RlKTsKICAgICBjYWNoZVdyYXBwZXIoZ2xvYmFsT2JqZWN0LT53
b3JsZCgpLCBub2RlLCB3cmFwcGVyKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KIAotdGVtcGxh
dGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1
ZSB3cmFwKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBET01DbGFzcyogZG9tT2JqZWN0KQordGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBj
bGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1ZSB3cmFwKEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIERPTUNsYXNzKiBkb21PYmplY3QpCiB7CiAgICAgaWYgKCFkb21PYmpl
Y3QpCiAgICAgICAgIHJldHVybiBKU0M6OmpzTnVsbCgpOwogICAgIGlmIChKU0M6OkpTT2JqZWN0
KiB3cmFwcGVyID0gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndvcmxkKCksIGRvbU9i
amVjdCkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwotICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PFdyYXBwZXJDbGFzcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21PYmplY3QpOworICAgIHJldHVy
biBjcmVhdGVXcmFwcGVyPFdyYXBwZXJDbGFzcz4oZ2xvYmFsT2JqZWN0LCBkb21PYmplY3QpOwog
fQogCiB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3MsIGNsYXNzIERPTUNsYXNzPiBpbmxpbmUg
SlNDOjpKU1ZhbHVlIGdldEV4aXN0aW5nV3JhcHBlcihKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBET01DbGFzcyogZG9tT2JqZWN0KQpAQCAtMjIzLDExICsyMjMsMTEgQEAgdGVtcGxh
dGU8Y2xhc3MgV3JhcHBlckNsYXNzLCBjbGFzcyBET01DbGFzcz4gaW5saW5lIEpTQzo6SlNWYWx1
ZSBnZXRFeGlzdGluZ1dyYXAKICAgICByZXR1cm4gZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmpl
Y3QtPndvcmxkKCksIGRvbU9iamVjdCk7CiB9CiAKLXRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFz
cywgY2xhc3MgRE9NQ2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgY3JlYXRlTmV3V3JhcHBlcihK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9N
Q2xhc3MqIGRvbU9iamVjdCkKK3RlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcywgY2xhc3MgRE9N
Q2xhc3M+IGlubGluZSBKU0M6OkpTVmFsdWUgY3JlYXRlTmV3V3JhcHBlcihKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBET01DbGFzcyogZG9tT2JqZWN0KQogewogICAgIEFTU0VSVChk
b21PYmplY3QpOwogICAgIEFTU0VSVCghZ2V0Q2FjaGVkV3JhcHBlcihnbG9iYWxPYmplY3QtPndv
cmxkKCksIGRvbU9iamVjdCkpOwotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFdyYXBwZXJDbGFz
cz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21PYmplY3QpOworICAgIHJldHVybiBjcmVhdGVXcmFw
cGVyPFdyYXBwZXJDbGFzcz4oZ2xvYmFsT2JqZWN0LCBkb21PYmplY3QpOwogfQogCiBpbmxpbmUg
SlNDOjpKU1ZhbHVlIGFyZ3VtZW50T3JOdWxsKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25l
ZCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRG9jdW1l
bnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAKaW5kZXggNTRlN2M1ZC4uMTRjMDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKQEAgLTkzLDExICs5MywxMSBAQCBKU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBE
b2N1bWVudCogZG9jdW1lbgogICAgIH0KIAogICAgIGlmIChkb2N1bWVudC0+aXNIVE1MRG9jdW1l
bnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxP
YmplY3QsIEhUTUxEb2N1bWVudCwgZG9jdW1lbnQpOworICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgSFRNTERvY3VtZW50LCBkb2N1bWVudCk7CiAgICAg
ZWxzZSBpZiAoZG9jdW1lbnQtPmlzU1ZHRG9jdW1lbnQoKSkKLSAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR0RvY3VtZW50LCBkb2N1bWVu
dCk7CisgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBT
VkdEb2N1bWVudCwgZG9jdW1lbnQpOwogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIERvY3VtZW50LCBkb2N1bWVudCk7Cisg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBEb2N1bWVu
dCwgZG9jdW1lbnQpOwogCiAgICAgLy8gTWFrZSBzdXJlIHRoZSBkb2N1bWVudCBpcyBrZXB0IGFy
b3VuZCBieSB0aGUgd2luZG93IG9iamVjdCwgYW5kIHdvcmtzIHJpZ2h0IHdpdGggdGhlCiAgICAg
Ly8gYmFjay9mb3J3YXJkIGNhY2hlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RWxlbWVudEN1c3RvbS5jcHAKaW5kZXggY2E1MjZmMi4uMTNjOTJiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRWxlbWVudCogZWxlbWVudCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRl
ZChFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbGVtZW50KiBl
bGVtZW50KQogewogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpA
QCAtNTcsMTEgKzU3LDExIEBAIEpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVsZW1lCiAKICAgICBKU0RPTVdy
YXBwZXIqIHdyYXBwZXI7ICAgICAgICAKICAgICBpZiAoZWxlbWVudC0+aXNIVE1MRWxlbWVudCgp
KQotICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNIVE1MV3JhcHBlcihleGVjLCBnbG9iYWxPYmpl
Y3QsIHRvSFRNTEVsZW1lbnQoZWxlbWVudCkpOworICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNI
VE1MV3JhcHBlcihnbG9iYWxPYmplY3QsIHRvSFRNTEVsZW1lbnQoZWxlbWVudCkpOwogICAgIGVs
c2UgaWYgKGVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpKQotICAgICAgICB3cmFwcGVyID0gY3JlYXRl
SlNTVkdXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgdG9TVkdFbGVtZW50KGVsZW1lbnQpKTsK
KyAgICAgICAgd3JhcHBlciA9IGNyZWF0ZUpTU1ZHV3JhcHBlcihnbG9iYWxPYmplY3QsIHRvU1ZH
RWxlbWVudChlbGVtZW50KSk7CiAgICAgZWxzZQotICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RP
TV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRWxlbWVudCwgZWxlbWVudCk7CisgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBFbGVtZW50LCBlbGVt
ZW50KTsKIAogICAgIHJldHVybiB3cmFwcGVyOyAgICAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKaW5kZXggYmVhOWJiZi4uZTVhZmM0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTUwLDExICs1
MCwxMSBAQCBKU1ZhbHVlIEpTRXZlbnQ6OmNsaXBib2FyZERhdGEoRXhlY1N0YXRlKiBleGVjKSBj
b25zdAogCiAjZGVmaW5lIFRSWV9UT19XUkFQX1dJVEhfSU5URVJGQUNFKGludGVyZmFjZU5hbWUp
IFwKICAgICBjYXNlIGludGVyZmFjZU5hbWUjI0ludGVyZmFjZVR5cGU6IFwKLSAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIGludGVyZmFjZU5hbWUs
IGV2ZW50KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3Qs
IGludGVyZmFjZU5hbWUsIGV2ZW50KTsKIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnQqIGV2ZW50KQorSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50KiBl
dmVudCkKIHsKLSAgICBKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsKKyAgICBKU0xvY2tIb2xkZXIg
bG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOwogCiAgICAgaWYgKCFldmVudCkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwpAQCAtNjcsNyArNjcsNyBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudCogZXZlbnQpCiAgICAg
ICAgIERPTV9FVkVOVF9JTlRFUkZBQ0VTX0ZPUl9FQUNIKFRSWV9UT19XUkFQX1dJVEhfSU5URVJG
QUNFKQogICAgIH0KIAotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBFdmVudCwgZXZlbnQpOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xv
YmFsT2JqZWN0LCBFdmVudCwgZXZlbnQpOwogfQogCiAjdW5kZWYgVFJZX1RPX1dSQVBfV0lUSF9J
TlRFUkZBQ0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENv
bGxlY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29s
bGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggYjM2YjU0ZC4uZWYyNjgzOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwCkBA
IC01Miw3ICs1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246Om5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0b0pTKGV4ZWMsIGNvbGxlY3Rpb24tPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0
aW9uLT5pbXBsKCkubmFtZWRJdGVtKG5hbWUpKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9u
KiBjb2xsZWN0aW9uKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQogewogICAgIGlmICgh
Y29sbGVjdGlvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpAQCAtNjQsMTYgKzY0LDE2IEBA
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEhUTUxDb2xsZWN0aW9uKiBjCiAKICAgICBzd2l0Y2ggKGNvbGxlY3Rpb24tPnR5cGUo
KSkgewogICAgIGNhc2UgRm9ybUNvbnRyb2xzOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24sIGNv
bGxlY3Rpb24pOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVj
dCwgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgIGNhc2UgU2Vs
ZWN0T3B0aW9uczoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIEhUTUxPcHRpb25zQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBIVE1MT3B0aW9uc0NvbGxlY3Rp
b24sIGNvbGxlY3Rpb24pOwogICAgIGNhc2UgRG9jQWxsOgotICAgICAgICByZXR1cm4gQ1JFQVRF
X0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgSFRNTEFsbENvbGxlY3Rpb24sIGNvbGxl
Y3Rpb24pOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwg
SFRNTEFsbENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBIVE1MQ29sbGVjdGlvbiwgY29sbGVjdGlvbik7CisgICAgcmV0dXJuIENSRUFURV9E
T01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEhUTUxDb2xsZWN0aW9uLCBjb2xsZWN0aW9uKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MVGVtcGxhdGVFbGVtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggMmQ3ZjVj
NC4uZTEyMTk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
VGVtcGxhdGVFbGVtZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwCkBAIC01Myw3ICs1Myw3IEBAIEpTVmFs
dWUgSlNIVE1MVGVtcGxhdGVFbGVtZW50Ojpjb250ZW50KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
ICAgICBpZiAod3JhcHBlcikKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICB3cmFwcGVy
ID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBEb2N1bWVudEZyYWdt
ZW50LCBjb250ZW50KTsKKyAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9i
amVjdCgpLCBEb2N1bWVudEZyYWdtZW50LCBjb250ZW50KTsKICAgICBQcml2YXRlTmFtZSBwcm9w
ZXJ0eU5hbWU7CiAgICAgY29uc3RfY2FzdDxKU0hUTUxUZW1wbGF0ZUVsZW1lbnQqPih0aGlzKS0+
cHV0RGlyZWN0KGdsb2JhbE9iamVjdCgpLT52bSgpLCBwcm9wZXJ0eU5hbWUsIHdyYXBwZXIpOwog
ICAgIHJldHVybiB3cmFwcGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJREJBbnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJB
bnlDdXN0b20uY3BwCmluZGV4IDU2NDljODUuLjE0NjUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SURCQW55KiBpZGJBbnkpCiAgICAgY2FzZSBJREJBbnk6OklEQkN1cnNvclR5cGU6CiAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pZGJDdXJzb3IoKSk7CiAg
ICAgY2FzZSBJREJBbnk6OklEQkN1cnNvcldpdGhWYWx1ZVR5cGU6Ci0gICAgICAgIHJldHVybiB3
cmFwPEpTSURCQ3Vyc29yV2l0aFZhbHVlPihleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRi
Q3Vyc29yV2l0aFZhbHVlKCkuZ2V0KCkpOworICAgICAgICByZXR1cm4gd3JhcDxKU0lEQkN1cnNv
cldpdGhWYWx1ZT4oZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcldpdGhWYWx1ZSgpLmdl
dCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VUeXBlOgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJhc2UoKSk7CiAgICAgY2Fz
ZSBJREJBbnk6OklEQkZhY3RvcnlUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbWFnZURhdGFDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZURhdGFDdXN0b20uY3BwCmluZGV4IGIwZDFkNjEuLmVkYzU1MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VEYXRhQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlRGF0YUN1c3RvbS5jcHAKQEAgLTQz
LDcgKzQzLDcgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhKiBpbWFnZUQKICAgICBpZiAod3JhcHBlcikKICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgCi0gICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEltYWdlRGF0YSwgaW1hZ2VEYXRhKTsKKyAgICB3cmFw
cGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgSW1hZ2VEYXRhLCBpbWFnZURh
dGEpOwogICAgIElkZW50aWZpZXIgZGF0YU5hbWUoZXhlYywgImRhdGEiKTsKICAgICB3cmFwcGVy
LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwgZGF0YU5hbWUsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0
LCBpbWFnZURhdGEtPmRhdGEoKSksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiAgICAgZXhlYy0+
aGVhcCgpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3QoaW1hZ2VEYXRhLT5kYXRhKCktPmxlbmd0aCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFTdHJlYW1D
YXBhYmlsaXRpZXNDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRp
YVN0cmVhbUNhcGFiaWxpdGllc0N1c3RvbS5jcHAKaW5kZXggOTNhNDRlMC4uMzZjOGMwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVN0cmVhbUNhcGFiaWxp
dGllc0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZWRpYVN0
cmVhbUNhcGFiaWxpdGllc0N1c3RvbS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIE1lZGlhU3QKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgaWYgKG9iamVjdC0+
aGFzVmlkZW9Tb3VyY2UoKSkKLSAgICAgICAgcmV0dXJuIHdyYXA8SlNBbGxWaWRlb0NhcGFiaWxp
dGllcz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBbGxWaWRlb0NhcGFiaWxpdGll
cyo+KG9iamVjdCkpOworICAgICAgICByZXR1cm4gd3JhcDxKU0FsbFZpZGVvQ2FwYWJpbGl0aWVz
PihnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFsbFZpZGVvQ2FwYWJpbGl0aWVzKj4ob2JqZWN0
KSk7CiAKLSAgICByZXR1cm4gd3JhcDxKU0FsbEF1ZGlvQ2FwYWJpbGl0aWVzPihleGVjLCBnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PEFsbEF1ZGlvQ2FwYWJpbGl0aWVzKj4ob2JqZWN0KSk7Cisg
ICAgcmV0dXJuIHdyYXA8SlNBbGxBdWRpb0NhcGFiaWxpdGllcz4oZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxBbGxBdWRpb0NhcGFiaWxpdGllcyo+KG9iamVjdCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNw
cAppbmRleCBiOWM2NjI5Li44YTBlYTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAKQEAgLTIwMiw0NyArMjAyLDQ3IEBAIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIEpTVmFsdWUgY3JlYXRlV3JhcHBlcklubGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqCiAgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CiAgICAgICAgIGNhc2UgTm9k
ZTo6RUxFTUVOVF9OT0RFOgogICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkK
LSAgICAgICAgICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNIVE1MV3JhcHBlcihleGVjLCBnbG9i
YWxPYmplY3QsIHRvSFRNTEVsZW1lbnQobm9kZSkpOworICAgICAgICAgICAgICAgIHdyYXBwZXIg
PSBjcmVhdGVKU0hUTUxXcmFwcGVyKGdsb2JhbE9iamVjdCwgdG9IVE1MRWxlbWVudChub2RlKSk7
CiAgICAgICAgICAgICBlbHNlIGlmIChub2RlLT5pc1NWR0VsZW1lbnQoKSkKLSAgICAgICAgICAg
ICAgICB3cmFwcGVyID0gY3JlYXRlSlNTVkdXcmFwcGVyKGV4ZWMsIGdsb2JhbE9iamVjdCwgdG9T
VkdFbGVtZW50KG5vZGUpKTsKKyAgICAgICAgICAgICAgICB3cmFwcGVyID0gY3JlYXRlSlNTVkdX
cmFwcGVyKGdsb2JhbE9iamVjdCwgdG9TVkdFbGVtZW50KG5vZGUpKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgRWxlbWVudCwgbm9kZSk7CisgICAgICAgICAgICAgICAgd3JhcHBlciA9IENS
RUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIEVsZW1lbnQsIG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6QVRUUklCVVRFX05PREU6Ci0gICAgICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQXR0ciwg
bm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9i
amVjdCwgQXR0ciwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2Rl
OjpURVhUX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4
ZWMsIGdsb2JhbE9iamVjdCwgVGV4dCwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVGV4dCwgbm9kZSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6Ci0gICAgICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQ0RBVEFT
ZWN0aW9uLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIo
Z2xvYmFsT2JqZWN0LCBDREFUQVNlY3Rpb24sIG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX05PREU6Ci0gICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRW50aXR5LCBub2RlKTsKKyAgICAg
ICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBFbnRpdHks
IG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lO
R19JTlNUUlVDVElPTl9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgbm9kZSk7Cisg
ICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBDb21tZW50LCBub2RlKTsKKyAgICAgICAgICAg
IHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBDb21tZW50LCBub2Rl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX05PREU6
CiAgICAgICAgICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSBkb2N1bWVudCBpdHNl
bGYgaW4gdGhlIHBlci1kb2N1bWVudCBkaWN0aW9uYXJ5CiAgICAgICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHRvRG9jdW1lbnQobm9kZSkpOwogICAgICAgICBjYXNlIE5v
ZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9N
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBEb2N1bWVudFR5cGUsIG5vZGUpOworICAgICAg
ICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50
VHlwZSwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpOT1RB
VElPTl9OT0RFOgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIE5vdGF0aW9uLCBub2RlKTsKKyAgICAgICAgICAgIHdyYXBwZXIgPSBD
UkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBOb3RhdGlvbiwgbm9kZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgot
ICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmpl
Y3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUpOworICAgICAgICAgICAgd3JhcHBlciA9IENSRUFU
RV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERvY3VtZW50RnJhZ21lbnQsIG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6RU5USVRZX1JFRkVSRU5DRV9OT0RF
OgotICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxP
YmplY3QsIEVudGl0eVJlZmVyZW5jZSwgbm9kZSk7CisgICAgICAgICAgICB3cmFwcGVyID0gQ1JF
QVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgRW50aXR5UmVmZXJlbmNlLCBub2RlKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgd3JhcHBlciA9
IENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIE5vZGUsIG5vZGUpOworICAg
ICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIE5vZGUs
IG5vZGUpOwogICAgIH0KIAogICAgIHJldHVybiB3cmFwcGVyOyAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwCmlu
ZGV4IDBiNmY5OGMuLmViZGQzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcApAQCAtNDYsMjUgKzQ2LDI1IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNWYWx1ZSB0
b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGVy
Zm9ybWFuY2VFbnRyeSogZW50cnkpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGVyZm9ybWFuY2VFbnRyeSogZW50cnkpCiB7CiAgICAg
aWYgKCFlbnRyeSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX1RJTUlORykKICAgICBpZiAoZW50cnktPmlzUmVzb3VyY2UoKSkKLSAgICAgICAgcmV0dXJu
IHdyYXA8SlNQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nPihleGVjLCBnbG9iYWxPYmplY3QsIHN0
YXRpY19jYXN0PFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcqPihlbnRyeSkpOworICAgICAgICBy
ZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc+KGdsb2JhbE9iamVjdCwgc3Rh
dGljX2Nhc3Q8UGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZyo+KGVudHJ5KSk7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShVU0VSX1RJTUlORykKICAgICBpZiAoZW50cnktPmlzTWFyaygpKQotICAgICAg
ICByZXR1cm4gd3JhcDxKU1BlcmZvcm1hbmNlTWFyaz4oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxQZXJmb3JtYW5jZU1hcmsqPihlbnRyeSkpOworICAgICAgICByZXR1cm4gd3JhcDxK
U1BlcmZvcm1hbmNlTWFyaz4oZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxQZXJmb3JtYW5jZU1h
cmsqPihlbnRyeSkpOwogCiAgICAgaWYgKGVudHJ5LT5pc01lYXN1cmUoKSkKLSAgICAgICAgcmV0
dXJuIHdyYXA8SlNQZXJmb3JtYW5jZU1lYXN1cmU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGlj
X2Nhc3Q8UGVyZm9ybWFuY2VNZWFzdXJlKj4oZW50cnkpKTsKKyAgICAgICAgcmV0dXJuIHdyYXA8
SlNQZXJmb3JtYW5jZU1lYXN1cmU+KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8UGVyZm9ybWFu
Y2VNZWFzdXJlKj4oZW50cnkpKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHdyYXA8SlNQZXJmb3Jt
YW5jZUVudHJ5PihleGVjLCBnbG9iYWxPYmplY3QsIGVudHJ5KTsKKyAgICByZXR1cm4gd3JhcDxK
U1BlcmZvcm1hbmNlRW50cnk+KGdsb2JhbE9iamVjdCwgZW50cnkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JU
Q0ljZUNhbmRpZGF0ZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JU
Q0ljZUNhbmRpZGF0ZUN1c3RvbS5jcHAKaW5kZXggMTQ4ZmYxMS4uMTEzOWYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSVENJY2VDYW5kaWRhdGVDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDSWNlQ2FuZGlkYXRlQ3VzdG9t
LmNwcApAQCAtNjEsNyArNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTUlRD
SWNlQ2FuZGlkYXRlQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUlRDSWNlQ2FuZAogICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiRXJyb3IgY3Jl
YXRpbmcgUlRDSWNlQ2FuZGlkYXRlIikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVj
dCgpLCBSVENJY2VDYW5kaWRhdGUsIGljZUNhbmRpZGF0ZS5nZXQoKSkpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGpzQ29uc3RydWN0b3ItPmdsb2JhbE9i
amVjdCgpLCBSVENJY2VDYW5kaWRhdGUsIGljZUNhbmRpZGF0ZS5nZXQoKSkpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1JUQ1BlZXJDb25uZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUlRDUGVlckNvbm5lY3Rpb25DdXN0b20uY3BwCmluZGV4IGFiOTMxN2QuLjA2MjdiMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDUGVlckNvbm5lY3Rp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDUGVlckNv
bm5lY3Rpb25DdXN0b20uY3BwCkBAIC02NSw3ICs2NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNSVENQZWVyQ29ubmVjdGlvbkNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1JUQ1Bl
ZXJDCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4
ZWMsICJFcnJvciBjcmVhdGluZyBSVENQZWVyQ29ubmVjdGlvbiIpKTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVj
dG9yLT5nbG9iYWxPYmplY3QoKSwgUlRDUGVlckNvbm5lY3Rpb24sIHBlZXJDb25uZWN0aW9uLmdl
dCgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShDUkVBVEVfRE9NX1dSQVBQRVIoanND
b25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFJUQ1BlZXJDb25uZWN0aW9uLCBwZWVyQ29ubmVj
dGlvbi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkN1
c3RvbS5jcHAKaW5kZXggZGRmMDNmMy4uN2QxYTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ3VzdG9tLmNw
cApAQCAtNjEsNyArNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTUlRDUwogICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiRXJyb3IgY3JlYXRp
bmcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIikpOwogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9i
amVjdCgpLCBSVENTZXNzaW9uRGVzY3JpcHRpb24sIHNlc3Npb25EZXNjcmlwdGlvbi5nZXQoKSkp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGpzQ29uc3Ry
dWN0b3ItPmdsb2JhbE9iamVjdCgpLCBSVENTZXNzaW9uRGVzY3JpcHRpb24sIHNlc3Npb25EZXNj
cmlwdGlvbi5nZXQoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR1BhdGhTZWdDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQYXRoU2VnQ3VzdG9tLmNwcAppbmRleCBkYmFl
NDU3Li4xZTA3NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NW
R1BhdGhTZWdDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZH
UGF0aFNlZ0N1c3RvbS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnKiBvYmplY3QpCitKU1Zh
bHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZH
UGF0aFNlZyogb2JqZWN0KQogewogICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm4ganNO
dWxsKCk7CkBAIC02OSw0NiArNjksNDYgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZyogb2JqZWMKIAogICAg
IHN3aXRjaCAob2JqZWN0LT5wYXRoU2VnVHlwZSgpKSB7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX0NMT1NFUEFUSDoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVj
LCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDbG9zZVBhdGgsIG9iamVjdCk7CisgICAgICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ2xvc2VQYXRo
LCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19NT1ZFVE9fQUJTOgotICAg
ICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0
aFNlZ01vdmV0b0Ficywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBF
UihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdNb3ZldG9BYnMsIG9iamVjdCk7CiAgICAgY2FzZSBT
VkdQYXRoU2VnOjpQQVRIU0VHX01PVkVUT19SRUw6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9N
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTW92ZXRvUmVsLCBvYmplY3Qp
OworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0
aFNlZ01vdmV0b1JlbCwgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfTElO
RVRPX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxP
YmplY3QsIFNWR1BhdGhTZWdMaW5ldG9BYnMsIG9iamVjdCk7CisgICAgICAgIHJldHVybiBDUkVB
VEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRvQWJzLCBvYmplY3Qp
OwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fUkVMOgotICAgICAgICByZXR1
cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0
b1JlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxP
YmplY3QsIFNWR1BhdGhTZWdMaW5ldG9SZWwsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQYXRoU2Vn
OjpQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficywgb2Jq
ZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQ
QVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCwgb2JqZWN0
KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNSZWwsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQYXRoU2VnOjpQQVRI
U0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzLCBv
YmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwg
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnMsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQYXRo
U2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDoKLSAgICAgICAgcmV0dXJuIENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljUmVsLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2Jh
bE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwsIG9iamVjdCk7CiAgICAgY2Fz
ZSBTVkdQYXRoU2VnOjpQQVRIU0VHX0FSQ19BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9N
X1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQXJjQWJzLCBvYmplY3QpOwor
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNl
Z0FyY0Ficywgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdfQVJDX1JFTDoK
LSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNW
R1BhdGhTZWdBcmNSZWwsIG9iamVjdCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQ
RVIoZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQXJjUmVsLCBvYmplY3QpOwogICAgIGNhc2UgU1ZH
UGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM6Ci0gICAgICAgIHJldHVybiBD
UkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbEFicywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihn
bG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzLCBvYmplY3QpOwogICAg
IGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUw6Ci0gICAgICAg
IHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbFJlbCwgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01f
V1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsLCBvYmpl
Y3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOgot
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JFQVRF
X0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzLCBv
YmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVM
OgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwg
U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLCBvYmplY3QpOworICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
LCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX0NVQklDX1NN
T09USF9BQlM6Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFs
T2JqZWN0LCBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzLCBvYmplY3QpOworICAgICAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicywgb2JqZWN0KTsKICAgICBjYXNlIFNWR1BhdGhTZWc6OlBBVEhTRUdf
Q1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCwg
b2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3Qs
IFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWwsIG9iamVjdCk7CiAgICAgY2FzZSBTVkdQ
YXRoU2VnOjpQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM6Ci0gICAgICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1Ntb290aEFicywgb2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9E
T01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzLCBvYmplY3QpOwogICAgIGNhc2UgU1ZHUGF0aFNlZzo6UEFUSFNFR19DVVJWRVRPX1FVQURS
QVRJQ19TTU9PVEhfUkVMOgotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMs
IGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwsIG9iamVj
dCk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBTVkdQ
YXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbCwgb2JqZWN0KTsKICAgICBjYXNlIFNWR1Bh
dGhTZWc6OlBBVEhTRUdfVU5LTk9XTjoKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgU1ZHUGF0aFNlZywgb2JqZWN0KTsK
KyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIFNWR1BhdGhT
ZWcsIG9iamVjdCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRleCA5YzBiNmIzLi4yMGEyNjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAg
LTQ1LDcgKzQ1LDcgQEAgdm9pZCBKU1N0eWxlU2hlZXQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFkZE9wYXF1ZVJvb3Qocm9v
dCgmdGhpc09iamVjdC0+aW1wbCgpKSk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3R5bGVTaGVldCogc3R5bGVTaGVldCkKIHsKICAgICBpZiAoIXN0eWxlU2hlZXQpCiAg
ICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTU1LDkgKzU1LDkgQEAgSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3R5bGVTaGVl
dCogc3R5bGUKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpZiAoc3R5bGVTaGVldC0+
aXNDU1NTdHlsZVNoZWV0KCkpCi0gICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBDU1NTdHlsZVNoZWV0LCBzdHlsZVNoZWV0KTsKKyAgICAgICAg
d3JhcHBlciA9IENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIENTU1N0eWxlU2hlZXQs
IHN0eWxlU2hlZXQpOwogICAgIGVsc2UKLSAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFN0eWxlU2hlZXQsIHN0eWxlU2hlZXQpOworICAgICAg
ICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgU3R5bGVTaGVldCwg
c3R5bGVTaGVldCk7CiAKICAgICByZXR1cm4gd3JhcHBlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCmluZGV4IDRiNmU1MjkuLjg2OTMzYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcApAQCAtMzIsMTIgKzMy
LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGV4dCogdGV4dCkKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXh0KiB0ZXh0KQogewog
ICAgIGlmICghdGV4dCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIAotICAgIHJldHVy
biBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUZXh0LCB0ZXh0KTsKKyAg
ICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVGV4dCwgdGV4dCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcAppbmRleCA1Nzg1NDJiLi5mNzVhYmYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0
b20uY3BwCkBAIC01OCw3ICs1OCw3IEBAIGJvb2wgSlNUZXh0VHJhY2tDdWVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoCiAgICAgcmV0
dXJuIHZpc2l0b3IuY29udGFpbnNPcGFxdWVSb290KHJvb3QodGV4dFRyYWNrQ3VlLnRyYWNrKCkp
KTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGV4dFRyYWNrQ3VlKiBjdWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGV4dFRyYWNrQ3VlKiBjdWUpCiB7
CiAgICAgaWYgKCFjdWUpCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTcxLDEwICs3MSwx
MCBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBUZXh0VHJhY2tDdWUqIGN1ZQogICAgIC8vIFRoaXMgc3dpdGNoIHdpbGwgbWFr
ZSBtb3JlIHNlbnNlIG9uY2Ugd2Ugc3VwcG9ydCBEYXRhQ3VlCiAgICAgc3dpdGNoIChjdWUtPmN1
ZVR5cGUoKSkgewogICAgIGNhc2UgVGV4dFRyYWNrQ3VlOjpEYXRhOgotICAgICAgICByZXR1cm4g
Q1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRGF0YUN1ZSwgY3VlKTsKKyAg
ICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsIERhdGFDdWUsIGN1
ZSk7CiAgICAgY2FzZSBUZXh0VHJhY2tDdWU6OldlYlZUVDoKICAgICBjYXNlIFRleHRUcmFja0N1
ZTo6R2VuZXJpYzoKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9i
YWxPYmplY3QsIFZUVEN1ZSwgY3VlKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBF
UihnbG9iYWxPYmplY3QsIFZUVEN1ZSwgY3VlKTsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RvdWNoQ3VzdG9tLmNwcAppbmRleCA4MDlkMjM5Li5mZDMwNzVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RvdWNoQ3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RvdWNoQ3VzdG9tLmNwcApAQCAt
MzYsMTIgKzM2LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVG91Y2gqIHRvdWNoKQorSlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRvdWNo
KiB0b3VjaCkKIHsKICAgICBpZiAoIXRvdWNoKQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAK
LSAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgVG91Y2gs
IHRvdWNoKTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgVG91
Y2gsIHRvdWNoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaExpc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaExpc3RDdXN0b20uY3BwCmluZGV4IDk4MjBhMzguLjlh
Yjg1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hMaXN0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RvdWNoTGlzdEN1
c3RvbS5jcHAKQEAgLTM2LDEyICszNiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRvdWNoTGlzdCogdG91Y2hMaXN0
KQorSlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFRvdWNoTGlzdCogdG91Y2hMaXN0KQogewogICAgIGlmICghdG91Y2hM
aXN0KQogICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKLSAgICByZXR1cm4gQ1JFQVRFX0RPTV9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgVG91Y2hMaXN0LCB0b3VjaExpc3QpOworICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBUb3VjaExpc3QsIHRvdWNoTGlz
dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVHJhY2tDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNUcmFja0N1c3RvbS5jcHAKaW5kZXggYjY1YzAyNS4uMjgzNGI0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmFja0N1c3RvbS5jcHAKQEAgLTUyLDcgKzUyLDcg
QEAgVHJhY2tCYXNlKiB0b1RyYWNrKEpTVmFsdWUgdmFsdWUpCiAgICAgcmV0dXJuIDA7CiB9CiAK
LUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUcmFja0Jhc2UqIHRyYWNrKQorSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUcmFja0Jhc2Uq
IHRyYWNrKQogewogICAgIGlmICghdHJhY2spCiAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAg
LTY4LDEzICs2OCwxMyBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVHJhY2tCYQogICAgICAgICBicmVhazsK
ICAgICAgICAgCiAgICAgY2FzZSBUcmFja0Jhc2U6OkF1ZGlvVHJhY2s6Ci0gICAgICAgIHJldHVy
biBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBBdWRpb1RyYWNrLCB0cmFj
ayk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCBBdWRp
b1RyYWNrLCB0cmFjayk7CiAKICAgICBjYXNlIFRyYWNrQmFzZTo6VmlkZW9UcmFjazoKLSAgICAg
ICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFZpZGVvVHJh
Y2ssIHRyYWNrKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmpl
Y3QsIFZpZGVvVHJhY2ssIHRyYWNrKTsKIAogICAgIGNhc2UgVHJhY2tCYXNlOjpUZXh0VHJhY2s6
Ci0gICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBU
ZXh0VHJhY2ssIHRyYWNrKTsKKyAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9i
YWxPYmplY3QsIFRleHRUcmFjaywgdHJhY2spOwogICAgIH0KICAgICAKICAgICByZXR1cm4ganNO
dWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGU4NmNlMjMuLmUyNDJkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zMDEyLDcgKzMwMTIs
NyBAQCBleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqICR7dnRhYmxlTmFtZUdudX1bXTsgfQogI2Vu
ZGlmCiBFTkQKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCAk
aW1wbFR5cGUqIGltcGwpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsICRpbXBsVHlwZSogaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogICAgIGlmICghaW1wbCkK
QEAgLTMwNTcsMTMgKzMwNTcsMTMgQEAgRU5ECiAjZW5kaWYKIEVORAogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgPDxFTkQpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
ZXBvcnRFeHRyYU1lbW9yeUNvc3QifTsKLSAgICBleGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChpbXBsLT5tZW1vcnlDb3N0KCkpOworICAgIGdsb2JhbE9iamVjdC0+dm0oKS5oZWFw
LnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbXBsLT5tZW1vcnlDb3N0KCkpOwogRU5ECiAKICAgICAg
ICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPCRjbGFzc05hbWUsICRpbXBsVHlwZT4oZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbXBsKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8JGNsYXNzTmFtZSwgJGltcGxUeXBlPihn
bG9iYWxPYmplY3QsIGltcGwpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjwkY2xhc3NOYW1l
PihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjwkY2xhc3NOYW1lPihnbG9iYWxP
YmplY3QsIGltcGwpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IDI5NjM3ZjIuLjAwMmYy
ODQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0xMTEzLDExICsxMTEzLDExIEBAIHN1
YiBwcmludFdyYXBwZXJGdW5jdGlvbnMKIAogICAgICAgICBpZiAoJGVuYWJsZWRUYWdzeyR0YWdO
YW1lfXt3cmFwcGVyT25seUlmTWVkaWFJc0F2YWlsYWJsZX0pIHsKICAgICAgICAgICAgIHByaW50
IEYgPDxFTkQKLXN0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdy
YXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQ
YXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQorc3RhdGlj
IEpTRE9NV3JhcHBlciogY3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcihKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1F
bGVtZW50PiBlbGVtZW50KQogewogICAgIGlmIChlbGVtZW50LT5pc0hUTUxVbmtub3duRWxlbWVu
dCgpKQotICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVj
dCwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQsIGVsZW1lbnQuZ2V0KCkpOwotICAgIHJl
dHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAke0pTSW50ZXJmYWNl
TmFtZX0sIGVsZW1lbnQuZ2V0KCkpOworICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVS
KGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQsIGVsZW1lbnQuZ2V0
KCkpOworICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCAke0pTSW50
ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkpOwogfQogCiBFTkQKQEAgLTExMjUsMjIgKzExMjUs
MjIgQEAgRU5ECiAgICAgICAgIH0gZWxzaWYgKCRlbmFibGVkVGFnc3skdGFnTmFtZX17cnVudGlt
ZUNvbmRpdGlvbmFsfSkgewogICAgICAgICAgICAgbXkgJHJ1bnRpbWVDb25kaXRpb25hbCA9ICRl
bmFibGVkVGFnc3skdGFnTmFtZX17cnVudGltZUNvbmRpdGlvbmFsfTsKICAgICAgICAgICAgIHBy
aW50IEYgPDxFTkQKLXN0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1l
fVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQorc3Rh
dGljIEpTRE9NV3JhcHBlciogY3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcihKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFj
ZX1FbGVtZW50PiBlbGVtZW50KQogewogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS4ke3J1bnRpbWVDb25kaXRpb25hbH1FbmFibGVkKCkpIHsKICAgICAg
ICAgQVNTRVJUKCFlbGVtZW50IHx8IGVsZW1lbnQtPmlzJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRl
cmZhY2VOYW1lfSgpKTsKLSAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsICRwYXJhbWV0ZXJze2ZhbGxiYWNrSlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVu
dC5nZXQoKSk7CisgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0
LCAkcGFyYW1ldGVyc3tmYWxsYmFja0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkpOwog
ICAgIH0KIAotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCAke0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkpOworICAgIHJldHVybiBDUkVBVEVf
RE9NX1dSQVBQRVIoZ2xvYmFsT2JqZWN0LCAke0pTSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0
KCkpOwogfQogRU5ECiAgICAgOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHJpbnQg
RiA8PEVORAotc3RhdGljIEpTRE9NV3JhcHBlciogY3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3Jh
cHBlcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBh
c3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+IGVsZW1lbnQpCitzdGF0aWMg
SlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVs
ZW1lbnQ+IGVsZW1lbnQpCiB7Ci0gICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CisgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihnbG9iYWxPYmplY3QsICR7SlNJbnRlcmZhY2VOYW1lfSwg
ZWxlbWVudC5nZXQoKSk7CiB9CiAKIEVORApAQCAtMTE5MSw3ICsxMTkxLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgJHBhcmFtZXRlcnN7bmFtZXNwYWNlfU5hbWVz
OwogCi10eXBlZGVmIEpTRE9NV3JhcHBlciogKCpDcmVhdGUkcGFyYW1ldGVyc3tuYW1lc3BhY2V9
RWxlbWVudFdyYXBwZXJGdW5jdGlvbikoRXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBQ
YXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50Pik7Cit0eXBlZGVmIEpTRE9N
V3JhcHBlciogKCpDcmVhdGUkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudFdyYXBwZXJGdW5j
dGlvbikoSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFj
ZX1FbGVtZW50Pik7CiAKIEVORAogOwpAQCAtMTIzOSwxNCArMTIzOSwxNCBAQCBFTkQKICAgICAg
ICAgbWFwLmFkZCh0YWJsZVtpXS5uYW1lLmxvY2FsTmFtZSgpLmltcGwoKSwgdGFibGVbaV0uZnVu
Y3Rpb24pOwogfQogCi1KU0RPTVdyYXBwZXIqIGNyZWF0ZUpTJHBhcmFtZXRlcnN7bmFtZXNwYWNl
fVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQorSlNE
T01XcmFwcGVyKiBjcmVhdGVKUyRwYXJhbWV0ZXJze25hbWVzcGFjZX1XcmFwcGVyKEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNl
fUVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIENyZWF0ZSRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50V3Jh
cHBlckZ1bmN0aW9uPj4gZnVuY3Rpb25zOwogICAgIGlmIChmdW5jdGlvbnMuZ2V0KCkuaXNFbXB0
eSgpKQogICAgICAgICBwb3B1bGF0ZSRwYXJhbWV0ZXJze25hbWVzcGFjZX1XcmFwcGVyTWFwKGZ1
bmN0aW9ucyk7CiAgICAgaWYgKGF1dG8gZnVuY3Rpb24gPSBmdW5jdGlvbnMuZ2V0KCkuZ2V0KGVs
ZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSkpCi0gICAgICAgIHJldHVybiBmdW5jdGlvbihleGVj
LCBnbG9iYWxPYmplY3QsIGVsZW1lbnQpOwotICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIo
ZXhlYywgZ2xvYmFsT2JqZWN0LCAkcGFyYW1ldGVyc3tmYWxsYmFja0pTSW50ZXJmYWNlTmFtZX0s
IGVsZW1lbnQuZ2V0KCkpOworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBl
bGVtZW50KTsKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGdsb2JhbE9iamVjdCwgJHBh
cmFtZXRlcnN7ZmFsbGJhY2tKU0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKIH0KIAog
fQpAQCAtMTI3NSwxNyArMTI3NSwxMyBAQCBzdWIgcHJpbnRXcmFwcGVyRmFjdG9yeUhlYWRlckZp
bGUKICAgICBwcmludCBGIDw8RU5ECiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAotbmFtZXNw
YWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY1N0YXRlOwotfSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEpTRE9NV3JhcHBl
cjsKICAgICBjbGFzcyBKU0RPTUdsb2JhbE9iamVjdDsKICAgICBjbGFzcyAkcGFyYW1ldGVyc3tu
YW1lc3BhY2V9RWxlbWVudDsKIAotICAgIEpTRE9NV3JhcHBlciogY3JlYXRlSlMkcGFyYW1ldGVy
c3tuYW1lc3BhY2V9V3JhcHBlcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
UGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4pOworICAgIEpTRE9NV3Jh
cHBlciogY3JlYXRlSlMkcGFyYW1ldGVyc3tuYW1lc3BhY2V9V3JhcHBlcihKU0RPTUdsb2JhbE9i
amVjdCosIFBhc3NSZWZQdHI8JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQ+KTsKIAogfQog
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>