<?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>203772</bug_id>
          
          <creation_ts>2019-11-01 17:03:18 -0700</creation_ts>
          <short_desc>Port DOMCache / DOMCacheStorage to the HTML5 event loop</short_desc>
          <delta_ts>2019-11-02 20:45:20 -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 Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1586669</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-01 17:03:18 -0700</bug_when>
    <thetext>Port DOMCache / DOMCacheStorage to the HTML5 event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586671</commentid>
    <comment_count>1</comment_count>
      <attachid>382656</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-01 17:04:09 -0700</bug_when>
    <thetext>Created attachment 382656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586756</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 12:03:57 -0700</bug_when>
    <thetext>I suspect a bug in the WorkerEventLoop somehow. The cache-storage.https.html is passing for window but failing for workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586763</commentid>
    <comment_count>3</comment_count>
      <attachid>382683</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 12:29:50 -0700</bug_when>
    <thetext>Created attachment 382683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586764</commentid>
    <comment_count>4</comment_count>
      <attachid>382683</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 12:30:22 -0700</bug_when>
    <thetext>Comment on attachment 382683
Patch

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

&gt; Source/WebCore/workers/WorkerEventLoop.cpp:-101
&gt; -    for (auto&amp; task : m_tasks)

Found the WorkerEventLoop bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586787</commentid>
    <comment_count>5</comment_count>
      <attachid>382683</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-11-02 19:43:39 -0700</bug_when>
    <thetext>Comment on attachment 382683
Patch

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

&gt; Source/WebCore/workers/WorkerEventLoop.cpp:101
&gt; +    auto tasks = WTFMove(m_tasks);

I think the kosher way of doing this is to swap with an empty Vector&lt;Task&gt;. Otherwise, it leaves m_tasks in a bad (though currently kind of ok) state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586789</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 19:49:58 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Comment on attachment 382683 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=382683&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/WorkerEventLoop.cpp:101
&gt; &gt; +    auto tasks = WTFMove(m_tasks);
&gt; 
&gt; I think the kosher way of doing this is to swap with an empty Vector&lt;Task&gt;.
&gt; Otherwise, it leaves m_tasks in a bad (though currently kind of ok) state.

We guarantee that our WebKit types are in OK state after moving. We even have our own Optional because of this. I don’t really mind swapping with an empty vector but it is less concise and not necessary with WebKit types. We use this pattern a lot in WebKit too, although I know not everybody likes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586792</commentid>
    <comment_count>7</comment_count>
      <attachid>382687</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-11-02 19:59:09 -0700</bug_when>
    <thetext>Created attachment 382687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586795</commentid>
    <comment_count>8</comment_count>
      <attachid>382687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-02 20:44:36 -0700</bug_when>
    <thetext>Comment on attachment 382687
Patch

Clearing flags on attachment: 382687

Committed r251968: &lt;https://trac.webkit.org/changeset/251968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586796</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-02 20:44:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586797</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-02 20:45:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/56844994&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382656</attachid>
            <date>2019-11-01 17:04:09 -0700</date>
            <delta_ts>2019-11-02 12:29:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203772-20191101170408.patch</filename>
            <type>text/plain</type>
            <size>20886</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3YTZmNDgzODFlNGI3
MmQ4NjQyNTBkYTE3OGNlZDcyNzE3Mzc1Mi4uNGNkY2FhM2E3NDNjMTA2ZWMyNzNiNTM3NjEyZmVj
ZDZkMzFmZTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTExLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01DYWNoZSAvIERP
TUNhY2hlU3RvcmFnZSB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpET01DYWNoZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6Om1hdGNo
QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjphZGRBbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NQ2FjaGU6OnB1dFdpdGhSZXNwb25zZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NQ2FjaGU6OnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cmVtb3ZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjprZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjplbnF1ZXVlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6aGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlLmg6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpET01DYWNoZVN0b3JhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpkb1NlcXVlbnRpYWxNYXRjaCk6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNhY2hlU3RvcmFnZTo6aGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6
b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmRvT3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01DYWNoZVN0b3JhZ2U6OmRvUmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hl
U3RvcmFnZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmVucXVl
dWVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6aGFzUGVuZGluZ0Fj
dGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oOgorCiAyMDE5LTExLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUG9ydCBGaWxlUmVhZGVyIHRvIHRoZSBIVE1MNSBldmVudCBsb29wCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCmluZGV4IGVhZjA2YTI4MTBmZDk3
MWRkNmI4YzE1MWM1MWFlZjEzODI4M2JjY2EuLmUyMDcxOWMzZTRhZjY0MWFkMGMyMmM5YjcwZmJh
NmE1OWJhNDI1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRE9NQ2Fj
aGUuaCIKIAorI2luY2x1ZGUgIkFic3RyYWN0RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiQ2FjaGVR
dWVyeU9wdGlvbnMuaCIKICNpbmNsdWRlICJGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKQEAgLTMzLDcgKzM0LDYgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUNodW5rLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGFza1F1ZXVlLmgiCiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCkBA
IC00NSw3ICs0NSw2IEBAIERPTUNhY2hlOjpET01DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCB1aW50NjRfdCBpZGVuCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25u
ZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX3Rhc2tRdWV1ZShTdXNwZW5kYWJs
ZVRhc2tRdWV1ZTo6Y3JlYXRlKCZjb250ZXh0KSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICBtX2Nvbm5lY3Rpb24tPnJlZmVyZW5jZShtX2lkZW50aWZpZXIpOwpAQCAtNjAsNyArNTks
NyBAQCBET01DYWNoZTo6fkRPTUNhY2hlKCkKIHZvaWQgRE9NQ2FjaGU6Om1hdGNoKFJlcXVlc3RJ
bmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiB7CiAgICAgZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9w
dGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8UmVmUHRyPEZldGNoUmVzcG9uc2U+PiYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1
bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3
ICsxMjMsNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25hbDxSZXF1ZXN0SW5mbz4m
JiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogCiAgICAgaWYgKCFyZXF1ZXN0KSB7
CiAgICAgICAgIHJldHJpZXZlUmVjb3JkcyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewot
ICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUg
eworICAgICAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTEzNSw3ICsxMzQsNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25h
bDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIHF1ZXJ5Q2FjaGUocmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgp
LCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4
Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7
Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQg
PSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQzLDEzICsy
NDIsMTMgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZv
cywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKIAogICAgIGF1dG8gdGFza0hhbmRsZXIg
PSBGZXRjaFRhc2tzSGFuZGxlcjo6Y3JlYXRlKCp0aGlzLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
VmVjdG9yPFJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2Vw
dGlvbikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1v
dmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzE0LDcg
KzMxMyw3IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0b3I8UmVxdWVzdEluZm8+JiYgaW5m
b3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiB2b2lkIERPTUNhY2hlOjpwdXRXaXRo
UmVzcG9uc2VEYXRhKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIFJlZjxGZXRj
aFJlcXVlc3Q+JiYgcmVxdWVzdCwgUmVmPEZldGNoUmVzcG9uc2U+JiYgcmVzcG9uc2UsIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmIHJlc3BvbnNlQm9keSkKIHsKICAgICBpZiAo
cmVzcG9uc2VCb2R5Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1
ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IHJlc3BvbnNl
Qm9keS5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNr
KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzcG9uc2VCb2R5LnJl
bGVhc2VFeGNlcHRpb24oKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CkBAIC0z
MjQsNyArMzIzLDcgQEAgdm9pZCBET01DYWNoZTo6cHV0V2l0aFJlc3BvbnNlRGF0YShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBSZWY8RmV0Y2gKICAgICBpZiAoYXV0byBidWZm
ZXIgPSByZXNwb25zZUJvZHkucmVsZWFzZVJldHVyblZhbHVlKCkpCiAgICAgICAgIGJvZHkgPSBi
dWZmZXIucmVsZWFzZU5vbk51bGwoKTsKICAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0Lmdl
dCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShib2R5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVU
YXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQp
XSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMzkwLDcgKzM4OSw3IEBAIHZvaWQgRE9NQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8s
IFJlZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlCiAgICAgfQogCiAgICAg
YmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIHJlc3BvbnNl
LT5jb25zdW1lQm9keSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11
dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAg
ICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RG
TW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC00MDgsNyArNDA3LDcgQEAg
dm9pZCBET01DYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlv
bnMmJiBvcHRpb25zLCBET01Qcm9taXMKICAgICB9CiAKICAgICBiYXRjaERlbGV0ZU9wZXJhdGlv
bihyZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUob3B0aW9u
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjxib29sPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgZW5xdWV1ZVRh
c2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCld
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkp
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTQzNiw3ICs0MzUsNyBAQCB2b2lkIERPTUNhY2hl
OjprZXlzKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYg
b3B0aW9ucywgSwogCiAgICAgaWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJpZXZlUmVjb3Jk
cyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9u
ID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRh
c2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3Zl
KGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ0OCw3ICs0NDcsNyBA
QCB2b2lkIERPTUNhY2hlOjprZXlzKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENhY2hl
UXVlcnlPcHRpb25zJiYgb3B0aW9ucywgSwogICAgIH0KIAogICAgIHF1ZXJ5Q2FjaGUocmVxdWVz
dC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1
bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjA4LDEw
ICs2MDcsMTQgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdAogICAgIHJldHVybiAiQ2FjaGUiOwogfQogCi1ib29sIERPTUNhY2hlOjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAordm9pZCBET01DYWNoZTo6ZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9p
ZCgpPiYmIHRhc2spCiB7Ci0gICAgcmV0dXJuIG1fdGFza1F1ZXVlLT5oYXNQZW5kaW5nVGFza3Mo
KSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm47CisgICAgY29udGV4dC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6OkRPTU1hbmlwdWxhdGlvbiwgKmNvbnRleHQsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCB0YXNr
ID0gV1RGTW92ZSh0YXNrKV0geworICAgICAgICB0YXNrKCk7CisgICAgfSk7CiB9CiAKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5o
CmluZGV4IGQxNmY4MjIxNWM0ZjFkODk4YzFkNzU2NDI0ZTgwMzdhOWQzM2Q3Y2QuLjA5OTFiOTMw
YjI4ODIyYmU5Y2I1M2JkOGQ0MjBlYjNiODU3NTA5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0RPTUNhY2hlLmgKQEAgLTMzLDcgKzMzLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFN1c3BlbmRhYmxlVGFza1F1
ZXVlOwogCiBjbGFzcyBET01DYWNoZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hl
PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC02Myw5ICs2Miw2IEBAIHB1
YmxpYzoKIAogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7Ci0KIHByaXZhdGU6CiAgICAgRE9N
Q2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIApAQCAtODgsMTMgKzg0
LDE0IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNw
b25zZXMoY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKTsKICAgICBET01DYWNoZUVu
Z2luZTo6UmVjb3JkIHRvQ29ubmVjdGlvblJlY29yZChjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRj
aFJlc3BvbnNlJiwgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYmKTsKIAorICAgIHZvaWQg
ZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKKwogICAgIFN0cmluZyBtX25hbWU7CiAg
ICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAKICAgICBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBtX3JlY29y
ZHM7CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07Ci0gICAgVW5pcXVlUmVmPFN1c3Bl
bmRhYmxlVGFza1F1ZXVlPiBtX3Rhc2tRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9y
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNw
cAppbmRleCA1NGVlZTdiNTIwZjZhMDRjZDFiN2Q5ZGJjYmU0ZDBlZTc4YzE3OGQyLi41MjMxZmYy
MjNmYzM4OTJjZDc5NGU2YWQzM2UyZWRjOWZiODc1M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiSlNET01DYWNoZS5oIgogI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25zZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTdXNwZW5kYWJsZVRh
c2tRdWV1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTo6RE9NQ2FjaGVFbmdpbmU7CkBAIC0zOSw3ICszOCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOjpET01DYWNoZUVuZ2luZTsKIERPTUNhY2hlU3RvcmFnZTo6RE9NQ2FjaGVTdG9yYWdlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBt
X2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1fdGFza1F1ZXVlKFN1c3Bl
bmRhYmxlVGFza1F1ZXVlOjpjcmVhdGUoJmNvbnRleHQpKQogewogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwogfQpAQCAtODksNyArODcsNyBAQCBzdGF0aWMgaW5saW5lIFJlZjxET01DYWNoZT4gY29w
eUNhY2hlKGNvbnN0IFJlZjxET01DYWNoZT4mIGNhY2hlKQogdm9pZCBET01DYWNoZVN0b3JhZ2U6
OmRvU2VxdWVudGlhbE1hdGNoKERPTUNhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVl
cnlPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewog
ICAgIHN0YXJ0U2VxdWVudGlhbE1hdGNoKFdURjo6bWFwKG1fY2FjaGVzLCBjb3B5Q2FjaGUpLCBX
VEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0g
bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNr
KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgp
IG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTA3LDcgKzEwNSw3IEBAIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjptYXRjaChET01DYWNoZTo6
UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wCiB7CiAgICAgcmV0cmll
dmVDYWNoZXMoW3RoaXMsIGluZm8gPSBXVEZNb3ZlKGluZm8pLCBvcHRpb25zID0gV1RGTW92ZShv
cHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAg
ICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0
aW9uID0gV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExOSw3ICsxMTcsNyBAQCB2b2lkIERPTUNhY2hl
U3RvcmFnZTo6bWF0Y2goRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9w
dGlvbnMmJiBvcAogICAgICAgICAgICAgICAgIG1fY2FjaGVzW3Bvc2l0aW9uXS0+bWF0Y2goV1RG
TW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzMiw3ICsxMzAsNyBAQCB2b2lkIERPTUNhY2hl
U3RvcmFnZTo6bWF0Y2goRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9w
dGlvbnMmJiBvcAogdm9pZCBET01DYWNoZVN0b3JhZ2U6Omhhcyhjb25zdCBTdHJpbmcmIG5hbWUs
IERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCiB7CiAgICAgcmV0cmll
dmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25h
bDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhj
ZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVl
VGFzayhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9
IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChleGNlcHRp
b24pIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTg5LDcgKzE4Nyw3IEBAIHZv
aWQgRE9NQ2FjaGVTdG9yYWdlOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxECiB7CiAgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0
aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICAgICAgbV90
YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0
aW9uID0gV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdU
Rk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHBy
b21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTIwMiw3ICsyMDAsNyBAQCB2b2lkIERPTUNhY2hlU3RvcmFnZTo6
ZG9PcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFj
ZQogewogICAgIGF1dG8gcG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8m
IGl0ZW0pIHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBuYW1lOyB9KTsKICAgICBpZiAocG9zaXRp
b24gIT0gbm90Rm91bmQpIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgY2FjaGUgPSBtX2NhY2hlc1twb3NpdGlvbl0u
Y29weVJlZigpXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIGNhY2hlID0gbV9jYWNoZXNbcG9zaXRpb25dLmNvcHlSZWYo
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShET01DYWNoZTo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFN0cmluZyB7IGNhY2hlLT5uYW1lKCkgfSwg
Y2FjaGUtPmlkZW50aWZpZXIoKSwgbV9jb25uZWN0aW9uLmNvcHlSZWYoKSkpOwogICAgICAgICB9
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjEwLDE0ICsyMDgsMTQgQEAgdm9pZCBET01DYWNoZVN0
b3JhZ2U6OmRvT3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2UKIAogICAgIG1fY29ubmVjdGlvbi0+b3Blbigqb3JpZ2luKCksIG5hbWUsIFt0aGlz
LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcGVuZGluZ0FjdGl2aXR5ID0gbWFr
ZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGNvbnN0IENhY2hlSWRlbnRpZmllck9yRXJyb3ImIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7Ci0gICAg
ICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCBlcnJvciA9IHJlc3VsdC5lcnJvcigpXSgpIG11dGFibGUgeworICAgICAgICAg
ICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBlcnJvciA9
IHJlc3VsdC5lcnJvcigpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVq
ZWN0KERPTUNhY2hlRW5naW5lOjpjb252ZXJ0VG9FeGNlcHRpb25BbmRMb2coc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBlcnJvcikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlKCkuaGFkU3RvcmFnZUVycm9yKQogICAgICAg
ICAgICAgICAgIGxvZ0NvbnNvbGVQZXJzaXN0ZW5jeUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbmFtZSk7CiAKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhp
cywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKS5pZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVudGlmaWVyID0gcmVz
dWx0LnZhbHVlKCkuaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBhdXRv
IGNhY2hlID0gRE9NQ2FjaGU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBTdHJp
bmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAg
ICAgICAgICAgIHByb21pc2UucmVzb2x2ZShjYWNoZSk7CiAgICAgICAgICAgICAgICAgbV9jYWNo
ZXMuYXBwZW5kKFdURk1vdmUoY2FjaGUpKTsKQEAgLTIzMCw3ICsyMjgsNyBAQCB2b2lkIERPTUNh
Y2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVk
PElETEJvb2xlYW4+JgogewogICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgIG1fdGFza1F1ZXVl
LT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdU
Rk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1
ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4
Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0yNDMsMTQgKzI0MSwxNCBAQCB2b2lkIERPTUNhY2hlU3RvcmFnZTo6ZG9SZW1v
dmUoY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbgogewog
ICAgIGF1dG8gcG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGl0ZW0p
IHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBuYW1lOyB9KTsKICAgICBpZiAocG9zaXRpb24gPT0g
bm90Rm91bmQpIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBtX2Nvbm5lY3Rpb24tPnJlbW92ZShtX2NhY2hlc1twb3NpdGlvbl0tPmlkZW50aWZpZXIoKSwg
W3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkg
PSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oY29uc3QgQ2FjaGVJZGVudGlmaWVyT3JFcnJv
ciYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0
aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0XSgpIG11dGFibGUg
eworICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdF0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc192
YWx1ZSgpKQogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KERPTUNhY2hlRW5naW5lOjpj
b252ZXJ0VG9FeGNlcHRpb25BbmRMb2coc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXN1bHQu
ZXJyb3IoKSkpOwogICAgICAgICAgICAgZWxzZSB7CkBAIC0yNjUsNyArMjYzLDcgQEAgdm9pZCBE
T01DYWNoZVN0b3JhZ2U6OmRvUmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEJvb2xlYW4KIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjprZXlzKEtleXNQcm9taXNl
JiYgcHJvbWlzZSkKIHsKICAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewot
ICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhj
ZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhj
ZXB0aW9uLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yODgsOSArMjg2
LDE0IEBAIGNvbnN0IGNoYXIqIERPTUNhY2hlU3RvcmFnZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuICJDYWNoZVN0b3JhZ2UiOwogfQogCi1ib29sIERPTUNhY2hlU3Rv
cmFnZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3ZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpl
bnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKIHsKLSAgICByZXR1cm4gbV90YXNr
UXVldWUtPmhhc1BlbmRpbmdUYXNrcygpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBjb250ZXh0LT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCAqY29udGV4dCwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CisgICAgICAgIHRhc2so
KTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmgKaW5kZXggYjIzMGVlZWI1MDU4ZDdl
MGI3YTFmZGI0ZTgyZGI4OWI2ZTAyMTgyMS4uMDEwNTM5ZjRiNTdkNjZhYjc3ZmMwMDRmZThiMjQw
ZDVkMmE2NzZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oCkBAIC0zMiw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgU3VzcGVuZGFibGVUYXNrUXVldWU7Ci0KIGNsYXNzIERPTUNhY2hlU3RvcmFnZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPERPTUNhY2hlU3RvcmFnZT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8RE9NQ2FjaGVTdG9yYWdlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01DYWNoZVN0b3JhZ2UoY29udGV4dCwg
V1RGTW92ZShjb25uZWN0aW9uKSkpOyB9CkBAIC00Nyw5ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
Jik7CiAgICAgdm9pZCBrZXlzKEtleXNQcm9taXNlJiYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0Ci0gICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKLQogcHJpdmF0
ZToKICAgICBET01DYWNoZVN0b3JhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIApAQCAtNjQsMTAgKzU5LDExIEBAIHByaXZhdGU6CiAg
ICAgUmVmPERPTUNhY2hlPiBmaW5kQ2FjaGVPckNyZWF0ZShET01DYWNoZUVuZ2luZTo6Q2FjaGVJ
bmZvJiYpOwogICAgIE9wdGlvbmFsPENsaWVudE9yaWdpbj4gb3JpZ2luKCkgY29uc3Q7CiAKKyAg
ICB2b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisKICAgICBWZWN0b3I8UmVm
PERPTUNhY2hlPj4gbV9jYWNoZXM7CiAgICAgdWludDY0X3QgbV91cGRhdGVDb3VudGVyIHsgMCB9
OwogICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgVW5p
cXVlUmVmPFN1c3BlbmRhYmxlVGFza1F1ZXVlPiBtX3Rhc2tRdWV1ZTsKICAgICBib29sIG1faXNT
dG9wcGVkIHsgZmFsc2UgfTsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382683</attachid>
            <date>2019-11-02 12:29:50 -0700</date>
            <delta_ts>2019-11-02 19:59:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203772-20191102122949.patch</filename>
            <type>text/plain</type>
            <size>21519</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3YTZmNDgzODFlNGI3
MmQ4NjQyNTBkYTE3OGNlZDcyNzE3Mzc1Mi4uNGNkY2FhM2E3NDNjMTA2ZWMyNzNiNTM3NjEyZmVj
ZDZkMzFmZTQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTExLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01DYWNoZSAvIERP
TUNhY2hlU3RvcmFnZSB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpET01DYWNoZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01DYWNoZTo6bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6Om1hdGNo
QWxsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjphZGRBbGwpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NQ2FjaGU6OnB1dFdpdGhSZXNwb25zZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NQ2FjaGU6OnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6cmVtb3ZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjprZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjplbnF1ZXVlVGFzayk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6aGFzUGVuZGlu
Z0FjdGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlLmg6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpET01DYWNoZVN0b3JhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpkb1NlcXVlbnRpYWxNYXRjaCk6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6Om1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNhY2hlU3RvcmFnZTo6aGFzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6
b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmRvT3Blbik6CisgICAg
ICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01DYWNoZVN0b3JhZ2U6OmRvUmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hl
U3RvcmFnZTo6a2V5cyk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmVucXVl
dWVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6aGFzUGVuZGluZ0Fj
dGl2aXR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oOgorCiAyMDE5LTExLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUG9ydCBGaWxlUmVhZGVyIHRvIHRoZSBIVE1MNSBldmVudCBsb29wCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCmluZGV4IGVhZjA2YTI4MTBmZDk3
MWRkNmI4YzE1MWM1MWFlZjEzODI4M2JjY2EuLmUyMDcxOWMzZTRhZjY0MWFkMGMyMmM5YjcwZmJh
NmE1OWJhNDI1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRE9NQ2Fj
aGUuaCIKIAorI2luY2x1ZGUgIkFic3RyYWN0RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiQ2FjaGVR
dWVyeU9wdGlvbnMuaCIKICNpbmNsdWRlICJGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKQEAgLTMzLDcgKzM0LDYgQEAKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbUNodW5rLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGFza1F1ZXVlLmgiCiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCkBA
IC00NSw3ICs0NSw2IEBAIERPTUNhY2hlOjpET01DYWNoZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCB1aW50NjRfdCBpZGVuCiAgICAgLCBtX25hbWUoV1RG
TW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25u
ZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX3Rhc2tRdWV1ZShTdXNwZW5kYWJs
ZVRhc2tRdWV1ZTo6Y3JlYXRlKCZjb250ZXh0KSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsK
ICAgICBtX2Nvbm5lY3Rpb24tPnJlZmVyZW5jZShtX2lkZW50aWZpZXIpOwpAQCAtNjAsNyArNTks
NyBAQCBET01DYWNoZTo6fkRPTUNhY2hlKCkKIHZvaWQgRE9NQ2FjaGU6Om1hdGNoKFJlcXVlc3RJ
bmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiB7CiAgICAgZG9NYXRjaChXVEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9w
dGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8UmVmUHRyPEZldGNoUmVzcG9uc2U+PiYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1
bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyNCw3
ICsxMjMsNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25hbDxSZXF1ZXN0SW5mbz4m
JiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogCiAgICAgaWYgKCFyZXF1ZXN0KSB7
CiAgICAgICAgIHJldHJpZXZlUmVjb3JkcyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewot
ICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUg
eworICAgICAgICAgICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTEzNSw3ICsxMzQsNyBAQCB2b2lkIERPTUNhY2hlOjptYXRjaEFsbChPcHRpb25h
bDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbgogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIHF1ZXJ5Q2FjaGUocmVxdWVzdC5yZWxlYXNlTm9uTnVsbCgp
LCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4
Y2VwdGlvbk9yPFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+PiYmIHJlc3VsdCkgbXV0YWJsZSB7
Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQg
PSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjQzLDEzICsy
NDIsMTMgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZv
cywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKIAogICAgIGF1dG8gdGFza0hhbmRsZXIg
PSBGZXRjaFRhc2tzSGFuZGxlcjo6Y3JlYXRlKCp0aGlzLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8
VmVjdG9yPFJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKV0o
KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2Vw
dGlvbikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgYmF0Y2hQdXRPcGVyYXRpb24ocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1v
dmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtMzE0LDcg
KzMxMyw3IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0b3I8UmVxdWVzdEluZm8+JiYgaW5m
b3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiB2b2lkIERPTUNhY2hlOjpwdXRXaXRo
UmVzcG9uc2VEYXRhKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIFJlZjxGZXRj
aFJlcXVlc3Q+JiYgcmVxdWVzdCwgUmVmPEZldGNoUmVzcG9uc2U+JiYgcmVzcG9uc2UsIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYmIHJlc3BvbnNlQm9keSkKIHsKICAgICBpZiAo
cmVzcG9uc2VCb2R5Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1
ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IHJlc3BvbnNl
Qm9keS5yZWxlYXNlRXhjZXB0aW9uKCldKCkgbXV0YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNr
KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzcG9uc2VCb2R5LnJl
bGVhc2VFeGNlcHRpb24oKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CkBAIC0z
MjQsNyArMzIzLDcgQEAgdm9pZCBET01DYWNoZTo6cHV0V2l0aFJlc3BvbnNlRGF0YShET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlLCBSZWY8RmV0Y2gKICAgICBpZiAoYXV0byBidWZm
ZXIgPSByZXNwb25zZUJvZHkucmVsZWFzZVJldHVyblZhbHVlKCkpCiAgICAgICAgIGJvZHkgPSBi
dWZmZXIucmVsZWFzZU5vbk51bGwoKTsKICAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXF1ZXN0Lmdl
dCgpLCByZXNwb25zZS5nZXQoKSwgV1RGTW92ZShib2R5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9y
PHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVU
YXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQp
XSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpA
QCAtMzkwLDcgKzM4OSw3IEBAIHZvaWQgRE9NQ2FjaGU6OnB1dChSZXF1ZXN0SW5mbyYmIGluZm8s
IFJlZjxGZXRjaFJlc3BvbnNlPiYmIHJlc3BvbnNlLCBET01Qcm9taXNlCiAgICAgfQogCiAgICAg
YmF0Y2hQdXRPcGVyYXRpb24ocmVxdWVzdC5nZXQoKSwgcmVzcG9uc2UuZ2V0KCksIHJlc3BvbnNl
LT5jb25zdW1lQm9keSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9pZD4mJiByZXN1bHQpIG11
dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CisgICAg
ICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RG
TW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RG
TW92ZShyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC00MDgsNyArNDA3LDcgQEAg
dm9pZCBET01DYWNoZTo6cmVtb3ZlKFJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlv
bnMmJiBvcHRpb25zLCBET01Qcm9taXMKICAgICB9CiAKICAgICBiYXRjaERlbGV0ZU9wZXJhdGlv
bihyZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUob3B0aW9u
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjxib29sPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgZW5xdWV1ZVRh
c2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCld
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkp
OwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTQzNiw3ICs0MzUsNyBAQCB2b2lkIERPTUNhY2hl
OjprZXlzKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYg
b3B0aW9ucywgSwogCiAgICAgaWYgKCFyZXF1ZXN0KSB7CiAgICAgICAgIHJldHJpZXZlUmVjb3Jk
cyhVUkwgeyB9LCBbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9u
ID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRh
c2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3Zl
KGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTQ0OCw3ICs0NDcsNyBA
QCB2b2lkIERPTUNhY2hlOjprZXlzKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENhY2hl
UXVlcnlPcHRpb25zJiYgb3B0aW9ucywgSwogICAgIH0KIAogICAgIHF1ZXJ5Q2FjaGUocmVxdWVz
dC5yZWxlYXNlTm9uTnVsbCgpLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1
bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjA4LDEw
ICs2MDcsMTQgQEAgY29uc3QgY2hhciogRE9NQ2FjaGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdAogICAgIHJldHVybiAiQ2FjaGUiOwogfQogCi1ib29sIERPTUNhY2hlOjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdAordm9pZCBET01DYWNoZTo6ZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9p
ZCgpPiYmIHRhc2spCiB7Ci0gICAgcmV0dXJuIG1fdGFza1F1ZXVlLT5oYXNQZW5kaW5nVGFza3Mo
KSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm47CisgICAgY29udGV4dC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6OkRPTU1hbmlwdWxhdGlvbiwgKmNvbnRleHQsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIHBlbmRpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCB0YXNr
ID0gV1RGTW92ZSh0YXNrKV0geworICAgICAgICB0YXNrKCk7CisgICAgfSk7CiB9CiAKLQogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5o
CmluZGV4IGQxNmY4MjIxNWM0ZjFkODk4YzFkNzU2NDI0ZTgwMzdhOWQzM2Q3Y2QuLjA5OTFiOTMw
YjI4ODIyYmU5Y2I1M2JkOGQ0MjBlYjNiODU3NTA5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0RPTUNhY2hlLmgKQEAgLTMzLDcgKzMzLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLWNsYXNzIFN1c3BlbmRhYmxlVGFza1F1
ZXVlOwogCiBjbGFzcyBET01DYWNoZSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNhY2hl
PiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6CkBAIC02Myw5ICs2Miw2IEBAIHB1
YmxpYzoKIAogICAgIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVy
biBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAotICAgIC8vIEFjdGl2ZURPTU9iamVjdAotICAgIGJv
b2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7Ci0KIHByaXZhdGU6CiAgICAgRE9N
Q2FjaGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlk
ZW50aWZpZXIsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIApAQCAtODgsMTMgKzg0
LDE0IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gY2xvbmVSZXNw
b25zZXMoY29uc3QgVmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4mKTsKICAgICBET01DYWNoZUVu
Z2luZTo6UmVjb3JkIHRvQ29ubmVjdGlvblJlY29yZChjb25zdCBGZXRjaFJlcXVlc3QmLCBGZXRj
aFJlc3BvbnNlJiwgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYmKTsKIAorICAgIHZvaWQg
ZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKKwogICAgIFN0cmluZyBtX25hbWU7CiAg
ICAgdWludDY0X3QgbV9pZGVudGlmaWVyOwogICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAKICAgICBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiBtX3JlY29y
ZHM7CiAgICAgYm9vbCBtX2lzU3RvcHBlZCB7IGZhbHNlIH07Ci0gICAgVW5pcXVlUmVmPFN1c3Bl
bmRhYmxlVGFza1F1ZXVlPiBtX3Rhc2tRdWV1ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9y
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNw
cAppbmRleCA1NGVlZTdiNTIwZjZhMDRjZDFiN2Q5ZGJjYmU0ZDBlZTc4YzE3OGQyLi41MjMxZmYy
MjNmYzM4OTJjZDc5NGU2YWQzM2UyZWRjOWZiODc1M2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiSlNET01DYWNoZS5oIgogI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25zZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJTdXNwZW5kYWJsZVRh
c2tRdWV1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTo6RE9NQ2FjaGVFbmdpbmU7CkBAIC0zOSw3ICszOCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOjpET01DYWNoZUVuZ2luZTsKIERPTUNhY2hlU3RvcmFnZTo6RE9NQ2FjaGVTdG9yYWdlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24pCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCiAgICAgLCBt
X2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1fdGFza1F1ZXVlKFN1c3Bl
bmRhYmxlVGFza1F1ZXVlOjpjcmVhdGUoJmNvbnRleHQpKQogewogICAgIHN1c3BlbmRJZk5lZWRl
ZCgpOwogfQpAQCAtODksNyArODcsNyBAQCBzdGF0aWMgaW5saW5lIFJlZjxET01DYWNoZT4gY29w
eUNhY2hlKGNvbnN0IFJlZjxET01DYWNoZT4mIGNhY2hlKQogdm9pZCBET01DYWNoZVN0b3JhZ2U6
OmRvU2VxdWVudGlhbE1hdGNoKERPTUNhY2hlOjpSZXF1ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVl
cnlPcHRpb25zJiYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewog
ICAgIHN0YXJ0U2VxdWVudGlhbE1hdGNoKFdURjo6bWFwKG1fY2FjaGVzLCBjb3B5Q2FjaGUpLCBX
VEZNb3ZlKGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0g
bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNr
KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgp
IG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpA
QCAtMTA3LDcgKzEwNSw3IEBAIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjptYXRjaChET01DYWNoZTo6
UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wCiB7CiAgICAgcmV0cmll
dmVDYWNoZXMoW3RoaXMsIGluZm8gPSBXVEZNb3ZlKGluZm8pLCBvcHRpb25zID0gV1RGTW92ZShv
cHRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4m
JiBleGNlcHRpb24pIG11dGFibGUgewogICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAg
ICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
LCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0
aW9uID0gV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTExOSw3ICsxMTcsNyBAQCB2b2lkIERPTUNhY2hl
U3RvcmFnZTo6bWF0Y2goRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9w
dGlvbnMmJiBvcAogICAgICAgICAgICAgICAgIG1fY2FjaGVzW3Bvc2l0aW9uXS0+bWF0Y2goV1RG
TW92ZShpbmZvKSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShwcm9taXNlKSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNvbHZlKCk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEzMiw3ICsxMzAsNyBAQCB2b2lkIERPTUNhY2hl
U3RvcmFnZTo6bWF0Y2goRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9w
dGlvbnMmJiBvcAogdm9pZCBET01DYWNoZVN0b3JhZ2U6Omhhcyhjb25zdCBTdHJpbmcmIG5hbWUs
IERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpCiB7CiAgICAgcmV0cmll
dmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25h
bDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUt
PmVucXVldWVUYXNrKFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhj
ZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVl
VGFzayhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9
IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChleGNlcHRp
b24pIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChXVEZNb3ZlKGV4Y2VwdGlvbi52
YWx1ZSgpKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTg5LDcgKzE4Nyw3IEBAIHZv
aWQgRE9NQ2FjaGVTdG9yYWdlOjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxECiB7CiAgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUs
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0
aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICAgICAgbV90
YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0
aW9uID0gV1RGTW92ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdU
Rk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHBy
b21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIHJldHVybjsKQEAgLTIwMiw3ICsyMDAsNyBAQCB2b2lkIERPTUNhY2hlU3RvcmFnZTo6
ZG9PcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFj
ZQogewogICAgIGF1dG8gcG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8m
IGl0ZW0pIHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBuYW1lOyB9KTsKICAgICBpZiAocG9zaXRp
b24gIT0gbm90Rm91bmQpIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlz
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgY2FjaGUgPSBtX2NhY2hlc1twb3NpdGlvbl0u
Y29weVJlZigpXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSksIGNhY2hlID0gbV9jYWNoZXNbcG9zaXRpb25dLmNvcHlSZWYo
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIHByb21pc2UucmVzb2x2ZShET01DYWNoZTo6Y3Jl
YXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFN0cmluZyB7IGNhY2hlLT5uYW1lKCkgfSwg
Y2FjaGUtPmlkZW50aWZpZXIoKSwgbV9jb25uZWN0aW9uLmNvcHlSZWYoKSkpOwogICAgICAgICB9
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjEwLDE0ICsyMDgsMTQgQEAgdm9pZCBET01DYWNoZVN0
b3JhZ2U6OmRvT3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2UKIAogICAgIG1fY29ubmVjdGlvbi0+b3Blbigqb3JpZ2luKCksIG5hbWUsIFt0aGlz
LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcGVuZGluZ0FjdGl2aXR5ID0gbWFr
ZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKGNvbnN0IENhY2hlSWRlbnRpZmllck9yRXJyb3ImIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7Ci0gICAg
ICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCBlcnJvciA9IHJlc3VsdC5lcnJvcigpXSgpIG11dGFibGUgeworICAgICAgICAg
ICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBlcnJvciA9
IHJlc3VsdC5lcnJvcigpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVq
ZWN0KERPTUNhY2hlRW5naW5lOjpjb252ZXJ0VG9FeGNlcHRpb25BbmRMb2coc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCBlcnJvcikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAocmVzdWx0LnZhbHVlKCkuaGFkU3RvcmFnZUVycm9yKQogICAgICAg
ICAgICAgICAgIGxvZ0NvbnNvbGVQZXJzaXN0ZW5jeUVycm9yKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgbmFtZSk7CiAKLSAgICAgICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhp
cywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKS5pZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRhc2so
W3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBpZGVudGlmaWVyID0gcmVz
dWx0LnZhbHVlKCkuaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBhdXRv
IGNhY2hlID0gRE9NQ2FjaGU6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBTdHJp
bmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5jb3B5UmVmKCkpOwogICAgICAg
ICAgICAgICAgIHByb21pc2UucmVzb2x2ZShjYWNoZSk7CiAgICAgICAgICAgICAgICAgbV9jYWNo
ZXMuYXBwZW5kKFdURk1vdmUoY2FjaGUpKTsKQEAgLTIzMCw3ICsyMjgsNyBAQCB2b2lkIERPTUNh
Y2hlU3RvcmFnZTo6cmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVk
PElETEJvb2xlYW4+JgogewogICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBuYW1lLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAgIG1fdGFza1F1ZXVl
LT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdU
Rk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1
ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4
Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJl
amVjdChXVEZNb3ZlKGV4Y2VwdGlvbikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0yNDMsMTQgKzI0MSwxNCBAQCB2b2lkIERPTUNhY2hlU3RvcmFnZTo6ZG9SZW1v
dmUoY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbgogewog
ICAgIGF1dG8gcG9zaXRpb24gPSBtX2NhY2hlcy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGl0ZW0p
IHsgcmV0dXJuIGl0ZW0tPm5hbWUoKSA9PSBuYW1lOyB9KTsKICAgICBpZiAocG9zaXRpb24gPT0g
bm90Rm91bmQpIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKGZhbHNlKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBtX2Nvbm5lY3Rpb24tPnJlbW92ZShtX2NhY2hlc1twb3NpdGlvbl0tPmlkZW50aWZpZXIoKSwg
W3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkg
PSBtYWtlUGVuZGluZ0FjdGl2aXR5KCp0aGlzKV0oY29uc3QgQ2FjaGVJZGVudGlmaWVyT3JFcnJv
ciYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0
aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0XSgpIG11dGFibGUg
eworICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIHJlc3VsdF0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc192
YWx1ZSgpKQogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KERPTUNhY2hlRW5naW5lOjpj
b252ZXJ0VG9FeGNlcHRpb25BbmRMb2coc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXN1bHQu
ZXJyb3IoKSkpOwogICAgICAgICAgICAgZWxzZSB7CkBAIC0yNjUsNyArMjYzLDcgQEAgdm9pZCBE
T01DYWNoZVN0b3JhZ2U6OmRvUmVtb3ZlKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEJvb2xlYW4KIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjprZXlzKEtleXNQcm9taXNl
JiYgcHJvbWlzZSkKIHsKICAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewot
ICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhj
ZXB0aW9uID0gV1RGTW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KGV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhj
ZXB0aW9uLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yODgsOSArMjg2
LDE0IEBAIGNvbnN0IGNoYXIqIERPTUNhY2hlU3RvcmFnZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuICJDYWNoZVN0b3JhZ2UiOwogfQogCi1ib29sIERPTUNhY2hlU3Rv
cmFnZTo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKK3ZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpl
bnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKIHsKLSAgICByZXR1cm4gbV90YXNr
UXVldWUtPmhhc1BlbmRpbmdUYXNrcygpIHx8IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0Fj
dGl2aXR5KCk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
KyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKyAgICBjb250ZXh0LT5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCAqY29udGV4dCwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRp
bmdBY3Rpdml0eSgqdGhpcyksIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSB7CisgICAgICAgIHRhc2so
KTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmgKaW5kZXggYjIzMGVlZWI1MDU4ZDdl
MGI3YTFmZGI0ZTgyZGI4OWI2ZTAyMTgyMS4uMDEwNTM5ZjRiNTdkNjZhYjc3ZmMwMDRmZThiMjQw
ZDVkMmE2NzZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oCkBAIC0zMiw4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgU3VzcGVuZGFibGVUYXNrUXVldWU7Ci0KIGNsYXNzIERPTUNhY2hlU3RvcmFnZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPERPTUNhY2hlU3RvcmFnZT4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewog
cHVibGljOgogICAgIHN0YXRpYyBSZWY8RE9NQ2FjaGVTdG9yYWdlPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01DYWNoZVN0b3JhZ2UoY29udGV4dCwg
V1RGTW92ZShjb25uZWN0aW9uKSkpOyB9CkBAIC00Nyw5ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZShjb25zdCBTdHJpbmcmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
Jik7CiAgICAgdm9pZCBrZXlzKEtleXNQcm9taXNlJiYpOwogCi0gICAgLy8gQWN0aXZlRE9NT2Jq
ZWN0Ci0gICAgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKLQogcHJpdmF0
ZToKICAgICBET01DYWNoZVN0b3JhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIApAQCAtNjQsMTAgKzU5LDExIEBAIHByaXZhdGU6CiAg
ICAgUmVmPERPTUNhY2hlPiBmaW5kQ2FjaGVPckNyZWF0ZShET01DYWNoZUVuZ2luZTo6Q2FjaGVJ
bmZvJiYpOwogICAgIE9wdGlvbmFsPENsaWVudE9yaWdpbj4gb3JpZ2luKCkgY29uc3Q7CiAKKyAg
ICB2b2lkIGVucXVldWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJik7CisKICAgICBWZWN0b3I8UmVm
PERPTUNhY2hlPj4gbV9jYWNoZXM7CiAgICAgdWludDY0X3QgbV91cGRhdGVDb3VudGVyIHsgMCB9
OwogICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0gICAgVW5p
cXVlUmVmPFN1c3BlbmRhYmxlVGFza1F1ZXVlPiBtX3Rhc2tRdWV1ZTsKICAgICBib29sIG1faXNT
dG9wcGVkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyRXZlbnRMb29wLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZl
bnRMb29wLmNwcAppbmRleCA0Njg5NzJjYTQ3OTE1NjM1NjFiYjM2NTRiMTgxZGZjMjNjMzlhYzg5
Li41YWUxYTM5NmJmMDFlNjQ2ZWJjYzNkZGU5YTZhMTJiNzJjNDE2ZDY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3BwCkBAIC05OCw3ICs5OCw4IEBAIHZvaWQg
V29ya2VyRXZlbnRMb29wOjpydW4oKQogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7CiAgICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQtPmFjdGl2ZURPTU9iamVj
dHNBcmVTdG9wcGVkKCkgfHwgY29udGV4dC0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgp
KQogICAgICAgICByZXR1cm47Ci0gICAgZm9yIChhdXRvJiB0YXNrIDogbV90YXNrcykKKyAgICBh
dXRvIHRhc2tzID0gV1RGTW92ZShtX3Rhc2tzKTsKKyAgICBmb3IgKGF1dG8mIHRhc2sgOiB0YXNr
cykKICAgICAgICAgdGFzay50YXNrKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382687</attachid>
            <date>2019-11-02 19:59:09 -0700</date>
            <delta_ts>2019-11-02 20:44:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203772-20191102195908.patch</filename>
            <type>text/plain</type>
            <size>21537</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk3YTZmNDgzODFlNGI3
MmQ4NjQyNTBkYTE3OGNlZDcyNzE3Mzc1Mi4uYjMwNmE2MzViYjg2ZmI3NGU1OWQzZGUwNWVlYzli
NTRiOWM3ZGU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE5LTExLTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUG9ydCBET01DYWNoZSAvIERP
TUNhY2hlU3RvcmFnZSB0byB0aGUgSFRNTDUgZXZlbnQgbG9vcAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OkRPTUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUNhY2hlOjptYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNoZTo6bWF0Y2hBbGwp
OgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6OmFkZEFsbCk6CisgICAgICAgIChXZWJDb3Jl
OjpET01DYWNoZTo6cHV0V2l0aFJlc3BvbnNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpET01D
YWNoZTo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpyZW1vdmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ2FjaGU6OmtleXMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGU6
OmVucXVldWVUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlOjpoYXNQZW5kaW5nQWN0
aXZpdHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OkRPTUNhY2hlU3RvcmFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpET01DYWNoZVN0b3JhZ2U6OmRvU2VxdWVudGlhbE1hdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2Fj
aGVTdG9yYWdlOjpoYXMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpvcGVu
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6ZG9PcGVuKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNhY2hlU3RvcmFnZTo6ZG9SZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9y
YWdlOjprZXlzKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6ZW5xdWV1ZVRh
c2spOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ2FjaGVTdG9yYWdlOjpoYXNQZW5kaW5nQWN0aXZp
dHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9y
YWdlLmg6CisKIDIwMTktMTEtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBQb3J0IEZpbGVSZWFkZXIgdG8gdGhlIEhUTUw1IGV2ZW50IGxvb3AKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5kZXggZWFmMDZhMjgxMGZkOTcxZGQ2
YjhjMTUxYzUxYWVmMTM4MjgzYmNjYS4uZTIwNzE5YzNlNGFmNjQxYWQwYzIyYzliNzBmYmE2YTU5
YmE0MjU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01DYWNoZS5o
IgogCisjaW5jbHVkZSAiQWJzdHJhY3RFdmVudExvb3AuaCIKICNpbmNsdWRlICJDYWNoZVF1ZXJ5
T3B0aW9ucy5oIgogI2luY2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJIVFRQUGFy
c2Vycy5oIgpAQCAtMzMsNyArMzQsNiBAQAogI2luY2x1ZGUgIkpTRmV0Y2hSZXNwb25zZS5oIgog
I2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtQ2h1bmsuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU3VzcGVuZGFibGVUYXNrUXVldWUuaCIKICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKQEAgLTQ1
LDcgKzQ1LDYgQEAgRE9NQ2FjaGU6OkRPTUNhY2hlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFN0cmluZyYmIG5hbWUsIHVpbnQ2NF90IGlkZW4KICAgICAsIG1fbmFtZShXVEZNb3Zl
KG5hbWUpKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1fdGFza1F1ZXVlKFN1c3BlbmRhYmxlVGFz
a1F1ZXVlOjpjcmVhdGUoJmNvbnRleHQpKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogICAg
IG1fY29ubmVjdGlvbi0+cmVmZXJlbmNlKG1faWRlbnRpZmllcik7CkBAIC02MCw3ICs1OSw3IEBA
IERPTUNhY2hlOjp+RE9NQ2FjaGUoKQogdm9pZCBET01DYWNoZTo6bWF0Y2goUmVxdWVzdEluZm8m
JiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKICAgICBkb01hdGNoKFdURk1vdmUoaW5mbyksIFdURk1vdmUob3B0aW9u
cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxSZWZQdHI8RmV0Y2hSZXNwb25zZT4+JiYgcmVzdWx0
KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewor
ICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9
IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWplY3QocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTI0LDcgKzEy
Myw3IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoQWxsKE9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGlu
Zm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9uCiAKICAgICBpZiAoIXJlcXVlc3QpIHsKICAg
ICAgICAgcmV0cmlldmVSZWNvcmRzKFVSTCB7IH0sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpLCBleGNlcHRpb24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSks
IGV4Y2VwdGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
ICAgICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTM1LDcgKzEzNCw3IEBAIHZvaWQgRE9NQ2FjaGU6Om1hdGNoQWxsKE9wdGlvbmFsPFJl
cXVlc3RJbmZvPiYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3B0aW9uCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJlbGVhc2VOb25OdWxsKCksIFdU
Rk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0
aW9uT3I8VmVjdG9yPENhY2hlU3RvcmFnZVJlY29yZD4+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAg
ICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICBl
bnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdU
Rk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0yNDMsMTMgKzI0Miwx
MyBAQCB2b2lkIERPTUNhY2hlOjphZGRBbGwoVmVjdG9yPFJlcXVlc3RJbmZvPiYmIGluZm9zLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcgogCiAgICAgYXV0byB0YXNrSGFuZGxlciA9IEZl
dGNoVGFza3NIYW5kbGVyOjpjcmVhdGUoKnRoaXMsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxWZWN0
b3I8UmVjb3JkPj4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpXSgpIG11dGFibGUgeworICAgICAgICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpXSgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9u
KSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAg
ICAgICBiYXRjaFB1dE9wZXJhdGlvbihyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCksIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPHZvaWQ+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVu
cXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShy
ZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1v
dmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0zMTQsNyArMzEz
LDcgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZvcywg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKIHZvaWQgRE9NQ2FjaGU6OnB1dFdpdGhSZXNw
b25zZURhdGEoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSwgUmVmPEZldGNoUmVx
dWVzdD4mJiByZXF1ZXN0LCBSZWY8RmV0Y2hSZXNwb25zZT4mJiByZXNwb25zZSwgRXhjZXB0aW9u
T3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiYgcmVzcG9uc2VCb2R5KQogewogICAgIGlmIChyZXNw
b25zZUJvZHkuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVU
YXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gcmVzcG9uc2VCb2R5
LnJlbGVhc2VFeGNlcHRpb24oKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgZW5xdWV1ZVRhc2soW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSByZXNwb25zZUJvZHkucmVsZWFz
ZUV4Y2VwdGlvbigpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RG
TW92ZShleGNlcHRpb24pKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyNCw3
ICszMjMsNyBAQCB2b2lkIERPTUNhY2hlOjpwdXRXaXRoUmVzcG9uc2VEYXRhKERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UsIFJlZjxGZXRjaAogICAgIGlmIChhdXRvIGJ1ZmZlciA9
IHJlc3BvbnNlQm9keS5yZWxlYXNlUmV0dXJuVmFsdWUoKSkKICAgICAgICAgYm9keSA9IGJ1ZmZl
ci5yZWxlYXNlTm9uTnVsbCgpOwogICAgIGJhdGNoUHV0T3BlcmF0aW9uKHJlcXVlc3QuZ2V0KCks
IHJlc3BvbnNlLmdldCgpLCBXVEZNb3ZlKGJvZHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8dm9p
ZD4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2so
W3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkg
bXV0YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CkBAIC0z
OTAsNyArMzg5LDcgQEAgdm9pZCBET01DYWNoZTo6cHV0KFJlcXVlc3RJbmZvJiYgaW5mbywgUmVm
PEZldGNoUmVzcG9uc2U+JiYgcmVzcG9uc2UsIERPTVByb21pc2UKICAgICB9CiAKICAgICBiYXRj
aFB1dE9wZXJhdGlvbihyZXF1ZXN0LmdldCgpLCByZXNwb25zZS5nZXQoKSwgcmVzcG9uc2UtPmNv
bnN1bWVCb2R5KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHByb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3Zl
KHJlc3VsdCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3Zl
KHJlc3VsdCkpOwogICAgICAgICB9KTsKICAgICB9KTsKQEAgLTQwOCw3ICs0MDcsNyBAQCB2b2lk
IERPTUNhY2hlOjpyZW1vdmUoUmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
IG9wdGlvbnMsIERPTVByb21pcwogICAgIH0KIAogICAgIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHJl
cXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShvcHRpb25zKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKEV4Y2VwdGlvbk9yPGJvb2w+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
bV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgcmVz
dWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhb
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9IFdURk1vdmUocmVzdWx0KV0oKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpAQCAtNDM2LDcgKzQzNSw3IEBAIHZvaWQgRE9NQ2FjaGU6Omtl
eXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBLCiAKICAgICBpZiAoIXJlcXVlc3QpIHsKICAgICAgICAgcmV0cmlldmVSZWNvcmRzKFVS
TCB7IH0sIFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0
aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5x
dWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24gPSBX
VEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhb
dGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdURk1vdmUoZXhj
ZXB0aW9uKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CiAg
ICAgICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVl
KCkpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDQ4LDcgKzQ0Nyw3IEBAIHZv
aWQgRE9NQ2FjaGU6OmtleXMoT3B0aW9uYWw8UmVxdWVzdEluZm8+JiYgaW5mbywgQ2FjaGVRdWVy
eU9wdGlvbnMmJiBvcHRpb25zLCBLCiAgICAgfQogCiAgICAgcXVlcnlDYWNoZShyZXF1ZXN0LnJl
bGVhc2VOb25OdWxsKCksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0
KSBtdXRhYmxlIHsKLSAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewor
ICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHJlc3VsdCA9
IFdURk1vdmUocmVzdWx0KV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC02MDgsMTAgKzYw
NywxNCBAQCBjb25zdCBjaGFyKiBET01DYWNoZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0
CiAgICAgcmV0dXJuICJDYWNoZSI7CiB9CiAKLWJvb2wgRE9NQ2FjaGU6Omhhc1BlbmRpbmdBY3Rp
dml0eSgpIGNvbnN0Cit2b2lkIERPTUNhY2hlOjplbnF1ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+
JiYgdGFzaykKIHsKLSAgICByZXR1cm4gbV90YXNrUXVldWUtPmhhc1BlbmRpbmdUYXNrcygpIHx8
IEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CisgICAgYXV0byogY29udGV4
dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAg
IHJldHVybjsKKyAgICBjb250ZXh0LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
RE9NTWFuaXB1bGF0aW9uLCAqY29udGV4dCwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIHRhc2sgPSBX
VEZNb3ZlKHRhc2spXSB7CisgICAgICAgIHRhc2soKTsKKyAgICB9KTsKIH0KIAotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmgKaW5k
ZXggZDE2ZjgyMjE1YzRmMWQ4OThjMWQ3NTY0MjRlODAzN2E5ZDMzZDdjZC4uMDk5MWI5MzBiMjg4
MjJiZTljYjUzYmQ4ZDQyMGViM2I4NTc1MDk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuaApAQCAtMzMsNyArMzMsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotY2xhc3MgU3VzcGVuZGFibGVUYXNrUXVldWU7
CiAKIGNsYXNzIERPTUNhY2hlIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NQ2FjaGU+LCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTYzLDkgKzYyLDYgQEAgcHVibGlj
OgogCiAgICAgQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5nZXQoKTsgfQogCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgYm9vbCBo
YXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKLQogcHJpdmF0ZToKICAgICBET01DYWNo
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgbmFtZSwgdWludDY0X3QgaWRlbnRp
ZmllciwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogCkBAIC04OCwxMyArODQsMTQg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmPEZldGNoUmVzcG9uc2U+PiBjbG9uZVJlc3BvbnNl
cyhjb25zdCBWZWN0b3I8Q2FjaGVTdG9yYWdlUmVjb3JkPiYpOwogICAgIERPTUNhY2hlRW5naW5l
OjpSZWNvcmQgdG9Db25uZWN0aW9uUmVjb3JkKGNvbnN0IEZldGNoUmVxdWVzdCYsIEZldGNoUmVz
cG9uc2UmLCBET01DYWNoZUVuZ2luZTo6UmVzcG9uc2VCb2R5JiYpOwogCisgICAgdm9pZCBlbnF1
ZXVlVGFzayhGdW5jdGlvbjx2b2lkKCk+JiYpOworCiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICB1
aW50NjRfdCBtX2lkZW50aWZpZXI7CiAgICAgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKIAogICAgIFZlY3RvcjxDYWNoZVN0b3JhZ2VSZWNvcmQ+IG1fcmVjb3JkczsK
ICAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKLSAgICBVbmlxdWVSZWY8U3VzcGVuZGFi
bGVUYXNrUXVldWU+IG1fdGFza1F1ZXVlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3BwCmlu
ZGV4IDU0ZWVlN2I1MjBmNmEwNGNkMWI3ZDlkYmNiZTRkMGVlNzhjMTc4ZDIuLjUyMzFmZjIyM2Zj
Mzg5MmNkNzk0ZTZhZDMzZTJlZGM5ZmI4NzUzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNs
dWRlICJKU0RPTUNhY2hlLmgiCiAjaW5jbHVkZSAiSlNGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIlN1c3BlbmRhYmxlVGFza1F1
ZXVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTsKQEAgLTM5LDcgKzM4LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6
OkRPTUNhY2hlRW5naW5lOwogRE9NQ2FjaGVTdG9yYWdlOjpET01DYWNoZVN0b3JhZ2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbikKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKICAgICAsIG1fY29u
bmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICwgbV90YXNrUXVldWUoU3VzcGVuZGFi
bGVUYXNrUXVldWU6OmNyZWF0ZSgmY29udGV4dCkpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7
CiB9CkBAIC04OSw3ICs4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgUmVmPERPTUNhY2hlPiBjb3B5Q2Fj
aGUoY29uc3QgUmVmPERPTUNhY2hlPiYgY2FjaGUpCiB2b2lkIERPTUNhY2hlU3RvcmFnZTo6ZG9T
ZXF1ZW50aWFsTWF0Y2goRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9w
dGlvbnMmJiBvcHRpb25zLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAg
c3RhcnRTZXF1ZW50aWFsTWF0Y2goV1RGOjptYXAobV9jYWNoZXMsIGNvcHlDYWNoZSksIFdURk1v
dmUoaW5mbyksIFdURk1vdmUob3B0aW9ucyksIFt0aGlzLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtl
UGVuZGluZ0FjdGl2aXR5KCp0aGlzKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8m
JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCldKCkgbXV0
YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
cmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MDcsNyArMTA1LDcgQEAgdm9pZCBET01DYWNoZVN0b3JhZ2U6Om1hdGNoKERPTUNhY2hlOjpSZXF1
ZXN0SW5mbyYmIGluZm8sIENhY2hlUXVlcnlPcHRpb25zJiYgb3AKIHsKICAgICByZXRyaWV2ZUNh
Y2hlcyhbdGhpcywgaW5mbyA9IFdURk1vdmUoaW5mbyksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlv
bnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4
Y2VwdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChleGNlcHRpb24pIHsKLSAgICAgICAgICAg
IG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4
Y2VwdGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgeworICAgICAg
ICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24g
PSBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAg
ICBwcm9taXNlLT5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5LDcgKzExNyw3IEBAIHZvaWQgRE9NQ2FjaGVTdG9y
YWdlOjptYXRjaChET01DYWNoZTo6UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wCiAgICAgICAgICAgICAgICAgbV9jYWNoZXNbcG9zaXRpb25dLT5tYXRjaChXVEZNb3Zl
KGluZm8pLCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHByb21pc2UpKTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5x
dWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgICAg
ICAgICAgZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXSgpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTMyLDcgKzEzMCw3IEBAIHZvaWQgRE9NQ2FjaGVTdG9y
YWdlOjptYXRjaChET01DYWNoZTo6UmVxdWVzdEluZm8mJiBpbmZvLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wCiB2b2lkIERPTUNhY2hlU3RvcmFnZTo6aGFzKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9N
UHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkKIHsKICAgICByZXRyaWV2ZUNh
Y2hlcyhbdGhpcywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4
Y2VwdGlvbj4mJiBleGNlcHRpb24pIG11dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5x
dWV1ZVRhc2soW3RoaXMsIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRp
b24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNr
KFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RG
TW92ZShleGNlcHRpb24pXSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0KFdURk1vdmUoZXhjZXB0aW9uLnZhbHVl
KCkpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CkBAIC0xODksNyArMTg3LDcgQEAgdm9pZCBE
T01DYWNoZVN0b3JhZ2U6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMSW50ZXJmYWNlPEQKIHsKICAgICByZXRyaWV2ZUNhY2hlcyhbdGhpcywgbmFtZSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKE9wdGlvbmFsPEV4Y2VwdGlvbj4mJiBleGNlcHRpb24p
IG11dGFibGUgewogICAgICAgICBpZiAoZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICBtX3Rhc2tR
dWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRpb24g
PSBXVEZNb3ZlKGV4Y2VwdGlvbi52YWx1ZSgpKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGVu
cXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92
ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgcHJvbWlz
ZS5yZWplY3QoV1RGTW92ZShleGNlcHRpb24pKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjAyLDcgKzIwMCw3IEBAIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpkb09w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlCiB7
CiAgICAgYXV0byBwb3NpdGlvbiA9IG1fY2FjaGVzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgaXRl
bSkgeyByZXR1cm4gaXRlbS0+bmFtZSgpID09IG5hbWU7IH0pOwogICAgIGlmIChwb3NpdGlvbiAh
PSBub3RGb3VuZCkgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMsIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBjYWNoZSA9IG1fY2FjaGVzW3Bvc2l0aW9uXS5jb3B5
UmVmKCldKCkgbXV0YWJsZSB7CisgICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKSwgY2FjaGUgPSBtX2NhY2hlc1twb3NpdGlvbl0uY29weVJlZigpXSgp
IG11dGFibGUgewogICAgICAgICAgICAgcHJvbWlzZS5yZXNvbHZlKERPTUNhY2hlOjpjcmVhdGUo
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgU3RyaW5nIHsgY2FjaGUtPm5hbWUoKSB9LCBjYWNo
ZS0+aWRlbnRpZmllcigpLCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm47CkBAIC0yMTAsMTQgKzIwOCwxNCBAQCB2b2lkIERPTUNhY2hlU3RvcmFn
ZTo6ZG9PcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZQogCiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCpvcmlnaW4oKSwgbmFtZSwgW3RoaXMsIG5h
bWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVu
ZGluZ0FjdGl2aXR5KCp0aGlzKV0oY29uc3QgQ2FjaGVJZGVudGlmaWVyT3JFcnJvciYgcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKLSAgICAgICAg
ICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIGVycm9yID0gcmVzdWx0LmVycm9yKCldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBl
bnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGVycm9yID0gcmVz
dWx0LmVycm9yKCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RE9NQ2FjaGVFbmdpbmU6OmNvbnZlcnRUb0V4Y2VwdGlvbkFuZExvZyhzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIGVycm9yKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGlmIChyZXN1bHQudmFsdWUoKS5oYWRTdG9yYWdlRXJyb3IpCiAgICAgICAgICAg
ICAgICAgbG9nQ29uc29sZVBlcnNpc3RlbmN5RXJyb3Ioc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBuYW1lKTsKIAotICAgICAgICAgICAgbV90YXNrUXVldWUtPmVucXVldWVUYXNrKFt0aGlzLCBu
YW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgaWRlbnRpZmllciA9IHJlc3VsdC52YWx1
ZSgpLmlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFzayhbdGhp
cywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGlkZW50aWZpZXIgPSByZXN1bHQu
dmFsdWUoKS5pZGVudGlmaWVyXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGF1dG8gY2Fj
aGUgPSBET01DYWNoZTo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFN0cmluZyB7
IG5hbWUgfSwgaWRlbnRpZmllciwgbV9jb25uZWN0aW9uLmNvcHlSZWYoKSk7CiAgICAgICAgICAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKGNhY2hlKTsKICAgICAgICAgICAgICAgICBtX2NhY2hlcy5h
cHBlbmQoV1RGTW92ZShjYWNoZSkpOwpAQCAtMjMwLDcgKzIyOCw3IEBAIHZvaWQgRE9NQ2FjaGVT
dG9yYWdlOjpyZW1vdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8SURM
Qm9vbGVhbj4mCiB7CiAgICAgcmV0cmlldmVDYWNoZXMoW3RoaXMsIG5hbWUsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShPcHRpb25hbDxFeGNlcHRpb24+JiYgZXhjZXB0aW9uKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKGV4Y2VwdGlvbikgewotICAgICAgICAgICAgbV90YXNrUXVldWUtPmVu
cXVldWVUYXNrKFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgZXhjZXB0aW9uID0gV1RGTW92
ZShleGNlcHRpb24udmFsdWUoKSldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBlbnF1ZXVlVGFz
ayhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIGV4Y2VwdGlvbiA9IFdURk1vdmUoZXhjZXB0
aW9uLnZhbHVlKCkpXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIHByb21pc2UucmVqZWN0
KFdURk1vdmUoZXhjZXB0aW9uKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTI0MywxNCArMjQxLDE0IEBAIHZvaWQgRE9NQ2FjaGVTdG9yYWdlOjpkb1JlbW92ZShj
b25zdCBTdHJpbmcmIG5hbWUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuCiB7CiAgICAg
YXV0byBwb3NpdGlvbiA9IG1fY2FjaGVzLmZpbmRNYXRjaGluZyhbJl0oYXV0byYgaXRlbSkgeyBy
ZXR1cm4gaXRlbS0+bmFtZSgpID09IG5hbWU7IH0pOwogICAgIGlmIChwb3NpdGlvbiA9PSBub3RG
b3VuZCkgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXSgpIG11dGFibGUgeworICAgICAgICBlbnF1ZXVlVGFzayhbcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBwcm9taXNlLnJlc29s
dmUoZmFsc2UpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1f
Y29ubmVjdGlvbi0+cmVtb3ZlKG1fY2FjaGVzW3Bvc2l0aW9uXS0+aWRlbnRpZmllcigpLCBbdGhp
cywgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHBlbmRpbmdBY3Rpdml0eSA9IG1h
a2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpXShjb25zdCBDYWNoZUlkZW50aWZpZXJPckVycm9yJiBy
ZXN1bHQpIG11dGFibGUgewotICAgICAgICBtX3Rhc2tRdWV1ZS0+ZW5xdWV1ZVRhc2soW3RoaXMs
IG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCByZXN1bHRdKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGVucXVldWVUYXNrKFt0aGlzLCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgcmVzdWx0XSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVl
KCkpCiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoRE9NQ2FjaGVFbmdpbmU6OmNvbnZl
cnRUb0V4Y2VwdGlvbkFuZExvZyhzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlc3VsdC5lcnJv
cigpKSk7CiAgICAgICAgICAgICBlbHNlIHsKQEAgLTI2NSw3ICsyNjMsNyBAQCB2b2lkIERPTUNh
Y2hlU3RvcmFnZTo6ZG9SZW1vdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMQm9vbGVhbgogdm9pZCBET01DYWNoZVN0b3JhZ2U6OmtleXMoS2V5c1Byb21pc2UmJiBw
cm9taXNlKQogewogICAgIHJldHJpZXZlQ2FjaGVzKFt0aGlzLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oT3B0aW9uYWw8RXhjZXB0aW9uPiYmIGV4Y2VwdGlvbikgbXV0YWJsZSB7Ci0gICAg
ICAgIG1fdGFza1F1ZXVlLT5lbnF1ZXVlVGFzayhbdGhpcywgcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksIGV4Y2VwdGlvbiA9IFdURk1vdmUoZXhjZXB0aW9uKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgZW5xdWV1ZVRhc2soW3RoaXMsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBleGNlcHRp
b24gPSBXVEZNb3ZlKGV4Y2VwdGlvbildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoZXhj
ZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QoV1RGTW92ZShleGNlcHRp
b24udmFsdWUoKSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI4OCw5ICsyODYsMTQg
QEAgY29uc3QgY2hhciogRE9NQ2FjaGVTdG9yYWdlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKICAgICByZXR1cm4gIkNhY2hlU3RvcmFnZSI7CiB9CiAKLWJvb2wgRE9NQ2FjaGVTdG9yYWdl
OjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAordm9pZCBET01DYWNoZVN0b3JhZ2U6OmVucXVl
dWVUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQogewotICAgIHJldHVybiBtX3Rhc2tRdWV1
ZS0+aGFzUGVuZGluZ1Rhc2tzKCkgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZp
dHkoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworICAgIGNvbnRleHQtPmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sICpjb250ZXh0LCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwZW5kaW5nQWN0aXZpdHkgPSBtYWtlUGVuZGluZ0Fj
dGl2aXR5KCp0aGlzKSwgdGFzayA9IFdURk1vdmUodGFzayldIHsKKyAgICAgICAgdGFzaygpOwor
ICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuaAppbmRleCBiMjMwZWVlYjUwNThkN2UwYjdh
MWZkYjRlODJkYjg5YjZlMDIxODIxLi4wMTA1MzlmNGI1N2Q2NmFiNzdmYzAwNGZlOGIyNDBkNWQy
YTY3NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hl
U3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9y
YWdlLmgKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBT
dXNwZW5kYWJsZVRhc2tRdWV1ZTsKLQogY2xhc3MgRE9NQ2FjaGVTdG9yYWdlIDogcHVibGljIFJl
ZkNvdW50ZWQ8RE9NQ2FjaGVTdG9yYWdlPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxET01DYWNoZVN0b3JhZ2U+IGNyZWF0ZShTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0
aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTUNhY2hlU3RvcmFnZShjb250ZXh0LCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKSk7IH0KQEAgLTQ3LDkgKzQ1LDYgQEAgcHVibGljOgogICAgIHZvaWQg
cmVtb3ZlKGNvbnN0IFN0cmluZyYsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmKTsK
ICAgICB2b2lkIGtleXMoS2V5c1Byb21pc2UmJik7CiAKLSAgICAvLyBBY3RpdmVET01PYmplY3QK
LSAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOwotCiBwcml2YXRlOgog
ICAgIERPTUNhY2hlU3RvcmFnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwogCkBAIC02NCwxMCArNTksMTEgQEAgcHJpdmF0ZToKICAgICBS
ZWY8RE9NQ2FjaGU+IGZpbmRDYWNoZU9yQ3JlYXRlKERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm8m
Jik7CiAgICAgT3B0aW9uYWw8Q2xpZW50T3JpZ2luPiBvcmlnaW4oKSBjb25zdDsKIAorICAgIHZv
aWQgZW5xdWV1ZVRhc2soRnVuY3Rpb248dm9pZCgpPiYmKTsKKwogICAgIFZlY3RvcjxSZWY8RE9N
Q2FjaGU+PiBtX2NhY2hlczsKICAgICB1aW50NjRfdCBtX3VwZGF0ZUNvdW50ZXIgeyAwIH07CiAg
ICAgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBVbmlxdWVS
ZWY8U3VzcGVuZGFibGVUYXNrUXVldWU+IG1fdGFza1F1ZXVlOwogICAgIGJvb2wgbV9pc1N0b3Bw
ZWQgeyBmYWxzZSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJFdmVudExvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudExv
b3AuY3BwCmluZGV4IDQ2ODk3MmNhNDc5MTU2MzU2MWJiMzY1NGIxODFkZmMyM2MzOWFjODkuLjM5
ZWRiMWE3OTYyYzEzMWI1ZjQ5Zjc4YTU3NWZmOGU2YjQ1OWM2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRMb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckV2ZW50TG9vcC5jcHAKQEAgLTk4LDcgKzk4LDggQEAgdm9pZCBXb3Jr
ZXJFdmVudExvb3A6OnJ1bigpCiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQgfHwgY29udGV4dC0+YWN0aXZlRE9NT2JqZWN0c0Fy
ZVN0b3BwZWQoKSB8fCBjb250ZXh0LT5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBmb3IgKGF1dG8mIHRhc2sgOiBtX3Rhc2tzKQorICAgIGF1dG8g
dGFza3MgPSBzdGQ6OmV4Y2hhbmdlKG1fdGFza3MsIFZlY3RvcjxUYXNrPigpKTsKKyAgICBmb3Ig
KGF1dG8mIHRhc2sgOiB0YXNrcykKICAgICAgICAgdGFzay50YXNrKCk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>